web-dev-qa-db-ja.com

EDIファイルを理解するには?

私は以前にXMLを見たことがありますが、 [〜#〜] edi [〜#〜] のようなものは見たことがありません。

このファイルを読み取って必要なデータを取得するにはどうすればよいですか? 〜、REF、N1、N2、N4などが表示されますが、これらの意味がわかりません。

例とドキュメントを探しています。どこにありますか?

Aslo EDI私が見つけたガイドには、「ANSI ASC X12/ver。4010」に基づいていると記載されています。フォームX12を検索する必要がありますか?

親切に助けてください。

29
vas

うわー、フラッシュバック。それは16年以上になります...

原則として、各行は「セグメント」であり、識別子は行の先頭であり、セグメント識別子です。各セグメントには、基本的に位置フィールドである「要素」が含まれています。それらは「要素区切り文字」で区切られます。

セグメントが異なれば意味も異なり、ループ構造や繰り返しなどを示します。

基本的な解析の現在のバージョンの標準を取得する必要があります。次に、処理するドキュメントのコンテンツを説明するデータディクショナリが必要です。次に、業界プロファイル、実装ガイドなど、取引に必要な場合があります。ご使用の環境の特定のドキュメントタイプの規則に従います。

例?最新ではありませんが、選択した検索エンジンを使用して、たくさんの情報を見つけることができると思います。基本的なセグメント/要素の解析が完了すると、アプリケーションレベルのデータを処理することになります。一般的な例がどれだけ役立つかわかりません。

28
janm

これらの他の答えのいくつかは非常に良いです。彼らが言及していないいくつかのことを記入してみます。

EDIは一連の標準であり、最も一般的なものは次のとおりです。

  • ANSI X12(米国で人気)
  • EDIFACT(ヨーロッパで人気)

X12バージョン4010を見ているように聞こえます。これは(とにかく)私の経験では最も広く使用されているバージョンです。多くの異なるバージョンがたくさんあります。

ファイル、または適切に「交換」は、セグメントと要素(および時にはサブ要素)で構成されます。各セグメントは、2ワードまたは3ワードの識別子(ISA、GS、ST、N1、REF)で始まります。

すべてのドキュメントの構造は、エンベロープで始まり、エンベロープで終わります。エンベロープは通常、ISAセグメントとGSセグメントで構成されます。ファイルごとに複数のGSセグメントが存在する可能性がありますが、ファイルごとに1つのISAセグメントのみが存在する必要があります(ルールに従ってすべての人がプレイするわけではないことに注意してください)。

ISAは特別なセグメントです。他のすべてのセグメントは区切られているため、さまざまな長さにすることができますが、ISAセグメントは固定幅です。これは、ファイルの残りを読み取る方法を指示するためです。

ISAセグメントの最後の3文字から始めます。これらは、エレメント区切り文字、サブエレメント区切り文字、およびセグメント区切り文字を教えてくれます。次にISA行の例を示します。

ISA:00::00::01:1515151515:01:5151515151:041201:1217:U:00403:000032123:0:P:*〜

この場合、「:」は要素の区切り文字、「*」はサブ要素の区切り文字、「〜」はセグメントの区切り文字です。各セグメント区切り文字(〜)の後に改行を入れるためにファイルを見ようとするだけなら、はるかに簡単です。

ISAは、ドキュメントの送信元と宛先、バージョン(00403、4030とも呼ばれます)、交換制御番号(0000321233)も通知します。この段階では、おそらく他の要素は重要ではありません。

このドキュメントは、送信者「01:1515151515」から受信者「01:5151515151」に送信されました。 「01:」とは何ですか?さて、これはEDIの重要な概念、つまり修飾子を紹介します。いくつかの要素には修飾子があり、次の要素がどのタイプのデータであるかを示します。この場合、01はDunn and Bradstreet番号であると想定されています。 ISA05およびISA07要素の他の修飾子は、電話番号の場合は12、「ユーザー定義」の場合はZZです。 EDIセグメント全体の修飾子の概念が見つかります。適切な経験則では、2文字の場合は修飾子です。すべての修飾子の意味を理解するには、標準ガイドが必要です(EDI標準団体からのハードコピー、または一部のソフトウェア)。

次の行はGSです。これは機能グループです(インターチェンジ内で同様のドキュメントをグループ化する方法です)。たとえば、ISA内に複数の注文書と複数の機能確認を含めることができます。これらは別々の機能グループ(GSセグメント)に配置する必要があります。最初のGS01要素を確認することで、GSセグメントに含まれるドキュメントのタイプを把握できます。

GS:PO:9988776655:1122334455:20041201:1217:128:X:004030

ドキュメントタイプのほかに、from(9988776655)とto(1122334455)が再び表示されます。今回は、別の識別子を使用していますが、これは合法です。これは、他の誰かに代わってインターチェンジを受け取る可能性があるためです(たとえば、仲介者の場合)。また、バージョン番号を確認できますが、今回は末尾が「0」(0004030)です。有効数字ロジックを使用して、先行ゼロを取り除きます。 ISAではなく、ここに余分なゼロがあるのはなぜですか?知りません。最後に、このGSセグメントには独自の識別子128もあります。

封筒の始まりは以上です。その後、STで始まるドキュメントのループがあります。この場合、コードはすべて(850)のPOになるため、行はST:850:blablablaで始まります。

エンベロープはGS識別子(128)を参照するGEセグメントで終了するため、どのセグメントが閉じているかがわかります。次に、同様にISAを閉鎖するIEAが登場します。

GE:1:128〜IEA:1:000032123〜

以上が構造の概要と読み方です。それを理解するには、コード、たくさんの時間、たくさんの練習を理解するための参考書やソフトウェアが必要です。幸運を祈ります。より具体的な質問がある場合は、もう一度投稿してください。

76

EDIは構造化テキストファイルのファイル形式で、多くの大規模な組織や企業で標準のデータベース交換に使用されています。これは、データパケットを小さくする必要がある場合に優れていたXMLよりもはるかに短くなる傾向があります。多くのメインフレームシステムではXMLの代わりにEDIを使用しているため、多くの組織がまだそれを使用しています。

EDIメッセージを使用すると、特定の形式に一致するテキストメッセージを処理できます。これはXMLスキーマに似ていますが、EDIには実際には標準化されたスキーマ言語がありません。 EDIメッセージ自体は実際には人間が読み取れるわけではありませんが、ほとんどの仕様は実際に機械で読み取れるわけではありません。これは基本的にXMLの利点であり、XMLとそのスキーマの両方を人間とマシンが読み取ることができます。

おそらく、クライアント側のソフトウェア(ブラウザベースではない)を使用して電子バンキングを行っている場合、システムにすでにいくつかのEDIファイルがある可能性があります。銀行は、トランザクションデータではなくXMLよりもEDIを好んでいますが、多くの場合、独自のカスタムテキストベースの形式も使用しています。

EDIを理解するには、最初にデータを理解し、さらにEDI標準を理解する必要があります。

6
Wim ten Brink

データストリームが「ISA」で始まるとすると、最初の方に「〜ST *」というセクションがあり、その後に3桁の数字が続きます。これらの3桁を投稿していただければ、さらに詳しい情報を提供できます。また、業界を知ることも役に立ちます。たとえば、ヘルスケアでは270、271、276、277などを使用しています。

1
user134670