Olet tässä:
Apex luominen objektin tilan toiminnon määritelmälle
Luo Developer Consolessa kutsuttava Apex jokaiselle objektin tilojen toiminnon määritelmälle (mukautetulle toiminnolle).
-
Napsauta pikavalikkoa (
) ja napsauta sitten Developer Console.
- Valitse .
- Syötä nimi ja napsauta OK.
- Liitä esimerkkikoodi valintaikkunaan.
- Tallenna muutokset.
See Also
Esimerkki Apex luokasta objektin tilan toiminnon määritelmälle
Alla on joitakin Apex, joilla voit luoda objektien tilojen toimintojen määritelmiä. Muokkaa esimerkkikoodia tarpeidesi mukaisesti
Metodin allekirjoitus sisältää nämä pakolliset parametrit:
| Parametri | Kuvaus |
|---|---|
| Kartoitus < Merkkijono, objekti > inputMap | Sisältää kaksi avainta:
|
| Kartoitus < Merkkijono, objekti > outMap |
|
Esimerkki RestartContract Apex
Käynnistä lopetettu sopimus uudelleen käyttämällä mukautettua toimintoa.
global class RestartContract implements industries_clm.OpenInterface {
public Boolean invokeMethod(String methodName, Map<String, Object> request, Map<String, Object> outMap) {
Boolean success = true;
if (methodName == 'executeAction') {
makeCallout(request, outMap);
}
return success;
}
public static void makeCallout(Map < String, Object > inputMap, Map < String, Object > outMap) {
String ContractId = (String) inputMap.get('contractId');
List<Contract> contract = [SELECT Id, Name, Status FROM Contract WHERE Id =:contractId];
contract[0].Status = 'Draft';
update(contract);
outMap.put('isSuccess', true);
}
}
}
Esimerkki Apex
Toteuta lisälogiikkaa, joka suoritetaan samanaikaisesti Salesforcen tavallisen hyväksymisprosessin kanssa.
global class ApprovalAction implements industries_clm.OpenInterface {
public Boolean invokeMethod(String methodName, Map<String, Object> request, Map<String, Object> outMap) {
Boolean success = true;
if (methodName == 'executeAction') {
executeAction(request, outMap);
}
return success;
}
private void executeAction(Map < String, Object > inputMap, Map < String, Object > outMap) {
Approval.ProcessSubmitRequest req1 =
new Approval.ProcessSubmitRequest();
req1.setComments('Submitting request for approval.');
String contractId = (String) inputMap.get('contractId');
req1.setObjectId(contractId);
// Submit the record to specific process and skip the criteria evaluation
req1.setProcessDefinitionNameOrId('ContractApprovalProcessName');
req1.setSkipEntryCriteria(true);
// Submit the approval request for the account
Approval.ProcessResult result = Approval.process(req1);
outMap.put('isSuccess', true);
}
}
Esimerkki Apex EndContract
Jos kutsutun toiminnon Lähettäjä-tilassa on mahdollista siirtyä useisiin objektien tilan muutoksiin, koska useat Vastaanottaja-tilat ovat käytettävissä, Apex ei muuta sopimuksen tilaa. Esimerkiksi aktivoidussa sopimuksessa on mukautettu Endcontract-toiminto, joka on määritetty siirtämään sopimus kahteen tilaan: peruutettu ja lopetettu. Apex onnistuminen vaatii finalStatusValue-parametrin.
global class EndContract implements industries_clm.OpenInterface {
public Boolean invokeMethod(String methodName, Map<String, Object> request, Map<String, Object> outMap) {
Boolean success = true;
if (methodName == 'executeAction') {
executeAction(request, outMap);
}
return success;
}
private void executeAction(Map < String, Object > inputMap, Map < String, Object > outMap) {
String contractId = (String) inputMap.get('contractId');
outMap.put('isSuccess', true);
outMap.put('finalStatusValue', 'Canceled');
}
}
