a simplified hierarchical object model for EDI objects, Baseline EDI Model.
In order to faciliate this we have broken down the entire transaction into two parts:
-
an 'Agency' Object model (e.g. ASC X12, EDIFACT, etc) e.g. ASC X12 4010
-
a transaction set and version model only contains data, no schema
example, see edifaction.abi.json
For message function's an example is below:
[
"to()",
"ack(string)",
"from()",
"hash_ack()",
"hash_msg()",
"registrar()",
"timestamp_ack()",
"timestamp_msg()"
]
Each level in the hierarchy has two properties:
- container object will have two array properties
At the bottom level of the hierarchy are the segments of a transaction set;
- segments have a tag and a string array.
The top level of the hierarchy also optionally allows to define the control characters.
The hierarchy of Baseline EDI Model closely follows the X12 object model.
-
Root {object}
- options {object}
- header {Array<string>}
- functionalGroups {Array<FunctionalGroup>}
-
FunctionalGroup {object}
- header {Array<string>}
- transactions {Array<Transaction>}
-
Transaction {object}
- header {Array<string>}
- segments {Array<Segment>}
-
Segment {object}
- tag {string}
- elements {Array<string>}
The following ASC X12 headers are interpreted to and from headers in the hierarchy. Trailers are dynamically generated based on properties of the level.
- ISA: Root level
- GS: FunctionalGroup level
- ST: Transaction level
X12 4010 856 generated from testfiles in libinterchange
{
"header": [
"01",
"0000000000",
"01",
"ABCCO ",
"12",
"4405197800 ",
"01",
"999999999 ",
"111206",
"1719",
"-",
"00406",
"000000049",
"0",
"P",
">"
],
"options": {
"segmentTerminator": "~",
"elementDelimiter": "*",
"endOfLine": "\n",
"format": false,
"subElementDelimiter": ">"
},
"functionalGroups": [
{
"header": ["SH", "4405197800", "999999999", "20111206", "1045", "49", "X", "004060"],
"transactions": [
{
"header": ["856", "0008"],
"segments": [
{
"tag": "BSN",
"elements": ["14", "829716", "20111206", "142428", "0002"]
},
{
"tag": "HL",
"elements": ["1", "", "S"]
},
{
"tag": "TD1",
"elements": ["PCS", "2", "", "", "", "A3", "60.310", "LB"]
},
{
"tag": "TD5",
"elements": ["", "2", "XXXX", "", "XXXX"]
},
{
"tag": "REF",
"elements": ["BM", "999999-001"]
},
{
"tag": "REF",
"elements": ["CN", "5787970539"]
},
{
"tag": "DTM",
"elements": ["011", "20111206"]
},
{
"tag": "N1",
"elements": ["SH", "1 EDI SOURCE"]
},
{
"tag": "N3",
"elements": ["31875 SOLON RD"]
},
{
"tag": "N4",
"elements": ["SOLON", "OH", "44139"]
},
{
"tag": "N1",
"elements": ["OB", "XYZ RETAIL"]
},
{
"tag": "N3",
"elements": ["P O BOX 9999999"]
},
{
"tag": "N4",
"elements": ["ATLANTA", "GA", "31139-0020", "", "SN", "9999"]
},
{
"tag": "N1",
"elements": ["SF", "1 EDI SOURCE"]
},
{
"tag": "N3",
"elements": ["31875 SOLON ROAD"]
},
{
"tag": "N4",
"elements": ["SOLON", "OH", "44139"]
},
{
"tag": "HL",
"elements": ["2", "1", "O"]
},
{
"tag": "PRF",
"elements": ["99999817", "", "", "20111205"]
},
{
"tag": "HL",
"elements": ["3", "2", "I"]
},
{
"tag": "LIN",
"elements": ["1", "VP", "87787D", "UP", "999999310145"]
},
{
"tag": "SN1",
"elements": ["1", "24", "EA"]
},
{
"tag": "PO4",
"elements": ["1", "24", "EA"]
},
{
"tag": "PID",
"elements": ["F", "", "", "", "BLUE WIDGET"]
},
{
"tag": "HL",
"elements": ["4", "2", "I"]
},
{
"tag": "LIN",
"elements": ["2", "VP", "99887D", "UP", "999999311746"]
},
{
"tag": "SN1",
"elements": ["2", "6", "EA"]
},
{
"tag": "PO4",
"elements": ["1", "6", "EA"]
},
{
"tag": "PID",
"elements": ["F", "", "", "", "RED WIDGET"]
},
{
"tag": "CTT",
"elements": ["4", "30"]
}
]
}
]
}
]
}
SPDX-License-Identifier: EPL-2.0