次の方法で共有


EDI の送信処理に関する既知の問題

このトピックでは、EDI 送信パイプラインでの処理に関する既知の問題について説明します。

X12 の暗黙的な小数点が原因で長さの検証に失敗する

症状:

EDI 送信パイプラインが、中間 XML に含まれる底 10 の数値を、送信する EDI インターチェンジで Nn 形式の数値に変換するときに、XML インターチェンジの長さの検証に失敗します。

考えられる原因

EDI 送信パイプラインは、X12 でエンコードされた EDI インターチェンジをシリアル化するときに、必ず底 10 の数値を暗黙的な小数点を含む Nn 形式の数値に変換します。 たとえば、中間 XML ファイルに 12.34 という値が含まれている場合、これが数値型 N2 として指定されていると、EDI 送信パイプラインは、EDI インターチェンジでこれを 1234 に変換します。 底 10 の数値の長さは、Nn 形式の数値より 1 だけ長くなります。 Nn 形式の数値の長さが最大である場合、中間 XML 内の底 10 の数値は、XML の長さの検証で失敗します。

これは、X12 でエンコードされたインターチェンジに関する問題にすぎません。

解決策

XML の数値の最大長を 1 だけ増やします。

制御番号をリセット、アーカイブ、または削除する必要が発生する場合がある

制御番号がフィールドの最大長に達すると、BizTalk Server でエラーが発生し、インターチェンジが中断されます。 このため、[EDI のプロパティ] または [EDI グローバル プロパティ] ダイアログ ボックスで制御番号をリセットする必要があります。

制御番号は、BizTalk MessageBox データベースの dbo.EdiSequenceNumbers テーブルに保存されています。 必要に応じて、このテーブルの制御番号を削除するかアーカイブすることによって、このデータベースを管理する必要があります。

[EDI のプロパティ] ダイアログ ボックスで [ 制限外の場合に下限にリセット する] を選択して、コントロール番号の自動リセットを有効にすることもできます。

データ要素名のピリオドがコンテキスト プロパティ名ではアンダースコアになる

EDI セグメント内のデータ要素名には、ピリオドが含まれています (UNB2 送信者セグメントの ID フィールドである UNB2.1 など)。 しかし、データ要素名が EDI コンテキスト プロパティの一部となった場合 (送信ポートのフィルター式など)、ピリオドがアンダースコアに置き換えられます。 たとえば、送信者 ID データ要素を表すコンテキスト プロパティは、EDI.UNB2.1 ではなく EDI.UNB2_1 となります。 この現象は、コンテキスト プロパティ名でピリオドがサポートされていないために発生します。

データ要素から取得されたコンテキスト プロパティ値をフィルター式で使用する場合、前後のスペースを削除する必要がある

EDI インターチェンジのエンベロープに含まれるデータ要素の前後にスペースが含まれており、受信パイプラインがそのデータ要素の値を使用したコンテキスト プロパティを昇格させる場合、受信パイプラインは、そのコンテキスト プロパティの前後のスペースを削除します。 このため、そのコンテキスト プロパティを使用してフィルター式を作成する場合、前後のスペースのないプロパティ値を入力する必要があります。 フィルター式でプロパティの前後にスペースが含まれていると、コンテキスト プロパティには前後のスペースが含まれていないため、そのフィルター式で正しい結果を得ることができません。

保存されたインターチェンジのインターチェンジ受信者プロパティに既定のパーティが指定されていると、送信パイプラインでエラーが発生する

BizTalk Server が、保存する必要のあるバッチ化されたインターチェンジを受信したときに (インターチェンジがエラーにより中断された場合)、インターチェンジの受信パーティを表すプロパティが既定値に設定されていると、そのインターチェンジをサブスクライブする送信パイプラインでエラーが発生します。 これらのプロパティ (送信者修飾子の ISA5 や送信者 ID の ISA6 など) は、有効な値に設定する必要があります。 BizTalk Server では、パーティの構成が無効であるためにメッセージをシリアル化できないことを示すエラーが発生します。 バッチ化されたインターチェンジのヘッダーには、送信者修飾子や送信者 ID などの必須の構成設定が含まれているため、この処理は正しくありません。

