kintoneの承認経路を作ってみたときのお話し
これは弊社のアドベントカレンダー用記事です。
この記事は12月11日に公開予定でしたがkintoneアップデートが12月8日に予定されているため先行して公開します。
kintoneを導入するか検討しようとなった際に、私が試用で感じたところとこうやればよさそう!
という内容の記事です。
情シスの人間なので、他の記事と毛色が違うかもしれません(笑)
kintoneって何?
公式ヘルプより
kintone(キントーン)は、開発の知識がなくても自社の業務に合わせたシステムをかんたんに作成できる、サイボウズのクラウドサービスです。業務アプリを直感的に作成でき、チーム内で共有して使えます。社員間のつながりを活性化する社内SNSとしての機能も備えているため、スピーディーに情報共有ができます。
とのこと。
触ってみるとわかりますが、とても直感的にフォームを作成できます。
アイディア次第で便利にできるのがいいところですね
承認経路(ワークフロー)機能について
kintoneにはプロセス管理という簡易的なワークフローの仕組みがあります。
購買申請等を申請し、上長が承認したら承認済みとするとよくある機能です。
ただ、このプロセス管理機能は標準ではあまり融通がききません。
よくある決裁ルートにこのようなものありますよね
すべてに承認者がいればよいのですが、部署によっては二次承認者さがいないという場合もあります。
その際に自動で承認者をスキップしてくれません(2019年12月現在)
今後のバージョンアップで改善される可能性はありますが、現状はそのような状態です。
ということでまずは
承認経路マスターアプリを作成
以下のようなフォームを作成してください
経路カテゴリはドロップボックスになっており、以下の選択しが入っています。
・取引
・経費
・勤怠
内容ドロップボックスはこれからの予定なので今は何も登録されていません
作成が完了したらアプリを公開し、経路を登録します。
例としては下記のようになります。
複数登録するとこんな感じになりますね
承認経路マスターを作成したら次は
テストフォームを作成
今回はわかりやすく購買申請アプリを作成してみます。
フォームに以下のように配置します。(テストなのでざっくりとつくります)
フィールドコードは以下のように設定してあります。
項目名 | フィールドコード |
承認者1 | Approval1 |
承認者2 | Approval2 |
決裁者 | Decision |
承認1チェックボックス | chkSkip1 |
承認2チェックボックス | chkSkip2 |
承認経路のルックアップ設定は下記のようにします
この設定でわかるように、cybouz.com側でユーザに対してきちんと「優先する組織」の設定をしておきましょう
この部分です。
あれ?スキップはどうするの?と思った方正解です。
2019年11月現在ルックアップでチェックボックスの情報を持ってくることができません。
って書いてたらですよ。2019年12月のアップデートでできるようになるらしいんですよ!!!
この記事無駄じゃん!(笑)と思いましたが、書いていきます(笑)
JavaScriptを利用してスキップのチェックボックスにチェックを入れる
kintoneはJavaScript(以下JS)を動かせるので、JSを利用して設定します。
便利なプラグインの、「JSEdit for kintone」を利用できるようにします。
設定方法はこちらを参考にしてください
以下のJSを登録します。
(function() { 'use strict'; //経路の値gが変更されたときの処理 kintone.events.on([ 'app.record.create.change.Decision', 'app.record.edit.change.Decision' ], function(event) { var record = event.record; var changes = event.changes; //console.dir(record); record['chkSkip1'].disabled = false; record['chkSkip2'].disabled = false; //承認者1が必要かをチェック if(record['Approval1']['value']['length'] >= 1 ) { console.log('承認者1あり'); record['chkSkip1'].value = [ ]; }else{ console.log('承認者1なし'); record['chkSkip1'].value = ['スキップ']; } //承認者2が必要必要かをチェック if(record['Approval2']['value']['length'] >= 1 ) { console.log('承認者2あり'); //skipチェックボックスのチェックを外し、変更不可を解除する record['chkSkip2'].value = [ ]; }else{ console.log('承認者2なし'); //skipチェックボックスにチェックをつけ変更不可へ変更する record['chkSkip2'].value = ['スキップ']; } record['chkSkip1'].disabled = true; record['chkSkip2'].disabled = true; return event; }); })();
決裁者は必ず入力されるので、決裁者フィールの値が変更されたタイミングで処理を動かし判定をかけています
デバッグ用のconsole.logとか入っていますが動作確認後に削除してください
プロセス管理を設定する
承認経路がこれでセットされる状態となりました。
ここからプロセス管理機能を利用してワークフローを定義していきます。
「アプリの設定」→「設定」タブ → 【プロセス管理】をクリックします。
以下の図のように設定します。
申請してみよう!
作成した購買申請アプリを開き、+マークで新規申請をやってみます
承認経路横の取得をクリックします。(優先組織を取得して自動で承認経路が入るようにしたいのですがまだこれからです)
自分が所属している組織の経路が表示されるので、【選択】をクリックします
承認者がいない場合にはスキップに自動でチェックが入ります。
これで申請を行うとプロセス管理にて定義したフローに従ってワークフローとして進んでいきます