このカスタマイズではkintoneシステム上のユーザーの操作の記録を取ります。
一覧表示や詳細表示など、イベント単位でどのような情報を見たのかを特定アプリへ記録するようなイメージです。
記録するアプリは、管理者のみ閲覧権限があって、管理者以外は追加のみという権限設定を想定しています。
今回のカスタマイズで出来ること
ユーザー操作を特定アプリへ記録します
一覧画面表示、詳細画面表示、印刷画面表示のみ作成しています
アプリの準備
操作を保存するアプリには以下のフィールドを作成しました。このアプリはレコード追加されるだけでカスタマイズは設定しません。
フィールド名 | フィールドコード | フィールドタイプ、他 |
操作日時 | 操作日時 | 日時 |
アプリID | アプリID | 数値 |
レコードID | レコードID | 数値 |
操作内容 | 操作内容 | 文字列 |
操作ユーザー | 操作ユーザー | ユーザー選択 |
詳細画面は以下のようになります。
操作を記録したいアプリは、自由に作成してもらって構いません。
Customineの設定
全体の流れはこのようになります。
今回は、通常の「詳細画面を表示した時」ではなく、「kintoneイベントが発生した時」を使っています。理由としては、「ログインユーザーを取得する」の結果をなるべく再利用してカスタマイズ行数を減らすためです。
ただ、「追加条件」で画面を判定出来るのが、一覧画面・詳細画面・追加画面・編集画面だけなので、印刷画面は別で作成しています。
同様に、保存前画面などの場合はそれぞれのイベントでログインユーザーを取得するようにしてください。
kintoneイベントが発生した時の処理
この条件では、kintoneで利用可能なイベントを複数指定できます。
今回は、
・レコード一覧画面の表示後イベント
・レコード詳細画面が表示された時のイベント
を指定します。
一覧画面・詳細画面表示時の処理
「条件」の下にある + を押すと「追加条件」を指定できます。それぞれのイベント毎に操作内容に書き込む文字を変えているのとレコード番号が取得出来ないという制限があるので「やること」は分かれています。
印刷画面表示時の処理
「kintoneイベントが発生した時」で印刷画面のイベントのみを指定します。逆に、「他のアクションの実行が完了した時」には「追加条件」は指定しません。
おまけ:所属組織を追加したい場合
操作ユーザーと同様に、その時所属していた組織を記録したい、という場合もあるかと思います。
この場合、まず記録するアプリ側に「組織選択フィールド」を追加してください。
次にやること「所属組織を取得する」を追加し、このアクションが完了した後に「レコードを追加する」を実行します。
このときのフィールドマッピングが若干複雑なので、ご注意ください。
「ログインユーザーを取得する」の場合は
= $7.code
などと記述していましたが、所属組織を別レコードにフィールドマッピングで追加する際には
= $9.organizationTitles.organization.code
のように記述します($9はアクション番号9番の例になります)。
「所属組織を取得する」の戻り値の仕様はこちらのサイボウズ様のサイトでご確認ください。
https://developer.cybozu.io/hc/ja/articles/205309740#step6
まとめ
代表的な画面のみ作成しましたが、例えば
・特定の値を変えた時を記録したい
・プロセスを変えた時を記録したい
など、アプリによって様々なニーズがあると思います。
また、フィールド値など、記録したい値も色々と出てくると思います。
その場合は、条件やマッピングを変更すれば対応可能と思いますのでお試しください。
追記:
プロセス管理のステータス変更履歴を保存したい場合は、こちらのTIPSをご確認ください。