Generating 997

I'm receiving x12 transactions from my trading partner and they require a 997. I'm not sure where to start in attempting to create one.

I thought possibly using a branch but how would I account for multiple transactions in one file? Then I thought about putting it after the import that puts the 940/943 on my system, but I don't know how to make it count how many transactions came through.

Any ideas?

@jackharris what I've done in the past is have 2 flows strung together. The first flow picks up the file, backs the file up to another directory, then does not specify a path to records on the export. By not specifying a path to records, you can get the entire file in one page of data. The first flow then has an import step to send the 997. You then use the "run next integration flow" option in flow 1 settings and select flow 2. Flow 2 picks up the same file that was moved to another directory and then performs your normal actions.

I set it up and it works like a charm. How do you account for multiple transactions sent in a file? If I understand correctly, you'd need an AK5 and AK9 for each of the transactions sent.

@jackharris you should be able to set your relative path to those records within the import translator and then create that child loop like on other EDI file imports. Hopefully that makes sense.

I tried (I think) and ended up with a file without data, just the hard-coded fields. However, it does show up in the preview.

Sample Flow Data:

{
"ISA": [
{
"Authorization Information Qualifier": "00",
"Authorization Information": "",
"Security Information Qualifier": "00",
"Interchange ID Qualifier": "01",
"Interchange Sender ID": "006127708",
"CodeList Summary": "12",
"Interchange Receiver ID": "7045875587",
"Interchange Date": "240117",
"Interchange Time": "0845",
"Interchange Control Standards Identifier": "U",
"Interchange Control Version Number": "00501",
"Interchange Control Number": "000012588",
"Acknowledgment Requested": "0",
"Usage Indicator": "P",
"Component Element Separator": ":'",
"Functional Identifier Code": "OW",
"Application Sender's Code": "4144979345",
"Application Receiver's Code": "7045875587",
"Date the EDI was created": "20240117",
"Time": "0845",
"Group Control Number": "2993",
"Responsible Agency Code": "X",
"Version / Release / Industry Identifier Code": "005010",
"ST": [
{
"Transaction Set Identifier Code": "940",
"Transaction Set Control Number": "3324'",
"AK1": {
"Functional Identifier Code(AK101)": "OW",
"Group Control Number(AK102)": "2993",
"Version / Release / Industry Identifier Code(AK103)": "005010",
"AK2": [
{
"Transaction Set ID Code": "940",
"Transaction Set Control Number": "3324'",
"AK5": {
"Transaction Set Acknowledgment Code": "A"
}
}
]
}
}
]
}
]
}

Rules:

