はじめに
mailReplaceMapパラメータを使ってロジックデザイナーで処理結果通知メールの文面を承認時と否認時でまったく異なる内容にしたかったので、その実装手順をまとめました。
必要な定義
ユーザ定義の中で以下2つを組み合わせて実現しました。
- JavaScript定義:mailReplaceMapから必要項目を取り出す
- テンプレート定義:メール本文の定義
mailReplaceMapパラメータを利用できるタイミング
- 到達処理
- 案件終了処理
実装手順
ロジックデザイナーでの入出力設定
※案件終了処理のご作法で定義してます。
以下のとおり、imwMatterEndProcessのオブジェクトの中に、mailReplaceMapを定義します。型はMap形でそのままでテンプレート定義には使えないので、JavaScript定義を用いてメール本文で使いたい必要項目を抽出します。
JavaScript定義で必要項目を抽出
mailReplaceMapはそのままではテンプレートで使えないので、JavaScript定義で必要なメール置換文字を抽出する必要があります。ここがミソで独力でここに行き着くのに大変時間を要しました。
入力値にmailReplaceMapを、返却値に必要なメール置換文字を指定します。
/**
* run.
*
* @param input {Object} - task input data.
* @return {Object} task result.
*/
function run(input) {
var Flow_Nm = input.mailReplaceMap["Flow_Nm"];
var Matter_Pry = input.mailReplaceMap["Matter_Pry"];
var Auth_Cm = input.mailReplaceMap["Auth_Cm"];
return {
Flow_Nm: Flow_Nm,
Matter_Pry: Matter_Pry,
Auth_Cm: Auth_Cm
};
}
テンプレート定義でメールBodyを作成して完成
以下テンプレート定義の一例です。標準のメール定義でできることは基本的に何でも可能です。
本申請は以下のコメントが理由で否認されました。
【案件情報】
ーーーーーーーーーーーーーーーーーーーーーーーー
<フロー名> ${Flow_Nm}
<優先度> ${Matter_Pry}
<コメント>
${Auth_Nm}
ーーーーーーーーーーーーーーーーーーーーーーーー
※本メールは送信専用のため返信できません。
入力値の定義は以下のとおりです。
テキストメール送信で完成
あとは汎用タスクにある「テキストメール送信」のbodyに上記テンプレートの出力値をマッピングで設定すれば完成です。
まとめ
以上で『社内SEなら知っておきたい、intra-martのmailReplaceMapパラメータの使い方』でした。また1つできることが増えて、社内SEとして良いのか悪いのかわかりませんが、今後の自分に役立つと信じて良しとしましょう。
コメント