メールを送信する [3] 自動通知

最終更新日: 2020年3月14日
R8 | R9

処理日付時刻項目を用意する

年休申請モデルに「最後の処理日付時刻」項目を追加します。型は日付・時刻型(日付と時刻)とします。

図1 最後の処理日付時刻項目

「最後の処理日付時刻」の型は日付・時刻型(日付と時刻)とします。

図2 日付と時刻型

関数 WF_LASTPROCESSDATE を適用します。最後にワークフローに何らかの処理(承認、決裁など)を行った日付時刻がセットされるようになります。データベースには保存しない、とします。

図3 WF_LASTPROCESSDATE関数を適用する

メール送信ジョブの定義

メール送信ジョブを用意します。ここではジョブ名を "NotifyRetentionLeaveWorkflowJob" としました。メールテンプレート項目に設定した値は、次節でメールテンプレートIDとして使います。

起動条件に次の式を用意します。この式は、申請または承認状態で、1日以上滞留しているデータのみを選択するものです。

AND(
  OR(
    EXACT(${flowstatus},"申請"),
    EXACT(${flowstatus},"承認")
  ),
  DATEDIF(TODAY(),${wflastprocessdate}, "D")>=1
)
図4 メール送信ジョブ

メールテンプレートを用意する

ビルドしたアプリケーションで、送信メールの宛先や文面を用意します。メールテンプレートのIDは、図4で指定したメールテンプレート項目と同じとします。(ここでは "NotifyRetentionLeaveWorkflow" としています。)

宛先人の項目に、この休暇申請モデルが保持する、次のメールアドレスをプレースホルダ形式で指定します。件名、差出人、文面は任意に設定してください。

${leave_p.wfnextuseridmail}
図5 メールテンプレートの設定

メール送信ジョブの起動

用意していたメール送信ジョブの時間実行を指定します。実行は jobadmin アカウントが行うものとします。(jobadmin アカウントには、この休暇申請モデルのプリンシパルを与えておくとします。)

図6はテストのために毎分実行の例となっていますが、実際には一日おきとするなど、システムに負荷のないように運用してください。
図6 メール送信ジョブの起動設定

年休申請ワークフローを開始した例です。

図7 年休申請ワークフローを開始した

ここで決裁しなかった場合、未決裁のデータについて、次の承認者へメールが送信されます。

図8 送信されたメールの例