企業間の電子商取引を行う際には、様々なプロトコルが存在しています。業界ごとの標準仕様が制定され、その仕様も公開されていることが一般的ですが、実際は古くから利用している方法がまだまだ利用されている場合や、標準仕様に複数のバージョンが存在している場合、利用者側で多くのカスタマイズが入っている場合などが数多くあり、統一されているとは言い難い状況が続いています。
この様々な形式が混在している状況を吸収し、各社ごとに異なる社内業務システムとシームレスに連携することを目的として、株式会社インターコムが提供するEDI統合パッケージ「Biware EDI Station」とインフォテリア株式会社が提供する「ASTERIA Warp」を使った実証実験を行いました。
検証にあたって使用したEDIの方式は、現在、流通業界で普及が進んでいる形式である、「流通BMS」を利用しました※1 。このデータを元に、通信を行い擬似的な社内システムとして用意したデータベースとデータの送受信を行いました。
検証した処理は頻度が最も高いと思われる受注処理と発注処理です。通信経路はインターネットを使用し、取引先からのデータ受信をトリガーとして処理を開始、データベースに保存する流れを受注処理として検証しました。発注処理としてはデータベースに格納したデータを収集、インターネットを通じて取引先サーバーに伝達されるまでを検証しています。
検証環境は、以下の環境をAmazon Web Services EC2で構築して利用しました。
環境項目 | 値 |
---|---|
OS | Windows Server 2012 Standard |
CPU | Interl Xeon E5506 2.13GHz相当×2 ※2 |
メモリ | 1.7GB ※2 |
HDD容量 | 30GB |
データベース | MySQL 5 |
データ連携 | ASTERIA Warp 4.7.1 |
企業間データ通信 | Biware EDI Station |
取引情報を表す「trade」テーブル、取引情報に含まれる1商品ごとの明細情報を表す「items」テーブル、取引先情報を表す「account」テーブルの3種を用意しました。
受注処理はJX手順で受信した受注データを受け取り、データベースに格納する処理を検証しています。順を追って示します。
Biware EDI Stationを利用し、流通BMSを受信する方法は、ASTERIA Warpとの連携によって変更が必要となる部分ではありませんので、通常通り行います。受注データはCSV変換を行います。この手順をワークフローとして登録したものが以下です。
CSVへの変換ではBiware EDI Stationに同梱されるBiware EasyExchangeにて定義します。
EasyExchangeには、一般的に利用される各種EDI形式が定義ファイルとして用意されているため、それらを選択することで変換処理の設定は完了します。カスタマイズされている場合についても、GUIを使用し、簡単に定義の変更が可能です。
定義ファイルをデフォルトで設定されている設定用のフォルダに保存することで、ワークフローのファイル変換の設定で、マッピングとして選択することができるようになりますので、こちらから設定したマッピング名称を選択します。
ASTERIA Warpの処理実行の方法は「3.3.1流通BMSの受信からCSVデータの作成」で示したワークフローの最後で「プログラム呼び出し」として起動します。この処理はBiware EDI Stationのサーバーからコマンドラインを呼び出すものですが、curlコマンドを利用したbatファイルを作成し、ASTERIA WarpのURLトリガーをキックします。
単純にキックするだけのbatファイルであれば以下のようなものになります。
※ curlコマンドでの実行はインターコム社の指定によるものです。
起動されたASTERIA Warpはファイルからデータを読み込み、データベースに保存します。その処理内容は以下のフローにて実現しています。
保存するテーブルは3種類に分かれているので、処理もそれぞれのテーブルについて書き込む内容になります。
マッパーではBiware EDI Stationで生成されたCSVの項目をデータベースのそれぞれの項目にマッピング、保存しています。
多くの場合、流通BMSの全項目が埋まっていることは無く、処理や取引先によって異なります。この際に必要項目のみを取得、場合によっては加工してデータベースに格納します。
発注処理は受注処理と同様にインターネットを介した取引先に流通BMSを送信する処理の検証を行いました。順を追って示します。
ASTERIA Warpを使用しデータベース上の複数のテーブルに分割されて保存されている情報から発注するデータを取得、マージしてCSVファイルを作成します。
Biware EDI Stationでの処理の実行方法は複数存在していますが、今回はRESTコンポーネントを使用し、Biware EDI StationのWeb APIを使用して呼び出しを行いました。
API経由でBiware EDI Stationにアクセスする場合、API専用のアカウントを設定する必要があり、こちらをBiwareの管理画面より取得、RESTコンポーネントにセットします。
設定項目 | 値 |
---|---|
コネクションを使用 | いいえ |
URL | http://localhost:57680/default/schedule/run |
認証>ユーザー名 | Api |
認証>パスワード | Biware EDI Stationで自動生成された値 |
POSTパラメータ名前 | scheduleAlias |
POSTパラメータ値 | Biware EDI Stationで設定した値 |
起動した後は非同期で動作が進むため、ASTERIA Warpからはエラー情報のハンドリングができません。そこで、Biware EDI Stationの起動と共にログファイルに、起動時にBiware EDI StationからレスポンスされるジョブIDを取得し、ログ情報として出力しました。
CSVファイルから流通BMSへの変換および取引先への送信はBiware EDI Stationで行いました。以下がそのワークフローです。
CSVから流通BMSへの変換は受注処理の場合と同じくBiware EasyExchangeにて定義されたファイルを選択し、定義することで流通BMS形式のXMLデータを作成します。
以降の通信は通常のBiware EDI Station単体で利用する場合と同様に行われます。
今回の検証では流通BMSの基本形Ver.1.3に含まれる発注メッセージを例に、JX手順でのデータ送受信から社内システムとして見立てたデータベースとの連携を実証しました。
実際の現場ではEDIの形式は様々で、社内システムはより複雑なものであったり、特定のパッケージ製品やクラウドサービスを利用している場合がほとんどと考えられます。
この問題に対し、Biware EDI Station は、様々なEDI通信プロトコル(JX手順、ebXML、AS2、全銀手順、全銀TCP/IP手順、JCA手順)に対応し、また、様々なEDIデータ形式には、Biware EasyExchangeの設定情報の変更で対応することが可能です。複雑な社内システムやパッケージ、クラウドといった利用しているシステムに対してはASTERIA Warpのフローを利用して対応することが可能です。
どちらの対応方法もGUIでの設定のみで対応することが可能で、プログラミングを一切必要としません。
取引先が増加する場合や、社内でデータを利用したいシステムが増えた場合など、作りこまれたシステムを利用している場合には開発工数が発生しますが、Biware EDI Station、およびASTERIA Warpという製品を利用した疎結合で実現することで短期開発、トータルコストの削減および、将来のメンテナンス全てにおいて多くのメリットが発生します。
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。