Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint B2B Connector では、EDI スキーマ言語 (ESL) と呼ばれる YAML 形式を使用して EDI スキーマを表します。 基本 ESL は、構造、セグメント、複合、要素の観点で EDI メッセージの構成を定義します。 ESL は次のコネクタをサポートしています。
X12 EDI 用 Anypoint Connector (X12 EDI Connector)
EDIFACT 用 Anypoint Connector (EDIFACT Connector)
TRADACOMS 用 Anypoint Connector (TRADACOMS Connector)
HL7 用 Anypoint Connector (HL7 Connector)
ESL ドキュメントの最上位定義では、次が示されています。
EDI 標準
その標準のバージョン
インポート ESL の省略可能なリスト
構造、セグメント、複合、要素の定義の任意の組み合わせ。
次の例に、/x12/005010/850.esl
スキーマからこれらの最上位の定義がどのように表示されるかを示します。
form: X12
version: '005010'
imports: [ '/x12/005010/basedefs.esl' ]
structures:
- id: '850'
name: Purchase Order
class: PO
...
basedefs.esl
という名前の各 X12 および EDIFACT バージョンの ESL があり、標準セグメント、複合、要素定義が提供されます。この例は 850 購入注文を示しており、これらをインポートして注文構造を表す定義を再利用します。
X12 トランザクションセットまたは EDIFACT メッセージを表し、標準特性のキーと値のペアと実際の構造を構成するセグメントのリストで構成されています。セグメントリストは見出し、詳細、概要の各セクションに分かれています。反復する可能性のある一連のセグメントで構成されるグループにさらに調整できます。
次の例は、/x12/005010/850.esl
スキーマからの構造定義のサンプルを示しています。
- id: '850'
name: Purchase Order
class: PO
heading:
- { idRef: 'ST', position: '0100', usage: M }
- { idRef: 'BEG', position: '0200', usage: M }
- { idRef: 'CUR', position: '0400', usage: O }
- { idRef: 'REF', position: '0500', usage: O, count: '>1' }
- { idRef: 'PER', position: '0600', usage: O, count: 3 }
- { idRef: 'TAX', position: '0700', usage: O, count: '>1' }
- { idRef: 'FOB', position: '0800', usage: O, count: '>1' }
- { idRef: 'CTP', position: '0900', usage: O, count: '>1' }
- { idRef: 'PAM', position: '0950', usage: O, count: 10 }
- { idRef: 'CSH', position: '1100', usage: O, count: 5 }
- { idRef: 'TC2', position: '1150', usage: O, count: '>1' }
- groupId: 'SAC'
usage: O
count: 25
items:
- { idRef: 'SAC', position: '1200', usage: O }
- { idRef: 'CUR', position: '1250', usage: O }
- { idRef: 'ITD', position: '1300', usage: O, count: '>1' }
- { idRef: 'DIS', position: '1400', usage: O, count: 20 }
...
基本的な構造値は次のようになります。
構造キー/セクション | 説明 |
---|---|
id |
構造識別子。 |
name (名前) |
構造名。 |
クラス |
X12 機能グループ識別子に相当する構造のクラス。EDIFACT 構造定義では無視されます。 |
heading (見出し) |
構造の見出しセクション内のセグメントおよびグループのリスト。 |
detail (詳細) |
構造の詳細セクション内のセグメントおよびグループのリスト。 |
summary (概要) |
構造の見出しセクション内のセグメントおよびグループのリスト。 |
構造の各セクションのセグメントのリストでは同じ形式を使用します。リスト内の各項目はセグメント参照またはグループ定義です。セグメント参照ではコンパクト YAML 構文を使用します。それぞれの値は、中括弧で囲まれたカンマ区切りのキー-値ペアとして表示されます。
次の値があります。
セグメントプロパティ | 説明 |
---|---|
idRef |
参照されるセグメント ID。 |
position (位置) |
セクション内のセグメントの位置。EDI 規定により、これらは先行ゼロを含む可能性がある数値であるため、引用符で囲まれて文字列として処理されます。 |
usage |
使用コード定義。
|
count (数) |
最大反復数の値。数値、または特別な値 >1 を使用できます。この値は、任意の反復数を意味します。値を指定しない場合、count (数) の値として 1 が使用されます。 |
グループ定義は拡張形式で表示され、キーと値のペアが個別の行に表示されます。グループ定義内の値を次に示します。
値 | 説明 |
---|---|
groupId |
グループ識別子。 |
usage (使用方法) |
使用コード定義。
|
count (数) |
最大反復数の値。数値、または特別な値 >1 を使用できます。この値は、任意の反復数を意味します。値を指定しない場合、count (数) の値として 1 が使用されます。 |
items (項目) |
グループを構成するセグメントとネストされている可能性のあるグループのリスト。 |
セグメント定義は標準文字のキー-値のペアと、実際のセグメントを構成する要素や複合などの値のリストで構成されています。次の例は、/x12/005010/basedefs.esl
スキーマからのセグメント定義のサンプルの一部を示しています。
M
は必須、
O
は省略可能です。
- id: 'BAK'
name: Beginning Segment for Purchase Order Acknowledgment
values:
- { idRef: '353', usage: M }
- { idRef: '587', usage: M }
- { idRef: '324', usage: M }
- { idRef: '373', usage: M }
- { idRef: '328', usage: O }
- { idRef: '326', usage: O }
セグメント定義値は次のとおりです。
セクション | 説明 |
---|---|
id |
セグメント識別子。 |
name (名前) |
セグメント名。 |
values |
セグメント内の要素および複合のリスト。 |
値リストでは ID によって要素および複合を参照し、コンパクトな YAML 構文を使用します。それぞれの値は、中括弧で囲まれたカンマ区切りのキー-値のペアとして表示されます。
セクション | 説明 |
---|---|
idRef |
参照される要素または複合 ID。 |
position (位置) |
セグメント内の値の位置は 1 から始まり、連続する値ごとに 1 ずつ増加する。通常は使用されません。 |
name (名前) |
セグメントの値の名前。デフォルトでは要素または複合の名前が使用されます。 |
usage (使用方法) |
使用コード定義。
|
count (数) |
最大反復数の値。数値、または特別な値 >1 を使用できます。この値は、任意の反復数を意味します。値を指定しない場合、count (数) の値として 1 が使用されます。 |
複合定義は、セグメント定義と非常に似ています。標準文字のキー-値のペアと、実際の複合を構成する要素や複合などの値のリストで構成されています。次の例は、/x12/005010/basedefs.esl schema
スキーマからの複合定義の一部を示しています。
- id: 'C022'
name: 'Health Care Code Information'
values:
- { idRef: '1270', usage: M }
- { idRef: '1271', usage: M }
- { idRef: '1250', usage: C }
- { idRef: '1251', usage: C }
- { idRef: '782', usage: O }
複合定義値は次のとおりです。
Name (名前) | 説明 |
---|---|
id |
複合識別子。 |
name (名前) |
複合名。 |
values |
複合内の要素と複合のリスト。 |
値リストでは ID によって要素および複合を参照し、コンパクトな YAML 構文を使用します。それぞれの値は、中括弧で囲まれたカンマ区切りのキー-値のペアとして表示されます。
Name (名前) | 説明 |
---|---|
idRef |
参照される要素または複合 ID。 |
position (位置) |
セグメント内の値の位置は 1 から始まり、連続する値ごとに 1 ずつ増加する。通常は使用されません。 |
usage (使用方法) |
使用コード定義。
|
要素定義はシンプルで、標準文字の基本的なキー-値のペアのみがあります。
次の例は、/x12/005010/basedefs.esl
スキーマからのものです。
elements:
- { id: '1', name: 'Route Code', type: AN, minLength: 1,
maxLength: 13 }
- { id: '100', name: 'Currency Code', type: ID, minLength: 3,
maxLength: 3 }
- { id: '1000', name: 'Service Characteristics Qualifier',
type: AN, minLength: 2, maxLength: 3 }
要素定義値は次のとおりです。
Name (名前) | 説明 |
---|---|
id |
要素識別子。 |
name (名前) |
要素名。 |
型 |
値種別コード (Binary (バイナリ) データ型は現在サポートされていません)。
|
minLength |
値の有意文字の最小数。 |
maxLength |
値の有意文字の最大数。 |
オーバーレイスキーマを使用して実装規定を定義できます。オーバーレイスキーマは、特定の取引パートナーとの実装規定を使用し、標準を拡張してカスタマイズする方法を指定します。 これらの構造は完全なスキーマとよく似ていますが、オーバーレイスキーマでは、スキーマ構造のすべての詳細が提供される代わりに、変更のみがリストされます。
次の手順を使用してオーバーレイスキーマを作成します。
カスタマイズするベーススキーマ (例: X12 005010 850
) をインポートするオーバーレイスキーマを作成します。
セグメントの使用方法、位置、グループ、および数に関する全体的な構造をカスタマイズします。
使用方法や数など、セグメントをカスタマイズします。
次の例は、基本 X12 005010 850
トランザクション設定定義を変更するオーバーレイスキーマのサンプルの一部を示しています。
この例では、CUR
セグメントをカスタマイズして未使用に指定するため、Anypoint Studio のマッピング構造から確実に非表示になります。
form: X12
version: '005010'
imports: [ '/x12/005010/850.esl' ]
structures:
- idRef: '850'
name: Purchase Order
class: PO
heading:
- { idRef: 'CUR', position: '0400', usage: U }
構造オーバーレイは、X12 トランザクションセットのベーススキーマ定義への変更を詳細に記述します。ほとんどの場合、この変更では、ベース定義内のセグメントまたはグループを未使用としてマークするという形式が使用されますが、使用方法または反復数の変更が許可されます。
この例の変更では、N9
ループのセグメントとともに、標準 850
見出しの CUR
および PER
セグメントが使用されないことを指定します。
- idRef: '850'
heading:
- { idRef: 'CUR', position: '0400', usage: U }
- { idRef: 'PER', position: '0600', usage: U }
- groupIdRef: 'N9_Loop'
position: '2950'
items:
- { idRef: 'DTM', position: '2970', usage: U }
- { idRef: 'PWK', position: '3050', usage: U }
- { idRef: 'EFI', position: '3080', usage: U }
構造レベルのキー-値ペアを次に示します。
キー | 説明 |
---|---|
idRef |
変更するトランザクションセットの ID。 |
name (名前) |
トランザクションセット名 (使用する場合)。 |
heading (見出し)、detail (詳細)、summary (概要) |
構造の各セクション内のセグメントおよびグループの変更のリスト。使用する場合、該当のセクションに変更がある場合にのみそれぞれが使用されます。 |
構造の各セクション (heading、detail、summary など) のセグメント変更のリストはすべて同じ構造を使用します。リスト内の各項目はセグメント参照またはグループ定義です。セグメント参照はコンパクト YAML 構文を使用して示されます。この構文では、各参照の値は、中括弧で囲まれたカンマ区切りのキー-値ペアとして提供されます。
キー | 説明 |
---|---|
idRef |
参照されるセグメント ID。指定された場合は検証されますが、それ以外の場合は無視されます。position (位置) の値を使用して、セクション内のセグメントを一意に識別します。 |
position (位置) |
トランザクションセットセクション内のセグメントの位置。 |
usage (使用方法) |
使用方法コード。必須 (Mandatory) を表す |
count (数) |
最大反復数の値。数値、または任意の反復数を意味する特別な値「 |
グループオーバーレイは、キー-値ペアが個別の行に含まれる拡張形式で示されます。
キー | 説明 |
---|---|
groupIdRef |
参照されるグループ ID。指定された場合は検証されますが、それ以外の場合は無視されます。position (位置) の値を使用して、セクション内のグループを一意に識別します。 |
position (位置) |
トランザクションセットセクション内のセグメントの位置。 |
usage (使用方法) |
使用方法コード。必須 (Mandatory) を表す |
count (数) |
最大反復数の値。数値、または特別な値 >1 を使用できます。この値は、任意の反復数を意味します。count (数) の値で、値を指定しない場合はベース定義の値が使用されます。 |
items (項目) |
ループを構成するセグメントとネストされる可能性のあるループのリスト。 |
セグメントオーバーレイでは、ベーススキーマ定義の変更を記述します。この変更では、ベース定義内の要素または複合を未使用としてマークするという形式が使用されます。使用方法または反復数の変更が許可されます。 次の例では、切り捨てのみが行われるコンパクトな形式のセグメント変更を使用していますが、各値を変更する変更は拡張形式で表現されます。他のすべての YAML の例と同様に、この 2 つの形式は実際には同等であり、区別なく使用されます。
segments:
- { idRef: AMT, trim: 3 }
- idRef: BEG
values:
- { position: 4, usage: U }
- { idRef: DTM, trim: 3 }
- idRef: ITD
values:
- { position: 4, usage: U }
- { position: 6, usage: U }
セグメントオーバーレイはセグメントのすべての使用に自動的に適用されるものではありません。セグメントオーバーレイは、構造オーバーレイ内で参照されるセグメントに対してのみ有効です。構造オーバーレイでは、セグメントの使用方法を変更する必要はありませんが、適切な位置でセグメントを参照し、ベース定義の変更にセグメントオーバーレイが使用されるようにする必要があります。 |
セグメントオーバーレイ内のキー-値ペアを次に示します。
キー | 説明 |
---|---|
idRef |
セグメント識別子。 |
trim (切り取り) |
セグメント内の切り取り位置。使用すると、この位置以降のすべての値は未使用としてマークされます。 |
values |
個々の値の変更のリスト。 |
values リストは、位置によってセグメント内の値を参照します。この参照のキー-値ペアを次に示します。
キー | 説明 |
---|---|
position (位置) |
セグメント内の値の位置。 |
name (名前) |
セグメントの値の名前 (使用された場合)。指定しない場合、ベース定義の値が使用されます。 |
usage (使用方法) |
使用方法コード。必須 (Mandatory) を表す |
count (数) |
最大反復数の値。任意の数値、または任意の反復数を意味する特別な値 (「 |