Vous êtes ici :
Création d'une classe Apex pour Définition d'action d'état d'objet
Créez une classe Apex invocable dans la Developer Console pour chacune des définitions d'action d'état d'objet (actions personnalisées).
-
Cliquez sur le menu d'accès rapide (
), puis sur Developer Console.
- Sélectionnez .
- Saisissez un nom, puis cliquez sur OK.
-
Collez l'exemple de code dans la boîte de dialogue.
Voir Exemple de classe d'invocation Apex pour la définition d'action d'état d'objet.
- Enregistrez vos modifications.
See Also
Exemple de classe d'invocation Apex pour Définition d'action d'état d'objet
Voici quelques exemples de classes Apex pour créer des définitions d'action d'état d'objet. Modifier l'exemple de code pour l'adapter à vos besoins
La Signature de la méthode inclut les paramètres obligatoires suivants :
| Paramètre | Description |
|---|---|
| Carte < Chaîne, Objet > inputMap | Contient deux clés :
|
| Carte < Chaîne, Objet > outMap |
|
Exemple de classe Apex RestartContract
Redémarrez un contrat résilié en utilisant une action personnalisée.
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);
}
}
}
Exemple de classe Apex ApprovalAction
Implémentez une logique supplémentaire exécutée en même temps que le processus d'approbation Salesforce standard.
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);
}
}
Exemple de classe Apex EndContract
Pour une action appelée, si plusieurs transitions d'état d'objet sont possibles pour un état De, car plusieurs états À sont disponibles, Apex ne changera pas l'état du contrat. Par exemple, dans un contrat activé, une action personnalisée appelée Endcontract est configurée pour déplacer le contrat vers deux états : annulé et résilié. Pour que l'appel Apex réussisse, le paramètre finalStatusValue est requis.
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');
}
}
