EDI 文字セット
BizTalk Serverでは、文字セットを使用して EDI インターチェンジ全体を検証します。 X12 でエンコードされたメッセージに使用される文字セットと、EDIFACT または KEDIFACT でエンコードされたメッセージに使用される文字セットは、異なる方法で決定されます。
EDIFACT エンコード インターチェンジは、文字セットの観点から見ると、自己記述型です。 UNB1 データ要素が使用されます。 EDIFACT では、タグ名と区切り記号が ASCII 型である必要があります。そのため、UNB1 を探して、関連するコード ページを残りのインターチェンジに適用できます。
受信 EDIFACT メッセージを処理する場合、BizTalk Serverは UNB1 データ要素からそのメッセージに使用する文字セットを決定します。 取引先アグリーメントでの設定は不要です。
送信 EDIFACT メッセージを処理する場合、BizTalk Serverは取引先契約またはフォールバック契約の文字セットを使用します。 UNB1 データ要素は、双方向アグリーメント タブの [文字セットと区切り記号] ページ (契約が定義されている場合) または [EDIFACT フォールバック設定] ダイアログ ボックスの [契約] タブの [文字セットと区切り記号] ページで設定します (契約が定義されていない場合)。 UNB1.1 は、構文識別子と呼ばれる必須の複合データ要素です。 UNB1.2 は、EDIFACT 文字セットのバージョンです。 UNB1 データ要素は、取引先管理ユーザー インターフェイスで (Tab キーを押してフィールドから移動する場合や別のページを表示するときではなく) プロパティ セット全体を保存するときに、プロパティに入力した値を検証するためにも使用されます。
使用できる文字セットは、KECA、UNOA、UNOB、UNOC、UNOD、UNOE、UNOF、UNOG、UNOH、UNOI、UNOJ、UNOK、UNOX、および UNOY です。 既定値は UNOB です。 これらのレベルの完全な文字セットは、ISO 9735 の EDIFACT 構文規則で指定されています。
注意
受信インターチェンジまたは送信インターチェンジに UNOC 文字セットが使用されている場合、EDI 逆アセンブラーまたは EDI アセンブラーは、UTF-8 コード ページではなく、ラテン -1 コード ページを使用します。 これが必要なのは、UTF-8 が UNOC のスーパーセットではないためです。 UNOC で許可されている文字の中には、UTF-8 として処理すると、インターチェンジが中断される原因となるものがあります。
一部の EDIFACT 文字セットで 2 バイト文字である文字が、他の EDIFACT 文字セットでは 1 バイト文字である場合があります。 そのため、インターチェンジ内の文字数に基づいてバッチのリリース条件を設定するときは、使用する文字セットによってインターチェンジ内のバイト数が異なることがあります。
UNA セグメントとセグメント名 UNB には、ASCII 文字セット内の値のみを使用できます。
EDIFACT の場合と同様に、KEDIFACT エンコード インターチェンジの文字セットも UNB1 データ要素で設定されます。 EDIFACT については、KEDIFACT インターチェンジの処理時にBizTalk Serverによって適用される文字セットは、双方向アグリーメント タブの [文字セットと区切り記号] ページのデータ要素 UNB1 (契約が定義されている場合) または [EDIFACT フォールバック設定] ダイアログ ボックスの [契約] タブの [文字セットと区切り記号] ページ (契約が定義されていない場合) に設定されます。 Identifier (UNB1.1) 要素の値を KECA に設定する必要があります。
BizTalk 受信パイプラインまたは送信パイプラインが X12 エンコード メッセージの EDI 検証を実行する際には、パイプラインの CharacterSet プロパティで選択された X12 文字セットを使用します。 このプロパティを設定するには、受信場所または送信ポートの [プロパティ] ダイアログ ボックスを開き、受信パイプラインまたは送信パイプラインの横にある省略記号をクリックし、逆アセンブラーまたはアセンブラーの CharacterSet プロパティを設定します。
パイプラインの CharacterSet プロパティを使用して X12 インターチェンジを検証するのは、EDIFACT や KEDIFACT の場合とは異なり、X12 エンコード インターチェンジは文字セットの観点から見ると自己記述型ではないからです。 ISO エンコードまたは UTF エンコードで ISA ヘッダーを読み込むと、アグリーメントの参照に異なる値が使用されることがあります。 そのため BizTalk では、アグリーメント参照の前 (アグリーメントに適用できる文字セットを取得するとき) に、メッセージの処理に使用される適用可能な文字セットを認識する必要があります。
契約の検証に使用する X12 文字セットは、双方向アグリーメント タブの [文字セットと区切り記号] ページ (契約が定義されている場合) または [X12 フォールバック設定] ダイアログ ボックスの [フォールバック 契約] タブの [文字セットと区切り記号] ページで指定します (契約が定義されていない場合)。 ただし、これらの設定は (Tab キーを押してフィールドから移動したり、別のページを表示したりするときではなく) プロパティ セット全体を保存するときに、関連のプロパティに入力した値を検証するためだけに使用されます。 受信パイプラインおよび送信パイプラインでは、これらの文字セットのプロパティは無視されます。
注意
アグリーメントまたはフォールバック アグリーメントで指定されている文字セットが、受信パイプラインまたは送信パイプラインに選択されている文字セットと一致しない場合、メッセージ検証エラーが発生することがあります。 たとえば、アグリーメントの X12 文字セットのプロパティが [拡張] に設定され、パイプライン プロパティ内の X12 文字セットのプロパティが [基本] に設定されている場合です。
使用できる文字セットは、『X12 Specifications/Implementation Guides』に記載されている [基本] と [拡張]、および [UTF8/Unicode] です。 既定値は UTF8 です。
注意
双方向アグリーメントまたはフォールバック アグリーメントでデータ要素区切り記号、コンポーネント要素区切り記号、およびセグメント終端記号に入力する値は、ASCII 文字セット内の値に限られます。 これらのプロパティは、X12 文字セットに対しては検証されません。
Basic 文字セットには、次の大文字、数字、スペース、および特殊文字が含まれています: A から Z、0 から 9、! " & ' ( ) * + 、 - 。 / : ; ? = (スペース)。
拡張文字セットには、Basic 文字セット内の文字、小文字、選択言語文字、およびその他の特殊文字が含まれます。a から z、% @ [ ] _ { } \ | <> ~ # $。