X12 EDI is a data format based on ASC X12 standards developed by the American National Standards Institute (ANSI) Accredited Standards Committee (ASC). It is used to electronically exchange business documents in specified formats between two or more trading partners. EDI Data is widely used in logistics and Healthcare industries.
In this article, we shall see how an X12 EDI document is parsed and converted into an XML document. The following Connector is used from Anypoint Exchange for working with X12 data - “X12 Connector – Mule 4”.
The following steps are performed for working with EDI documents
- Create a project and import X12 Connector
- Create a Mule flow that reads the X12 data, parses, and transforms it into XML format
Create a project and import X12 Connector
- Open Anypoint studio and create a project.
- In the new project, click on Search in Exchange (highlighted in yellow). This is to import X12 Connector - Mule 4 from exchange to studio
- In the dialog box that is opened, click on Add Account, to enter the credentials for Anypoint platform if not already saved.
- After Anypoint platform credentails are entered, you are now connected to Anypoint exchange from your Anypoint studio.
- Type x12 as shown in below picture. And select X12 Connector - Mule 4 and click on add and then finish
- X12 Connector - Mule 4 is now successfully added to your studio from exchange.
Create a Mule flow that reads the X12 data, parses, and transforms it into XML format
- Create a mule flow like below with the below processors
- X12 Read reads EDI payload that is received from Listener
- Transform message reads the output of X12 Read and converts it to XML payload.
- Run the mule flow in studio either in run or debug mode.
- Use Postman (or any tool of your choice) to test the above REST API flow. Screenshot below.
- In Body section, enter the EDI payload of any type and invoke the mule flow running in the Anypoint studio.
- The X12 Processor parses the data and returns the data as a Java Object.
- Using a Transform Message processor, as seen above, the object is converted into XML format. In general, the output of “X12-Read" may be transformed into any other data format (e.g., JSON) that the application must work with.
- Screenshot below shows the input EDI and output XML after it is transformed.
When an X12 Read processor is executed, it generates an object with the schema as shown in the screenshot below
As seen in the flow, the parsing and processing of EDI data to other formats using the X12 Connector is straight-forward. In practice, for file-processing with large number of EDI transaction sets, a file-based batch processing is used, and each transaction is parsed separately using EDI X12 Read Processor before further processing is done.
The screenshot below shows the expected output for X12-Write processor.
After the EDI data is read using the X12-Read processor, and the transaction processing is complete, the response data may have to be formatted back to EDI. To generate an EDI response, a Java Object with the above schema is built (screenshot above), This “Expected” Object is provided as an input to “X12 – Write" processor that transforms data into EDI format, which can then be used for response.
In the next part of the article, we shall delve into the details of trading partner setup for exchange of EDI documents and customizing EDI validation rules. So, stay tuned!