公開日:2024年1月25日最終更新日:
AWSからEDIを支援するサービスとして「B2B Data Interchange」が公開されました。特定の分野でのみ利用する機能であり、大きな注目こそ集めていないものの、これからの活用に期待できるサービスです。データ変換をフルマネージドで実施してくれるB2B Data Interchangeとは、どのようなサービスであるのか解説します。
目次 <Contents>
AWS B2B Data Interchangeの概要
まずは、B2B Data Interchangeがどのようなサービスであるのか、概要について理解しておきましょう。
最初にEDIとは
EDIとは「Electronic Data Interchange」の頭文字を取ったもので、日本語では「電子データ交換」と呼ばれます。企業や行政機関などが、事前に標準化されたフォーマットを活用して、ビジネス文章をやりとりすることです。特定のフォーマットに沿って、人間の手を介さずにやりとりすることで、作業を効率化したりミスを軽減したりできます。
AWS B2B Data Interchangeとは
新しく公開されたB2B Data Interchangeは、EDIのデータを自動的にマッピングしXMLやJSONで出力してくれるというものです。実は、EDIの規格は世界で共通ではなく、国や企業によって異なっています。そのため、残念ながら、何かしらの加工を施さなければ自動的には連携できません。今までは、送信側・受信側ともに処理の仕組みを導入していましたが、B2B Data Interchangeを活用すればこの作業を極限まで削減できるのです。
また、事前に登録さえしておけば、文章のリレーション管理やトランザクション管理なども実現できます。主としてデータ加工が想定されていますが、サービスが拡充されれば、多くの活用が見えてくるでしょう。
AWS B2B Data Interchangeの使い方
B2B Data Interchangeは主に4つの要素から構成されているため、順を追って理解していきましょう。
プロファイル
最初にプロファイルを作成しておきます。これは会社情報を登録するもので、取引に際してはこちらのデータを参照してデータが作成される仕組みです。外部に公開される情報であるため、誤りがないように注意しましょう。
ログ記録は推奨設定のとおりチェックを入れておき、そのまま「プロファイルを作成」をクリックします。
以下のとおりプロファイルが作成されていれば作業は問題ありません。
トランスフォーマー
続いては、トランスフォーマーを設定していきます。これは、受信するEDIファイルの変換形式などを定義する機能であり、B2B Data Interchangeの中心的な存在と理解すると良いでしょう。現在は「ANSI X12」と呼ばれる、主に北米の企業やこれらとやり取りする企業で利用されている形式がサポートされています。
まず、トランスフォーマーを定義するために、トランスフォーマー名、EDIドキュメント番号、バージョンを指定します。今回は、AWSのデフォルト設定である、「214-4010」を利用するものとし、以下のとおりです。
「次へ」をクリックするとファイル形式が選択できるため「JSON」「XML」のどちらか適したものを選択肢ます。
「次へ」をクリックすると確認画面が表示されるため「保存」をクリックし、以下のとおり結果が表示されます。
なお、作成したトランスフォーマーは標準では「Inactive」つまり無効化されています。そのため、利用に向けて有効化しましょう。
取引機能
ここまでの準備が完了すれば、取引機能で具体的にやり取りするEDIドキュメントについて定義していきます。ドキュメントの定義やトランスフォーマーの指定など、上記で設定した内容をさらに適用していきます。また、ファイルをやり取りするためのS3なども設定しなければなりません。
まず、取引機能名、EDIドキュメント番号、バージョンを指定します。これはすでにトランスフォーマーを作成してある組み合わせとしましょう。そして、トランスフォーマーを適用するには、作成済みのトランスフォーマーを指定します。
続いて、ファイルをやり取りするS3バケットを指定します。なお、これらのS3バケットは、B2B Data Interchangeから書き込みなどできる必要があるため、ポリシーを設定しなければなりません。手動で設定せずに、ポリシーをコピーをクリックして設定しましょう。なお、入力と出力のディレクトリは同じ場所を指定できないため、それぞれのディレクトリを用意することが求められます。
ここまでの設定が完了すれば、ページ下部にある「機能を作成」をクリックして保存します。
パートナーシップ
パートナーシップは、具体的に取引する企業の名称や、そのときに利用する「取引機能」などを設定するものです。これを設定することによって、どの企業とやり取りするデータか、どのようにEDIで処理されるかが決定されます。今回、例で作成したものを設定すると以下のとおりです。
パートナーシップが登録されたならば、所定のS3バケットにファイルが格納されることで、所定の処理が走ります。なお、同じバケットを指定した場合、複数の処理が走ることになりかねないため、処理ごとにバケットを設定するようにしましょう。
※なお、AWSの制御で同じバケットを複数の設定値にできない仕様となりました
補足:エラーハンドリング
上記の設定だけでも、B2B Data Interchangeは利用できるため特に問題とはなりません。ただ、実運用を考えるならば、エラーハンドリングしたほうが良いでしょう。特に、標準でCloudWatchにログを出力できる仕様となっているため、ログを監視したり通知したりするに越したことはありません。
例えば、S3に空のファイルが格納された場合、以下のようなエラーが発生します。
{
“eventMessage”: “Error in EDI Capability”,
“accountId”: “xxxxxxxxxxxx”,
“eventNotes”: “File ABCDEFG has no EDI Transaction Set”
}
また、想定しているファイルの形式と異なるデータが格納された場合、以下のエラーが発生します。
{
“eventMessage”: “Error in EDI Capability”,
“accountId”: “xxxxxxxxxxxx”,
“eventNotes”: “Error processing request for ABCDEFG”
}
いくつかのエラーが存在するものの、今のところはやや使い勝手の悪い感じは否めません。現時点では、自分自身でメトリクスを作成し、エラーメッセージの内容を検知するようにすることがベターでしょう。これからのバージョンアップで、エラーごとのメトリクスなどが整備されるかもしれません。
まとめ:日本向けフォーマットへの対応が待たれる
現状、B2B Data Interchangeは海外で利用されるEDIのフォーマットにのみ対応し、日本独自のフォーマットには対応していません。そのため、海外での取引が発生している企業でないと、B2B Data Interchangeの恩恵を受けられないでしょう。
とはいえ、EDIは「データ統合」が求められる今の時代において、非常に重要なものです。今後のバージョンアップで日本など各国への対応、また、ツールとしての機能強化があると考えられます。今すぐに既存のEDIツールを置き換えられるものではありませんが、今後の発展に期待できるものです。