はじめに
すでに分類Aと分類Bには各1名のユーザーが設定されており、そのユーザーあてにメールは送信可能。しかし、分類Cに複数人設定でき、その複数人にもメールを自動送信したい
ソースコード
try {
//ユーザーIDを格納する配列を作成
var address1 = new Array();
//変数address1にClassAに設定されているユーザーIDを格納
address1.push('[User' + String(model.ClassA) + ']');
//変数address1にClassBに設定されているユーザーIDを格納
address1.push('[User' + String(model.ClassB) + ']');
//ClassCにJSON文字列として設定されている複数のユーザーIDをJavaScriptオブジェクトとして格納
const userIdList = JSON.parse(model.ClassC);
//値に変換されたuserIdListを順にuserIdに格納
for (const userId of userIdList) {
//変数address1にClassCに設定されているそれぞれのユーザーIDを格納
address1.push(`[User${userId}]`);
}
//notifibationsをインスタンス化
var notification1 = notifications.New();
//notifications内で定義されている変数AddressにユーザーIDを格納
notification1.Address = Array.from(new Set(address1)).join();
//notifications内で定義されている変数Titleに件名を格納
notification1.Title = '件名';
//notifications内で定義されている変数Bodyに内容を格納
notification1.Body = '内容';
//メールを送信
notification1.Send();
} catch (e) {
context.Log(e.stack);
}
工夫
分類Cに複数人設定されている場合、配列でユーザーIDが設定されますので、そのユーザーIDをひとつづつAddressに設定している。最も、難しかったです。また、重複を削除するため、Setオブジェクトを使用しているます。