1UpdateClaimCallable callable = new UpdateClaimCallable();
2
3// Prepare input map
4Map<String, Object> input = new Map<String, Object>();
5
6// Create ClaimInputRepresentation object
7ConnectApi.ClaimInputRepresentation claimInput = new ConnectApi.ClaimInputRepresentation();
8claimInput.name = 'Claim-Demo-Test-apex-update';
9claimInput.claimType = 'Auto';
10claimInput.lossDate = DateTime.now();
11claimInput.productCode = 'AutoClaimRoot';
12claimInput.claimReasonType = 'Accident';
13claimInput.claimReason = 'Damage';
14claimInput.lossType = 'Repairs';
15claimInput.insurancePolicyId = '0YTxx000000000iGAA';
16claimInput.accountId = '001xx000003GYnoAAG';
17claimInput.expenseReserveAmount = 500.00;
18claimInput.expenseReserveAdjustmentReason = 'Updated expense reserve';
19claimInput.lossReserveAmount = 2000.00;
20claimInput.lossReserveAdjustmentReason = 'Updated loss reserve';
21
22// Additional claim fields
23claimInput.additionalFields = new Map<String, Object>{ 'Severity' => 'Medium' };
24
25// Set claim participants
26ConnectApi.ClaimParticipantInputRepresentation participant1 = new ConnectApi.ClaimParticipantInputRepresentation();
27participant1.action = 'update';
28participant1.instanceKey = 'par1';
29participant1.accountId = '001xx000003GYnoAAG';
30participant1.contactId = '003xx000004WhFwAAK';
31participant1.insurancePolicyParticipantId = '0aoxx00000000SQAAY';
32participant1.isInjured = 'false';
33participant1.roles = new List<String>{'Claimant'};
34
35ConnectApi.ClaimParticipantInputRepresentation participant2 = new ConnectApi.ClaimParticipantInputRepresentation();
36participant2.action = 'create';
37participant2.instanceKey = 'par3';
38participant2.contactId = '003xx000004WhFwAAK';
39participant2.isInjured = 'true';
40participant2.roles = new List<String>{'Claimant', 'Involved Driver'};
41
42claimInput.participants = new List<ConnectApi.ClaimParticipantInputRepresentation>{participant1, participant2};
43
44// Set claim items (update or create)
45ConnectApi.ClaimItemInputRepresentation item1 = new ConnectApi.ClaimItemInputRepresentation();
46item1.action = 'update';
47item1.name = 'item1-updated';
48item1.category = 'Involved Injury';
49item1.productCode = 'InvolvedInjury';
50item1.instanceKey = 'item1';
51item1.insuredItemId = '0YWxx00000000NbGAI';
52item1.insurancePolicyCoverageId = '0cYxx0000000125EAA';
53item1.participantInstanceKey = 'par1';
54item1.attributes = new List<ConnectApi.ClaimAttributeInputRepresentation>{
55 new ConnectApi.ClaimAttributeInputRepresentation('Gender', 'Male')
56};
57item1.additionalFields = new Map<String, Object>{ 'Description' => null };
58item1.relatedObjects = new List<ConnectApi.ClaimRelatedObjectInputRepresentation>{
59 new ConnectApi.ClaimRelatedObjectInputRepresentation('001xx000003GYnoAAG', 'Account')
60};
61
62ConnectApi.ClaimItemInputRepresentation item2 = new ConnectApi.ClaimItemInputRepresentation();
63item2.action = 'create';
64item2.name = 'item2-created';
65item2.category = 'Involved Injury';
66item2.productCode = 'InvolvedInjury';
67item2.instanceKey = 'item2';
68item2.insuredItemId = '0YWxx00000000NbGAI';
69item2.insurancePolicyCoverageId = '0cYxx0000000125EAA';
70item2.participantInstanceKey = 'par2';
71item2.attributes = new List<ConnectApi.ClaimAttributeInputRepresentation>{
72 new ConnectApi.ClaimAttributeInputRepresentation('Gender', 'Male')
73};
74item2.additionalFields = new Map<String, Object>{ 'Description' => 'test added' };
75item2.relatedObjects = new List<ConnectApi.ClaimRelatedObjectInputRepresentation>{
76 new ConnectApi.ClaimRelatedObjectInputRepresentation('001xx000003GYnoAAG', 'Account')
77};
78
79claimInput.items = new List<ConnectApi.ClaimItemInputRepresentation>{item1, item2};
80
81// Add claimInput to input map
82input.put('claimInput', claimInput);
83
84// Prepare output map
85Map<String, Object> output = new Map<String, Object>();
86
87// Execute updateClaim action
88Map<String, Object> args = new Map<String, Object>{ 'input' => input, 'output' => output };
89ConnectApi.CreateClaimOutputRepresentation claimData =
90 (ConnectApi.CreateClaimOutputRepresentation) callable.call('updateClaim', args);
91
92// Log results
93System.debug('Claim Data: ' + JSON.serializePretty(claimData));
94if (output.containsKey('error')) {
95 System.debug('Error: ' + output.get('error'));
96}