U bent hier:
Een Apex klasse maken voor Definitie van objectstatusactie
Maak een aanroepbare Apex klasse in de Developer Console voor elk van de objectstatus actiedefinities (aangepaste acties).
-
Klik op het menu Snelle toegang (
) en vervolgens op Ontwikkelaarsconsole.
- Selecteer .
- Geef een naam op en klik op OK.
- Plak de voorbeeldcode in het dialoogvenster.
- Sla uw wijzigingen op.
See Also
Voorbeeld van Apex aanroepklasse voor Definitie van objectstatusactie
Hier zijn enkele voorbeelden van Apex klassen voor het maken van objectstatus actiedefinities. De voorbeeldcode aanpassen aan uw vereisten
Methodehandtekening omvat deze verplichte parameters:
| Parameter | Beschrijving |
|---|---|
| Kaart < Tekenreeks, Object > inputMap | Bevat twee sleutels:
|
| Kaart < Tekenreeks, Object > outMap |
|
Voorbeeld van Apex klasse RestartContract
Start een beëindigd contract opnieuw met behulp van een aangepaste actie.
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);
}
}
}
Voorbeeld van Apex klasse ApprovalAction
Implementeer extra logica die gelijktijdig wordt uitgevoerd met het standaard Salesforce-goedkeuringsproces.
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);
}
}
Voorbeeld van EndContract Apex klasse
Als voor een aangeroepen actie meerdere objectstatusovergangen mogelijk zijn voor een Van-status omdat er meerdere Aan-statussen beschikbaar zijn, wijzigt Apex de status van het contract niet. Zo is er voor een geactiveerd contract een aangepaste actie met de naam Eindcontract die is geconfigureerd om het contract naar twee statussen te verplaatsen: geannuleerd en beëindigd. Voor het slagen van de Apex aanroep is de parameter finalStatusValue vereist.
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');
}
}
