UpdateClaim(claimId, UpdateClaimInput)

Update the details of a specific claim.

API Version

65.0

Requires Chatter

No

Signature

public static ConnectApi.CreateClaimOutputRepresentation UpdateClaim(String claimId, ConnectApi.ClaimInputRepresentation UpdateClaimInput)

Parameters

claimId
Type: String
ID of the claim to update.
UpdateClaimInput
Type: ConnectApi.ClaimInputRepresentation
Details to update the claim.

Example

The UpdateClaimCallable Apex class provides a way to update insurance claims by using the Connect API.

Class Definition
1
2public with sharing class UpdateClaimCallable implements System.Callable {
3
4    public Object call(String action, Map<String, Object> args) {
5        Map<String, Object> inputMap = (Map<String, Object>) args.get('input');
6        Map<String, Object> outputMap = (Map<String, Object>) args.get('output');
7        
8        if (action == 'updateClaim') {
9            ConnectApi.ClaimInputRepresentation claimInput = 
10                (ConnectApi.ClaimInputRepresentation) inputMap.get('claimInput');
11            System.debug('Starting Connect API call to update claim');
12
13            ConnectApi.CreateClaimOutputRepresentation claimData;
14            try {
15                claimData = ConnectApi.ClaimFamily.updateClaim('0Zkxx00000000BJCAY', claimInput);
16                System.debug('Claim updated successfully: ' + claimData);
17                outputMap.put('claimData', claimData);
18            } catch (Exception e) {
19                System.debug('Error updating claim: ' + e.getMessage());
20                outputMap.put('error', e.getMessage());
21            }
22
23            return claimData;
24        }
25
26        return null;
27    }
28}
Usage Example
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';
17
18// Additional claim fields
19claimInput.additionalFields = new Map<String, Object>{ 'Severity' => 'Medium' };
20
21// Set claim participants
22ConnectApi.ClaimParticipantInputRepresentation participant1 = new ConnectApi.ClaimParticipantInputRepresentation();
23participant1.action = 'update';
24participant1.instanceKey = 'par1';
25participant1.accountId = '001xx000003GYnoAAG';
26participant1.contactId = '003xx000004WhFwAAK';
27participant1.insurancePolicyParticipantId = '0aoxx00000000SQAAY';
28participant1.isInjured = 'false';
29participant1.roles = new List<String>{'Claimant'};
30
31ConnectApi.ClaimParticipantInputRepresentation participant2 = new ConnectApi.ClaimParticipantInputRepresentation();
32participant2.action = 'create';
33participant2.instanceKey = 'par3';
34participant2.contactId = '003xx000004WhFwAAK';
35participant2.isInjured = 'true';
36participant2.roles = new List<String>{'Claimant', 'Involved Driver'};
37
38claimInput.participants = new List<ConnectApi.ClaimParticipantInputRepresentation>{participant1, participant2};
39
40// Set claim items (update or create)
41ConnectApi.ClaimItemInputRepresentation item1 = new ConnectApi.ClaimItemInputRepresentation();
42item1.action = 'update';
43item1.name = 'item1-updated';
44item1.category = 'Involved Injury';
45item1.productCode = 'InvolvedInjury';
46item1.instanceKey = 'item1';
47item1.insuredItemId = '0YWxx00000000NbGAI';
48item1.insurancePolicyCoverageId = '0cYxx0000000125EAA';
49item1.participantInstanceKey = 'par1';
50item1.attributes = new List<ConnectApi.ClaimAttributeInputRepresentation>{
51    new ConnectApi.ClaimAttributeInputRepresentation('Gender', 'Male')
52};
53item1.additionalFields = new Map<String, Object>{ 'Description' => null };
54item1.relatedObjects = new List<ConnectApi.ClaimRelatedObjectInputRepresentation>{
55    new ConnectApi.ClaimRelatedObjectInputRepresentation('001xx000003GYnoAAG', 'Account')
56};
57
58ConnectApi.ClaimItemInputRepresentation item2 = new ConnectApi.ClaimItemInputRepresentation();
59item2.action = 'create';
60item2.name = 'item2-created';
61item2.category = 'Involved Injury';
62item2.productCode = 'InvolvedInjury';
63item2.instanceKey = 'item2';
64item2.insuredItemId = '0YWxx00000000NbGAI';
65item2.insurancePolicyCoverageId = '0cYxx0000000125EAA';
66item2.participantInstanceKey = 'par2';
67item2.attributes = new List<ConnectApi.ClaimAttributeInputRepresentation>{
68    new ConnectApi.ClaimAttributeInputRepresentation('Gender', 'Male')
69};
70item2.additionalFields = new Map<String, Object>{ 'Description' => 'test added' };
71item2.relatedObjects = new List<ConnectApi.ClaimRelatedObjectInputRepresentation>{
72    new ConnectApi.ClaimRelatedObjectInputRepresentation('001xx000003GYnoAAG', 'Account')
73};
74
75claimInput.items = new List<ConnectApi.ClaimItemInputRepresentation>{item1, item2};
76
77// Add claimInput to input map
78input.put('claimInput', claimInput);
79
80// Prepare output map
81Map<String, Object> output = new Map<String, Object>();
82
83// Execute updateClaim action
84Map<String, Object> args = new Map<String, Object>{ 'input' => input, 'output' => output };
85ConnectApi.CreateClaimOutputRepresentation claimData = 
86    (ConnectApi.CreateClaimOutputRepresentation) callable.call('updateClaim', args);
87
88// Log results
89System.debug('Claim Data: ' + JSON.serializePretty(claimData));
90if (output.containsKey('error')) {
91    System.debug('Error: ' + output.get('error'));
92}