プロセス管理を使って作業完了日と担当者を記録する

目次

概要

障害対応管理アプリのプロセスを「完了」にすると、作業を完了した日、担当者(ログインユーザー)を記録するカスタマイズサンプルです。
その他、次の機能も搭載しています。

  • 作業完了日フィールドと担当者フィールドを入力不可にする。
  • レコード再利用時には、作業完了日と担当者をクリアにする。

完成形

下準備

  • kintone アプリ( kintone アプリストア (External link) にある「 障害対応管理 (External link) 」アプリを使います)
    • 該当のアプリは、https://(サブドメイン).cybozu.com/k/#/market/ から追加できます。
    • 「受け付け番号」フィールドは使用しないため、フォームから削除してください。
  • エディター

サンプルプログラム

PC 用の JavaScript ファイル

詳細設定から「JavaScript / CSS によるカスタマイズ」を開き、 Cybozu CDN から次のライブラリを指定します。

JavaScript サンプル

次のサンプルプログラムをエディターにコピーして、ファイル名を sample.js 、文字コードを「UTF-8」、BOM なしで保存します。
ファイル名は任意ですが、ファイルの拡張子は「js」にしてください。

保存したファイルは、「JavaScript / CSS によるカスタマイズ」画面でアップロードして保存します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * 障害対応管理アプリのサンプルプログラム
 * Copyright (c) 2021 Cybozu
 *
 * Licensed under the MIT License
 */

(() => {
  'use strict';

  const date = luxon.DateTime.local();

  // レコード登録/編集画面の表示時
  const eventsCreateShow = ['app.record.create.show', 'app.record.edit.show', 'app.record.index.edit.show'];
  kintone.events.on(eventsCreateShow, (event)=> {
    const record = event.record;

    // 編集不可フィールドの設定
    record['作業完了'].disabled = true;
    record['担当者'].disabled = true;

    if (event.type === 'app.record.create.show') {
      // 本日から2日後を指定
      record['作業期限'].value = date.plus({days: 2}).toISODate();
      record['作業完了'].value = null;
      record['担当者'].value = [];
    }

    return event;
  });

  // プロセス管理アクション実行時
  kintone.events.on('app.record.detail.process.proceed', (event)=> {
    const record = event.record;
    const nStatus = event.nextStatus.value;

    // ステータスが「完了」の場合、作業完了日と担当者を設定する
    if (nStatus === '完了') {
      const user = kintone.getLoginUser();
      record['作業完了'].value = date.toISO();
      record['担当者'].value[0] = {code: user.code};
    }
    return event;
  });

})();

設定した画面

「JavaScript / CSS によるカスタマイズ」画面でそれぞれ設定した例を紹介します。

使用した API

  1. イベント処理の記述方法
  2. レコード追加画面を表示した後のイベント
  3. レコード編集画面を表示した後のイベント
  4. レコード一覧画面のインライン編集を開始したときのイベント
  5. プロセス管理でアクションを実行するときのイベント

デモ環境

デモ環境 (External link) で実際に動作を確認できます。

ログイン情報は cybozu developer network デモ環境 で確認してください。