The EDI format is the generic EDI parser / serializer in Etlworks. It handles EDIFACT, NCPDP, and VDA — the dialects that don't have their own dedicated format. This article is the parameter reference. For the end-to-end usage walkthrough (read patterns, acknowledgments, transport choices), see Working with EDIFACT, NCPDP, and VDA.
Status: the generic EDI format supports reading EDI messages (parse to JSON / XML / CSV, load into a database) for all dialects. Writing support for EDIFACT, NCPDP, and VDA is on the roadmap; the X12 dialect supports both read and write through this format today, although the dedicated X12 format is the recommended choice for X12 work.
Note: The generic EDI format is a premium format.
When should I use this format?
Pick by dialect:
| Dialect | Use this format | Use a dedicated format instead |
|---|---|---|
| EDIFACT | Yes — this is the primary use case. | |
| NCPDP | Yes — this is the primary use case. | |
| VDA | Yes — this is the primary use case. | |
| X12 | Supported, but… | Use the dedicated X12 format. See Working with X12. Faster, handles much larger files, supports writing. |
| HL7 2.x / HL7 FHIR | HL7 2.x technically parseable, but… | Use the dedicated HL7 2.x or HL7 FHIR format. See Working with HL7. Proper object model, MLLP transport, HAPI library integration. |
For the dialect-agnostic overview of EDI in Etlworks, see Get started with EDI documents.
Create an EDI format
- Open Connections and select the Formats tab.
- Click +, search for EDI, and select the EDI format (under the EDI group).
- Set EDI Dialect (required) and any other parameters you need from the sections below.
EDI Dialect (required)
The first thing to set. Picks the parser, the schema namespace, and the acknowledgment behavior.
| Value | Use |
|---|---|
| edifact | UN/EDIFACT — international EDI standard. Most common use of this format. |
| ncpdp | US retail pharmacy / prescription drug standard. |
| vda | German automotive industry EDI standard. |
| x12 | Supported for backward compatibility. Prefer the dedicated X12 format. |
| hl7 | Limited HL7 2.x parsing through the generic EDI parser. Prefer the dedicated HL7 2.x format. |
Validation
Controls how strict the parser is when reading an inbound message. Defaults are appropriate for most real-world partners; tighten when contracts demand it, loosen when partners are sloppy.
| Parameter | Default | What it does |
|---|---|---|
| Enable validation | yes | Compares version, release, messages, and segments in the EDI file against the schema repository. |
| Strict validation mode | no | When enabled, also checks that every mandatory element is present. |
| Strict segment-ordering checking | yes | Verifies segment ordering matches the message definition. |
| Strict validation on value lengths | no | Checks each element's content against the schema's upper / lower length limits. |
| Check intra-segment constraints | no | Performs intra-segment validation (EDIFACT and X12 only). |
| Enforce segment maximum counts | auto-detect | Enforces the segment maximum counts defined in the schema. |
| Treat all segments and elements as optional | no | Useful when a partner sends messages that don't fully comply with the standard. |
| Force error if value not in code list | no | Checks each element's value against the schema's code list. |
| Ignore specific comma-separated errors | (blank) | Comma-separated error numbers to suppress during XML conversion. Syntax: ignore=n1,n2,n3. Useful when a known-benign error appears repeatedly from a specific partner. |
Acknowledgments and receipts
The EDI format can generate inbound acknowledgments automatically. The acknowledgment type depends on the dialect:
- EDIFACT → CONTRL control message.
- X12 (when used via this format) → 997 or 999.
- NCPDP and VDA — check your trading partner agreement; the format does not auto-generate.
| Parameter | Default | What it does |
|---|---|---|
| Acknowledgement File Name | (blank) | When set, an acknowledgment file is written after parsing the inbound message. Use the {app.data} token to point at the server-storage home folder, e.g., {app.data}/ack/contrl_{filename}.edi. Supports global-variable substitution for dynamic file names. |
| Receipt File Name | (blank) | When set, a receipt file is written after parsing. Receipts are supported for dialects where the standard defines them. |
| Type of transaction message to be generated | 997 | Acknowledgment transaction type. Set to 999 for X12 implementation acknowledgments. |
| Include TA1 segment in the 999 reply | no | Yes / no / always. Adds the TA1 segment to the 999 response. |
Parser fine-tuning
The parser auto-detects delimiters and message structure from the envelope in most cases. Override these settings only when a partner uses non-standard delimiters that aren't declared correctly in the envelope.
| Parameter | Default | What it does |
|---|---|---|
| Use long element names | all | Use human-readable long names in the parsed output (e.g., FTX03-TextReference instead of FTX03). all, segments, elements, or no. |
| Component value separator | (blank, auto) | Override the character used to separate component elements within a composite element. |
| Line continuation character | (blank) | Character appended to the segment terminator when a segment is split across lines. |
| Element separator | (blank, auto) | Override the segment-element separator character. |
| Subcomponent (tertiary) separator | (blank, auto) | Override the subcomponent separator. |
| Segment name / segment content separator | (blank) | TRADACOMS-specific; default is =. |
| Decimal character | (blank) | Decimal separator in the converted file (period or comma). |
| Auto-fixup values where possible | both | Auto-fill missing values where possible. never, read, write, both. |
| Override autodetected EDI dialect | auto-detect | Force a specific dialect when the envelope auto-detect produces the wrong answer. |
| Dialect version | (blank, auto) | Override the version detected from the envelope (e.g., pin to EDIFACT D.96A). |
| Prefix GROUP_ tags with the enclosing message name | no | Prefixes GROUP_N tags with the message name (e.g., INVOIC_GROUP_1). |
| Use named loops | no | Use named loops in the parsed output (segment groups). |
| Use message groups if provided | no | Add grouping elements to the XML when present in the schema. |
| Format date and time in the XML output | no | Format dates and times in ISO 8601 in the parsed output. |
| Ignore leading zeros on numbers | no | Drop leading zeros on numeric values. |
| Window for century cut-off | auto-detect | For 2-digit years → 4-digit conversion; values above the cutoff get the previous century. |
| Remove linefeeds and nulls | both | Removes linefeeds and nulls during conversion. |
| Add linefeeds between segments on write | auto-detect | Splits each segment onto its own line for readability. |
| Trim trailing delimiters | auto-detect | Removes superfluous trailing delimiters. |
| Enable HIPAA Auto-detection | auto-detect | X12 only. Detects whether the file is a HIPAA flavor. |
| Strip C-style comments | no | Strips /* … */ blocks from the inbound stream. |
| Write setup segment if appropriate | auto-detect | Generates UNA / similar setup segments in the output where the dialect specifies. |
| Character repertoire override (EANCOM and IATA PADIS only) | (blank) | Override character encodings for EDIFACT-based documents. |
| Multiple ACORD AL3-only options | auto-detect | Compression method, sort and nest groups, explicit positive sign, include ZZMOV / ZZDEL fields. |
| Multiple HL7-only options | auto-detect | Empty content handling, hex escape expansion, "L" date handling. Use the dedicated HL7 format instead. |
Write options
Settings that affect the output when the EDI format is the destination format. Today this is in effect only for the X12 dialect; for EDIFACT, NCPDP, and VDA, writing through this format is on the roadmap — see the status callout at the top.
| Parameter | Default | What it does |
|---|---|---|
| Preserve blank data elements | false | Preserves blank data elements in the output (multiple consecutive delimiters) instead of omitting them. |
| Postfix | (blank) | Characters appended after each segment terminator. Typically CR, LF, or CRLF to produce readable EDI files. |
| Same repetition and data element separator (EDIFACT only) | false | EDIFACT-specific. Enable when the partner uses the same character for both repetition and data-element separation. |
Output XML conversion
The EDI format can optionally emit a side-channel XML version of the parsed message in addition to the standard dataset output.
| Parameter | Default | What it does |
|---|---|---|
| XML File Name | (blank) | When set, the parser also writes an XML representation of the EDI message to this file path. Use the {app.data} token for portable paths. |
| Do not convert XML to Dataset | false | When enabled together with XML File Name, the XML is written but not parsed into the flow's dataset. Useful when you only want the XML for audit / archival and the flow does no further processing. |
Inline transformation
Lightweight modifications applied before the parser sees the input or after the parser produces the dataset.
| Parameter | Default | What it does |
|---|---|---|
| Preprocessor | (blank) | JavaScript that modifies the raw EDI message before the parser sees it. See Preprocessor for the available variables and the typical pattern. |
| Default Extension | x12 | File extension assumed when the source filename has none. |
| Column names compatible with SQL | false | Replaces characters that aren't alphanumeric, spaces, or dots in column names. Helps when loading parsed EDI directly into a relational database. |
| Remove dots from column names | false | Strips . from column names. Useful for warehouses that disallow dots in identifiers. |
| Date and Time Format | MM/dd/yyyy HH:mm:ss | Format for date+time output (Java SimpleDateFormat pattern). |
| Date Format | MM/dd/yyyy | Format for date-only output. |
| Time Format | HH:mm:ss | Format for time-only output. |
| Parse Dates | false | When the input doesn't match the configured formats, attempt automatic date parsing. |
| Trim Strings | false | Strips leading / trailing whitespace from string values. |
| Convert 'null' to null when reading | false | Treats the literal string 'null' as a SQL null value. |
| Convert empty string to null when reading | false | Treats empty strings as nulls. |
| Value for null when reading | (blank) | Comma-separated list of strings (e.g., NULL, n/a, -) that should be interpreted as null when read. |
| Encoding | UTF-8 | Character encoding for the input file. |
| Template | (blank) | When the actual input file isn't available (e.g., during flow design), the template populates column names so mapping can still be built. |
Overrides
Optional JavaScript hooks to transform file names or column names dynamically.
| Parameter | What it does |
|---|---|
| Function to calculate Filename | JavaScript that rewrites the file name when reading or creating an EDI file. The input is fileName; assign the result to value. Useful for dropping prefixes, appending dates, normalizing partner-specific naming. |
| Function to calculate Field Name | JavaScript that rewrites column names produced by the parser. The input is name; assign the result to value. Example: value = name.replaceAll('GROUP_', 'group_'). |
Performance and size limits
The generic EDI format is best suited for files up to ~100 KB. For larger volumes — trading-partner batches of X12 transactions, multi-megabyte EDIFACT interchanges — consider:
- The dedicated X12 format for X12 (handles up to ~100 MB).
- Splitting the input upstream and processing in parallel via Use Parallel Threads when processing sources by a wildcard (under Flow > Configure > Parameters).
Related articles
- Working with EDIFACT, NCPDP, and VDA — the end-to-end usage walkthrough that uses this format.
- Get started with EDI documents — the dialect-agnostic EDI umbrella.
- Working with X12 — for X12-specific work, use the dedicated X12 format.
- Working with HL7 — for HL7 2.x and FHIR, use the dedicated HL7 formats.
- AS2 connector and HTTP Listener — common transports for EDI traffic.