See: Description
Interface | Description |
---|---|
EvaluateFieldRulesRequest |
Provides the data needed to evaluate a field rule; built from
EvaluateFieldRulesRequestBuilder . |
EvaluateFieldRulesRequestBuilder |
Provides methods to build an
EvaluateFieldRulesRequest ; built from
IntegrationRuleService.newEvaluateFieldRulesRequestBuilder() . |
EvaluateFieldRulesResponse |
Provides methods to retrieve information about an evaluated field rule; returned from
IntegrationRuleService.evaluateFieldRules(EvaluateFieldRulesRequest) . |
FieldRule |
Provides methods to retrieve information related to a FieldRule.
|
FieldRuleError |
Provides methods to retrieve the error type and message associated with a field rule.
|
FieldRuleResult |
Provides methods to retrieve information after evaluating a field rule.
|
GetIntegrationRulesRequest |
Provides the data needed to retrieve a specific set of integration rules; built from
GetIntegrationRulesRequestBuilder.build() . |
GetIntegrationRulesRequestBuilder |
Provides methods to build a
GetIntegrationRulesRequest ; built from
IntegrationRuleService.newGetIntegrationRulesRequestBuilder() . |
GetIntegrationRulesResponse |
Provides methods to retrieve information associated with an integration rule; returned from
IntegrationRuleService.getIntegrationRules(GetIntegrationRulesRequest) . |
IntegrationRule |
Provides methods to retrieve information related to an
IntegrationRule . |
IntegrationRuleError |
Provides methods to retrieve the error type and message associated with an integration rule.
|
IntegrationRuleService |
Provides methods to retrieve and evaluate integration rules.
|
QueryObjectRule |
Provides methods to retrieve information related to a query object rule.
|
Enum | Description |
---|---|
ItemErrorType |
Valid integration and field rule item error types.
|
MessageErrorType |
Valid integration and field rule message error types.
|
ReferenceLookupType |
Valid reference look up types for
Fieldrule subcomponent under Integrationrule . |
Integrationrule
components, which are configurable
rule sets for field mapping, reference lookup, and field defaulting. Once configured, you can evaluate integration
rules within a MessageProcessor
using the services in this package.
// Locate service
IntegrationRuleService integrationRuleService = ServiceLocator.locate(IntegrationRuleService.class);
// Get integration rule for this connection
GetIntegrationRulesRequest getIntegrationRulesRequest = integrationRuleService.newGetIntegrationRulesRequestBuilder()
.withConnectionId(connectionId).build();
GetIntegrationRulesResponse getIntegrationRulesResponse = integrationRuleService.getIntegrationRules(getIntegrationRulesRequest);
IntegrationRule integrationRule = getIntegrationRulesResponse.getIntegrationRules().iterator().next();
QueryObjectRule queryObjectRule = integrationRule.getQueryObjectRules("query_object__c").iterator().next();
Map<String, String> tokens = VaultCollections.newMap();
tokens.put("token", "value");
String filterClause = queryObjectRule.getResolvedFilterClause(tokens);
// Create and send HTTP Callout request filter results with the filterClause
HttpRequest request = httpService.newHttpRequest("connectionName");
request.setMethod(HttpMethod.POST);
request.appendPath("/api/v19.1/query");
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
request.setHeader("X-VaultAPI-DescribeQuery", "true");
request.setBodyParam("q", "select id, name__v from query_object__c " + filterClause);
httpService.send(request, HttpResponseBodyValueType.JSONDATA).onSuccess(httpResponse -> {
JsonData response = httpResponse.getResponseBody();
if (response.isValidJson()) {
String responseStatus = response.getJsonObject().getValue("responseStatus", JsonValueType.STRING);
if (responseStatus.equals("SUCCESS")) {
JsonArray data = response.getJsonObject().getValue("data", JsonValueType.ARRAY);
JsonObject queryDescribe = response.getJsonObject().getValue("queryDescribe", JsonValueType.OBJECT);
if (!getIntegrationRulesResponse.hasError()){
IntegrationRule integrationRule = getIntegrationRulesResponse.getIntegrationRules().iterator().next();
for (int i = 0; i < data.getSize();i++) {
JsonObject queryRecord = data.getValue(i, JsonValueType.OBJECT);
// Get the resulting values for a row based on the evaluation of the rule against a json query response record
EvaluateFieldRulesRequest evaluateFieldRulesRequest = integrationRuleService.newEvaluateFieldRulesRequestBuilder()
.withIntegrationRule(integrationRule)
.withTargetName("target_name__c")
.withQueryDescribe(queryDescribe)
.withQueryData(queryRecord)
.build();
EvaluateFieldRulesResponse evaluateFieldRulesResponse = integrationRuleService.evaluateFieldRules(evaluateFieldRulesRequest);
Collection<FieldRuleResult> fieldRuleResults = evaluateFieldRulesResponse.getFieldRuleResults();
// Create new record in target vault using values in "fieldRuleResults"
Record r = recordService.newRecord("targetName__c")
for (Iterator<FieldRuleResult> iterator = fieldRuleResults.iterator(); iterator.hasNext();) {
FieldRuleResult fieldRuleResult = iterator.next();
if (!fieldRuleResult.hasError()){
r.setValue(fieldRuleResult.getTargetField(), fieldRuleResult.getValue());
} else {
FieldRuleError error = fieldRuleResult.getError();
ItemErrorType errorType = error.getType();
String errorMessage = error.getMessage();
// do handling based on error type and message
}
}
}
} else {
IntegrationRuleError error = getIntegrationRulesResponse.getError();
MessageErrorType errorType = error.getType();
String errorMessage = error.getMessage();
// do handling based on error type and message
}
}
}
}
Copyright © Veeva Systems 2017–2020. All rights reserved.