こんにちは!トッティです。
改めてですが、kintoneの特徴、そらで言えますか皆さん。「データベース」「コミュニケーション」「ワークフロー」、はい、その通りです。
今回は最後のワークフローに関してです!kintone内ではプロセス管理と言った名前の機能ですね。
このプロセス管理を用いて、社内のワークフローを回しているお客様も多くいらっしゃいます。
連携サービスを開発している弊社としては、外部からこのプロセス管理の情報、特に「承認者」の情報をAPIで取得できると嬉しいのですが、できないのですよ。
なので、「プリントクリエイターで、承認者である佐藤さんの印影を出力する」「kViewerで、田中さんが承認している情報だけ公開したい」等が出来ないわけですね。困りましたね。
承認者情報をアプリ内のフィールドに登録してしまう
プロセス管理の承認者を取得できないのであれば、特定のフィールドにユーザー情報として、登録してしまえば良いはずですね!
今回はそのJavaScriptを用意しました。
と、JavaScriptの紹介のその前に、少し手を入れたアプリを紹介しましょう。
カスタマイズに対応する前のアプリは以下です。
サイボウズのアプリストアに登録されている「交通費申請」アプリ。自分で申請先である「承認者」を選択し、そのユーザーから承認を得る流れです。
このアプリのプロセス管理の下記部分だけ、修正しました。
承認者情報を登録するためのフィールドをアプリ内に追加する
フィールドを新設し、ユーザー情報を持たせます。「ユーザー選択」フィールドを追加し、「承認者」としました。今までの承認者は「被申請者」と名称を変更しました。
そして、フィールドにも手を入れたアプリが下記になります。
で、この「承認者」のフィールドコードは下記な感じです。
これで、アプリ側の準備は整いました。あとはJavaScriptを適用し、自動登録されるように動かします。
JavaScriptを作成する
肝心のJavaScriptですが、今回は下記のようなものを読み込みます。
(function() { "use strict"; // 以下のパラメータに任意の値を指定して下さい var userSelectFieldCode = "実際の承認者"; var saveStatus = "承認"; kintone.events.on("app.record.detail.process.proceed", function(event) { if (event.nextStatus.value === saveStatus) { var authorizer = kintone.getLoginUser(); event.record[userSelectFieldCode].value = [ { code: authorizer.code } ]; } return event; }); })();
細かい説明は省きますが、「承認」ステータスにしたユーザーの情報を「承認者」フィールドに登録する、といった内容です。
では、実際に試してみましょう。
申請者として、レコード登録する
その後、「申請する」ボタンを押します。まだ、承認者フィールドは空のままです。
上長として、承認を行う
さて、承認者として該当レコードを見てみましょう。
来てますね、申請が。承認してあげましょう。ポチッとな!
承認者フィールドに操作をした私のユーザー名が登録されました!
ここまでくれば、冒頭に書いたようにプリントクリエイターやkViewerでの条件に使用することが可能となります。長い道のりでしたが、APIが拡充されるまでは、この様な方法でなんとか運用しましょう!
例えば、下記記事なんかと組み合わせれば、すごく便利になりますよね。是非、お試しください。
プリントクリエイターで、電子印鑑対応kintoneアプリを作ってみたよ!
それではまた。
【関連記事】弊社三浦が承認者情報の取得+電子印鑑での出力を試してみました。
少し複雑な内容になりますが、こちらも合わせてご覧ください。