イベントオブジェクトで実行できる操作

目次

kintone のイベントオブジェクトで実行できる操作を説明します。

レコード一覧画面のイベント

表示するとき インライン編集を開始するとき フィールドの値を変更するとき 保存するとき 保存した後 削除するとき
フィールドの値を書き換える
フィールドの編集可/不可を設定する
フィールドにエラーを表示する
画面上部にエラーを表示する
指定した URL に遷移する
Promise 対応

フィールドの値を書き換える

フィールドの値を書き換えるには、イベントハンドラー内でレコードのフィールドの値を変更し、イベントオブジェクトを return します。

  • フィールドの編集を不可に設定しても、値を書き換えることができます。
  • 編集権限のないフィールドの値を書き換えた場合、フィールドの値を変更できません。
  • 同じイベントタイプの複数のハンドラーが登録されている場合、最後のハンドラーが return した値を基準に反映されます。
    最後に実行されるハンドラーがイベントオブジェクトを return しない場合、フィールドの値は反映されません。
非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行
  • 添付ファイル
  • ルックアップ
  • ルックアップコピー先フィールド
サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、文字列 1 行(フィールドコード:文字列_0)の値を書き換える例です。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.ドロップダウン_0', (event) => {
  const record = event.record;
  record['文字列_0'].value = 'この文字列で上書き';
  return event;
});

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1)の値を書き換える例です。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.ドロップダウン_0', (event) => {
  const tableRow = event.record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].value = 'テーブルの1行目を上書き';
  return event;
});

フィールドの編集可/不可を設定する

フィールドに編集可/不可を設定するには、イベントハンドラー内でフィールドの disabled プロパティに真偽値を設定して、イベントオブジェクトを return します。

  • 編集可にするとき:「false」
  • 編集不可にするとき:「true」

編集権限のないフィールドの disabled プロパティに「false」を設定しても、フィールドは編集可になりません。

非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行
サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)の値が変更されたとき、文字列 1 行(フィールドコード:文字列_0)を編集不可にする例です。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.ドロップダウン_0', (event) => {
  const record = event.record;
  record['文字列_0'].disabled = true;
  return event;
});

フィールドにエラーを表示する

フィールドにエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、文字列 1 行(フィールドコード:文字列_0)にエラーを表示する例です。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.ドロップダウン_0', (event) => {
  const record = event.record;
  record['文字列_0'].error = 'エラーです!';
  return event;
});

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1)にエラーを表示する例です。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.ドロップダウン_0', (event) => {
  const tableRow = event.record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].error = 'エラーです!';
  return event;
});

画面上部にエラーを表示する

画面上部にエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、画面上部にエラーを表示する例です。

1
2
3
4
kintone.events.on('app.record.create.change.ドロップダウン_0', (event) => {
  event.error = 'エラーです!';
  return event;
});

指定した URL に遷移する

イベント処理後に指定した URL へ遷移するには、イベントハンドラー内で url プロパティに遷移する URL を設定して、イベントオブジェクトを return します。

  • 「null」を設定すると、画面の遷移は発生しません。
サンプルコード

レコードの保存成功後に「https://cybozu.co.jp」へ遷移する例です。

1
2
3
4
kintone.events.on('app.record.index.edit.submit.success', (event) => {
  event.url = 'https://cybozu.co.jp';
  return event;
});

レコード詳細画面のイベント

表示するとき 削除するとき プロセス管理でアクションを実行するとき
フィールドの値を書き換える
画面上部にエラーを表示する
Promise 対応

フィールドの値を書き換える

フィールドの値を書き換えるには、イベントハンドラー内でレコードのフィールドの値を変更し、イベントオブジェクトを return します。

  • 値を書き換えるには、レコードの編集権限が必要です。
  • ラジオボタンフィールドに空文字を指定した場合、ラジオボタンの初期値に設定されている選択肢が選ばれます。
  • フィールドの編集を不可に設定しても、フィールドの値を書き換えることができます。
  • 編集権限のないフィールドの値を書き換えた場合、フィールドの値を変更できません。
  • 同じイベントタイプの複数のハンドラーが登録されている場合、最後のハンドラーが return した値を基準に反映されます。
    最後に実行されるハンドラーがイベントオブジェクトを return しない場合、フィールドの値は反映されません。
非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行
  • 添付ファイル
  • ルックアップ
  • ルックアップコピー先フィールド
サンプルコード

プロセスのアクションを実行して次のステータスに変わったとき、文字列 1 行(フィールドコード:文字列_0)の値を書き換える例です。

