【kintoneカスタマイズ】レコードが登録されたら、チェックボックスに値を入れてチェックしたことにしたい。


今回は、レコードの登録を成功させたときにという条件なので、

イベントハンドラーを以下のように設定しました。

app.record.create.submit

また、フィールドの設定は以下のようにした。

$$
\begin{array}{|c|c|c|} \hline
フィールド名& フィールドコード & フィールドタイプ \\ \hline
checkboxA & checkboxA & チェックボックス \\ \hline
\end{array}
$$

checkboxAには「済」という値のみ設定した。

kintone.events.on('app.record.create.submit', function(event) {
    var record = event.record;

    // チェックボックスフィールドの値を取得
    var checkboxValue = record['checkboxA'].value;

    // 「済」という値がチェックボックスに入っているか確認
    if (checkboxValue.indexOf('済') !== -1) {
        // 「済」という値が入っていた場合はそのままレコードを保存
        return event;
    } else {
        // チェックボックスに「済」という値を追加
        checkboxValue.push('済');
        record['checkboxA'].value = checkboxValue;

        return event;
    }
});

ちなみにこのままだと、新規レコードを作成したときしかイベントが発生しないので、レコードの編集の際にも同様の処理をしたいなと思ったときは、
”app.record.edit.submit”をイベントハンドラーに追加します。
以下が追加した記載方法
イベントハンドラーを配列で記載しています。

kintone.events.on(['app.record.create.submit',
                   'app.record.edit.submit'],

function(event) {
    var record = event.record;

    // チェックボックスフィールドの値を取得
    var checkboxValue = record['checkboxA'].value;

    // 「済」という値がチェックボックスに入っているか確認
    if (checkboxValue.indexOf('済') === -1) {
       //「済」という値が入力されていない場合
       // チェックボックスに「済」という値を追加
        checkboxValue.push('済');
        record['checkboxA'].value = checkboxValue;
        
        
        return event;
    } else {
        // 「済」という値が入っている場合に行う処理

        return event;
    }
});

このとき、レコードの登録が完了したときに使用する”app.record.edit.submit.success”を使いたくなる人もいるようなのですが、これは、レコードの編集が終わってしまっているので、上記のプログラムを走らせても編集することができないため、意図としない動きになります。

登録ボタンを押したときに処理を開始するようにすると、コードがシンプルです。


よろしければサポートをお願いいたします! いただいたサポートは活動費、活動応援費として使用させていただきます。より多くの人の健康のために!