1

オーケストレーションを実行し、別のプロモートされたプロパティの値を読み取ってプロモートされたプロパティに値を割り当てようとすると、以下のエラーが発生します。

中断されたオーケストレーションのエラー:

内部例外: メッセージ内のプロパティ BankProcesses.Schemas.Internal_ID' に関連付けられた値がありません。

詳細:

2 つの XSD スキーマがあります。1 つはストアド プロシージャを呼び出してその応答を読み取るためのもので、もう 1 つはそれをフラット ファイルに書き込むためのものです。SP からの応答で返される内部 ID は、別の XSD スキーマのノードに渡されて、フラット ファイル形式に書き込まれる必要があります。

応答スキーマから要素を昇格し、スキーマから要素を昇格してフラット ファイルに書き込みました。以下のように、昇格したプロパティに値を割り当てています。

strInternalId = msgCallHeaderSP_Response(BankProcesses.Schemas.Internal_ID);

msgCallSP(BankProcesses.Schemas.Header_Internal_ID) = strInternalId;

しかし、オーケストレーションを実行すると、上記のエラーが発生します。ストアド プロシージャからの応答を確認しましたが、応答 XML には何らかの値が含まれていますが、その値を別のスキーマに割り当てることができません。ご意見をお聞かせください

ありがとう、マユル

4

3 に答える 3

0

このエラーが発生するシナリオの 1 つは、変更しようとしているメッセージに Header_Internal_ID 要素がない場合です。変更する前にメッセージを調べて、値を変更する必要がある要素があることを確認できますか?メッセージをファイルの場所にドロップしてください。

この場合は、最初に空の要素に設定した場合でも、メッセージを初めてインスタンス化するときにこの要素を作成するようにしてください。

HTH

于 2013-12-02T08:18:12.480 に答える
0

プロパティが存在するかどうかを確認するには、次の構文を使用できます。

BMWFS.LS.BizTalk.CFS.BankProcesses.Schemas.Internal_ID が存在します msgCallHeaderSP_Response

ただし、ソース フィールドが常にそこにある場合は、逆方向に作業して、プロパティがコンテキストに表示されない理由を見つける必要があります。

ポートから送信されている場合、メッセージは XmlDisassemblyr コンポーネントを介して passign されていますか? 別のオーケストレーションからのものである場合、実際にプロパティを設定していますか?

コンテキストを確認する最も簡単な方法は、メッセージ msgCallHeaderSP_Response を停止送信ポートにルーティングすることです。その後、BizTalk アドミニストレータでコンテキストを表示できます。

于 2013-12-04T16:52:30.097 に答える