0

良い時間です。

私たちが取り組んでいる BizTalk ソリューションについて、何らかの助けが得られることを願っています。

WCF-SQL ウィザードを使用し、型指定されたポーリングを選択してアダプターを生成しました。それはすぐに使えました。メッセージが XML バッチでドロップされるファイル タイプの送信ポートを作成できました。次のステップとして、生成されたエンティティのスキーマを変更し、それをエンベロープに変更してリーフ ノードを構成することにより、メッセージをデバッチしました。これで、メッセージごとに 1 つのファイルが送信ポートのファイル フォルダーに保存されました。今、新しく作成されたメッセージに対してマップを作成しようとしています。そこから問題が始まります。WCF-SQL ウィザードによって生成されたのと同じスキーマに基づいてマップを作成する場合、エンベロープの構造全体をドラッグします -> 配列 -> メッセージ。もちろん、これは単一のメッセージの構造とは一致しません。マップが機能していません。新しいスキーマを作成する場合、

次のいずれかを達成できるのではないかと考えていました。

  • WCF-SQL によって生成されたスキーマを、エンベロープ + 配列とメッセージの 2 つに分割します。それが可能かどうかはわかりません。この考えのどこかが、私には合いません。
  • どういうわけか、デバッチされたメッセージの名前空間を変更してください。達成する方法がわからない。

どんなアイデアでも大歓迎です。ありがとうございました!

4

1 に答える 1

0

難しいことはすべてすでに完了しているように思えます。探しているものを手に入れるためのヒントをいくつか紹介します。

  • エンベロープ スキーマは、メッセージ構造全体を表す必要はなく、デバッチされた子が取得される Body 要素までを表すだけです。
  • デバッチされたメッセージは、独自の個別のスキーマになります。
  • エンベロープ スキーマは、メッセージ スキーマを参照する必要さえありません。
  • 通常は、設計時に Envelope Schemas プロパティと Document Schemas プロパティが設定された XmlDisassemblyr でカスタム パイプラインを使用することをお勧めします。

WCF バインディングは、既に分離されたスキーマを実際に生成します。Map を作成するときは、ArrayOfStoredProcedureResultSet0 の代わりにStoredProcedureResultSet0を選択します。

ルート参照を設定すると、選択肢が得られないため、設定を解除してください。

于 2015-02-26T19:11:09.980 に答える