breadcrumbDescription
Opret en Apex for objekttilstandshandlingsdefinition
Opret en Apex, der kan kaldes, på Developer Console for hver af objekttilstandshandlingsdefinitionerne (tilpassede handlinger).
-
Klik på menuen til hurtig adgang (
), og klik derefter på Developer Console.
- Vælg .
- Indtast et navn, og klik på OK.
- Indsæt eksempelkoden i dialogboksen.
- Gem dine ændringer.
See Also
Eksempel på Apex for objekttilstandshandlingsdefinition
Her er nogle Apex-eksempelklasser til oprettelse af objekttilstandshandlingsdefinitioner. Rediger eksempelkoden, så den passer til dine krav
Metodesignatur inkluderer disse obligatoriske parametre:
| Parameter | Beskrivelse |
|---|---|
| Kort < Streng, Objekt > inputMap | Indeholder to nøgler:
|
| Kort < Streng, objekt > outMap |
|
Eksempel på RestartContract Apex
Genstart en afsluttet kontrakt ved brug af en tilpasset handling.
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);
}
}
}
Eksempel på Apex for ApprovalAction
Implementer yderligere logik, der kører samtidigt med Salesforce-standardgodkendelsesprocessen.
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);
}
}
Eksempel på EndContract Apex
Hvis der for en kaldet handling er mulighed for flere objekttilstandsovergange for en Fra-tilstand, fordi der er flere Til-tilstande tilgængelige, ændrer Apex ikke kontraktens tilstand. På en aktiveret kontrakt er der f.eks. en tilpasset handling ved navn Slutkontrakt, der er konfigureret til at flytte kontrakten til to tilstande: annulleret og afsluttet. Hvis Apex skal lykkes, kræves der en finalStatusValue-parameter.
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');
}
}
