失礼いたします。
レコードが新規で追加(作成)された際にslackへ通知が飛ぶ設定(コード)はどうのようになるでしょうか。
プロセスが処理中、完了となった際の設定は以下の記事を拝見して、行えなのですが、新規で登録された場合の設定(コード)をご教示いただけますと幸いですhttps://developer.cybozu.io/hc/ja/articles/207419736?page=1#comment_360000139566
以上、何卒よろしくお願い申し上げます。
失礼いたします。
レコードが新規で追加(作成)された際にslackへ通知が飛ぶ設定(コード)はどうのようになるでしょうか。
プロセスが処理中、完了となった際の設定は以下の記事を拝見して、行えなのですが、新規で登録された場合の設定(コード)をご教示いただけますと幸いですhttps://developer.cybozu.io/hc/ja/articles/207419736?page=1#comment_360000139566
以上、何卒よろしくお願い申し上げます。
yaさん
kintone JavaScript APIのレコード追加イベントで発火させると良いと思います。
通知が飛ぶのはレコードが保存された直後が良いかと思われるので、
app.record.create.submit.successイベントで発火させると良いと思います。
https://developer.cybozu.io/hc/ja/articles/201941984#step3
以下、簡単にですがコードです。
(function () {
‘use strict’;
kintone.events.on(‘app.record.create.submit.success’, function(event) {
varthisUrl = ‘https://<ドメイン名>.cybozu.com/k/’ + kintone.app.getId() + ‘/show#record=’ + kintone.app.record.getId();
varwebhookUrl = ‘https://hooks.slack.com/services/<WebHookのURLパラメータ>’;
varpayload = {
‘text’:‘案件<’ + thisUrl + ‘|「’ + e.record.<フィールドコード>.value + ‘」>が完了しました!’;
};
return new kintone.Promise(function(resolve, reject) {
kintone.proxy(webhookUrl, ‘POST’, {}, payload, function(body,status,headers) {
console.log(status,body);
resolve(e);
});
});
});
})();
BBさま
ご回答いただき誠にありがとうございます。
ご教示いただいた内容にて記載させていただいたのですが、私の理解不足で
コードにエラーが出てしまいました。大変お手数ではございますが、どこか不備などございましたら
ご指摘いただけますと幸いです。
なお、コード中の「e.record.recno.value」の「recno」はレコード番号に付与したフィールドコードとなります。
yaさん
すみません。いろいろとコピペによる記述ミスをしていました。
8行目のvar payload オブジェクト内のセミコロンが必要ありませんでした。
あと、変数定義のスペースが消えていたのでそこの修正も必要です
(5行目var thisUrl となるところが varthisUrlとなっていました。6、7行目も同様です)
また、jQueryを使用する場合は17行目の括弧内にjQueryを記述します。
jQuery.noConflict();
(function () {
‘use strict’;
kintone.events.on(‘app.record.create.submit.success’, function(e) {
var thisUrl = ‘https://<ドメイン名>.cybozu.com/k/’ + kintone.app.getId() + ‘/show#record=’ + kintone.app.record.getId();
var webhookUrl = ‘https://hooks.slack.com/services/<WebHookのURLパラメータ>’;
var payload = {
‘text’:‘案件<’ + thisUrl + ‘|「’ + e.record.recno.value + ‘」>が完了しました!’
};
return new kintone.Promise(function(resolve, reject) {
kintone.proxy(webhookUrl, ‘POST’, {}, payload, function(body,status,headers) {
console.log(status,body);
resolve(e);
});
});
});
})(jQuery);
BBさま
度重なるご回答、誠にありがとうございます。
ご教示いただいたコードにて実装してみたところ、無事通知が飛んで来ました!
まだコードの内容の一つ一つの意味はわかっておりませんが、徐々に理解できればと
思います。
この度はご回答いただき、重ねてお礼申し上げます。
こちらのコードをそのまま実装したところ、
kintone.app.record.getId();の部分が null になって
slack上に通知されるのですが、解決方法はありますでしょうか?