ComplianceEvaluation Interface

Contains a method to evaluate compliance control. Add logic to compute compliance in the evaluate(var1) method by using the data from ControlEvaluationInput class.

Namespace 

ComplianceMgmt

Usage 

Evaluates compliance by passing the parameter name and value.

ComplianceEvaluation Methods 

Learn more about the methods available with the ComplianceEvaluation interface.

The ComplianceEvaluation interface includes these methods.

  • evaluate(var1)

    Evaluates compliance by using ControlEvaluationInput class.

evaluate(var1) 

Evaluates compliance by using ControlEvaluationInput class.

Signature 

public ComplianceMgmt.ComplianceEvaluationResponse evaluate(ComplianceMgmt.ControlEvaluationInput var1)

Parameters 

var1

Type: ComplianceMgmt.ControlEvaluationInput

The input class to perform an evaluation.

Return Value 

Type: ComplianceMgmt.ComplianceEvaluationResponse

The output class that represents compliance evaluation response from a control evaluation.

ComplianceEvaluation Example Implementation 

Refer to the example implementation of the ComplianceEvaluation interface to evaluate the compliance.

This is an example implementation of the ComplianceMgmt.ComplianceEvaluation interface.

1@VisibleApiVersion(minApiVersion='256')
2global interface ComplianceEvaluation {
3// Evaluates compliance by passing the parameter name/value.
4ComplianceEvaluationResponse evaluate(ControlEvaluationInput input);
5}

This example tests the implementation:

1global class TestImpl implements ComplianceMgmt.ComplianceEvaluation {
2        global ComplianceMgmt.ComplianceEvaluationResponse evaluate(ComplianceMgmt.ControlEvaluationInput input) {
3            ComplianceMgmt.ControlInput controlInput = new ComplianceMgmt.ControlInput('Param1', ComplianceMgmt.ControlInputType.RecordId);
4            Account account = [SELECT Name,ShippingCountry FROM Account WHERE Id=:input.getControlInputValue(controlInput)];
5            boolean iscompliant = false;
6            String complianceMessage = String.format(System.Label.testLabelWithMergeFields , new List<String>{ account.Name });
7            String complianceLogMessage = null;
8            if (account.ShippingCountry != 'USA') {
9                iscompliant = true;
10                complianceLogMessage = 'Is compliant';
11            } else {
12                complianceLogMessage = 'Not compliant';
13            }
14            ComplianceMgmt.EvaluationResult result = new ComplianceMgmt.EvaluationResult(iscompliant, complianceMessage, complianceLogMessage);
15            ComplianceMgmt.ComplianceControlLog logConfig = new ComplianceMgmt.ComplianceControlLog();
16            logConfig.addLog('key1', 'value1');
17            ComplianceMgmt.ComplianceEvaluationResponse response = new ComplianceMgmt.ComplianceEvaluationResponse(result, logConfig);
18            return response;
19        }
20    }