Index
イベント
- レコード一覧画面の表示後イベント
- レコード一覧画面のインライン編集開始時イベント
- レコード一覧画面のインライン編集フィールド値変更時イベント
- レコード一覧画面のインライン編集保存実行前イベント
- レコード一覧画面のインライン編集保存成功後イベント
- レコード一覧画面のレコード削除前イベント
eventオブジェクトで実行できる操作
その他
イベント
レコード一覧画面の表示後イベント
レコード一覧画面が表示された後に発生するイベントです。
- PCとモバイルで利用できます。
- スペースに貼りつけたアプリには利用できません。
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
イベントタイプ
環境 | イベントタイプ | イベントが発生するタイミング |
---|---|---|
PC | app.record.index.show |
|
モバイル |
mobile.app.record.index.show |
|
※1 レコード一覧の表示形式が「表形式」の場合のみ。
※2 レコード一覧の表示形式が「カレンダー」の場合のみ。
eventオブジェクトのプロパティ
PC、モバイルで同一の内容となります。
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 数値 | アプリID |
viewType | 文字列 | 'list' または 'calendar' または 'custom' |
viewId | 数値 | ビューID |
viewName | 文字列 | ビュー名 |
records | 配列 またはオブジェクト |
viewType によって下記の値となる 例: { "2013-12-01": [record1, record2], "2013-12-20": [record1] } ・custom かつ ページネーションがtrue : レコードオブジェクト※の配列 ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
offset | 数値 |
viewType によって下記の値となる |
size | 数値 | viewType によって下記の値となる ・list : 一覧のレコード数 ・calendar : null ・custom かつ ページネーションがtrue : 一覧のレコード数 ・custom かつ ページネーションがfalse : 0 |
date | 文字列 | viewType によって下記の値となる ・calendar : カレンダービューの表示月。2013年 6月なら "2013-06" ・calendar以外 : null |
type | 文字列 |
イベントタイプ |
eventオブジェクトで実行できる操作
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることにより、非同期処理の完了を待ってからeventオブジェクトで実行できる操作を実行することができます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
サンプル
レコード一覧画面の表示時にメッセージを表示します。
レコード一覧画面のインライン編集開始時イベント
レコード一覧画面のインライン編集で、任意のレコードのインライン編集が開始された時に発生します。
- PCのみで利用できます。
- スペースに貼りつけたアプリでは利用できません。
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
イベントタイプ
app.record.index.edit.show
eventオブジェクトのプロパティ
PC、モバイルで同一の内容となります。
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 数値 | アプリID |
record | オブジェクト |
インライン編集開始時のデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
recordId | 文字列 | レコードID |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
- フィールドの編集可/不可を設定する をご参照ください。
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることにより、非同期処理の完了を待ってからeventオブジェクトで実行できる操作を実行することができます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
レコード一覧画面のインライン編集フィールド値変更時イベント
レコード一覧画面のインライン編集で指定フィールドの値が変更された時、フォームの値の書き換え時に発生するイベントです。
- PCのみで利用できます。
- スペースに貼りつけたアプリでは利用できません。
- トリガーとなった値の変更はキャンセルされません。
イベントタイプ
app.record.index.edit.change.<フィールドコード>
フィールドコードに指定可能なフィールド
<フィールドコード>に存在するフィールドコード、かつ次の種類のフィールドを指定した場合のみハンドラーが実行されます。 存在しないフィールドコード、または下記の種類以外のフィールドを指定した場合は何も発生しません。
- ラジオボタン
- ドロップダウン
- チェックボックス
- 複数選択
- ユーザー選択
- 組織選択
- グループ選択
- 日付
- 時刻
- 日時
- 文字列(1行)
- 数値
※文字列(1行)と数値フィールドに関して、イベントが発生するタイミングは以下の通りです。ブラウザによって少し挙動が異なります。
- コントロールからフォーカスが外れたタイミング
- ルックアップで値がコピーされたタイミング
- 文字列(1行)フィールドで「自動計算する」設定になっている場合は、自動計算が反映されたタイミング(レコード一覧画面の編集時は、自動計算処理自体が無効なため対象外)
eventオブジェクトのプロパティ
PC、モバイルで同一の内容となります。
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 文字列 | アプリID |
record | オブジェクト |
イベント発生時点のユーザー入力のデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
recordId | 文字列 | レコードID |
changes | オブジェクト | 変更されたオブジェクト |
changes.field | オブジェクト | 変更されたフィールドのオブジェクト |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
- フィールドの値の書き換える をご参照ください。
- フィールドの編集可/不可を設定する をご参照ください。
- フィールドにエラーを表示する をご参照ください。
- レコードにエラーを表示する をご参照ください。
- 変更されたフィールドを取得する をご参照ください。
注意事項
イベント処理の記述方法の注意事項をご確認下さい。
レコード一覧画面のインライン編集の保存実行前イベント
レコード一覧画面でインライン編集の保存ボタンをクリックしたあとに発生するイベントです。
- PCのみで利用できるイベントです。
- スペースに貼りつけたアプリでは発生しません。
- falseをreturnすると保存処理をキャンセルできます。
- フィールドにエラーを表示するやレコードにエラーを表示するのようにerrorプロパティに値を設定したeventオブジェクトをreturnすると保存処理をキャンセルできます。
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
イベントタイプ
app.record.index.edit.submit
eventオブジェクトのプロパティ
PC、モバイルで同一の内容となります。
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 文字列 | アプリID |
recordId | 文字列 | レコードID |
record | オブジェクト |
ユーザー入力のデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
- フィールドの値の書き換える をご参照ください。
- フィールドにエラーを表示する をご参照ください。
- レコードにエラーを表示する をご参照ください。
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることにより、非同期処理の完了を待ってからeventオブジェクトで実行できる操作を実行することができます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
注意事項
イベント処理の記述方法の注意事項をご確認下さい。
レコード一覧画面のインライン編集の保存成功後イベント
レコード一覧画面のインライン編集の保存がサーバー側で成功した後に発生します。
- PCのみで利用できます。
- スペースに貼りつけたアプリでは利用できません。
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
- 保存が失敗した場合にはイベントが実行されません。
イベントタイプ
app.record.index.edit.submit.success
eventオブジェクトのプロパティ
PC、モバイルで同一の内容となります。
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 数値 | アプリID |
recordId | 文字列 | レコードID |
record | オブジェクト |
ユーザー入力のデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
type | 文字列 | イベントタイプ |
urlプロパティの指定
eventオブジェクトにurlプロパティを指定してeventをreturnすると、イベント処理後にそのURLに遷移します。
url プロパティの指定なし、またはnullを指定した場合は、通常通りレコード一覧のまま遷移しません。
例えば、次のように記載すると、保存成功後に画面が「http://cybozu.co.jp/」に遷移します。
eventオブジェクトで実行できる操作
ありません。
サンプル
レコード一覧画面のレコード削除前イベント
レコード一覧画面で削除ボタンをクリックしてポップアップの「削除する」をクリックしたあと発生します。
- PCのみで利用できます。
- スペースに貼りつけたアプリでは利用できません。
- false を return すると削除処理をキャンセルできます
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
イベントタイプ
app.record.index.delete.submit
eventオブジェクトのプロパティ
PC、モバイルで同一の内容となります。
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 数値 | アプリID |
record | オブジェクト |
削除対象のレコードデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
recordId | 数値 | レコードID |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
- レコードにエラーを表示する をご参照ください。
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることで、非同期処理の完了を待ってからレコードの削除を実行できます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
サンプル
kintone.Promise を利用しない場合
eventオブジェクトで実行できる操作
フィールドの値を書き換える
ハンドラーが record オブジェクトのフィールドの値を書き換えて event オブジェクトを return した場合、その値でフィールドの値を更新します。
- PCのみで利用できます。
- スペースに貼りつけたアプリには利用できません。
- フィールドの編集を不可にしても、値を書き換えることができます。
- テーブルの行追加、削除はできません。
- 追加権限のないフィールドの値を書き換えた場合はフォームには反映されません。
- 最後のハンドラーが return しない場合、フィールドの値を更新しません。
- 複数のハンドラーが登録されている場合、最後のハンドラーが return した戻り値を基準に反映されます。
サンプル
レコード一覧画面の「ドロップダウン_0」フィールドの値変更時に、「文字列_0」 フィールド、テーブル「Table」の1行目の「文字列_1」フィールドに初期値をセットします。
書き換えできないフィールド
以下のフィールドは、保存実行前イベントのハンドラーでフィールドの値を書き換えて return しても、フォームには反映されません。
- レコード番号
- 作成者
- 作成日時
- 更新者
- 更新日時
- ステータス
- 作業者
- 計算
- 自動計算にした文字列1行
- 添付ファイル
- ルックアップ
- ルックアップコピー先フィールド
フィールドの編集可/不可を設定する
ハンドラーが record オブジェクトのフィールドの disabled に true/falseを代入して event オブジェクトを return した場合は、そのフィールドは編集不可/可になります。
- PCのみで利用できます。
- スペースに貼りつけたアプリには利用できません。
- 編集権限のないフィールドを編集可能(disabled を false)にしても反映されません。
サンプル
「ドロップダウン_0」フィールドの値が変更になった時に、「文字列_0」 フィールドを編集不可にします。
編集可/不可にできないフィールド
以下のフィールドの値を編集可/不可を設定して return しても、フォームには反映されません。
- レコード番号
- 作成者
- 作成日時
- 更新者
- 更新日時
- ステータス
- 作業者
- 自動計算にした文字列1行
- 計算
フィールドにエラーを表示する
ハンドラーが record オブジェクトのフィールドの error にエラーメッセージを代入して event オブジェクトを return した場合、 フォームの値の書き換えと編集可/不可の設定はキャンセルされ、フィールドにエラーメッセージが表示されます。
- PCのみで利用できます。
- スペースに貼りつけたアプリには利用できません。
- フィールドの error に null を代入し event オブジェクトを return した場合、そのフィールドに表示されていたエラーを消すことができます。
サンプル
「文字列_0」フィールドにエラーを表示します。
以下のフィールドは、エラー値を設定しても、フィールドにエラーは表示されません。
- レコード番号
- 作成者
- 作成日時
- 更新者
- 更新日時
- ステータス
- 作業者
- 計算
レコードにエラーを表示する
ハンドラーが event オブジェクトの error にエラーメッセージを代入して event オブジェクトを return した場合、フィールドの値の書き換えと編集可/不可の設定はキャンセルされ、画面の上部にエラーメッセージが表示されます。
- PCのみで利用できます。
- スペースに貼りつけたアプリには利用できません。
サンプル
レコード一覧画面の「保存ボタン」クリック時イベントでレコードにエラーを表示します。
変更されたフィールドを取得する
変更のあったフィールドを取得できます。
レコード一覧画面のレコード削除後のイベントはありませんでしょうか。例えば、一覧画面でレコード削除後に、画面をリロードさせたい場合はどうすれば良いでしょうか。
三分一雅博さん
残念ですが、現状ではレコード削除後イベントは用意されていません。
現状ムリにでもやるというのであれば、「削除する?」ダイアログの「削除する」ボタンを押した時点から○秒経ったら発火する。というようなプログラムになるかと思います。
もずくさん
ご回答ありがとうございます。並び替えした時のように、表示イベントでも呼んでくれればと思ったんですが、ないものは仕方ないですね。ありがとうございます。
レコード一覧画面表示後にビューIDを取得しようと思ってもできません。
どこが悪いのでしょうか…
kintone.events.on('app.record.index.show', function(event) {
var record = event.record;
console.log(record['viewId']['value']);
return event;
});
kuma 様
お世話になっております。
cybozu developer network 事務局です。
viewId は event.record ではなく event 内に含まれていますので
で取得することができます。
なお、仕様以外の技術的な質問に関してはコミュニティをご活用いただければ幸いです。
一覧画面のページ遷移時のイベント取得はできないのでしょうか?
app.record.index.show でははじめに表示している一覧の情報しか取得できず
ページ遷移した先のレコード群に対してでボタンなどで処理を走らせようとしてもうまくいきません。
その時表示している一覧のレコードを取得するか、ページ遷移のタイミングで保持している内容を更新したいのですがそういったものはありますか?
tanaka様
>一覧画面のページ遷移時のイベント取得はできないのでしょうか?
一覧画面のページ遷移時のイベントはありません。
>その時表示している一覧のレコードを取得するか、ページ遷移のタイミングで保持している内容を更新したいのですがそういったものはありますか?
申し訳ありませんが、既存の情報では確認できなかったため、コミュニティをご活用いただければ幸いです。
レコード一覧画面のインライン編集の保存実行前イベントについて
レコード一覧画面のインライン編集の保存実行前イベントのレコードで計算フィールドの計算結果が正しい状態であっても値が空文字になっているのですが、こちらは仕様でしょうか?
レコード一覧画面のインライン編集開始時イベントの時点では、同じレコードの状態で計算フィールドの値に計算値が設定されていることを確認しています。
確認したアプリでは確認用に以下のjsのみ設定しています。
"金額"が計算フィールドになっています。
(function() {
"use strict";
kintone.events.on(['app.record.edit.show', 'app.record.index.edit.show'], function(event) {
var record = event.record;
console.log("show:" + record.金額.value);
return event;
});
kintone.events.on(['app.record.edit.submit', 'app.record.index.edit.submit'], function(event){
var record = event.record;
console.log("submit:" + record.金額.value);
return event;
});
})();
Kenta Mizuochi 様
お世話になっております。cybozu developer network 事務局です。
> レコード一覧画面のインライン編集の保存実行前イベントのレコードで計算フィールドの計算結果が正しい状態であっても値が空文字になっているのですが、こちらは仕様でしょうか?
はい、こちらは仕様となっております。
現状、app.record.index.edit.submitのイベントでは、計算フィールドの計算結果を参照できません。
(app.record.index.edit.showでは可能です。)
以上、よろしくお願いいたします。