Index
イベント
eventオブジェクトで実行できる操作
その他
イベント
レコード詳細画面の表示後イベント
レコード詳細画面が表示された後に発生するイベントです。
- PCとモバイルで利用できます。
- スペースに貼りつけたアプリには利用できません。
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
- 「関連レコード一覧」フィールドが配置されているアプリでは、「関連レコード一覧」フィールド以外のフィールドが表示された後にイベントが発生します。
- 「関連レコード一覧」フィールドは、当イベント発生後に逐次表示されます。
イベントタイプ
環境 | イベントタイプ | イベントが発生するタイミング |
---|---|---|
PC | app.record.detail.show |
|
モバイル |
mobile.app.record.detail.show |
|
eventオブジェクトのプロパティ
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 数値 | アプリID |
record | オブジェクト |
レコード詳細画面が表示された時のデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
recordId | 数値 | レコードID |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることにより、非同期処理の完了を待ってからeventオブジェクトで実行できる操作を実行することができます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
サンプル
レコード詳細画面が表示された時にメッセージを表示します。
レコード詳細画面の削除前イベント
レコード詳細画面で削除ボタンをクリックしてポップアップの「削除する」をクリックしたあとに発生するイベントです。
- PCとモバイルで利用できるイベントです。
- スペースに貼りつけたアプリには利用できません。
- false を return すると削除処理をキャンセルできます
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
イベントタイプ
環境 | イベントタイプ | イベントが発生するタイミング |
---|---|---|
PC | app.record.detail.delete.submit |
|
モバイル |
mobile.app.record.detail.delete.submit |
|
eventオブジェクトのプロパティ
プロパティ名 | 型 | 説明 |
---|---|---|
appId | 数値 | アプリID |
record | オブジェクト |
削除対象のレコードデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
recordId | 数値 | レコードID |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
- レコードにエラーを表示する をご参照ください。
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることで、非同期処理の完了を待ってからレコードの削除を実行できます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
サンプル
kintone.Promise を利用しない場合
プロセス管理のアクションイベント
プロセス管理機能を有効にしたアプリで、アクションを実行したときに発生するイベントです。 ステータスの変更に複数の作業者によるアクションの実行を必要とする場合など、アクションの実行によってレコードのステータスが変わらない場合でも、このイベントが発生します。
- PCとモバイルで利用できるイベントです。
- eventオブジェクトをreturnすることでレコード情報を更新できます。(詳細は後述)
※レコード編集権限が必要です。 - false を return した場合アクションがキャンセルされます。
- eventオブジェクトに error プロパティを設定して return した場合、error に設定した文字列でアラートが表示され、アクションがキャンセルされます。
- 不正な値を return した場合エラーが表示されてアクションがキャンセルされます。
- 何も return しない場合ステータスのみが更新されます。
- kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。
イベントタイプ
環境 | イベントタイプ | 説明 |
---|---|---|
PC | app.record.detail.process.proceed |
|
モバイル |
mobile.app.record.detail.process.proceed |
|
eventオブジェクトのプロパティ
プロパティ名 | 型 | 説明 |
---|---|---|
action | オブジェクト | 実行したアクション
// オブジェクトのキー {value:"<アクション名(ユーザーの言語設定に従う)>"} |
status | オブジェクト | 変更前のステータス
// オブジェクトのキー {value:"<ステータス名(ユーザーの言語設定に従う)>"} |
nextStatus | オブジェクト | 変更後のステータス
// オブジェクトのキー {value:"<ステータス名(ユーザーの言語設定に従う)>"}※アクションを実行した結果、ステータスが変化しない場合でも、変更後のステータス名を取得できます。 |
record | オブジェクト |
アクションを実行した時点のデータを保持したレコードオブジェクト※ ※レコードオブジェクトとは、フィールドコードとフィールドの値などのレコードの情報を含むオブジェクトです。 |
type | 文字列 | イベントタイプ |
eventオブジェクトで実行できる操作
- フィールドの値を書き換えるをご参照ください。
- レコードにエラーを表示するをご参照ください。
非同期処理の完了を待って次の処理を行う
kintone.Promiseオブジェクトをreturnすることで、非同期処理の完了を待ってからプロセス管理のアクションを実行できます。
同じイベントに複数のイベントハンドラが登録されているとき、エラーなどが発生してThenableオブジェクトが棄却された場合には、後続のイベントハンドラの処理は実行されません。
記述方法はkintoneにおけるPromiseの書き方の基本を参考にしてください。
注意事項
イベント処理の記述方法の注意事項をご確認下さい。
eventオブジェクトで実行できる操作
フィールドの値を書き換える
プロセス管理のアクションイベントで、ハンドラーが record オブジェクトのフィールドの値を書き換えて event オブジェクトを return した場合、その値でフィールドの値を更新します。
- レコード編集権限が必要です。
- PCとモバイルで利用できます。
- スペースに貼りつけたアプリには利用できません。
- ラジオボタンフィールドで空文字列を指定した場合、初期値の選択肢となります。
- フィールドの編集を不可にしても、値を書き換えることができます。
- 編集権限のないフィールドの値を書き換えた場合はフォームには反映されません。
- 最後のハンドラーが return しない場合、フィールドの値を更新しません。
- 複数のハンドラーが登録されている場合、最後のハンドラーが return した戻り値を基準に反映されます。
書き換えできないフィールド
以下のフィールドは、プロセス管理のアクションイベントのハンドラーでフィールドの値を書き換えて return しても、フォームには反映されません。
- レコード番号
- 作成者
- 作成日時
- 更新者
- 更新日時
- ステータス
- 作業者
- 計算
- 自動計算にした文字列1行
- 添付ファイル
- ルックアップ
- ルックアップコピー先フィールド
レコードにエラーを表示する
ハンドラーが event オブジェクトの error にエラーメッセージを代入して event オブジェクトを return した場合、フィールドの値の書き換えと編集可/不可の設定はキャンセルされ、画面の上部にエラーメッセージが表示されます。
- PCのみで利用できます。
- スペースに貼りつけたアプリには利用できません。
サンプル
レコード詳細画面の「削除ボタン」クリック時イベントでレコードにエラーを表示します。
その他
関連Tips
お世話になります。
プロセス管理のアクションイベントについて
>kintone.Promiseオブジェクトを return すると、非同期処理の実行を待ってイベントの処理を開始します(PC版のみ)。
ドキュメントに上記の内容で書かれていましたが、スマートフォン版でもkintone.Promiseオブジェクトのreturnを行うと
非同期処理の実行を待ってイベントの処理を開始してくれているようでした。
ドキュメントと実際の動作が異なるようですが、どちらが正しいでしょうか?
Kenta Mizuochi 様
お世話になっております。
cybozu developer network 運営事務局です。
回答が遅くなってしまい、失礼いたしました。
フィードバックいただきありがとうございました。
スマートフォン版でもkintone.Promiseが対応されていることを確認いたしましたので、
ドキュメントを修正させていただきました。
今後ともよろしくお願いいたします。
ご回答ありがとうございました。
お世話になります。
アプリにて以下の設定をしています。
①ユーザー選択フィールド
フィールドのアクセス権:Everyone閲覧のみ フィールドの初期値:ログインユーザー
②javascriptによるカスタマイズ
(function() {
"use strict";
kintone.events.on(["app.record.detail.process.proceed"], function(event){
var record = event.record;
return event;
});
})();
③プロセス管理を設定
このアプリにて、ゲストユーザーがレコードを作成し、アクションボタンを押下すると、以下のエラーが出力されます。(通常のユーザーがレコードを作成し、アクションボタンを押下してもエラーは出力されません。)
本記事を見ると「編集権限のないフィールドの値を書き換えた場合はフォームには反映されません。」と記載があり、エラーにはならないのかと思っているのですが、認識相違がありますでしょうか。
また、ゲストユーザーでのみエラーが発生する理由について、教えていただけませんでしょうか。
山口 大介 様
お世話になっております。cybozu developer network 運営事務局です。
ゲストユーザーの挙動について、開発担当に確認し製品の不具合であることがわかりました。
ご不便をおかけしまして大変申し訳ございません。
通常のユーザー(ゲストユーザー以外)と同様の動作となるよう、今後改修を予定しております。
改修のお知らせは API更新情報にて行います。
更新情報のメール配信をご希望の場合には、API更新情報ページ上部の「API更新情報のお知らせをメールで受け取る」機能をご利用ください。
cybozu developer network 運営事務局 ご担当者様
お世話になっております。
ご回答ありがとうございました。
今後ともよろしくお願いいたします。