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発注書、請求書、出荷通知を処理する場合に使用します。