0

パートナーは、いくつかのカスタム セグメントを含む EDIFACT を送信します。これらのカスタム セグメントを持つように、既存の edifact スキーマの 1 つを更新しました。幸せな日のシナリオは機能しています。私たちは現在、ネガティブなシナリオを実装しようとしています。ビジネスでは、BizTalk がインターチェンジ内で成功したメッセージを処理し、失敗したメッセージに対してエラーを発生させたいと考えています。パートナー契約を使用していません。EDIFACT フォールバック設定で、インターチェンジをトランザクション セットとして分割するインバウンド バッチ処理オプションを設定しました - エラー時にトランザクション セットを一時停止します。

問題: 私のパートナーは、同じトランザクション セット内、つまり UNH-UNT 内で複数のデータ (この場合は複数の S01Loop) を送信します。上記のロジックを適用すると、インターチェンジ全体が失敗します。

要件: 特定のループ データが失敗し、残りの肯定的なデータがパスする必要があります。

私が試したこと: HIPAA ベースの edifact ファイルには、subdocument_break という概念があります。これらの注釈を XSD に適用しました。残念ながら、うまくいきませんでした。

すぐに使用できるソリューションがない場合は、複数のデータを個別のインスタンスに分割するカスタム フラット ファイル逆アセンブラー コンポーネントとなる EDI スプリッター パイプライン コンポーネントを作成する予定です。次に、EDI 逆アセンブラーを使用してデータを解析します。

これを行うために BizTalk ですぐに使用できる機能を誰かが持っているかどうか教えてください。

4

1 に答える 1

0

この場合、構文エラーがあるとトランザクション セット全体が失敗するため、サブ ドキュメント分割は役に立ちません。

これには理由があります。セグメントが順不同である場合、パーサーはその場所を確実に判断できません。

これを処理する正しい方法は、そのような検証をプロセスの後半に移動して、解析後に無効なメッセージが検出されるようにすることです。取引先が本当に無効な EDI を送信している場合は、それを修正する必要があります。

于 2016-09-22T20:20:13.087 に答える