お世話になっております。
またまた初歩的な質問で恐縮です。
現在、slack連携を検討している中で、下記のことをやりたいと思っております。
やりたいこと
・レコードのサブテーブル内の値をslackで通知
・サブテーブルが複数行の場合はその都度通知をする
上記、ユーザーにA、Bといたらそれぞれ通知をする。(slackのチャンネルは分けなくてもOK)
–
(テーブルの定義は省略)
for (var i = 0; i < rec.length; i++) {
var usr = rec[i].value[“ユーザー選択”].value[0].name;
var date = rec[i].value[“日付”].value;
var payload = {
‘text’: usr + “さんが登録されました。” +
date + “までに対応お願いいたします!”
}
}
return new kintone.Promise(function(resolve, reject) {
kintone.proxy(WEBHOOK_URL, ‘POST’, {}, payload, function(body, status, headers) {
console.log(status, body);
resolve(event);
});
});
–
上記のソースでは2番目に取得した値(B)のみがslackに通知されてしまいます。
1番目の値(A)も通知するためにはどこを修正すればいいのかご教示ください。
よろしくお願いいたします。
こんにちは。
Slackへ通知する処理がfor文の外側にあるからでは無いでしょうか?
(for文の処理が終わってから、1回だけSlackへの通知が実行されている状態)
asagaさん
こんにちは!ご回答ありがとうございます。
Slackへの通知処理をfor文の内側へ入れてみたのですが、今度は一番目(A)のみの表記になってしまいました。
開発ツール上も特にエラーはないのですが、ループが1回で終わってしまっているみたいです。
引き続き確認してみようと思います。もし指摘事項あれば引き続きご教示いただけますと幸いです。
–
for (var i = 0; i < rec.length; i++) {
var usr = rec[i].value[“ユーザー選択”].value[0].name;
var date = rec[i].value[“日付”].value;
var payload = {
‘text’: usr + “さんが登録されました。” +
date + “までに対応お願いいたします!”
}
return new kintone.Promise(function(resolve, reject) {
kintone.proxy(WEBHOOK_URL, ‘POST’, {}, payload, function(body, status, headers) {
console.log(status, body);
resolve(event);
});
});
}
あー、すいません、Primiseなんでfor文の中だと想定した動きにはならないですねー。
kintone.Promise.allを使う事になると思いますが、一度developer network内を検索して頂けると・・・。
度々ありがとうございます。。
やはりPromiseの部分ですか…。
非常に助かりました!
追記
やりたい動作が無事できました。
助言いただきありがとうございます!