メッセージで使用されている小数点表記と、送信側パーティまたはグローバル設定で指定されている小数点表記が異なる場合、メッセージの小数点表記が変更される

インターチェンジで使用されている小数点表記が、UNA3 パーティ プロパティで送信メッセージに指定されている小数点表記と異なる場合、BizTalk Server は、インターチェンジをシリアル化して送信するときに、インターチェンジのエンベロープで使用されている小数点表記を変更します。 この現象は、UNA3 パーティ プロパティではなく UNA3 グローバル プロパティが使用されている場合にも発生します。 たとえば、受信メッセージで使用される 10 進表記がピリオドで、送信メッセージの 10 進表記を決定する UNA3 party プロパティまたは UNA3 グローバル プロパティでコンマが指定されている場合、BizTalk Serverは送信メッセージの 10 進表記をコンマに変更します。

EDI 送信パイプラインをオーケストレーションから実行できない

BizTalk Serverでは、通常、オーケストレーションの式図形内で送信パイプラインを実行できます。 しかし、EDISend パイプラインや AS2EdiSend パイプラインは実行できません。 これらのパイプラインは、送信ポート内で実行する必要があります。 EDISend パイプラインや AS2EdiSend パイプラインをオーケストレーションの式図形で実行しようとすると、パイプラインが送信ポートにバインドされず、メッセージが中断されます。

BizTalk EDI アプリケーションを変更できない

BizTalk EDI アプリケーション内のアイテムは、変更または削除できません。 このアプリケーションを変更すると、EDI 機能や AS2 機能の構成を解除して再構成しても、元のアプリケーションを復元することはできません。

機能グループ ヘッダー グリッドの既定の行を使用することにより、インターチェンジ ヘッダーとグループ ヘッダーとの間でメッセージの種類が一致しない場合がある

EDIFACT でエンコードされた送信インターチェンジの UNH2.1 の値が、[UNG および UNH セグメントの定義] ページのグリッドの [メッセージの種類 UNH2.1 の場合] の値と一致しない場合、メッセージに入力される UNG1 の値が UNH2.1 の値と一致しないことがあります。

この不一致は、メッセージにグリッドの既定行の UNH2.1 要素との一致がない場合でも、BizTalk がその既定行の UNG1 の値をメッセージに設定することが原因で発生します。

X12 でエンコードされた送信インターチェンジの ST1 の値が、[GS および ST セグメントの定義] ページのグリッドの [ST1 の場合] の値と一致しない場合、メッセージに入力される GS1 の値は、ST1 の値に基づいて動的に決定されます。

データ要素に無効な文字がある

症状:

EDI 送信パイプラインを使用して EDI インターチェンジを送信する場合、"データ要素に無効な文字がある" というエラーがアプリケーション イベント ログに記録されることがあります。

考えられる原因

このエラーは、ペイロード データに含まれる文字が区切り文字としても使用されている場合に発生します。 たとえば、"." 文字をコンポーネントの区切り文字として使用しており、ペイロード データにも "." 文字が含まれている場合があります。

これは、X12 でエンコードされたインターチェンジに関する問題にすぎません。

解像度

EDI パーティ プロパティの [ISA セグメント定義] ページの [ペイロード内の区切り記号を に置き換える] 設定を使用して、ペイロード データで見つかった区切り文字をインターチェンジの送信時に指定した置換文字に置き換えることを指定します。

たとえば、[ ペイロード内の区切り記号を に置き換える ] を選択し、'|' 文字を入力すると、EDI 送信パイプラインを使用してインターチェンジが送信されるときに、ペイロード データ内の区切り文字の出現箇所が '|' 文字に置き換えられます。

参照

EDI の処理に関する既知の問題
BizTalk Server が EDI メッセージを送信する方法
チュートリアル (X12): EDI インターチェンジの送信