For any inbound/outbound EDI transaction, we can configure DynamicMessageTransforms for a combination of format, direction, transactionType, sender org and receiver org fields.
For the transform, we can write the transformation code as either a TransformScript (groovy) or provide a TransformClass (java). If TransformScript is provided, the groovy condition to decide whether to execute the TransformScript can be added in the ConditionScript field.
Every time an EDI is processed or generated, the framework goes through the list of EDI Transforms looking for a match by EDI Format, Transaction, Direction, Sender and receiver Org values. If the sender and receiver orgs of EDI do not match the orgs provided in the transform, it then tries to fetch a transform where sender and receiver orgs are not set. (If transforms are found for the EDI sender or receiver orgs, then the generic transforms are ignored). All the transforms are then executed according to the order specified in precedence field.
EdiMessageTransform can be configured either using CSV upoad or from UI. For uploading using CSV, use the interface PLT.EdiMessageTransform_IB, version 1.0.
Any invalid condition/tranform would result in a failed transform and an error in the EDI Message Queue screen.