1// Sample Apex call for getEligibleInsuranceClauses invocable action
2public class GetEligibleInsuranceClausesInvoke {
3 private static final String ACTION_NAME = 'getEligibleInsuranceClauses';
4
5 public static Boolean invokeMethod(Map<String, Object> inputs, Map<String, Object> output) {
6 if (output == null) {
7 output = new Map<String, Object>();
8 }
9
10 try {
11 Invocable.Action action = Invocable.Action.createStandardAction(ACTION_NAME);
12
13 // Either quoteId or contextId is required
14 setInvocationParameter(action, inputs, 'quoteId', false);
15 setInvocationParameter(action, inputs, 'contextId', false);
16
17 // Either quoteLineItemId or instanceKey is required
18 setInvocationParameter(action, inputs, 'quoteLineItemId', false);
19 setInvocationParameter(action, inputs, 'instanceKey', false);
20
21 List<Invocable.Action.Result> results = action.invoke();
22 if (results != null && !results.isEmpty() && results[0].isSuccess()) {
23 output.put('output', results[0].getOutputParameters());
24 output.put('success', true);
25 return true;
26 }
27
28 output.put('success', false);
29 if (results != null && !results.isEmpty()) {
30 output.put('errors', results[0].getErrors());
31 }
32 return false;
33 } catch (Exception e) {
34 output.put('success', false);
35 output.put('errorMessage', e.getMessage());
36 return false;
37 }
38 }
39
40 private static void setInvocationParameter(
41 Invocable.Action action,
42 Map<String, Object> payload,
43 String attribute,
44 Boolean serializeJson
45 ) {
46 if (payload != null && payload.containsKey(attribute) && payload.get(attribute) != null) {
47 if (serializeJson) {
48 action.setInvocationParameter(attribute, JSON.serialize(payload.get(attribute)));
49 } else {
50 action.setInvocationParameter(attribute, payload.get(attribute));
51 }
52 }
53 }
54}