See: Description
Interface | Description |
---|---|
FieldRule |
Provides methods to retrieve information related to a FieldRule.
|
FieldRuleResult |
Provides methods to retrieve information after evaluating a field rule.
|
IntegrationRule |
Provides methods to retrieve information related to an IntegrationRule.
|
IntegrationRuleService |
Provides methods to retrieve and evaluate integration rules.
|
Enum | Description |
---|---|
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.
Please contact Veeva Support to set up Integrationrule components.
// Locate service
IntegrationRuleService integrationRuleService = ServiceLocator.locate(IntegrationRuleService.class);
// Create and send HTTP Callout request
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 source_object__c");
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);
// Get integration rule for this connection
IntegrationRule integrationRule = (integrationRuleService.getIntegrationRules(connectionId)).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
Collection<FieldRuleResult> fieldRuleResults = integrationRuleService.evaluateFieldRules(integrationRule, "target_name__c", queryDescribe, queryRecord);
// 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();
r.setValue(fieldRuleResult.getTargetField(), fieldRuleResult.getValue());
}
}
}
}
}
Copyright © Veeva Systems 2017–2019. All rights reserved.