前回の記事ではkintoneのレコード再利用の判定について解説しました。
続いて、kintoneにおけるJavaScriptカスタマイズでは「プロセス管理アクション実行時の処理」を定義できます。
この記事ではプロセス管理アクション実行時の処理について解説します。
- kintoneのJavaScriptカスタマイズでは、プロセス管理アクション実行時の処理を定義できます。
- プロセス管理アクション実行時のイベントは…
app.record.detail.process.proceed - app.record.detail.process.proceedイベント内で取得できる値は…
実行アクション、変更前ステータス、変更後ステータス - app.record.detail.process.proceedイベント内で取得できることは…
フィールドの値の設定、エラー表示
kintoneのプロセス管理とは
kintoneにはプロセス管理の機能があります。
申請処理などのワークフローを作ることができます。
申請ワークフローであれば、未申請→申請中→承認済のようにステータスを設定します。
ステータスを次に進める場合はアクションを設定します。
たとえば、「申請」アクションにより、未申請から申請中にします。
続いて、「承認」アクションにより、申請中から承認済にします。
ここまでは標準機能でできます。
JavaScriptを使えば、アクション実行時にフィールドに値を設定したり、条件に合わなければエラーを出して処理をキャンセルしたりといった処理を定義できます。
プロセス管理アクション実行時に取得できる情報
プロセス管理アクション実行時には「app.record.detail.process.proceed」イベントが発火します。
このイベント内で取得できる情報は「実行アクション」「変更前ステータス」「変更後ステータス」です。
「event.action.value」:実行アクション
「event.status.value」:変更前ステータス
「event.nextStatus.value」:実行後ステータス
実装例:アクション名、変更前ステータス、変更後ステータスの取得
以下コードでは、アクション実行時にアクション名、変更前ステータス、変更後ステータスをメッセージ表示します。
(() => {
'use strict';
kintone.events.on('app.record.detail.process.proceed', event => {
const record = event.record;
alert(`アクション「${event.action.value}」を実行しました。\nステータスを「${event.status.value}」から「${event.nextStatus.value}」に変更します。`);
return event;
});
})()
実装例:プロセス管理アクション時の値設定とエラー表示
「app.record.detail.process.proceed」イベント内でフィールドの値を設定することやエラーを表示して処理をキャンセルすることができます。
以下のコードでは、「承認後の対応」が入力されている場合は「承認日」にアクション実行時の日付を設定します。
「承認後の対応」が入力されていない場合はエラー表示し、処理をキャンセルします。
(() => {
'use strict';
kintone.events.on('app.record.detail.process.proceed', event => {
const record = event.record;
if (event.status.value === '申請中' && event.nextStatus.value === '承認済') {
if (record.承認後の対応.value) {
const date = new Date();
record.承認日.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
} else {
event.error = '編集画面で承認後の対応を入力してください。';
return event;
}
}
alert(`アクション「${event.action.value}」を実行しました。\nステータスを「${event.status.value}」から「${event.nextStatus.value}」に変更します。`);
return event;
});
})()
- kintoneのJavaScriptカスタマイズでは、プロセス管理アクション実行時の処理を定義できます。
- プロセス管理アクション実行時のイベントは…
app.record.detail.process.proceed - app.record.detail.process.proceedイベント内で取得できる値は…
実行アクション、変更前ステータス、変更後ステータス - app.record.detail.process.proceedイベント内で取得できることは…
フィールドの値の設定、エラー表示
プロセス管理のアクションボタンはどれも同じデザインですが、色を変えて識別しやすくできないでしょうか?
色を変えることは可能です。また、特定の条件を満たしていない場合は非表示にするなんてことも可能です。これについては別の記事で解説します。
次回の記事ではログインユーザーの取得について解説します。