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

最終更新日: 2025年6月12日
R8 | R9

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

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

最後の処理日付時刻項目

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

WF_LASTPROCESSDATE関数を適用する

メール送信ジョブの定義

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

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

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

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

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

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

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

メール送信ジョブの起動

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

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

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

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

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

送信されたメールの例