日付フィールド、時刻フィールド、ドロップダウンをテーブル内に設定しています。
そのテーブル内のドロップダウンの選択を変えて保存するごとに、メール通知するように設定したいと考えています。
kintoneの標準機能の「レコードの条件通知」を変更する事で通知が飛ぶように設定しても、一度そのテーブル内でその条件を満たしてしまうと通知が飛びません。
テーブル内の別の行で条件を満たしていても、新たな行で条件を満たすごとに通知が飛ぶ設定は出来ますでしょうか?
もし、それが出来ないようであれば、新たな行を追加して保存するごとに通知が飛ぶような設定方法はありますでしょうか?
大変恐縮ですが、どなたかご教授頂きたく、よろしくお願い致します。
サブテーブル外に通知用フィールドを作成して、サブテーブルの条件を満たした場合に通知用フィールドを変更し、別途submit.successイベントで通知用フィールドをリセットするAPIを作成することで可能かと思います。
mls-hashimoto様
ご回答下さり、ありがとうございました。
私の期待する動作はお伝え下さった内容で叶うと思いますが、その書き方が分かりません。
ラジオボタンをテーブル外に設置しようと思いますが、その場合はどのような書き方になりますでしょうか?
フィールドコード:通知設定
項目:「通知しない」「通知する」
→「通知する」を選択して保存した場合、「通知しない」に戻る
無知で本当に恐縮ですが、ご教授頂けますと幸いです。
小野 さま
以下のような形で可能かと思います。
新たな行で条件を満たした場合、とあるので、サブテーブル最終行のドロップダウンが何かしら選択された場合に通知設定フィールドを変更するようにしてあります。
途中の行でもドロップダウンに変更があった場合に通知フィールドを変更するのであれば、if文の条件を削除すれば可能です。
ドロップダウンが特定の値のみといった条件を追加するのであれば、最終行か途中の行も含むかでまた書き方が変わります。
(function() {
'use strict';
// 編集中に通知設定を変更する処理
let dropdown = 'ドロップダウン'; // ドロップダウンのフィールドコード
let subtable = 'テーブル'; // サブテーブルのフィールドコード
kintone.events.on([
'app.record.create.change.' + dropdown, 'app.record.edit.change.' + dropdown
], (event) => {
let record = event.record;
if (record[subtable].value[record[subtable].value.length - 1].value[dropdown].value) {
record['通知設定'].value = '通知する';
}
return event;
});
// 保存時に通知設定を戻す処理
kintone.events.on([
'app.record.create.submit.success', 'app.record.edit.submit.success'
], (event) => {
let record = event.record, appId = event.appId, recordId = event.recordId;
if (record['通知設定'].value == '通知しない') return event;
let putRecord = {
app: appId,
id: recordId,
record: {
'通知設定': {
value: '通知しない'
}
}
};
return kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', putRecord).then((resp) => {
return event;
}).catch((error) => {
console.error(error);
return event;
});
});
})();
system
(system)
クローズされました:
5
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。