サポート > リポジトリ > ワークフロー > メールを送信する [1] 設定

ワークフローイベント時にメールを送信することができます。ここではメール送信先を自動設定できるよう、モデルにいくつかの項目を加える方法を説明します。 R7.9

各ノードにおける「イベント」(承認、差し戻しなど)の発生タイミングで、メールを送信することができます。

図1 メール送信機能

メールの送信元(発信者 "From")と、送信先(受信者 "To")を固定するのではなく、ノードに割り当てられたユーザ・グループに送信するように設定できます。ここではその方法を説明します。

アカウント

Wagbyが提供するアカウント管理モデルjuserに、メールアドレス項目を加えます。

図2 メールアドレス項目が追加されたjuserモデル

この設定は「アカウント>メールアドレス項目を追加する」で説明しています。

グループ

Wagbyが提供するグループモデルjgroupに、メールアドレス項目を加えます。

図3 メールアドレス項目が追加されたjgroupモデル
グループに設定するメールアドレスは、(複数の)個人メールアドレスへのエイリアスとしてします。社内のメールサーバの設定で、このようなエイリアスを作成することができます。詳細はメールサーバ管理者へお問い合わせください。

モデル定義で、「システム」タブに含まれる「グループ (jgroup)」を選択します。図4に示すように「グループメールアドレス」を挿入します。

項目名 項目ID 型への属性
グループメールアドレス jgroupmailaddress 文字列型 メールアドレス
図4 jgroupモデルへのメールアドレス項目の追加

フロー参加者設定

今回は「順次・順次・順次フロー」(申請→承認→決裁) と、「順次・合議・順次フロー」(申請→合議承認→決裁) の二通りの例を使うとします。(図5,図6,図7)

図5 フロー参加者設定一覧

「順次・順次・順次フロー」では、申請、承認、決裁いずれもユーザーとしています。

図6 順次・順次・順次フローの参加者

「順次・合議・順次フロー」では、申請をグループとします。また、二番目の合議では「承認1〜承認4」を用いるとします。

図7 順次・合議・順次フローの参加者

フローパターン

なお、この「順次・合議・順次フロー」の合議では、「承認1〜承認4」のうち、2人が承認すれば次へ進む、というように設定しているものとします。

図8 順次・合議・順次フローパターン

ワークフロー設定

図5のフロー参加者設定を使って、ワークフローを設定します。メールの設定もここで行います。

図9 フロー参加者設定一覧

「フロー参加者設定名01」は「順次・順次・順次フロー」を用います。申請時にメールを送信するようにします。

図10 フロー参加者設定名01

「フロー参加者設定名02」は「順次・合議・順次フロー」を用います。申請時および合議承認時にメールを送信するようにします。

図11 フロー参加者設定名02 (1)
図12 フロー参加者設定名02 (2)

「年休申請」モデルに次の項目のいずれか1つを追加します。

図13 年休申請モデルへの項目追加

「申請者」項目の初期値

申請者はログオンIDが自動設定されるようにします。

図14 初期値の設定

次のメールアドレス項目

申請時であれば次の承認者へ、承認時であれば次の承認者(または決裁者)というように、次のノードのメールアドレスを格納する項目を用意します。

項目名 項目ID DB保存 使い分け
次のメールアドレス(ユーザーIDのみの場合) nextuseridmail 文字列 WF_NEXT_USERID_MAIL("juser", "userid", "mailaddress") × グループ宛にメールを送る必要がない場合
次のメールアドレス(グループIDのみの場合) nextgroupidmail 文字列 WF_NEXT_GROUPID_MAIL("jgroup", "jgroupid", "jgroupmailaddress") × ユーザー宛にメールを送る必要がない場合
次のメールアドレス(ユーザーID、グループID混在) nextmail 文字列 WF_NEXT_MAIL("juser", "userid", "mailaddress", "jgroup", "jgroupid", "jgroupmailaddress") × ユーザー、グループのいずれにもメールを送る可能性がある場合
このサンプルでは、理解するために3つの項目を用意していますが、実際には上記説明にあるように、使い分けによっていずれか一つの項目を用意するようにしてください。
上記の項目は、本番運用時には隠し項目として、画面では非表示とすることもできます。

各関数の引数の詳細は、WF_NEXT_USERID_MAIL, WF_NEXT_GROUPID_MAIL, WF_NEXT_MAIL の説明をお読みください。

メールのテンプレートを用意します。

図15 メールテンプレート

メールテンプレートを設計します。「ID」は重複しない識別子とします。「適用モデル」に "年休申請" を選択します。「件名」「差出人」「本文」などの項目にはプレースホルダを含めることもできます。

ここでは "申請" と "承認" の二つのメールテンプレートを設計します。

図16 申請テンプレート
図17 承認テンプレート

メール送信タイプ

各メール送信タイプの動作は以下の通りです。

メール送信タイプ 動作
新規登録 ワークフロー対象のモデルでデータを新規登録した場合(保存ボタン押下時)に送信されます。
申請 ワークフロー申請ボタン押下時に送信されます。
承認 ワークフロー承認ボタン押下時に送信されます。
却下 ワークフロー却下ボタン押下時に送信されます。
保留 -(動作しません)
差し戻し ワークフロー差し戻しボタン押下時に送信されます。
取り消し -(動作しません)
決裁 ワークフロー決裁者(フローの最終ノードに割り当てられている人)による承認ボタン押下時に送信されます。

[事例] 「担当者→課長→部長→購買部→購買部部長」ルートによるメール設定

ノードとメール送信タイプの組み合わせでメールテンプレートを指定する例を示します。

  1. 担当者が「申請」した時、"課長宛てテンプレート"で申請メールを課長に送信。
  2. 課長が「承認」した時、"部長宛てテンプレート"で1次承認メールを部長に送信。
  3. 部長が「承認」した時、"購買部宛てテンプレート"で2次承認メールを購買部に送信。
  4. 購買部が「承認」した時、"購買部部長宛てテンプレート"で3次承認メールを購買部部長に送信。
  5. 購買部部長が「決裁」した時、"申請者宛てテンプレート"で決裁完了メールを申請者に送信。

この例ではメール送信タイプ「承認」に、3つのノードが設定されています。それぞれに別のメールテンプレートを割り当てることで、適切な運用を行うことができるようになります。

ワークフローの承認や差し戻しをする際にコメントを入力できるテキストエリアの内容をメールテンプレートに記述することができます。 具体的には次のプレースホルダをメールテンプレートの本文中に記載することで、入力されたコメント内容をメールに含めることができます。

${jfcworkstate_p.comment}

同様に、次のようなプレースホルダを送信メールに含めることができます。

モデル名.項目名 表記 内容
${jfcworkstate_p.modelname} 対象モデル名
${jfcworkstate_p.modelpkey} 対象モデルの主キー
${jfcworkstate_p.participant} 参加者
${jfcworkstate_p.username} 処理者
${jfcworkstate_p.event} 処理内容
${jfcworkstate_p.comment} コメント
${jfcworkflow_setting_p.participants} ワークフロー参加者
${jfcworkflow_setting_p.flow} ワークフローパターン名
${jfcworkflow_setting_p.mail_setting.0.mstype} メール設定のメール送信タイプ
繰り返しコンテナのため、".0." や ".1." といった表記で、繰り返しコンテナの対応行を指定します。
${jfcworkflow_setting_p.mail_setting.0.mail_template} メール設定のメールテンプレート
この表記を、計算式に用いることはできません。計算式にワークフローの状態を使う場合は「関数>ワークフロー」を利用してください。