1
2
3
4
5
kintone.events.on('app.record.detail.process.proceed', (event) => {
  const record = event.record;
  record['文字列_0'].value = 'この文字列で上書き';
  return event;
});

プロセスのアクション実行後、次のステータスに変わったとき、テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1)の値を書き換える例です。

1
2
3
4
5
6
kintone.events.on('app.record.detail.process.proceed', (event) => {
  const record = event.record;
  const tableRow = record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].value = 'テーブルの1行目を上書き';
  return event;
});

画面上部にエラーを表示する

画面上部にエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

サンプルコード

レコード詳細画面でレコードを削除するとき、レコードにエラーを表示する例です。

1
2
3
4
kintone.events.on('app.record.detail.delete.submit', (event) => {
  event.error = 'エラーです';
  return event;
});

レコード追加画面のイベント

表示するとき フィールドの値を変更するとき 保存するとき 保存した後
フィールドの値を書き換える
フィールドの編集可/不可を設定する
フィールドにエラーを表示する
画面上部にエラーを表示する
ルックアップを自動取得する
ルックアップのコピー先のフィールドの値を自動でクリアする
値を変更したフィールドやテーブル行のフィールドデータを取得する
指定した URL に遷移する
Promise 対応

フィールドの値を書き換える

フィールドの値を書き換えるには、イベントハンドラー内でレコードのフィールドの値を変更し、イベントオブジェクトを return します。

  • フィールドの編集を不可に設定しても、フィールドの値を書き換えることができます。
  • 編集権限のないフィールドの値を書き換えた場合、フィールドの値を変更できません。
  • 同じイベントタイプの複数のハンドラーが登録されている場合、最後のハンドラーが return した値を基準に反映されます。
    最後に実行されるハンドラーがイベントオブジェクトを return しない場合、フィールドの値は反映されません。
非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行
  • 添付ファイル
  • ルックアップ
  • ルックアップコピー先フィールド
サンプルコード

文字列 1 行(フィールドコード:文字列_0)に初期値をセットする例です。

1
2
3
4
5
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  record['文字列_0'].value = 'この文字列で上書き';
  return event;
});

次のことを行う例です。

  • テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1)に初期値を設定する。
  • テーブルの末尾に行を追加する。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  const tableRow = record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].value = 'テーブルの1行目を上書き';

  // テーブルの末尾に行を追加する
  const newRow = {
    value: {
      文字列_1: {
        type: 'SINGLE_LINE_TEXT', // テーブルの行を追加するには、フィールドタイプを指定する必要がある
        value: 'テーブルに追加する行',
      },
    },
  };
  tableRow.push(newRow);
  return event;
});

フィールドの編集可/不可を設定する

フィールドに編集可/不可を設定するには、イベントハンドラー内でフィールドの disabled プロパティに真偽値を設定して、イベントオブジェクトを return します。

  • 編集可にするとき:「false」
  • 編集不可にするとき:「true」

編集権限のないフィールドの disabled プロパティに「false」を設定しても、フィールドは編集可になりません。

非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行
サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)の値が変更されたとき、文字列 1 行(フィールドコード:文字列_0)を編集不可にする例です。

1
2
3
4
5
kintone.events.on('app.record.create.change.ドロップダウン_0', (event) => {
  const record = event.record;
  record['文字列_0'].disabled = true;
  return event;
});

フィールドにエラーを表示する

フィールドにエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

非対応フィールド
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、文字列 1 行(フィールドコード:文字列_0)にエラーを表示する例です。

1
2
3
4
5
kintone.events.on('app.record.create.change.ドロップダウン_0', (event) => {
  const record = event.record;
  record['文字列_0'].error = 'このエラーメッセージを表示';
  return event;
});

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1)にエラーを表示する例です。

1
2
3
4
5
6
kintone.events.on('app.record.create.change.ドロップダウン_0', (event) => {
  const record = event.record;
  const tableRow = record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].error = 'テーブルの1行目にエラーを表示';
  return event;
});

画面上部にエラーを表示する

画面上部にエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、画面上部にエラーを表示する例です。

1
2
3
4
kintone.events.on('app.record.create.change.ドロップダウン_0', (event) => {
  event.error = 'エラーです!';
  return event;
});

ルックアップを自動取得する

ルックアップのコピー先の値を自動で設定するには、ルックアップフィールドの lookup プロパティに「UPDATE」または「true」を設定して、イベントオブジェクトを return します。

  • ルックアップの検索結果が 1 件の場合のみ、自動取得できます。
