This article describes how to handle the EDI integration scenario in which you need to receive transactions from multiple ISA IDs over the same AS2 connection.
If you need to exchange EDI transactions over AS2 with a trading partner that uses multiple ISA IDs, a special design approach is required to properly handle and route the incoming transactions. This situation generally arises in two scenarios:
- Individual companies such as large retailers may have a single AS2 gateway but exchange EDI using several ISA IDs for different divisions or operating units
- Interacting with a VAN (Value Added Network) over AS2 (not very common)
All transactions will use the same AS2 IDs but the individual transactions will contain different ISA IDs in the ISA header segment.
Incoming X12 EDI documents must be processed through an inbound Trading Partner shape so the AtomSphere B2B framework can validate the documents and generate/reconcile functional acknowledgments. With other communication methods such as FTP and disk it is possible to list the various trading partners in the Start shape of a single process and the framework will automatically inspect the files to associate them with the correct partner. However this approach is not currently possible for AS2 listen communication method. It is also not possible to create separate AS2 listener processes--each referencing a single trading partner--because the AS2 IDs are the same and the shared AS2 server will not know to which process to send the documents.
To handle this scenario you will need to use two processes:
- Process 1 - Receive via AS2 shared server connector (not a Trading Partner shape) and stage documents to disk
- Process 2 - Read staged files from disk through Trading Partner shape and then route by ISA ID to the appropriate mapping/processing logic
In this example we will work with a hypothetical partner named Big Time Retail that has two divisions, Big Time East Coast and Big Time East Coast. Big Time Retailer uses a single AS2 ID but each division has its own ISA ID.
Note: The screen shots below are intended to highlight the configuration relevant to this scenario and may not be completely configured.
Trading Partner Component Setup
Create a Trading Partner component for each unique ISA ID.
- On the Options tab, configure the ISA values including the ISA ID, respectively:
- IMPORTANT: On the Communication tab, add both the Disk and AS2 methods.
Then in your trading partner component:
- On the Options tab, configure your ISA values including the ISA ID.
- On the Communication tab, add both the Disk and AS2 methods.
Process 1: AS2 Receive and Stage Files
Create a simple process that receives the AS2 inbound transactions and simply stages to disk.
- Start Shape: AS2 Shared Server Listen - Receive all files from AS2 ID "BIGTIME". Do not use the Trading Partner shape. Operation component:
- Rest of process - Simply write all documents to the default Disk Get location configured in your trading partner above.
Process 2: Pickup Staged Files through Trading Partner Framework
Create a second process using the Trading partner framework to read the staged files and route by ISA ID.
- Start Shape: Trading Partner (Communication Method=Disk) - Add the two partners to the list:
- Within the process route documents by Document Property > Trading Partner Info > X12 > Interchange > Sender ID. Consider matching with wildcards if the partner appends a "T" to its ISA ID for testing.
- On the Acknowledgments path, use a Trading Partner shape (Communication Method=AS2) to return acknowledgements to the partner. Add the two partners to the list:
- Process 2 will need to be scheduled.
- There is currently a community idea to be able to handle this scenario within a single process: Allow multi AS2