{
"_id": "65cbc8b5fcf6a519f9a02e3a",
"lastModified": "2024-02-15T15:59:43.458Z",
"name": "Generic EDI 997",
"sandbox": true,
"description": "Functional Acknowledgment",
"version": "1",
"format": "delimited",
"skipEmptyEndColDelimiter": true,
"delimited": {
"rowSuffix": "'",
"rowDelimiter": "\n",
"colDelimiter": "+"
},
"rules": [
{
"name": "ISA",
"description": "Interchange Control Header",
"maxOccurrence": 2000,
"relativeDataPath": "ISA",
"required": true,
"elements": [
{
"name": "ISA",
"value": "ISA"
},
{
"name": "Authorization Information Qualifier",
"value": "{{{[Authorization Information Qualifier]}}}"
},
{
"name": "Authorization Information",
"value": "{{{[Authorization Information]}}}"
},
{
"name": "Security Information Qualifier",
"value": "{{{[Security Information Qualifier]}}}"
},
{
"name": "Security Information",
"value": "{{{[Security Information]}}}"
},
{
"name": "Interchange ID Qualifier(ISA05)",
"value": "{{{[Interchange ID Qualifier(ISA05)]}}}"
},
{
"name": "Interchange Sender ID",
"value": "{{{[Interchange Sender ID]}}}"
},
{
"name": "Interchange ID Qualifier(ISA07)",
"value": "{{{[Interchange ID Qualifier(ISA07)]}}}"
},
{
"name": "Interchange Receiver ID",
"value": "{{{[Interchange Receiver ID]}}}"
},
{
"name": "Interchange Date",
"value": "{{{[Interchange Date]}}}"
},
{
"name": "Interchange Time",
"value": "{{{[Interchange Time]}}}"
},
{
"name": "Repetition Separator",
"value": "{{{[Repetition Separator]}}}"
},
{
"name": "Interchange Control Version Number",
"value": "{{{[Interchange Control Version Number]}}}"
},
{
"name": "Interchange Control Number",
"value": "{{{[Interchange Control Number]}}}"
},
{
"name": "Acknowledgment Requested",
"value": "{{{[Acknowledgment Requested]}}}"
},
{
"name": "Usage Indicator",
"value": "{{{[Usage Indicator]}}}"
},
{
"name": "Component Element Separator",
"value": "{{{[Component Element Separator]}}}"
}
],
"children": [
{
"name": "GS",
"description": "Functional Group Header",
"required": true,
"maxOccurrence": 1,
"elements": [
{
"name": "GS",
"value": "GS"
},
{
"name": "Functional Identifier Code",
"value": "{{{[Functional Identifier Code]}}}"
},
{
"name": "Application Sender's Code",
"value": "{{{[Application Sender's Code]}}}"
},
{
"name": "Application Receiver's Code",
"value": "{{{[Application Receiver's Code]}}}"
},
{
"name": "Date",
"value": "{{{[Date]}}}"
},
{
"name": "Time",
"value": "{{{[Time]}}}"
},
{
"name": "Group Control Number",
"value": "{{{[Group Control Number]}}}"
},
{
"name": "Responsible Agency Code",
"value": "{{{[Responsible Agency Code]}}}"
},
{
"name": "Version / Release / Industry Identifier Code",
"value": "{{{[Version / Release / Industry Identifier Code]}}}"
}
],
"children": [
{
"name": "ST",
"description": "Transaction Set Header",
"maxOccurrence": 1,
"required": true,
"elements": [
{
"name": "ST",
"value": "ST"
},
{
"name": "Transaction Set Identifier Code",
"value": "997"
},
{
"name": "Transaction Set Control Number",
"value": "{{{[Transaction Set Control Number]}}}"
},
{
"name": "Implementation Convention Reference",
"value": "{{{[Implementation Convention Reference]}}}"
}
],
"children": [
{
"name": "AK1",
"maxOccurrence": 1,
"required": true,
"elements": [
{
"name": "AK1",
"value": "AK1"
},
{
"name": "Functional Identifier Code(AK101)",
"value": "{{{[Functional Identifier Code]}}}"
},
{
"name": "Group Control Number(AK102)",
"value": "{{{[Group Control Number]}}}"
},
{
"name": "Version / Release / Industry Identifier Code(AK103)",
"value": "{{{[Version / Release / Industry Identifier Code]}}}"
}
],
"children": [
{
"name": "AK2",
"maxOccurrence": 1000,
"required": false,
"elements": [
{
"name": "AK2",
"value": "AK2"
},
{
"name": "Transaction Set ID Code",
"value": "{{{[Transaction Set Identifier Code]}}}"
},
{
"name": "Transaction Set Control Number",
"value": "{{{[Transaction Set Control Number]}}}"
}
],
"children": [
{
"name": "AK3",
"maxOccurrence": 1000,
"required": false,
"elements": [
{
"name": "AK3",
"value": "AK3"
},
{
"name": "Segment ID Code",
"value": "{{{[Segment ID Code]}}}"
},
{
"name": "Segment Position in Transaction Set",
"value": "{{{[Segment Position in Transaction Set]}}}"
},
{
"name": "Loop Identifier Code",
"value": "{{{[Loop Identifier Code]}}}"
},
{
"name": "Segment Syntax Error Code",
"value": "{{{[Segment Syntax Error Code]}}}"
}
],
"children": [
{
"name": "AK4",
"maxOccurrence": 99,
"relativeDataPath": "AK4",
"required": false,
"elements": [
{
"name": "AK4",
"value": "AK4"
},
{
"name": "Position in Segment",
"value": "{{{[Position in Segment]}}}"
},
{
"name": "Data Element Reference Code",
"value": "{{{[Data Element Reference Code]}}}"
},
{
"name": "Data Element Syntax Error Code",
"value": "{{{[Data Element Syntax Error Code]}}}"
},
{
"name": "Copy of Bad Data Element",
"value": "{{{[Copy of Bad Data Element]}}}"
}
]
}
]
},
{
"maxOccurrence": 1,
"required": true,
"elements": [
{
"name": "AK5",
"value": "AK5"
},
{
"name": "Transaction Set Acknowledgment Code",
"value": "A"
}
]
}
]
},
{
"maxOccurrence": 1,
"required": true,
"elements": [
{
"name": "AK9",
"value": "AK9"
},
{
"name": "Functional Group Acknowledge Code",
"value": "A"
},
{
"name": "Number of Transaction Sets Included(AK902)",
"value": "1"
},
{
"name": "Number of Transactions Received",
"value": "1"
},
{
"name": "Number of Transactions Accepted",
"value": "1"
}
]
}
]
}
],
"closeRule": {
"name": "SE",
"description": "Transaction Set Trailer",
"required": true,
"elements": [
{
"maxOccurrence": 1,
"name": "SE",
"value": "SE"
},
{
"name": "Number of Included Segments",
"value": "{{_iterationCount}}"
},
{
"name": "Transaction Set Control Number(SE02)",
"value": "{{{[Transaction Set Control Number]}}}"
}
]
}
}
],
"closeRule": {
"name": "GE",
"description": "Functional Group Trailer",
"required": true,
"elements": [
{
"name": "GE",
"value": "GE"
},
{
"name": "Number of Transaction Sets Included",
"value": "1"
},
{
"name": "Group Control Number(GE02)",
"value": "{{{[Group Control Number]}}}"
}
]
}
}
],
"closeRule": {
"name": "IEA",
"description": "Interchange Control Trailer",
"required": true,
"elements": [
{
"name": "IEA",
"value": "IEA"
},
{
"name": "Number of Included Functional Groups",
"value": "1"
},
{
"name": "Interchange Control Number(IEA02)",
"value": "{{{[Interchange Control Number]}}}"
}
]
}
}
]
}

Preview:

ISA+00++00+++006127708++7045875587+240117+0845++00501+000012588+0+P+:''
GS+OW+4144979345+7045875587++0845+2993+X+005010'
ST+997'
AK1+OW+2993+005010'
AK5+A'
AK9+A+1+1+1'
SE+5'
GE+1+2993'
IEA+1+000012588'

Output:

ISA'
GS'
ST+997'
AK1'
AK5+A'
AK9+A+1+1+1'
SE+5'
GE+1'
IEA+1'