1// Sample Apex call for generateInsuranceClauses invocable action
2public class GenerateInsuranceClausesInvoke {
3 private static final String ACTION_NAME = 'generateInsuranceClauses';
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 // Optional inputs
18 setInvocationParameter(action, inputs, 'quoteLineItemIds', false);
19 setInvocationParameter(action, inputs, 'instanceKeys', false);
20
21 // Optional optionFlags map
22 if (inputs != null && inputs.containsKey('optionFlags')) {
23 Map<String, Object> generateClauseOptions =
24 (Map<String, Object>) inputs.get('optionFlags');
25 if (generateClauseOptions != null) {
26 runtime_industries_insurance.GenerateInsuranceClausesOptions apexOptions =
27 new runtime_industries_insurance.GenerateInsuranceClausesOptions();
28 if (generateClauseOptions.containsKey('saveContext')) {
29 apexOptions.SaveContext =
30 (Boolean) generateClauseOptions.get('saveContext');
31 }
32 if (generateClauseOptions.containsKey('generateManualClauses')) {
33 apexOptions.GenerateManualClauses =
34 (Boolean) generateClauseOptions.get('generateManualClauses');
35 }
36 if (generateClauseOptions.containsKey('generateClausesAsync')) {
37 apexOptions.generateClausesAsync =
38 (Boolean) generateClauseOptions.get('generateClausesAsync');
39 }
40 action.setInvocationParameter('optionFlags', apexOptions);
41 }
42 }
43
44 List<Invocable.Action.Result> results = action.invoke();
45 if (results != null && !results.isEmpty() && results[0].isSuccess()) {
46 output.put('output', results[0].getOutputParameters());
47 output.put('success', true);
48 return true;
49 }
50
51 output.put('success', false);
52 if (results != null && !results.isEmpty()) {
53 output.put('errors', results[0].getErrors());
54 }
55 return false;
56 } catch (Exception e) {
57 output.put('success', false);
58 output.put('errorMessage', e.getMessage());
59 return false;
60 }
61 }
62
63 private static void setInvocationParameter(
64 Invocable.Action action,
65 Map<String, Object> payload,
66 String attribute,
67 Boolean serializeJson
68 ) {
69 if (payload != null && payload.containsKey(attribute) && payload.get(attribute) != null) {
70 if (serializeJson) {
71 action.setInvocationParameter(attribute, JSON.serialize(payload.get(attribute)));
72 } else {
73 action.setInvocationParameter(attribute, payload.get(attribute));
74 }
75 }
76 }
77}