kintoneの標準機能で利用できる「プロセス管理機能」は、申請・承認業務といった複数人で行う業務を管理するのに最適です。
アプリからワークフロー管理を設定でき、不明点があればアプリ上でコミュニケーションをとることも可能なため、社内のワークフロー業務を効率化させます。
本記事では、プロセス管理機能をJavaScriptでカスタマイズする方法について紹介します。標準機能からさらに一段階便利なプロセス管理を実現したい方は、ぜひご覧ください。
kintoneのプロセス管理とは
kintoneのプロセス管理とは、複数人でkintoneに登録されたレコード(各フィールドに入力された情報が1つに集まったもの)の編集や確認を行うためのプロセス(ワークフロー)を管理する機能です。プロセス管理を設定すると、どの状態で/誰が/何をするのか、という情報がアプリに追加され、ワークフローの状態を簡単に把握できます。
プロセス管理は、申請の承認や稟議の決裁を管理するアプリ(「稟議書」アプリ、「交通費申請」アプリ、「休暇申請」アプリなど)や、複数ユーザーでタスクを管理するアプリ(「作業タスク管理」アプリ、「クレーム処理」アプリなど)でよく使用されます。
プロセス管理では、「ステータス」「アクション」「作業者」の3項目を組み合わせて設定します。そして、アクション実行の「条件」を設定することで、状況ごとに実行内容を変更できます。例えば、申請金額が10万円以上だったら上長の他に役員の承認も得る、というような自社独自の設定が可能になります。
kintoneプロセス管理の詳細について、下記記事でも解説していますので、併せてご覧ください。
▼kintoneのプロセス管理|基本設定とワークフローの設定例
kintoneでプロセス管理を行うメリット
kintoneのプロセス管理には、以下のメリットがあります。
- ボタン1つで「承認」「差し戻し」などのアクションができ、自動で次の人に回せる
- ワークフローの進捗状況がリアルタイムで確認できる
- リモートワークや外出先でも申請・承認を行える
- 過去の申請情報も履歴として残るため、いつでも検索・確認できる
従来の紙での申請業務では誰で止まっているのかわからない、会社に出社しないと内容を確認できない、という不便さがありました。しかし、kintoneのプロセス管理機能を使えば、kintone上でワークフローの状況を確認できたり、kintoneにアクセスできる環境があれば会社でなくても承認を行えたりと、スムーズな申請・承認業務を実現します。
また、すべてのレコードはkintoneアプリ内に保存されるため、いつでも過去の申請内容を検索・確認できます。
プロセス管理の基本設定手順
プロセス管理の基本的な設定手順について紹介します。
一般的な申請・承認業務の設定するステータスは「未申請」「申請中」「承認」「差し戻し」「承認済み」となりますが、自社の申請ルールに沿って自由に変更してください。「承認済み」ステータスでワークフローは完了のため、アクションや作業者など次のワークフローに進むための設定は必要ありません。
- プロセス管理を設定するアプリを開き、画面右上の歯車アイコンをクリック
- 「設定」タブの「一般設定」から[プロセス管理]をクリック
- 「1.有効化」の[プロセス管理を有効にする]のチェックボックスを選択
- 「2.ステータス」からワークフローのステータスを設定
あらかじめ「未処理」「処理中」「完了」の3つのステータスが設定されているため、こちらのステータス名を変更したり、右側にある[+]をクリックしてステータスの項目を増やしたりすることも可能です。 - 「3.プロセス」でステータスごとの「作業者」と「アクション名」を入力
アクション名に入力したテキストが、作業者の画面にボタンとして表示されます。 - 「実行後のステータス」を設定
アクションが実行されると、「アクション実行前のステータス」から、ここで設定したステータスに移ります。手順4で設定したステータスから選択できます。 - ここまでの手順を終えたら、他のステータスでのプロセスも同様に設定
- すべてのプロセスを設定したら、画面右下にある[保存]ボタンをクリック
- 画面右上の[アプリを更新]ボタンをクリックすると、アプリに設定したプロセス管理が適用される
プロセス管理のJavaScriptカスタマイズについて
プロセス管理をJavaScriptでカスタマイズする方法について解説します。
JavaScriptカスタマイズを行うと、例えばアクション実行時にフィールドに入力する値を自動で設定したり、入力された値が条件に合わなければエラーを表示して処理をキャンセルしたりすることが可能です。
JavaScriptでカスタマイズを行うためにはスタンダードコースの契約が必要で、また開発者ライセンスに申し込まなくてはなりません。
kintone開発者ライセンス申し込みフォーム
kintoneスタンダードコースについて、下記記事にて詳細を解説しています。
▼kintoneのスタンダードコースとは? 機能や月額料金、ライトコースとの違いを解説
アクションを実行したときに発生するイベントタイプとイベントプロジェクト
アクションを実行したときに発生するイベントタイプはPCとモバイルでそれぞれ異なります。複数の作業者によるアクションの実行が必要な場合、全員がアクションしないとステータスは変わりませんが、そのようなときでも以下のイベントが発生します。
- PC:app.record.detail.process.proceed
- SP:mobile.app.record.detail.process.proceed
上記のイベントタイプで取得できる情報は「実行アクション」「変更前のステータス」「変更後のステータス」です。
// 実行アクション
{ value: event.action.value },
// 変更前のステータス
{ value: event.status.value },
// 変更後のステータス
{ value: event.nextStatus.value },
例①アクション実行後に「アクション名」「変更前ステータス」「変更後ステータス」を表示
カスタマイズ例として、アクションを実行したら画面上部に「[アクション名]を実行しました。ステータスを「変更前ステータス]から[変更後ステータス]に変更しました。」と表示させるJavaScriptコードを紹介します。
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;
});
const record = event.record;でレコードの値を取得し、alertはポップアップのメッセージボックスを表示させます。
例②アクション実行後にレコードの値を自動入力&エラー表示
ステータス変更時に、指定の文字列フィールドに情報が記入されたらそれに付随する他のフィールドの値を書き換えることが可能です。また、同時に指定の文字列フィールドが未記入であれば、エラーをポップアップとして表示できます。
例えば、「対応中」ステータスから「対応済み」ステータスへ変更されるとき、「対応内容」フィールドに情報を入力すると「完了報告日」フィールドが自動で入力される仕組みです。「対応内容」が記入されずに次のアクションへと進もうとすると、「入力画面で対応内容を入力してください」とポップアップが表示されます。
「対応内容」と「完了報告日」のフィールドコードを設定しておいてください。
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;
}
}
});
const date = new Date();は、JavaScriptで現在の日時や特定の日時を表すために使用されるオブジェクトです。これが実行されると、コードを実行した時点の日時を含んだ新しいDateオブジェクトが作成されます。
JavaScriptカスタマイズの注意点
JavaScriptカスタマイズは、kintoneで実現したい動作をほぼすべて実装でき、kintoneをさらに便利に活用できますが、いくつか注意点があります。
次項より紹介する内容に気を付け、JavaScriptカスタマイズに取り組みましょう。
関連記事をご用意しております。
▼kintoneでJavaScriptを活用し、さらなる業務改善へ!
コードの意味を理解できないと、初心者には難易度が高くなる
JavaScriptは専門的なプログラミングコードです。簡単に書けるコードもありますが、実装する内容が複雑になるほどコードの難易度も上がります。
kintoneセキュアコーディングガイドラインが定められていますが、こちらを読んで内容を理解できないものが1つでもある場合は、JavaScriptを触るのは控えた方がいいかもしれません。
自身で書いたJavaScriptは、必ずテスト環境で動作確認を行ってから本番環境にアップするようにしましょう。
kintoneのアップデートにより、動作しなくなる可能性がある
JavaScriptカスタマイズを行ったアプリは、kintoneのアップデートにより動作しなくなる可能性があります。カスタマイズは自己責任となり、kintone公式サポートの対象外のため、不具合が起こった際は業務が止まってしまうかもしれません。
kintoneバージョンアップでJavaScriptのどのコードが不具合を起こしてしまっているのか解決できるスキルが必要です。社内にそのようなスキルを有した人材がいれば問題ありませんが、いない場合はkintoneベンダー企業のサポートを受けることもひとつの手です。
kintoneベンダー企業は開発・カスタマイズ支援だけでなく、将来的な内製化を目指した伴走支援を提供している企業も多くあるため、そちらを利用するのもよいでしょう。
公開されているコードをやみくもにコピペするのは危険
プログラミング知識がそこまでない方は、cybozu developer networkで公開されているコードを参考にしたり、一般の開発者がWeb上でコードを紹介していないか調べたりするでしょう。しかし、それらのコードの内容を理解せず、そのままコピペ(コピー&ペースト)して使うのはリスクを伴います。
内容を理解していないコードをkintoneへ落とし込んで業務で使えたとしても、例えばアプリ改修時にコードの書き直しも必要となったが対応できず、他の担当者への引き継ぎも難しくなる、という問題が起こるかもしれません。また、前項で紹介したアップデートによる不具合にも同様に対応できず、kintoneカスタマイズの運用が負担となってしまうケースもあります。
もちろん他の開発者が紹介しているコードを使用すること自体は問題なく、「コードの内容を理解できているかどうか」が重要です。初心者の方はいきなりコードをコピペするのではなく、まずは標準機能で実現できないかを確認し、カスタマイズをしなければならなくなったらプラグインの導入、その次にJavaScriptコードのカスタマイズ(もしくは外注)へ、という順番で取り組むことをおすすめします。
関連記事をご用意しております。
▼kintoneでアプリ開発するには? 費用や開発方法について解説
JavaScriptカスタマイズで独自のプロセス管理を実装してみよう
本記事で紹介したカスタマイズ例を参考に、自社独自のプロセス管理を作り上げ、より効率的なワークフローを完成させてみましょう。
自社でのカスタマイズが難しい場合は、ぜひお気軽にテクバンまでご相談ください。お客様にとって最適なワークフローの作成や、業務効率化を目指したkintoneの構築など、様々な知識とノウハウを培ったテクバンのエンジニアが実現いたします。
テクバンの開発支援サービス/サポート
※本記事の内容は2024年7月時点のものです。kintoneの仕様や利用環境は変更する場合があります。
開発支援承ります
テクバンではkintoneの開発支援を受け付けております。日々の運用でお困りの方は以下より弊社サービスをご覧ください。
また、kintoneの標準機能に加えて、拡張機能であるプラグインを利用することで kintoneの活用の幅がより広がります。プラグイン選定から導入までサポートいたします。
kintone開発支援サービス
kintoneプラグイン