Inbound EDI X12 860 (Purchase Order Change Request - Buyer Initiated
🤔 Problem Statement:
XYZ Manufacturing company, currently utilizes a manual process for managing purchase order changes from their trading partners. This process is labor-intensive, prone to errors, and often results in delays that affect our supply chain efficiency and customer satisfaction. To streamline operations, they aim to implement an automated system for handling inbound EDI X12 860 (Purchase Order Change Request - Buyer Initiated) transactions.
Objective
The goal is to develop and implement a robust solution that facilitates the automated processing of inbound EDI X12 860 transactions. This solution should seamlessly integrate with their existing ERP system, ensure data accuracy, and enhance operational efficiency.
📄 Solution Architecture:
Design a Transaction using an EDI Inbound Pre-built template.
Create Source Schema- EDI860
Create Target Schema - Advance positional
Create a File Event activity
Create Target folder Location (LAN)
Create Mapping activity
EDI Configuration
📑 Pre-requisites:
a. Create a Network for which you are creating a transaction.
b. Create a Partner for the data exchange.
🔍 Solution:
Design : Create transaction in Adeptia Connect to convert data
1. Configure : Define Transition
To Create a Inbound Transition Click Transactions > Templates.
On the Templates screen, navigate to the EDI Inbound Template
To Define Transaction Provide the name and description of the Transaction.
Select Network and Partner
Setting up the partner EDI Configurations
Sample
Field | Description | Example Value |
---|---|---|
EDI Standard | Type of EDI standard used | X12 |
EDI Standard Version | Version of the EDI standard | 004010 |
Association Assigned Code | Code assigned by the association | (Empty) |
Transaction Set Code | Specific type of EDI transaction/document | 845 |
Common X12 Transaction Set Codes
Transaction Set Code | Description |
---|
Transaction Set Code | Description |
---|
Transaction Set Code | Description |
---|---|
810 | Invoice |
850 | Purchase Order |
856 | Ship Notice/Manifest |
846 | Inventory Inquiry/Advice |
845 | Price Authorization Acknowledgment/Status |
Example Structure of an 850 Purchase Order
Segment | Description | Example |
---|---|---|
ST | Transaction Set Header |
|
BEG | Beginning Segment for Purchase Order |
|
N1 | Name (Buyer and Seller information) |
|
PO1 | Purchase Order Line Item |
|
CTT | Transaction Totals |
|
SE | Transaction Set Trailer |
|
Select and configure the EDI Standard X12, EDI Standard Version 004010, transition Set Code to 860
2, Define Source:
Select the Source type as FTP and click next to configure File Event
Define the File Event > Name >Trigger Type (On file Created)
File Event Recommended setting: Need to maintain the polling frequency at 1 minute and ensure that the stable time is not less than 10 seconds.
Specify the file base location path, user ID, and password. Then choose the event start date as well as the expiry date and time.
Select Trigger Simple and polling frequency as per the requirement.
3. Set Destination
Define the Destination application account.
Click on Next to create a FTP Account Information
4. Create Mapping
Create Data Mapping >>Load Source and Target Schema
Create/Add Variables
1. Let's create a variable using the following name: varPricingqty
Condition Applied
WHEN CONDITION{$Input_X12_004010_860/EDIRoot/TS_860/BCH/BCH01='01' } VALUE=['Y' ] OTHERWISE VALUE=['' ]
The conditional mapping expression WHEN CONDITION{$Input_X12_004010_860/EDIRoot/TS_860/BCH/BCH01='01' } VALUE=['Y' ] OTHERWISE VALUE=['' ]
is used to check the value of the BCH01
element within the BCH
segment of an EDI 860 document. If the value is '01' (indicating a new order), the output is set to 'Y'. Otherwise, the output is set to an empty string. This helps automate decision-making in the EDI processing workflow based on specific transaction criteria.
Implement a For Each loop at the root level on the destination side.
$Input_X12_004010_860/EDIRoot/TS_860
Let's establish a name for the variable. :varST_LOC
./Loop5_N1/N1[N101='ST']/N104
The expression ./Loop5_N1/N1[N101='ST']/N104
is used to navigate an EDI document's structure to find and extract the identification code (N104) for the Ship To location. This is useful in EDI processing for pinpointing specific data elements based on conditional criteria, allowing for precise data extraction and transformation.
Let's proceed by creating a variable named 'name'.: varS_ST_EDI_LOC_CODE
WHEN CONDITION{$varST_LOC='H050' or $varST_LOC='1300'} VALUE=['EAVN1824' ]
WHEN CONDITION{$varST_LOC='H464' or $varST_LOC ='H204' } VALUE=['EAVN1823' ]
WHEN CONDITION{$varST_LOC='1303'} VALUE=['EAVN43685']
WHEN CONDITION{$varST_LOC='1373'} VALUE=['EAVN52820']
OTHERWISE VALUE=[$varST_LOC ]
The conditional mapping expression provided is used to map different values of the variable $varST_LOC
to specific output values based on predefined conditions. If none of the specified conditions are met, the default action is to retain the original value of $varST_LOC
. This type of conditional mapping is useful in scenarios where specific values need to be translated to other values for processing or integration purposes.
Let's proceed by creating a variable name.: varX
IF CONDITION{ $Input_X12_004010_860/EDIRoot/TS_860/BCH/BCH01='01'} VALUE=[ 'Y']
The conditional mapping expression IF CONDITION{ $Input_X12_004010_860/EDIRoot/TS_860/BCH/BCH01='01'} VALUE=[ 'Y']
is used to check the value of the BCH01
element within the BCH
segment of an EDI 860 document. If the value is '01' (indicating a new order), the output is set to 'Y'. This helps automate decision-making in the EDI processing workflow based on specific transaction criteria, allowing for the flagging or marking of new orders appropriately.
Let's proceed by defining a variable name.: varTP_CODE
'AVNET'
Let's proceed by creating a variable name.: varCONTROL_NUM
normalize-space( $Input_X12_004010_860/EDIRoot/TS_860/ST/ST02)
The XPath expression normalize-space( $Input_X12_004010_860/EDIRoot/TS_860/ST/ST02)
is used to retrieve and clean up the content of the ST02
element within the ST
segment of an EDI 860 document. It ensures that the extracted text is formatted correctly by removing unnecessary whitespace characters, thereby providing a clean and standardized representation of the data for further processing or display.
Next step is to Check for the data input and output.
Steps to Turn on the Transaction
After you have Saved and Exit the Transaction page. You will be asked to Turn on the transaction
Viewing execution details
Go to the Dashboard to view execution details. The Status column shows execution status of the transaction.
Click the execution icon under Action to view the detailed information about transaction.
Click the information icon under the respective Icons to know details of execution at a that step.
Click More arrow under Action menu to know further details of the transaction.
EDI Dashboard and EDI X12 Interchange logs
Logs provide runtime details about the inbound and outbound transactions.
Users can search logs with Partner ID, Sender/Receiver ID, Transaction Control Number and with any other data field.