見出し画像

[kintone] レコードを連続で登録したいときのJSカスタマイズ

こんにちは、キン担ラボの本橋です。

ちょっとしたkintoneカスタマイズのコーナーです。今回は『レコードを連続で登録したい』ときに使えるJSカスタマイズです。

中身1~5の日報レコードを連続作成してます

そのままなんですが、連続でレコード登録したいことがあって作ったものです。

セットアップ手順

以下のコードにserialcreate.js みたいな名前をつけて保存してください。そのファイルをJSカスタマイズとして登録すれば動きます。

(function() {
    'use strict';

    // レコード追加イベントに対するハンドラー
    kintone.events.on('app.record.create.submit.success', function(event) {
        try {
            // 現在のホスト名を取得
            var hostname = window.location.origin;
            // 現在のアプリIDを取得
            var appId = kintone.app.getId();
            // レコード追加画面のURLを構築
            var recordCreateUrl = hostname + '/k/' + appId + '/edit';
            
            // event.urlにレコード追加画面のURLを代入
            event.url = recordCreateUrl;

            // eventを返す
            return event;
        } catch (error) {
            console.error('エラーが発生しました:', error);
            throw error;
        }
    });
})();

シンプルですね。特定のイベントを受けて画面遷移するだけです。

仕組み

このJSカスタマイズは2つのkintone APIで構成されています。

  1. レコード追加成功イベント

  2. 画面遷移API

どちらも通常のWebページ用のイベントではなく、kintone用のAPIとして用意されているイベントです。ご注意ください。

ChatGPTなどのAIにこういったコードを書いてもらう場合には、1のイベントのタイミングで、2のAPIを使って画面遷移してください、という指示をするとうまくいくかと思います。

ここからスタートしたとして追加要素としては、例えば保存したあとに必ずレコード追加画面に遷移してしまうので、「保存」ボタンの横に「連続追加」みたいなボタンを用意しておいて、ここから入ったときだけ連続追加モードになる、みたいにしておけると良さそうです。

APIの接着剤

kintoneのカスタマイズに限らず、Web系のシステムを構築しているとAPIを貼り付けあわせるパッチワークを作っている感覚に陥ります。多分、僕がオモシロイと思っているプログラミングはそういうコンポーネントを組み合わせて欲しいものを作り上げることなんだと思います。

ChatGPT以降、こういう接着剤的なプログラミングがとても手軽にできるようになりました。なにせAPIを覚えて無くてもAIが勝手に組み合わせて教えてくれる時代です。

とはいえ存在しないAPIをハルシネーションしてくることもあるのでまだまだ要注意。そのうちAI内部のサンドボックスで実行してトライアンドエラーした結果をだしてくれるようになることでしょう。

いいなと思ったら応援しよう!