2

FTP ロケーションを監視する BizTalk 受信ポートがあります。ファイルが少なくとも 1 日に 1 回はその場所に到着し、BizTalk がそれを取得してオーケストレーションを開始することを期待しています。この部分は正常に動作しています。

ただし、送信者が 1 日のうちにメッセージを送信できない場合があります。その場合、何か問題があることをユーザーに通知するために電子メールを送信する必要があります。

これは BizTalk 外で解決できます。データベースで処理済みファイルを検索し、特定の日に少なくとも 1 つのファイルがあることを確認する毎日のジョブを作成することで解決できます。ただし、私はこれを、既に導入されている BizTalk ソリューションと "一致して" 解決し、メンテナンスの頭痛の種となる別の無関係なジョブを展開しないことを好みます。

受信ポートが特定の時間内に何かを受信しない場合に通知を送信できるようにする BizTalk の機能はありますか?

4

2 に答える 2

2

簡単な答え:そうではありません。

実装するロジックには、カスタマイズされたバージョンの FTP アダプタが必要です。袖をまくり、Adapter SDK を使用することにどれだけ慣れているかによって異なります。

ソリューションを "純粋な BizTalk" のままにしたい場合は、ストアド プロシージャに関連付けられた SQL Receive Location を使用してセカンダリ オーケストレーションをセットアップできます。このストアド プロシージャは定期的に実行され、過去 (営業日) に受信した "Processed File" テーブル内のレコードを探します。何も見つからない場合は、レコードを作成し、SQL Receive Location 経由で返します。これが、電子メール通知を送信するトリガーになります。

于 2012-11-19T22:10:53.120 に答える
0

ただし、エレガントではない1つの解決策は、スケジュールウィンドウを使用して、カットオフ時間外にセカンダリFILE受信場所を設定することです。

障害シナリオ:

このFILE受信場所には、FTP受信と同じスキーマに準拠したインテリジェント/ダミーメッセージがあります。インテリジェントな部分は、メッセージにフィールドの1つを含めて、FTPからファイルを最後に受信したのはいつかを通知することです。残りのコンテンツはダミーです。

オーケストレーション内で、ファイルをどこから受け取ったかを確認します。(コンテキストプロパティBTS.ReceiveLocationNameを使用して)セカンダリ受信場所である場合は、このダミー/インテリジェントメッセージの日付フィールドを確認し、過去24時間(または同様のロジック)である場合は、ファイルを受信しなかったことを通知する電子メールを送信しますアップストリームFTPプロセスから、ダミーメッセージ(受信済み)のコピーを変更せずにセカンダリFILE受信場所に保存します。

成功シナリオ:

通常の処理とは別に、ダミー/インテリジェントメッセージのコピーをセカンダリFILE受信場所に保存します。日時フィールドには、FTP受信場所から受信したファイルを処理した日時が反映されます。

初期化:

セカンダリFILE受信場所のダミー/インテリジェントメッセージで、過去の日時フィールド値(FTPからファイルを受信したことがない場合)または昨日の日付(前日にFTPからファイルを正常に受信した場合)から開始します。 )。

概要:オーケストレーションには2つのトリガーポイントがあります。

  1. FTP経由でファイルを受信した場合
  2. スケジュールされたFILE受信場所。カットオフ時間後にトリガーされます。
于 2012-11-20T14:35:37.330 に答える