What’s a good way to do an EDI-style implementation on Apiant?
Some of the large enterprise customers will have a hybrid infrastructure where some of their apps are on-premise and some of their apps are SaaS, etc. A lot of the really big ones will have systems that don’t only integrate their systems, but generate and consume EDI messages from other folks’ systems.
Right now, I am thinking that we would create one output module for each EDI format( such as one for EDIFACT, one for ANSI, etc) and then use an external EDI service to actually create the envelopes, etc.
This of course raises the second point that, if we’re trying to do an EDI implementation, what’s the best way to set up a transactional rollback if the external system rejects the EDI message?
The best approach is to find a suitable Java or PHP library for the EDI format and use that inline in assemblies. In some cases a Protocol Thread approach may be needed, in which case only Java is currently supported.
The system has no concept of transactions and rollbacks. This is intentional, as in most cases it just isn’t possible to do that across multiple API calls.
For the purposes of EDI transactions, all the transactional logic would have to be implemented within a single action assembly. The system knows whether a single action succeeds or not and can retry failed actions.