サンプルコード

レコード追加画面を開いたとき、ルックアップ(フィールドコード:ルックアップ_0)に値を設定してデータを取得する例です。

1
2
3
4
5
6
7
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  record['ルックアップ_0'].value = '0001';
  record['ルックアップ_0'].lookup = true;
  // または record['ルックアップ'].lookup = 'UPDATE';
  return event;
});

ルックアップのコピー先のフィールドの値を自動でクリアする

ルックアップのコピー先の値を自動でクリアするには、ルックアップフィールドの lookup プロパティに「CLEAR」を設定して、イベントオブジェクトを return します。

サンプルコード

レコード追加画面を開いたとき、ルックアップ(フィールドコード:ルックアップ_0)のコピー先のフィールドの値を空にする例です。

1
2
3
4
5
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  record['ルックアップ_0'].lookup = 'CLEAR';
  return event;
});

値を変更したフィールドやテーブル行のフィールドデータを取得する

変更のあったフィールドやテーブル行のフィールドのデータを取得します。

  • row プロパティは、テーブル内のイベント時のみ取得できます。
  • テーブル内の行を削除した際には、row プロパティは「null」になります。
サンプルコード

レコード追加画面で、ドロップダウン(フィールドコード:ドロップダウン_0)の値が変更されたときの、変更のあったテーブルの行データを取得する例です。

1
2
3
4
5
kintone.events.on('app.record.create.change.ドロップダウン_0', (event) => {
  const row = event.changes.row;
  const field = event.changes.field;
  return event;
});

指定した URL に遷移する

イベント処理後に指定した URL へ遷移するには、イベントハンドラー内で url プロパティに遷移する URL を設定して、イベントオブジェクトを return します。

  • 「null」を設定すると、画面の遷移は発生しません。
サンプルコード

レコードの保存成功後に「https://cybozu.co.jp」へ遷移する例です。

1
2
3
4
kintone.events.on('app.record.create.submit.success', (event) => {
  event.url = 'http://cybozu.co.jp/';
  return event;
});

レコード編集画面のイベント

表示するとき フィールドの値を変更するとき 保存するとき 保存した後
フィールドの値を書き換える ×
フィールドの編集可/不可を設定する × ×
フィールドにエラーを表示する ×
画面上部にエラーを表示する ×
ルックアップを自動取得する × ×
ルックアップのコピー先のフィールドの値を自動でクリアする × ×
値を変更したフィールドやテーブル行のフィールドデータを取得する × × ×
指定した URL に遷移する × × ×
Promise 対応 ×

フィールドの値を書き換える

フィールドの値を書き換えるには、イベントハンドラー内でレコードのフィールドの値を変更し、イベントオブジェクトを return します。

  • フィールドの編集を不可に設定しても、フィールドの値を書き換えることができます。
  • 編集権限のないフィールドの値を書き換えた場合、フィールドの値を変更できません。
  • 同じイベントタイプの複数のハンドラーが登録されている場合、最後のハンドラーが return した値を基準に反映されます。
    最後に実行されるハンドラーがイベントオブジェクトを return しない場合、フィールドの値は反映されません。
サンプルコード

レコード編集画面を開いたときに、次のフィールドに初期値を設定する例です。

  • 文字列 1 行(フィールドコード:文字列_0
  • テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1
1
2
3
4
5
6
7
kintone.events.on('app.record.edit.show', (event) => {
  const record = event.record;
  record['文字列_0'].value = 'この文字列で上書き';
  const tableRow = record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].value = 'テーブルの1行目を上書き';
  return event;
});
非対応フィールド

次のフィールドは、保存実行前イベントのハンドラーでフィールドの値を書き換えて return しても、フォームには反映されません。

  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行
  • 添付ファイル
  • ルックアップ
  • ルックアップアップのコピー先のフィールド

フィールドの編集可/不可を設定する

フィールドに編集可/不可を設定するには、イベントハンドラー内でフィールドの disabled プロパティに真偽値を設定して、イベントオブジェクトを return します。

  • 編集可にするとき:「false」
  • 編集不可にするとき:「true」

編集権限のないフィールドの disabled プロパティに「false」を設定しても、フィールドは編集可になりません。

サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)の値が変更になったとき、文字列 1 行(フィールドコード:文字列_0)を編集不可にする例です。

1
2
3
4
kintone.events.on('app.record.edit.change.ドロップダウン_0', (event) => {
  event.record['文字列_0'].disabled = true;
  return event;
});
編集可/不可にできないフィールド

