レコードが新規で追加(作成)された際にslackへの通知

失礼いたします。

レコードが新規で追加(作成)された際に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上に通知されるのですが、解決方法はありますでしょうか?