オーダ出荷時の警告 - ワークフローイベントハンドラ
会社へのオーダ出荷、およびその会社に属するポータルユーザがオーダ出荷時の警告に登録している場合、このイベントハンドラが出荷通知をそのユーザに送信します。
イベントハンドラが有効になると、警告を E-mail で通知するためのスケジューリングを制御する、この警告用の新しいイベントトリガーが作成されます。デフォルトでは、オーダ出荷の警告通知が毎日午後 3 時に配信されます。 [イベントトリガ] フォームでは、フォーム上で条件、条件再テスト間隔、およびトリガ再設定間隔の値をリセットすることで、イベントのスケジュールに関連付けられたデフォルト値を変更することができます。
イベントハンドラが有効になり、OrderShippingAlert イベントトリガが作成されると、通知を送信する必要のある出荷のリストが TrackRows テーブルを使用して(オーダ出荷警告へのサブスクライバを顧客が持っているかどうかに基づいて)維持され、オーダが出荷されるたびにこのリストが更新されます。
技術的詳細
イベントハンドラは、毎日指定した時間にストアドプロシージャ OrderShippingAlertsSp を実行します。次のタスクが実行されます。
- これは、顧客番号に基づいて、オーダ出荷警告がないか発行サブスクライバをチェックします。発行サブスクライバー は、 [発行サブスクライバ] フォームの中で、[発行名] = 'OrderShippingAlert' および [キー値] = 顧客番号を指定すると検索できます。
- 発行サブスクライバーが存在する場合、ストアドプロシージャが [ユーザ] フォームで定義されたアドレスを使用してそのサブスクライバの E-mail アドレスを取得します。
- ストアドプロシージャは、それぞれの発行サブスクライバに対して、前回そのストアドプロシージャが実行された後に作成された顧客向けにオーダ出荷レコードがないかを検索します。E-mail のメッセージの本文になる変数にこのレコードが挿入されます。
- ストアドプロシージャは次の値を出力します。
- 変数に保存されているサブスクライバーのリスト。
- オーダ出荷警告の E-mail のメッセージ本文。
E-mail のメッセージ本文には、E-mail ごとにオーダとその明細/品目が 1 つだけ含まれる必要があります。メッセージ本文の容量は、約 4,000 文字(およそ 40 行)です。作成されたメッセージ本文が 4,000 文字を超えると、その E-mail に収まらなかった明細/品目の残りを含む E-mail が別に作成されます。
オーダ出荷の E-mail 通知が正常に送信されると、ストアドプロシージャ DeleteCoShipTrackRowsSp が TrackRows テーブルをクリアします。
イベント OrderShippingAlert には次の 3 つのアクションがあります。
- 実行区分: データベース呼出メソッド: OrderShippingAlertsSp を呼び出し、2 つの変数(1 つはサブスクライバのリスト用、もう 1 つはメッセージ本文用)を返します。
- 実行区分: E-mail 送信: E-mail を作成し、OrderShippingAlertsSp から渡された変数を使用してサブスクライバのリストにそれを送信します。
- 実行区分: データベース呼出メソッド: DeleteCoShipTrackRowsSp を呼び出します。このメソッドは、前のアクションで生成された E-mail が正常に送信された場合のみ呼び出されます。
OrderShippingAlert イベントトリガのスケジュールには、次のデフォルト値が使用されます。
- 条件: CONDITION(DATEPART(hour, CURDATETIME()) = 15)
- 条件再テスト間隔: 60
- トリガー再設定間隔: 85,500
- スケジュール: 毎日午後 3 時に実行します。23 時間 45 分の間スリープしてから起動し、再度午後 3 時になるまで毎分チェックします。