レコード保存後に自動でステータス更新!

著者名:三宅 智子( サイボウズ株式会社 (External link)

目次

はじめに

申請系のアプリでよくステータスの回し忘れに後から気付いて慌ているという経験はありませんか?
実はサイボウズ社内でもよくあります。

通知機能を使って「ステータスが未処理だったら、○日後に通知を飛ばす」など設定することでリマインドさせることもできますが、ここでは別の方法を紹介します。
地味ですが、あるとちょっとうれしいTipsです。

今回はレコード保存後に自動でステータス更新をする方法の説明です。
保存成功後のイベントは次の3種類ですが、ここではレコード追加画面で保存に成功した後のイベントを利用して実装します。

完成イメージ

レコード追加画面の保存成功後に、休暇申請アプリのアクション「申請する」が自動で実行され、ステータスが「申請中」に進むことを確認できます。
(確認のために本Tipsでは成功後のalertを出しています)

レコード追加画面はこんな感じです。

アプリの準備

今回は、アプリストアから「休暇申請パック」を追加し、「休暇申請」アプリのフィールドを次のとおり設定しました。
他のフィールドは今回のカスタマイズには影響しないので、自由に設定していただいてかまいません。

フィールド名 フィールドコード フィールドタイプ
承認者 authorizer ユーザー選択

PC用のJavaScriptファイル

アプリの設定から「JavaScript / CSSによるカスタマイズ」を開き、次のサンプルコードをエディタに貼り付けて、ファイルをアップロードしてください。

サンプルコード

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * Auto status update of sample program
 * Copyright (c) 2025 Cybozu
 *
 * Licensed under the MIT License
*/
(() => {
  'use strict';

  // レコード追加画面の保存成功後イベント
  kintone.events.on('app.record.create.submit.success', async (event) => {
    const record = event.record;
    const APP_ID = event.appId;
    const RECORD_ID = event.recordId;
    const authorizer = record.authorizer.value[0].code;
    try {
      // レコードのステータス更新API
      const body = {
        app: APP_ID,
        id: RECORD_ID,
        action: '申請する',
        assignee: authorizer,
        revision: 1
      };
      await kintone.api(kintone.api.url('/k/v1/record/status', true), 'PUT', body);
      alert('申請するボタンを実行しました');
      return event;
    } catch (error) {
      alert(error.message);
      return event;
    }
  });
})();

プロセス管理の作業者は配列ではなく文字列なので、承認者フィールドに複数人入っていたとしても1人目しか実行できない点、ご注意ください。

関連Tips

最後に

今回は レコード追加画面で保存に成功した後のイベント を使ってステータスを自動更新する方法を紹介しました。
保存後に自動採番をする方法や、プロセス管理実行時にフィールドの値を入力する方法などの関連Tipsなどもありますので、ぜひお試しください。

information

このTipsは、2025年6月版kintoneで動作を確認しています。