Index
前言
使用kintone的流程管理时,“我想向多个审批人申请相同的内容!”
“但是,由于应用是针对不同审批人进行划分的,所以需要多次提交相同的申请...。”
你有没有遇到过这样的场景?
(举例)对项目负责人的申请・对会计的申请・对法务的申请都由单独的应用管理。
在这种情况下,在每个应用中都创建相同内容的记录并执行流程就显得很麻烦。
为了省去这样的麻烦,本文为大家介绍一种自定义方法,可以自动创建另一个应用的记录并执行流程!
申请流程图
我们将介绍使用2个应用,应用A和应用B,作为简单自定义的范例。
这次的自定义假设为以下流程。自定义的部分是假设的第二步。
申请者在应用A中添加一条记录,并执行流程
根据在应用A中输入的内容,在应用B中自动创建记录,并执行流程
应用A和应用B的各个审批人确认记录内容
事前准备
应用的准备
请先准备用于自定义的应用!
这次试着使用一个简单的表单来实现自定义。
应用A
字段名称 | 字段代码 | 字段类型 |
申请标题 | 申请标题A | 单行文本框 |
申请内容 | 申请内容A | 多行文本框 |
应用B
字段名称 | 字段代码 | 字段类型 |
申请标题 | 申请标题B | 单行文本框 |
申请内容 | 申请内容B | 多行文本框 |
流程管理的设置
让我们在应用A和应用B中分别设置流程管理,如下所示。
应用A
勾选“启用流程管理”。
状态“处理中”的执行者选择的是“以下用户中其中1人”,并设置为任何组织。
应用B
勾选“启用流程管理”。
状态“处理中”的执行者选择的是“以下用户中其中1人”,并设置为任何组织。
JavaScript 自定义
准备就绪后,开始添加 JavaScript 自定义。
将以下 JavaScript 应用到应用A。第14行修改为应用B的应用ID。
(应用ID为10时)
修改前:const appId = 'xxx';
修改后:const appId = '10';
/* * 应用中有正在执行的流程时,会自动为另一个应用创建记录并推进状态的范例程序 * Copyright (c) 2021 Cybozu * * Licensed under the MIT License * https://opensource.org/licenses/mit-license.php */ (() => { 'use strict'; kintone.events.on('app.record.detail.process.proceed', event => { const action = event.action.value; const appId = 'xxx'; // 请替换为应用B的应用ID const params = { app: appId, record: { 申请标题B: { value: event.record['申请标题A'].value }, 申请内容B: { value: event.record['申请内容A'].value } } }; if (action !== '开始处理') { return event; } return kintone.api(kintone.api.url('/k/v1/record.json', true), 'POST', params).then(resp => { const recordId = resp.id; const paramStatus = { action: action, app: appId, id: recordId }; return kintone.api(kintone.api.url('/k/v1/record/status.json', true), 'PUT', paramStatus); }).then(() => { alert('创建应用B的记录,并执行流程。'); return event; }).catch(err => { console.log(err); return event; }); }); })();
操作检查
完成自定义设置后,检查最后的操作。
在应用A中添加一条记录,然后点击“开始处理”。
当显示审批人的组织成员时,点击“确定”,提交审批。
当在应用B中创建记录和执行流程成功时,会弹出信息“创建应用B的记录,并执行流程。”
弹出这条信息。
然后打开应用B,查看创建的记录。
如果流程管理的状态是“处理中”,并且申请标题和申请内容和应用A的记录内容一致就可以了!
结束语
怎么样?这次介绍的自定义是同时进行2个应用的流程。
应用此自定义后,可以同时在3个或更多应用中执行流程,所以大家可以尝试一下!
注意事项
范例程序不保证其能正常运行。
才望子不为范例程序提供技术支持。
本自定义仅适用于 PC 端。
该Tips在2021年5月版 kintone 中进行过确认。