Newer Version Available

This content describes an older version of this product. View Latest

RecalculateAdjustments(claimId, coverageId, RecalculateAdjustmentsInput)

Recalculate adjustments for existing payment details.

API Version

66.0

Requires Chatter

No

Signature

public static ConnectApi.CalculateAdjustmentsRepresentation RecalculateAdjustments(String claimId, String coverageId, ConnectApi.RecalculateAdjustmentsInputRep RecalculateAdjustmentsInput)

Parameters

claimId
Type: String
ID of the claim for which the adjustments must be recalculated.
coverageId
Type: String
ID of the claim coverage.
RecalculateAdjustmentsInput
Type: ConnectApi.RecalculateAdjustmentsInputRep
Details to recalculate the adjustments.

Example

Class Definition
This is a sample Apex code to define the RecalculateAdjustments class before you can call it from Apex to recalculate payment adjustments.
1
2public with sharing class RecalculateAdjustmentsCallable implements System.Callable {
3
4    public Object call(String action, Map<String, Object> args) {
5        // Retrieve the input and output maps from the arguments
6        Map<String, Object> inputMap = (Map<String, Object>) args.get('input');
7        Map<String, Object> outputMap = (Map<String, Object>) args.get('output');
8        
9        // Check the action type
10        if (action == 'recalculateAdjustments') {
11            // Retrieve the required parameters from the input map
12            String claimId = (String) inputMap.get('claimId');
13            String claimCoverageId = (String) inputMap.get('claimCoverageId');
14            
15            ConnectApi.RecalculateAdjustmentsInputRep recalculateAdjustmentInputRep = 
16                (ConnectApi.RecalculateAdjustmentsInputRep) inputMap.get('RecalculateAdjustmentsInput');
17            
18            System.debug('Start of connect API call to recalculate adjustments');
19            System.debug('Claim ID: ' + claimId);
20            System.debug('Claim Coverage ID: ' + claimCoverageId);
21            
22            // Initialize the output representation
23            ConnectApi.CalculateAdjustmentsRepresentation reCalcAdjResponse;
24            
25            // Call the Connect API to recalculate adjustments
26            try {
27                // Call the Connect API resource directly
28                // The endpoint is: /connect/insurance/claims/${claimId}/coverages/${coverageId}/recalculate-adjustments
29                reCalcAdjResponse = ConnectApi.InsuranceClaimFamily.RecalculateAdjustments(
30                    recalculateAdjustmentInputRep,
31                    claimId, 
32                    claimCoverageId
33                );
34                
35                System.debug('Recalculate adjustments completed successfully: ' + reCalcAdjResponse);
36                
37                // Put the reCalcAdjResponse in the output map
38                outputMap.put('reCalcAdjResponse', reCalcAdjResponse);
39                outputMap.put('isSuccess', reCalcAdjResponse.isSuccess);
40                
41                // Check if there are any errors
42                if (reCalcAdjResponse.errors != null && !reCalcAdjResponse.errors.isEmpty()) {
43                    outputMap.put('errors', reCalcAdjResponse.errors);
44                    System.debug('Errors found: ' + reCalcAdjResponse.errors);
45                }
46            }
47            catch (Exception e) {
48                System.debug('Error while recalculating adjustments: ' + e.getMessage());
49                outputMap.put('error', e.getMessage());
50                outputMap.put('isSuccess', false);
51            }
52            
53            return reCalcAdjResponse;
54        }
55        
56        // If the action is not recognized, return null
57        return null;
58    }
59}
Usage Example
This example shows how to call the RecalculateAdjustmentsCallable class from Apex and include the required input data.
1RecalculateAdjustmentsCallable callable = new RecalculateAdjustmentsCallable();
2
3// Prepare the input arguments
4Map<String, Object> input = new Map<String, Object>();
5
6// Set the required parameters
7input.put('claimId', '0ZkSB0000001AVH0A2');                    // Claim ID
8input.put('claimCoverageId', '0kPSB000000GHdu2AG');  
9
10// Create the input representation object
11// First create a Map with the properties
12Map<String, Object> recalculateAdjustmentInputMap = new Map<String, Object>();
13recalculateAdjustmentInputMap.put('paymentDetailId', '0l2SB000000CLsMYAW');
14recalculateAdjustmentInputMap.put('claimedAmount', 4252.35);
15
16// Convert the Map to ConnectApi.RecalculateAdjustmentsInputRep using JSON.deserialize
17String jsonString = JSON.serialize(recalculateAdjustmentInputMap);
18ConnectApi.RecalculateAdjustmentsInputRep recalculateAdjustmentInputRep = 
19    (ConnectApi.RecalculateAdjustmentsInputRep) JSON.deserialize(jsonString, ConnectApi.RecalculateAdjustmentsInputRep.class);
20
21input.put('RecalculateAdjustmentsInput', recalculateAdjustmentInputRep);
22
23// Prepare the output map
24Map<String, Object> output = new Map<String, Object>();
25
26// Prepare the args map
27Map<String, Object> args = new Map<String, Object>();
28args.put('input', input);
29args.put('output', output);
30
31// Call the 'recalculateAdjustments' action
32Object result = callable.call('recalculateAdjustments', args);
33
34// Check the result
35if (result != null) {
36    System.debug('recalculateAdjustments processed successfully: ' + result);
37    
38    // Access the processed adjustment data
39    ConnectApi.CalculateAdjustmentsRepresentation reCalcAdjResponse = 
40        (ConnectApi.CalculateAdjustmentsRepresentation) result;
41    
42    // Process the result as needed
43    System.debug('recalc Adjustment response: ' + reCalcAdjResponse);
44    
45    // Check if the response was successful
46    if (reCalcAdjResponse.isSuccess) {
47        System.debug('recalculateAdjustment was successful');
48    } else {
49        System.debug('recalculateAdjustment failed');
50        if (reCalcAdjResponse.errors != null) {
51            System.debug('Error details: ' + reCalcAdjResponse.errors);
52        }
53    }
54} else {
55    System.debug('Error occurred: ' + output.get('error'));
56}