0

データベースからデータをポーリングするオーケストレーションがあります (これは実際には ERP で使用されているため、このデータベースのデータを操作することはできません)。ポーリング ポートが一致するデータを見つけると、オーケストレーションを実行し、データをサード パーティに送信します。ウェブサービス。

このオーケストレーションで使用されるロジックは複雑で、変更されやすいことが多いため、適切な一連のテストでカバーすることが重要です。私はしばらくこれについて考えていて、3 つの異なるコンポーネントを使用することも考えました。

  1. 最初の部分 (2 つのポートのみ可能) は、データベースからデータを読み取り、フォルダーに配置します。

  2. 2 つ目 (現在のオーケストレーション) は、ファイル ポートを使用してデータを読み取り、最初のコンポーネントによってダンプされ、結果のファイルを別のフォルダーにダンプします。

  3. 3 番目のコンポーネントは、2 番目のコンポーネントによってダンプされたファイルを読み取り、それを Web サービスに送信します。

ただ、気になる点は少なく、

  1. BizTalk に関して言えば、これは慣習に眉をひそめますか? それとも、物事を行うのは通常の方法ですか?

  2. パフォーマンス - 現在のソリューションと比較して大幅に遅くなりますか?

  3. 現在、サーバーの 1 つを使用してテストを実行し、BTDF と Jenkins を使用してビルドを実行しています。コンポーネント 1 と 3 を無効にしてテストを実行し、ビルドが完了したら再度有効にして、正常に機能するようにする方法はありますか?

4

2 に答える 2

2

MessageBox の組み込み機能を使用すると、ファイルへの書き込みとファイルからの読み取りのオーバーヘッドを回避できます。最初に開始する場所は次のとおりです: https://msdn.microsoft.com/en-us/library/aa949234.aspx

このアプローチを使用して、MessageBox から独立して読み書きする一連のオーケストレーションに機能をモジュール化する方法を示す優れた Biztalk サンプルがあります。これは、前のページの下部で参照されており、「オーケストレーションでのメッセージ ボックス データベースへの直接バインド」と呼ばれています。

于 2015-02-05T08:29:38.640 に答える
1

私はこのアプローチに反対することをお勧めします。3 つのオーケストレーションを MessageBox に直接バインドし、前のオーケストレーションによって発行されたメッセージをサブスクライブする方がよいでしょう。これらのメッセージをサブスクライブする送信ポートを作成することも、管理コンソールを使用してメッセージをデバッグすることもできます。

さまざまなタスクの単体テストを作成することもできます。.NET ヘルパー ライブラリで何らかの作業を行っている場合は、単純な古い単体テスト プロジェクトを使用できます。また、BizUnit フレームワーク ( https://bizunit.codeplex.com/ )を調べることもできます。慣れるには少し手間がかかりますが、BizTalk 単体テストを作成するための優れたリソースです。

于 2015-02-04T16:23:44.030 に答える