0

Biztalk で初めてのオーケストレーションを作成していますが、データベース (具体的には、最大 3 つの異なるテーブル) を効率的に更新する方法が思いつきません。

ユーザーは、emplid (一意の ID) を含むスキーマと一致する受信メッセージを使用してサービスを呼び出し、次に多数の名前と値のペアを呼び出します (この図のソース スキーマを参照)。「name」はテーブルの列に対応します (たとえば、名前が「employeename」の場合、EMPLOYEE テーブルの NAME 列に対応します)。もちろん、値は、ユーザーがその列を更新したい新しい値です。

そのため、渡された従業員に対して更新するフィールドに応じて、1 つのテーブル、2 つのテーブル、または 3 つすべてにのみ適用される更新メッセージを渡すことができます。

私は現在、3 つのテーブル アダプター (テーブルごとに 1 つ、そのうちの 1 つが上の写真) を使用した 3 つの個別の更新としてアプローチしていますが、3 つのテーブルすべてに対して updateValuePairs を渡す場合と、1 つだけまたは2 つのテーブルに対してのみ (他のクエリは引き続き実行を試みて失敗します)。私はこれに近づいていますか?または、私がやろうとしていることを達成するためのより良い方法はありますか?

4

1 に答える 1

1

よりクリーンなソリューションを実装するために、別の方法を試してみます。

どのテーブルに移動するかのロジックを処理するStore-Procedureを作成します

必要なのは、マッピングと、現在取得している 3 つの LOB アダプターの代わりに 1 つの LOB アダプターだけです。

概要ソリューション

1.オーケストレーションで入力を受け取る

2. ストアド プロシージャで生成されたスキーマへの入力のマッピング

3.DB/LOBアダプタにマッピングされたデータをDBに送信する

ここに役立つリンクがあります(biztalk 2010を使用していると仮定しています):

Oracle ストアド プロシージャの使用方法

于 2012-09-05T19:08:15.817 に答える