EDI固定幅トランザクションレコードを解析する

EDI(電子データ交換)の固定幅トランザクションレコードをCSV形式に変換します。セグメント識別、フィールド抽出、データマッピングについて解説します。

Legacy Formats

詳細な説明

EDI固定幅レコード

電子データ交換(EDI)は組織間でビジネス文書を交換するための標準です。現代のEDIはデリミタ付きフォーマット(セグメントターミネータ付きのX12等)を使用することが多いですが、多くのレガシーEDIシステムは固定幅レコードを使用しています。

例:発注書レコード

PO20240115VENDOR001 ACME Corporation       1000WIDGET-A  Heavy Duty Widget         000050000250000
PO20240115VENDOR001 ACME Corporation       1001BOLT-42   Stainless Steel Bolt      001000000015015000
PO20240116VENDOR002 Global Parts Inc       1002GEAR-7X   Precision Gear Assembly   000020012500250000

フィールドレイアウト

フィールド タイプ 説明
RecordType 2 英字 "PO"で発注書
OrderDate 8 数値 YYYYMMDD
VendorCode 10 英数字 ベンダー識別子
VendorName 25 英字 ベンダー名
LineItem 4 数値 明細項目番号
ProductCode 10 英数字 製品識別子
Description 26 英字 製品説明
Quantity 5 数値 注文数量(ゼロパディング)
UnitPrice 6 数値 セント単位の価格(ゼロパディング)
LineTotal 6 数値 セント単位の合計(ゼロパディング)

CSV出力

適切なカラム定義とトリム有効での変換後:

RecordType,OrderDate,VendorCode,VendorName,LineItem,ProductCode,Description,Quantity,UnitPrice,LineTotal
PO,20240115,VENDOR001,ACME Corporation,1000,WIDGET-A,Heavy Duty Widget,00005,000025,0000
PO,20240115,VENDOR001,ACME Corporation,1001,BOLT-42,Stainless Steel Bolt,01000,000015,015000
PO,20240116,VENDOR002,Global Parts Inc,1002,GEAR-7X,Precision Gear Assembly,00002,012500,250000

EDI固有の考慮事項

  • 暗黙の小数点:価格フィールド000025は仕様により$0.25または$25.00を意味する場合がある
  • レコードタイプフィルタ:異なるレコードタイプ(ヘッダー、詳細、トレーラー)は異なるレイアウトを持つ
  • バリデーション:EDIファイルにはトレーラーレコードにチェックディジットやランニングトータルが含まれることが多い

ユースケース

最新のX12やEDIFACT標準ではなくレガシーの固定幅EDI形式を使用する取引先からの受信EDI発注書、請求書、出荷通知を処理する場合に使用します。

試してみる — Fixed Width ↔ CSV Converter

フルツールを開く