プロセス管理利用時のJavascriptカスタマイズにご注意を

kintoneのプロセス管理はレコードのステータス管理を行いたい時には非常に便利なので共有ToDoやワークフロー的な使い方をされているところも多いと思います。

もちろん弊社でも活用していて、このおかげでガルーンやOfficeのワークフローがなくても済んでしまっています(笑)

プロセスボタンクリック直後はレコード表示イベントが動かない

このようにプロセス管理は非常に便利な機能ですが、Javascriptカスタマイズを利用する時には一点だけ注意が必要です。

それは「レコード表示一覧時に発生するイベントを動かすことができない」ということです。

レコード表示時に発生するイベントというのは、レコード一覧からレコードの詳細画面を開いたタイミングやレコードの新規追加や編集を行って詳細画面に戻った時などに実行されるイベントになります。

たとえば以下の様なコードを書くとレコード詳細画面を開いた時にポップアップが表示されます。

(function () {
  "use strict";
   
  function showAlert(event) {
     alert("レコード表示されました!");
  }
   
  // レコード詳細画面表示時のイベント
  kintone.events.on('app.record.detail.show', showAlert);
})();

以前紹介した「kintoneで動画での情報共有を実現させる方法」はこのイベントを使ってYouTube用URLの値を取得して、YouTubeの動画を表示させてます。

そして、プロセス管理機能を使って、例えばステータスのフローが「申請」→「承認」と設定されている時に「「承認」ボタンを押したら、承認者フィールドに押した人のユーザー名を設定する」というカスタマイズを入れたいといった時にレコード表示イベントで

「プロセスのステータスが「承認」の時に「承認者」フィールドにログインユーザー名をセットする」

というカスタマイズを入れれば行けそうに思いますが、実際に「承認」ボタンを押してステータスが「承認」に変わってもレコード表示イベントが発生しないため、承認者フィールドにはユーザー名がセットされません。

これは不具合ではなく現状、kintoneの仕様のようです。

そして、ブラウザをリロードさせたり再度レコード一覧から「承認済」のレコード詳細画面を開いた時に実行されます。

なので上記のようなカスタマイズを入れたい場合はプロセス管理を使わずに「ステータス」といったドロップダウンフィールドを作って「申請」「承認」等の値を設定し、レコード保存時にフィールドの値を変更して保存し、保存後のレコード表示イベントでJavascriptを動かすという方法がひとつです。

ただ、プロセス管理を絡めてJavascriptカスタマイズは要望もよく出てくるので、ここは改善を期待したいところです。

同じカテゴリーの記事