EDIFACTDecoder - EDIFACTメッセージを解析する

EDIFACTメッセージ(UNHセグメントからUNTセグメントまで)が、指定したメッセージコードにマッチする場合、XML形式に変換して右方向に出力します。
マッチしない場合、入力ストリームをそのまま下方向に出力します。
このコンポーネントを使用するには、EDIFACTビルダーを起動し、変換対象とするメッセージとその文法を定義する必要があります。詳細については、下記トピック「EDIFACTビルダーの使い方」を参照してください。

本コンポーネントは、D.99B以降には対応していません。

■ストリーム情報

入力フォーマットText
接続数1
説明EDIFACTメッセージ(UNHセグメントからUNTセグメントまで)を入力します。
EDIFACTDividerより出力されたものを指定します。
出力(default)フォーマットText
説明 入力ストリームをそのまま出力します。
出力(branch)フォーマットXML
説明EDIFACTビルダーで指定したメッセージ定義にしたがって変換したXMLドキュメントを出力します。
フィールド定義はEDIFACTビルダーで行い、フローデザイナー上では変更できません。
EDIFACTメッセージの構成要素、セグメント、セグメントグループ、複合エレメント、構成エレメント、データエレメントはすべて、XML上での要素に対応し、要素名にはアンダースコア(_)にタグ名を加えたはものとして表現されます。
EDIFACTメッセージの構成エレメント、データエレメントの値は、XML上では要素のテキスト値として表現されます。
EDIFACTメッセージにはルートという概念がありませんので、XML上では"EDIFACTMessage"という固定名の要素がドキュメント要素として使用されます。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
ディレクトリコードstring入力&出力 EDIFACTビルダーで指定したディレクトリコード。
メッセージコードstring入力&出力 EDIFACTビルダーで指定したメッセージコード。
検証項目group- 検証項目を行うプロパティ群です。
シンタックス識別記号choice入力&出力 電文中に使用できる文字種を指定するためのシンタックス識別記号です。UNBヘッダーに指定された値と同じものを指定します。
UNOA - UNOA
UNOB - UNOB
UNOC - UNOC
UNOD - UNOD
UNOE - UNOE
UNOF - UNOF
データエレメント値choice- 電文中のデータエレメントの値を、表記規則に従ったチェックを行うかどうか、指定します。
チェックする [True] - データエレメントの値チェックします。
チェックしない [False] - データエレメントの値チェックしません。
使用文字choice- 電文中の使用文字を、シンタックス識別記号の値に従ったチェックを行うかどうか、指定します。
チェックする [True] - 使用文字をチェックします。
チェックしない [False] - 使用文字をチェックしません。
指数表記choice- 電文中の数値データエレメント中に、指数表記を許可するかどうか指定します。
許可する [True] - 指数表記を許可します。
許可しない [False] - 指数表記を許可しません。
データエレメント値の長さchoice- 電文中のデータエレメントの値を、表記規則の長さ指定に従ったチェックを行うかどうか、指定します。このプロパティは、使用文字が「チェックする」の場合にのみ有効です。このプロパティが「チェックしない」に指定されている場合、型チェックのみが行われます。
チェックする [True] - 表記規則の長さ指定に従ってチェックします。
チェックしない [False] - 表記規則の長さ指定に従ってチェックしません。

■エラー処理

タイプパラ
メータ
エラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム なし EDIFACTメッセージの文法に合致しないデータ(セグメント、エレメントの書式に誤りがある、各サービスセグメントが定義に沿っていない、UNHで始まったがUNTがない、など)が入力された場合、エラーが発生します。
なし 指定したメッセージコードには合致するが、定義にしたがっていないEDIFACTメッセージが入力された場合、エラーが発生します。

■EDIFACTDecoderが出力するエラーメッセージ

詳細メッセージについては、EDIFACTConstructorコンポーネントのトピックを参照してください。

サービスセグメント定義情報がありません: [タグ名], error at loading service segment definitions, [詳細エラー]
サービスセグメント定義情報がありません: [タグ名], missing definition
不正な入力メッセージです: Segment: [セグメント名], Position: [文字位置], [詳細メッセージ(※2)(※5)]
4

■EDIFACTビルダーの使い方

EDIFACTビルダーは、フロー設計時にEDIFACTDecoderまたはEDIFACTEncoderコンポーネントの補助ツールとして使用するもので、EDIFACTディレクトリから定義済みメッセージを選択することにより、フロー内でEDIFACTメッセージを解析・処理することができます。

また、EDIFACTビルダーは、EDIFACTディレクトリ自体の管理・編集機能を備えており、メッセージ、セグメント、複合エレメント、データエレメントの各要素について、編集、作成、複製、削除操作を行うことができます。さらに、ディレクトリの作成、複製、削除機能、および、テキストまたXML形式のファイルに対するインポート、エクスポート機能も提供します。

EDIFACTビルダーを起動する

以下のいずれかの操作でEDIFACTビルダーを起動します。

EDIFACTビルダーの画面

左側に登録済みのディレクトリ、メッセージの一覧ツリー、右側にメッセージの内容を表示する画面が開きます。

EDIFACTビルダーには、メッセージの選択のみを行うモード「選択モード」と、ディレクトリの編集を行うモード「編集モード」があります。起動時には「選択モード」が表示されます。画面下部のラジオボタンをクリックすることにより、随時切り替えが可能です。

