エンベロープ スキーマでの列挙のカスタマイズ
BizTalk Serverを使用すると、サービス (エンベロープ) スキーマの ID フィールド列挙をカスタマイズできます。 これにより、エンベロープの送信者 ID フィールドまたは受信者 ID フィールドに標準以外の値 (X12 標準の本文に定義された値以外の値セット) を使用しているインターチェンジの送受信を行うことができます。 また、アグリーメント プロパティを定義する際に、ヘッダー値のドロップダウン リストで使用できる修飾子を変更することもできます。
重要
スキーマを変更すると、該当する標準のすべてのトランザクションに変更が適用されます。 1 人のパーティのエンベロープ スキーマを変更することはできません。
BizTalk Serverは、製品に付属する Microsoft.BizTalk.Edi.BaseArtifacts.dll の静的サービス スキーマから許可される値の一覧を取得します。 値の基本セットを拡張するには、サービス スキーマ拡張を開発し、展開する必要があります。 BizTalk Serverには、列挙体の変更に使用できるサービス (エンベロープ) スキーマ テンプレートが用意されています。 これらのサービス スキーマは、X12_ServiceSchemaExtension.xsd と EDIFACT_ServiceSchemaExtension.xsd です。 各カスタム スキーマには、標準に応じて、次のいずれかの名前空間が存在します。 この名前空間は変更できません。
Standard | 名前空間 |
---|---|
X12 および HIPAA | http://schemas.microsoft.com/BizTalk/EDI/X12/2006 |
EDIFACT | http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006 |
スキーマの変更は、Visual Studio の BizTalk エディタで行います (次の手順を参照)。 必要な変更を行った後で、スキーマを展開する必要があります。
受信側と送信側の両方で、BizTalk Server がエンベロープ セグメント (X12 の場合は ISA および GS、EDIFACT の場合は UNB および UNG) を検証するときに、名前空間に基づいたカスタム サービス スキーマが存在するかどうかを確認します。 カスタム スキーマを展開する場合、BizTalk Server はこのスキーマと標準のサービス スキーマをマージし、指定された場所のカスタムの列挙値と標準の列挙値の両方を使用します。 スキーマをカスタマイズして列挙一覧を拡張できますが、一覧から値を削除することはできません。 カスタム スキーマを展開しない場合、BizTalk Server は標準のサービス スキーマを使用します。
カスタム スキーマをデプロイした後、BizTalk Server管理コンソールの取引先管理 (TPM) ユーザー インターフェイスは、カスタム列挙の値を使用して、TPM プロパティ ページ内の適切なドロップダウン リストを設定します。 カスタム スキーマをデプロイしていない場合、TPM は標準サービス スキーマの列挙の値を使用します。 また、BizTalk Server ランタイムは、メッセージの検証にカスタム列挙を使用します。
BizTalk Serverで提供されている XML ツールを使用してインスタンスをエンベロープで検証し、サービス スキーマをカスタマイズした場合は、ドキュメント (トランザクション セット) スキーマと必要に応じてバッチ スキーマに加えて、BizTalk プロジェクトにカスタム サービス スキーマを含める必要があります。 エンベロープを使用しないトランザクション セット インスタンスを検証する場合、これは不要です。
前提条件
BizTalk Server Administrators グループのメンバーとしてログオンする必要があります。
変更可能なエンベロープ フィールド
次のエンベロープ フィールドのみ変更できます。 拡張スキーマには、これらのフィールドのみ含まれています。 サービス拡張スキーマに他のフィールドを追加しても、処理には影響しません。
Standard | フィールド |
---|---|
X12 および HIPAA | [ISA01]: 認証修飾子 [ISA03]: セキュリティ修飾子 [ISA05]: 送信者 ID 修飾子 [ISA07]: 受信者 ID 修飾子 [GS01]: 機能コード [GS07]: 担当機関 |
EDIFACT | [UNB2.2]: 送信者コードの修飾子 [UNB3.2]: 受信者コードの修飾子 |
変更できないエンベロープ フィールド
エンベロープの一部のフィールドは、エンジンの動作に影響します。 そのため、このようなフィールドでは、既存の列挙一覧に値を追加しないでください。 このようなフィールドは以下のとおりです。
Standard | フィールド |
---|---|
X12 および HIPAA | [ISA11]: インターチェンジ制御標準識別子 [ISA12]: インターチェンジ制御バージョン番号 [ISA14]: 受信確認要求 |
EDIFACT | [UNB1.1]: 構文識別子 [UNB1.2]: 構文のバージョン番号 [UNB9]: 受信確認要求 |
エンベロープ スキーマで列挙をカスタマイズするには
Visual Studio で、新しいプロジェクトを作成します。
X12_ServiceSchemaExtension.xsd スキーマ (X12 または HIPAA 列挙型を変更する場合) または \Program Files (x86)\Microsoft BizTalk Server <VERSION>XSD_Schema\EDI の EDIFACT_ServiceSchemaExtension.xsd スキーマを BizTalk エディターの BizTalk プロジェクトに追加します。 スキーマを開きます。
列挙体の値を変更するには、[ プロパティ ] ペインで列挙体を選択し、省略記号をクリックして 列挙エディターを開きます。 必要に応じて値の一覧に を追加し、[ 値 ] ペインの各行に 1 つの値があることを確認します。 [OK] をクリックします。
重要
サービス スキーマの名前空間は変更できません。 スキーマは、製品にインストールされている元の拡張スキーマと同じ名前空間とルート ノード名を持つ必要があります。
Note
新しいフィールドをスキーマに追加しても、そのフィールドは無視されます。 変更できるのは、上記の「 変更可能な封筒フィールド」 セクションにリストされているフィールドのみです。
スキーマを保存します。
スキーマを右クリックし、[ デプロイ] をクリックします。
Note
スキーマは、現在の BizTalk グループに展開する必要があります。