次のフィールドの値を編集可/不可を設定して return しても、フォームには反映されません。

  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列 1 行

フィールドにエラーを表示する

フィールドにエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

サンプルコード

次のフィールドにエラーを表示する例です。

  • 文字列 1 行(フィールドコード:文字列_0
  • テーブル(フィールドコード:テーブル_0)の 1 行目の文字列 1 行(フィールドコード:文字列_1
1
2
3
4
5
6
7
kintone.events.on('app.record.edit.change.ドロップダウン_0', (event) => {
  const record = event.record;
  record['文字列_0'].error = 'このエラーメッセージを表示';
  const tableRow = record['テーブル_0'].value;
  tableRow[0].value['文字列_1'].error = 'テーブルの 1 行目にエラーを表示';
  return event;
});

次のフィールドは、エラーメッセージを設定しても、エラーは発生しません。

  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算

画面上部にエラーを表示する

画面上部にエラーメッセージを表示するには、イベントハンドラー内でフィールドの error プロパティに表示するメッセージを設定して、イベントオブジェクトを return します。

サンプルコード

ドロップダウン(フィールドコード:ドロップダウン_0)のフィールドの値が変更されたとき、画面上部にエラーを表示する例です。

1
2
3
4
kintone.events.on('app.record.edit.change.ドロップダウン_0', (event) => {
  event.error = 'エラーです!';
  return event;
});

ルックアップを自動取得する

ルックアップのコピー先の値を自動で設定するには、ルックアップフィールドの lookup プロパティに「UPDATE」または「true」を設定して、イベントオブジェクトを return します。

  • ルックアップの検索結果が 1 件の場合のみ、自動取得できます。
  • PC とモバイルで利用できます。
サンプルコード

レコード編集画面を開いたときに、ルックアップ(フィールドコード:ルックアップ_0)に値を設定してデータを取得する例です。

1
2
3
4
5
6
kintone.events.on('app.record.edit.show', (event) => {
  const record = event.record;
  record['ルックアップ_0'].value = '0001'; // ルックアップフィールドの値
  record['ルックアップ_0'].lookup = true; // または record['ルックアップ_0'].lookup = 'UPDATE';
  return event;
});

ルックアップのコピー先のフィールドの値を自動でクリアする

ルックアップのコピー先の値を自動でクリアするには、ルックアップフィールドの lookup プロパティに「CLEAR」を設定して、イベントオブジェクトを return します。

  • PC とモバイルで利用できます。
サンプルコード

レコード編集画面を開いたときに、ルックアップ(フィールドコード:ルックアップ_0)のコピー先のフィールドの値を空にする例です。

1
2
3
4
5
kintone.events.on('app.record.edit.show', (event) => {
  const record = event.record;
  record['ルックアップ_0'].lookup = 'CLEAR';
  return event;
});

値を変更したフィールドやテーブル行のフィールドデータを取得する

変更のあったフィールドやテーブル行のフィールドのデータを取得します。

  • row プロパティは、テーブル内のイベント時のみ取得できます。
  • テーブル内の行を削除した際には、row プロパティは「null」になります。
サンプルコード

レコード編集画面で、ドロップダウン(フィールドコード:ドロップダウン_0)の値が変更されたときの、変更のあったテーブルの行データを取得する例です。

1
2
3
4
5
kintone.events.on('app.record.edit.change.ドロップダウン_0', (event) => {
  const row = event.changes.row;
  const field = event.changes.field;
  return event;
});

指定した URL に遷移する

イベント処理後に指定した URL へ遷移するには、イベントハンドラー内で url プロパティに遷移する URL を設定して、イベントオブジェクトを return します。

  • 「null」を設定すると、画面の遷移は発生しません。
サンプルコード

レコードの保存成功後に「https://cybozu.co.jp」へ遷移する例です。

1
2
3
4
5
kintone.events.on('app.record.edit.submit.success', (event) => {
  event.url = 'https://cybozu.co.jp/';
  console.log('url: ' + event.url);
  return event;
});

イベント共通

Promise 対応

Web ブラウザーの Promise を return することで、非同期処理の完了を待ってからフィールドの値に応じた制御ができます。
同じ kintone のイベントに複数のイベントハンドラーが登録されているとき、エラーなどが発生して Thenable オブジェクトが棄却された場合には、後続のイベントハンドラーの処理は実行されません。

記述方法は kintone カスタマイズで非同期処理をする を参考にしてください。