cybozu developer network

カテゴリー内の他の記事

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

概要

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

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

完成形

cap03.png

 

事前準備

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

サンプルプログラム

PC用のJavaScriptファイル

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

  • Luxon
    https://js.cybozu.com/luxon/2.1.1/luxon.min.js (version 2.1.1 を利用)

JavaScriptサンプル

  • 次のサンプルプログラムをエディターにコピーして、ファイル名を「sample.js」 、文字コードを「UTF-8」、BOMなしで保存します
    ※ファイル名は任意ですが、ファイルの拡張子は「js」にしてください
  • 保存したファイルは、「JavaScript / CSSによるカスタマイズ」画面でアップロードして保存します

設定した画面

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

cap04.png

使用したAPI

  1. イベントハンドラーを登録する
  2. レコード追加画面が表示された時のイベント
  3. レコード編集画面が表示された時のイベント
  4. レコード一覧画面のインライン編集開始時イベント
  5. プロセス管理のアクション実行イベント

デモ環境

デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/56/

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

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
檀上尚居

初めまして。

この記事を参考にさせて頂き、以下のJavascriptカスタマイズを実行してみました。

日時ではなく日付、作業者が反映されるようにしています。

PCの方はうまくいったのですがモバイルで動作しません。

(プロセス管理で実行した作業者の名前や日付が反映されません)

PC版コードのイベント頭にmobile.をつけただけなのですが、何が違っているのでしょうか?

ご教授お願いします。

(() => {

  'use strict';

  const date = luxon.DateTime.local().toISODate();

  // レコード登録/編集画面の表示時

  const eventsCreateShow = ['mobile.app.record.create.show', 'mobile.app.record.edit.show', 'mobile.app.record.index.edit.show'];

  kintone.events.on(eventsCreateShow, (event)=> {

    const record = event.record;

    // 編集不可フィールドの設定

    record['NG登録日'].disabled = true;

    record['NG登録担当者'].disabled = true;

    record['修理完了日'].disabled = true;

    record['修理担当者'].disabled = true;

    record['完了日'].disabled = true;

    record['完了担当者'].disabled = true;

    if (event.type === 'mobile.app.record.create.show') {

   

      record['NG登録日'].value = null;

      record['NG登録担当者'].value = [];

      record['修理完了日'].value = null;

      record['修理担当者'].value = [];

      record['完了日'].value = null;

      record['完了担当者'].value = [];

    }

    return event;

  });

  // プロセス管理アクション実行時

  kintone.events.on('mobile.app.record.detail.process.proceed', (event)=> {

    const record = event.record;

    const nStatus = event.nextStatus.value;

    // ステータスが「完了」の場合、作業完了日と担当者を設定する

    if (nStatus === '修理中') {

      const user = kintone.getLoginUser();

      record['NG登録日'].value = date;

      record['NG登録担当者'].value[0] = {code: user.code};

    }

    else if (nStatus === '修理完了') {

      const user = kintone.getLoginUser();

      record['修理完了日'].value = date;

      record['修理担当者'].value[0] = {code: user.code};

    }

    else if (nStatus === '完了') {

      const user = kintone.getLoginUser();

      record['完了日'].value = date;

      record['完了担当者'].value[0] = {code: user.code};

    }

    return event;

  });

})();
Avatar
cybozu Development team

檀上 様
お世話になっております。cybozu developer network 事務局です。

kintone にカスタマイズを適用する際に、JavaScript/CSSファイルは PC用とスマートフォン用とで分けて取り込めます。
スマートフォン用のカスタマイズは、設定画面の「スマートフォン用のJavaScript / CSSファイル」からを適用する必要があります。
カスタマイズが動作しない場合、ファイルが正しく適用されているかどうかをご確認ください。

なお、こちらは記事のフィードバック欄です。
記事の内容の発展や、「記事を参考にした技術的な質問」は、 cybozu developer コミュニティをご活用ください。

どうぞよろしくお願いいたします。

cybozu Development teamにより編集されました
サインインしてコメントを残してください。