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 Transaction
To Create an Inbound Transition Click Transactions > Templates.
On the Templates screen, navigate to the EDI Inbound Template
To Define a Transaction Provide the name and description of the Transaction.
Select Network and Partner
Setting up the partner EDI Configurations
EDI Configuration Example:
EDI Standard | EDI Standard Version | Association Assigned Code | Transaction Set Code |
---|---|---|---|
EDIX12 | 4010 | ACMEEDI | 850 |
EDIX12 | 5010 | XYZEDI | 810 |
EDIX12 | 6020 | ABCEDI | 856 |
EDIX12 | 4010 | SUPPLYCO | 855 |
EDIX12 | 5010 | PARTNEREDI | 830 |
EDIX12 | 6020 | TRADECO | 865 |
In this table:
EDI Standard: Remains EDIX12 for all entries, indicating the standard being used.
EDI Standard Version: Includes different versions like 4010, 5010, and 6020, showcasing variations across releases.
Association Assigned Code: Provides unique identifiers such as ACMEEDI, XYZEDI, etc., which are typically assigned by associations or organizations involved in EDI.
Transaction Set Code: Lists various transaction types such as 850 (Purchase Order), 810 (Invoice), 856 (Advance Ship Notice), 855 (Purchase Order Acknowledgment), 830 (Planning Schedule), and 865 (Purchase Order Change).
Each row represents a different combination of EDI standard version, association assigned code, and transaction set code, demonstrating the flexibility and variability within the EDIX12 standard for electronic data interchange.
Select and configure the EDI Standard X12, EDI Standard Version 004010, transition Set Code to 860
specifically under the "EDI Configuration" section. Here are the details shown in the image:
Test/Production Indicator: Set to "P-Production".
Generate Acknowledgement: Set to "Yes - With error detail".
If the user prefers not to generate an acknowledgment, they have the option to select “No”.
Compliance Check: Checked.
Data encryption at rest: Set to "Use Global Policy".
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 an 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 the 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 the details of execution at that step.
Click the More arrow under the Action menu to learn 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 any other data field.
Dashboard: X12 Interchange Logs |
---|