1

免責事項: 私は完全なビズトーク初心者です。

Biztalk メッセージで 4 つのノードを読み取り、場合によっては編集できる必要があります。私はサービス呼び出しを行っており、これのために書かれた単体テストも持っているので、できればこれは ac# ヘルパー クラスから行う必要があります。

私はすでにこのクラスを接続しており、XLANGMessage クラスで動作します。私が遭遇している問題は、オーケストレーションのこの時点で、メッセージがスキーマ ベースの型であり、変更する方法がないようです。

私はいくつかの読書を行い、いくつかのアイデアを見つけましたが、これらのいずれかがカスタム コードから機能するかどうかを確認できませんでした。

4

3 に答える 3

1

1受信メッセージを目的のタイプに変換するマップを作成します

また

2ヘルパーコンポーネントに次のようなものを記述して、メッセージを変換します

public XmlDocument TransformMessage (XLANGMessage メッセージ)

次に、結果のドキュメントをメッセージ割り当て図形で Biztalk メッセージに渡します。

responseMessage = xmlDocument;

メッセージの代わりにストリームを渡すと、パフォーマンスが向上する場合があります。

于 2013-03-18T19:09:46.073 に答える
0

C# ヘルパー クラスとの間で簡単にメッセージをやり取りできます。最も簡単な方法は、入力パラメーターと戻り値を System.Xml.XmlDocument 型として処理することです。XLANG/s エンジンは、XLANGMessage 型から XmlDocument へ安全にキャストします。

基本的にメッセージの "新しい" インスタンスを作成しているため (メッセージは BizTalk では不変です)、ヘルパー クラスへの呼び出しは、元のメッセージのコピーを構築する外側の構成図形を使用して、メッセージ割り当て図形で実行する必要があります。

public static XmlDocument UpdateMyMessage(XmlDocument sourceMessage)
{
  /* Do stuff to your Message here */

  return sourceMessage;
}

考慮すべきベスト プラクティスは、すべての C# ヘルパー メソッドを Static として宣言することです。これにより、脱水中のヘルパー クラスの逆シリアル化に関する問題が回避されます。

于 2013-03-19T22:12:09.240 に答える
0

BizTalk メッセージは不変ですか?

ただし、一般的に言えば、「修正」オーケストレーションを作成し、受信メッセージ パラメータで参照渡しオプションを使用することで、既存のメッセージを変更できます。

于 2015-07-22T17:39:33.503 に答える