A Callout is a Java-based process that performs a specific validation on a record (and the assigned attribute). Some callout validation rules are pre-defined and available for immediate use. The majority of the callout validation rules are developed for a specific EnterWorks implementation.
The following callout rules are pre-defined in EnterWorks:
AttributesCalc
AttributesPriceUpdate
AttributesSearchAndUpdate
AttributesSearchAndCalculate
CheckAttributeCodeSetName
IsLengthLessThan
MatchesPattern – compares the value to a REGEX pattern. If the value does not match one of the defined patterns, the attribute is flagged as invalid. A common application is to define the different formats for a phone number (for example, 1 (909) 555-1212, (714) 555-1212 x 1234, 818-555-1212, etc.)
NoBlanks – flags a value if it contains any spaces
NoInvalidCharacters – flags a value as invalid if it contains any of the designated characters.
ValidReference – flags a record as invalid if a corresponding record is not found in a linked repository (NOTE: This has been supplanted by a Bulk Callout which is a more-efficient to perform such a validation)
ValidCharacters – flags a value as invalid if it contains anything but the designated characters
ValidDimensions
PIMWebServiceGetRepoAttrData
UpdateDistinctChildValues
UpdateParentWithDistinctChildValues
<custom> - Custom callout validation rules can be implemented to perform any needed specialized validation, providing those callouts follow the prescribed interface in the form of a Java class. Examples of callout rules:
inheritance – the outcome of the validation is dependent upon the content of a linked parent record according to configured inheritance rules
comparison to data outside of EnterWorks, such as using an API to access a web service (NOTE: while such operations are possible, they are very expensive in terms of performance impact)
complex logic that cannot be expressed in SQL (bulk callout) or simple validation rule. NOTE: many of the callouts listed above originated as complex rules needed for an implementation but were recognized as having general applicability so where assimilated into the product.