選択モード

選択モードでは、ディレクトリ、メッセージの選択を行います。

使用するディレクトリを、左側のツリーから選んでダブルクリックすると、ディレクトリに定義されているメッセージの一覧が表示されます。その中から、使用するメッセージを選択すると、メッセージの定義内容が右側に表示されます。選択したメッセージを、EDIFACTDecoderまたはEDIFACTEncoderコンポーネントで使用する場合は、[OK]をクリックすると、フローデザイナーの画面に戻り、メッセージの内容がコンポーネントのプロパティとフィールド定義に反映されます。

編集モード

編集モードにすると、左側に、ディレクトリに含まれるメッセージ、セグメント、複合エレメント、データエレメントが表示されるようになります。

メッセージの編集

編集モードで左側のツリーからメッセージを選択すると、その内容を編集することができます。

選択モードと同様の内容が右側に表示されますが、上段に表示されるメッセージコード、ID(UNHセグメントのS009エレメント)、機能説明、下段に表示されるセグメントテーブルが編集できます。セグメントテーブルについては、メッセージに含まれるセグメントおよびセグメントグループの編集、移動、挿入、削除が行うことができます。

セグメントの編集

編集モードで左側のツリーからセグメントを選択すると、その内容を編集することができます。上段に表示されるセグメントタグ、名称、説明、下段に表示されるエレメントテーブルが編集できます。エレメントテーブルについては、セグメントに含まれる複合エレメントまたはデータエレメントの編集、移動、挿入、削除が行うことができます。

複合エレメントの編集

編集モードで左側のツリーから複合エレメントを選択すると、その内容を編集することができます。上段に表示されるエレメントタグ、名称、説明、下段に表示されるエレメントテーブルが編集できます。エレメントテーブルについては、複合エレメントに含まれるデータエレメントの編集、移動、挿入、削除が行うことができます。

データエレメントの編集

編集モードで左側のツリーからデータエレメントを選択すると、その内容を編集することができます。エレメントタグ、名称、説明、データ表現が編集できます。

ディレクトリの管理

左側のツリー上で右クリックして表示されるメニューを使用して、ディレクトリ、メッセージ、セグメント、複合エレメント、データエレメントの、新規作成・複製・削除を行うことができます。

●インポート

新規にインポートする場合と追加インポートする場合について、説明します。

注意

エクスポートは、現在実装されていません。

新規にディレクトリを作成してインポートする場合

  1. UN/ECEのEDIFACTサイト(http://www.unece.org/trade/untdid/welcome.htm)から、追加したいディレクトリのデータベース(zipファイル)をダウンロードします。
  2. ダウンロードしたzipから、データエレメント定義リスト、複合エレメント定義リスト、セグメント定義リスト、追加したいメッセージの定義ファイルを抽出します。
    99Aの場合
    データエレメント定義リストEDED.ZIP内のEDED.99A
    複合エレメント定義リストEDCD.ZIP内のEDCD.99A
    セグメント定義リストEDSD.ZIP内のEDSD.99A
    メッセージ定義ファイルEDMD.ZIP内の[メッセージ名]_D.99A
    追加したいメッセージの定義ファイルを抽出しておきます。
    96Bの場合
    データエレメント定義リストTRED.ZIP内のTRED.96B
    複合エレメント定義リストTRCD.ZIP内のTRCD.96B
    セグメント定義リストTRSD.ZIP内のTRSD.96B
    メッセージ定義ファイルTRMD.ZIP内の[メッセージ名]_D.96B
    追加したいメッセージの定義ファイルを抽出しておきます。
  3. フローデザイナーからEDIFACTビルダーを起動し、画面下部の「編集モード」を選択します。
  4. 左側のペインで右クリックして表示されたメニューの「新規ディレクトリ...」をクリックし、新規ディレクトリを作成します。
  5. 2で抽出したファイルを作成したディレクトリにインポートします。
    左側のペインの作成したディレクトリの上で右クリックして表示されたメニューの「インポート...」をクリックします。
    • データエレメント定義リストは、「Elements」ノードの下にすべてのデータエレメントがインポートされます。
    • 複合エレメント定義リストは、「Composites」ノードの下にすべての複合エレメントがインポートされます。
    • セグメント定義リストは、「Segments」ノードの下にすべてのセグメントがインポートされます。
    • メッセージ定義ファイルは、「Messages」ノードの下にメッセージがインポートされます。

既存のディレクトリにメッセージを追加インポートする場合

  1. UN/ECEのサイトからダウンロードしたzipを用意します。
  2. ダウンロードしたzipから、追加したいメッセージの定義ファイルを抽出します。ディレクトリによって異なりますが、xxMDというzipファイルに含まれています。
    • 99Aの場合、EDMD.ZIP内の[メッセージ名]_D.99A
    • 96Bの場合、TRMD.ZIP内の[メッセージ名]_D.96B
  3. フローデザイナーからEDIFACTビルダーを起動し、画面下部の「編集モード」を選択します。
  4. 左側のペインの作成したディレクトリの上で右クリックして表示されるメニューの「インポート...」をクリックし、メッセージ定義ファイルをインポートします。「Messages」ノードの下にメッセージがインポートされます。