使用流程管理记录任务完成日和负责人

aki发表于:2016年10月05日 12:44:35更新于:2022年07月27日 10:30:44

开发者中心包含此范例模板(自动记录任务完成日和负责人),请前往开发者中心下载学习。

Index

概 要

本范例介绍当故障处理应用的流程状态变为【完成】时,系统自动记录任务完成日及负责人(登录用户)的自定义方法。另外,还加入以下功能。

  • 任务完成日字段和负责人字段设为不可编辑

  • 重复利用记录时,自动清除任务完成日和负责人字段中的数据

完成图

 00157f48976227e459076543a7f3a53

事前准备

  • 创建【故障处理管理】应用。
    表单设置详情如下:

    字段名称

    字段类型

    字段代码

    类型

    单选框

    类型

    任务期限

    日期

    任务期限

    开始执行

    创建时间

    开始执行

    任务完成时间

    日期与时间

    任务完成时间

    负责人

    选择用户

    负责人

    所用时间

    计算

    所用时间

    ※其他字段任意设置。
    ※所用时间的计算公式为:任务完成时间-开始执行

  • 0016200d04a3028c22977e84e52bbe3

  • 流程管理的设置
    状态有:未处理、受理、调查中、执行中、完成、保留
    具体流程设置如下:
    001618b7de22094c5987b7161f03421

  • 编辑器
    选择符合自己使用习惯的文本编辑器。

程序范例

注意事项

  • 直接使用此处提供的程序范例的情况,才望子不予以保证程序的正常运行

  • 才望子不提供对程序范例的技术支持

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自定义】页面中上传保存的文件


    /*    
    * 故障处理管理应用的程序范例    
    * Copyright (c) 2021 Cybozu    
    *    
    * Licensed under the MIT License    
    */    
    (function () {    
        'use strict';    
        var date = luxon.DateTime.local();    
        // 记录创建/编辑页面显示时    
        var eventsCreateShow = ['app.record.create.show', 'app.record.edit.show', 'app.record.index.edit.show'];    
        kintone.events.on(eventsCreateShow, function(event){    
            var 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', function(event){    
        var record = event.record;    
        var nStatus = event.nextStatus.value;    
        // 状态为【完成】时,自动设置任务完成日和负责人
        if (nStatus === '完了'){    
            var user = kintone.getLoginUser();    
            record['任务完成时间']['value'] = date.toISO();    
            record['负责人']['value'][0] = {code : user.code};    
        }    
        return event;    
        });    
    })();


设置的页面

以下是【通过JavaScript / CSS自定义】页面的设置范例。

0016200d19ad5fc29003c12bcae1a02

使用的API

  1. 添加事件句柄

  2. 记录添加页面显示时的事件

  3. 记录编辑页面显示时的事件

  4. 记录列表页面的行内编辑开始时的事件

  5. 流程管理的动作执行事件