はじめに
kintoneの「プロセス管理」機能は、業務のワークフローを可視化・自動化する強力な仕組みです。しかし、標準機能だけでは柔軟な制御が難しい場面もあります。
そこで活躍するのが、JavaScriptによるカスタマイズです。
本記事では、kintoneのプロセス管理をJavaScriptで拡張・制御する方法や、よくあるユースケース、具体的なコード例をご紹介します。
お知らせ①
🌟無料&登録不要でプラグインのお試しが可能!🌟
kintoneユーザーの皆さん!
エムザスのkintoneプラグインはもう試しましたか?🤔
エムザスでは以下のようなプラグインを開発しています!👇
デモ環境で、ほとんどの機能が今すぐお試しいただけます✨
さらに、お客様のドメインで無料で3ヶ月間、すべての機能を試すこともできます!🎉
それでは、本題に入ります!
プロセス管理の基本構造
まずは、プロセス管理機能の基本を簡単におさらいしましょう。
- ステータス:レコードの状態(例:申請中、承認済みなど)
- アクション:ユーザーがステータスを変更するためのボタン(例:「承認する」ボタン)
- 条件分岐:特定の条件を満たした場合のみ、特定のアクションが表示される
プロセス管理はkintoneのアプリ設定画面からGUIで設定できますが、JSを使えば、より柔軟に画面表示や挙動を制御できます。
JavaScriptでできること
1. ステータスによるフィールドの表示/非表示
JavaScriptを使えば、現在のステータスに応じてフィールドの表示・非表示を制御できます。
例:申請中のときだけ「コメント」フィールドを表示する
kintone.events.on('app.record.detail.show', function(event) {
const status = event.record['ステータス'].value;
if (status === '申請中') {
kintone.app.record.setFieldShown('コメント', true);
} else {
kintone.app.record.setFieldShown('コメント', false);
}
return event;
});
2. ステータス変更後の処理(アクション実行後)
ユーザーがプロセス管理のアクションボタンを押してステータスを変更した後に、何らかの処理を走らせることも可能です。
これは、app.record.detail.process.proceed
イベントを使って実現します。
例:ステータス変更後にアラートを表示
kintone.events.on('app.record.detail.process.proceed', function(event) {
alert('ステータスが変更されました');
return event;
});
3. ステータス変更後に外部サービスと連携
JSから外部APIを呼び出すことで、例えばSlackやメールへの通知、他のkintoneアプリとの連携も可能になります。
例:承認されたらSlackに通知を送る(Webhook経由)
kintone.events.on('app.record.detail.process.proceed', function(event) {
const status = event.record['ステータス'].value;
if (status === '承認済み') {
const payload = {
text: `レコードが承認されました: ${event.record.タイトル.value}`
};
fetch('https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX', {
method: 'POST',
body: JSON.stringify(payload),
headers: {
'Content-Type': 'application/json'
}
});
}
return event;
});
よくあるユースケース
以下のような業務要件に、JSカスタマイズはとても有効です。
✅ ステータスに応じた入力制御
- 「申請中」のときだけ編集できるフィールドを限定
- 「差戻し」時のみ再入力必須のチェックを追加
✅ ステータス変更時の通知・外部連携
- 承認されたらSlackに通知
- 却下されたら担当者にメール送信
- 他のアプリのステータスを連動して更新
✅ 操作ミス防止のガード処理
- ステータス変更時に確認ダイアログを表示
- 入力不備がある場合はステータスを進められないよう制御
制約・注意点
❌ アクションボタン自体の非表示はできない
JavaScriptではアクションボタンの表示・非表示を直接制御できません。プロセス管理の設定(GUI)で条件を設定する必要があります。
❌ ステータスの一覧やアクションの設定をJSから変更することは不可
これらの設定はアプリのプロセス管理画面からのみ編集可能です。APIやJSからの動的変更はできません。
⚠️ 権限制御には別途注意
JSによる制御は見た目だけの操作制御であり、実際のアクセス制限とは異なります。本格的な制御を行う場合は、アプリのアクセス権やユーザー管理と合わせて検討しましょう。
まとめ
kintoneのプロセス管理機能は、JavaScriptを活用することでさらに強力になります。
- ステータスに応じた表示制御
- ステータス変更後の通知・処理自動化
- 外部システムとの柔軟な連携
標準機能だけでは実現できない業務ロジックやUI制御も、JSによるカスタマイズで柔軟に対応できます。