New in Version 4 — Universal File Converter

EDI & COBOL:
Legacy and Complex Format Support

Mainframe and healthcare EDI data have always been the hardest part of any data migration — dense, undocumented-by-default, and traditionally requiring specialized tools or manual byte-counting to even read. Universal File Converter brings both into the same visual workflow as every other format it supports.

View Plans & Pricing

COBOL Copybook Import

From Copybook to Field List — Automatically

Every mainframe extract file ships with a COBOL copybook somewhere — a data-division layout file (.cpy, .cbl, or .cob) that defines exactly where each field starts and how wide it is, using PIC-clause syntax that most modern tools have no idea how to read. Manually transcribing PIC clauses into position/length pairs by hand is slow and genuinely error-prone the moment a record has more than a handful of fields — one miscounted byte and every field after it is misaligned.

COBOL Copybook Import reads the copybook directly and builds the field list for you. Open Config → Import COBOL Copybook…, browse to the .cpy/.cbl/.cob file, and the parser walks the entire data division, emitting a ready-to-use fixed-width (SDF) field list straight into the Field Mapper's Input Fields panel — the same Pos/Len format used everywhere else in the app. No new concepts to learn, no separate COBOL-aware conversion mode: a copybook just becomes another way to populate the same field definitions you'd normally type by hand.

What the parser understands

  • PIC X / A / 9 Alphanumeric, alphabetic, and numeric-display fields — emitted with the correct byte width.
  • V / S Implied decimal (V) and sign (S) — handled correctly with no phantom bytes.
  • Groups Nested groups (05/10/15…) — the full group hierarchy is walked; only the leaf, PIC-bearing fields are emitted, with byte offsets accumulating correctly through every level of nesting.
  • OCCURS OCCURS N TIMES — expanded into N flat, numbered fields (-1, -2, …), at both the elementary-field and whole-group level.
  • REDEFINES The redefining field is skipped from output — a flat field list can only represent one active layout at a time — while the byte position holds correctly at the original field.
  • FILLER Skipped from the field list, but its bytes are still counted so every field after it lands in the right place.
  • COMP / COMP-3 Byte length is correctly computed and reserved so downstream fields stay positioned correctly, but the field itself is deliberately not emitted — reading raw packed or binary bytes as plain text would produce garbage, not just wrong-but-plausible data. Each skipped field is listed by name in the import summary.
  • Limits OCCURS … DEPENDING ON (variable-length repeating groups) isn't supported — it's fundamentally incompatible with a fixed-position model, and is detected and skipped with a warning rather than silently mis-parsed. REDEFINES support covers the common, idiomatic case; a redefine targeting an earlier field in a different group can produce incorrect positions.

EDI X12 Support — 835 / 837

Flatten First. Route to SQL. Same Engine.

X12 EDI is segment-and-element delimited and inherently hierarchical — a single 837 claim can carry dozens of service lines — which means it simply doesn't fit into one flat record layout the way a CSV or fixed-width file does. Rather than build a separate, bolted-on EDI engine, Universal File Converter handles it with a two-step workflow that reuses the same battle-tested multi-output routing engine already powering Complex Routing: flatten first, then route.

1

Flatten to SDF

Set Input Type to EDI (X12), point it at your .edi or .x12 file, and set Output Type to SDF (Fixed-Width). No config file is needed. The output is one row per X12 segment — a 3-character segment ID followed by up to 20 elements at 50 characters each. Both the element and segment delimiters are auto-detected from the ISA header — nothing to configure by hand.

2

Route to SQL

Load one of the starter templates (EDI_835_Remittance.cfg for an 835, EDI_837_Claim.cfg for an 837), point Input Type back at the flattened SDF file from Step 1, confirm your SQL connection, and convert. The routing engine reads each row's segment ID and sends it to the matching destination table automatically.

Starter template coverage — segments included out of the box

Set Segment Destination Table Captures
835 BPR Payment Handling code, total paid, payment method, payment date
835 CLP Claims Patient control #, claim status, total charge/paid, patient responsibility, payer claim #
835 SVC Services Procedure code, charge/paid amounts, units
835 CAS Adjustments Group code, reason code, adjustment amount
837 CLM Claims Patient control #, total charge, facility code
837 SV1 Services Procedure code, charge amount, unit basis, units
837 HI Diagnoses Up to 4 composite diagnosis codes
837 NM1 Names Entity type, qualifier, name, ID qualifier/code — all NM1 roles captured, filterable by entity type
Honestly documented limits: The starter templates are explicitly starting points, not a claim of full compliance. Real trading-partner files often carry additional segments (REF, DTM, N1, PLB, DTP…), and adding a new segment is just another [ROUTE] key and destination config using the same routing mechanism as everything else in the app. This is not a certified EDI implementation; it has been verified against sample files, not the full ANSI X12 5010 implementation guides. Any real trading-partner deployment should be validated against that partner's own companion guide first.

The Previewer

Visual Field Mapping Preview

Both COBOL and EDI parsing produce fixed-width field definitions automatically — but "automatic" and "verified" aren't the same thing, especially with legacy formats where a single misjudged byte offset can silently shift every field after it. The Visual Field Mapping Preview is the tool that closes that gap: instead of trusting a parsed layout blind, you can see it against real data before committing to a full conversion.

📋

Paste one representative line

Drop a sample record from your actual data into the preview field. A character ruler aligns underneath it automatically — every position from 1 to 130 is a clickable button.

🖱️

Click to define fields

Click the start of a field, then its end, and the range is captured instantly. Already-defined fields show as colored highlights directly over the ruler — overlaps or gaps are visible at a glance rather than something you'd only discover after a conversion produced garbled output.

➕

Add straight to the Field Mapper

Type a field name and click Add Field — the position/length pulled from your click-selection is added straight to the Input Fields list without ever closing the dialog.

📏

Wider records still covered

For records longer than 130 characters — common with wider mainframe extracts — the same Pos/Len fields are available for direct numeric entry.

✅

Recommended final step after COBOL import

After a copybook import, pasting a sample line into the Previewer turns "the parser says this is byte 47" into "I can see byte 47 lands exactly where I expect it to" — which matters most precisely where hand-verifying is most tedious: nested COBOL groups and OCCURS-expanded fields.

Visual Field Mapping Preview
SMITH JOHN 19820314M123456789
LAST_NAME (1–10)
FIRST_NAME (11–20)
DOB (21–28)

Illustrative — field ranges shown as colored highlights over the character ruler.

COBOL, EDI, and Every Other Format — One Tool.

The same visual workflow that converts DBF to SQL Server handles your mainframe copybooks and healthcare EDI files — no specialized tools, no separate licenses.

View Plans & Pricing →

Questions? Email [email protected]