第五天
工作流的触发
数据模型触发
应用场景
当根据业务需求,数据模型执行一个操作后,触发一个流程。如提交请假后,触发请假流程。
操作步骤
-
配置流程。添加审批节点,将节点类型设为审批操作节点(同意/拒绝等)。
注意:
数据模型触发流程情况下,流程中的第一个审批节点属性节点类型不能设为提交申请节点(提交)。
-
设置流程入参。
设置输入变量后保存流程。
注意
为保证数据模型可触发,开始节点只能配置对象、对象列表类型字段。
-
在数据模型下单击新建事件处理创建事件触发流程:
填写相关信息后单击提交。
说明
执行前置条件:当前条目的执行条件。当该表达式计算结果为真时,会触发执行对应的流程。单击执行前置条件的输入框,在弹出的表达式编辑器中输入条件表达式。
触发时机:当前条目关注的实体事件,可选项包括创建后、编辑后、删除后等。单击触发时机的输入框,选择对应的处理流程。
选择流程:选择事件对应的处理流程。
设置入参:给流程传递新增后的数据 。
定时触发
定时任务管理
登录 微搭控制台,单击工作流,再单击左侧功能栏中的定时任务进入定时任务管理页面。
新建定时任务
进入定时任务管理页面,单击新建,创建定时任务。
属性说明:
属性 | 说明 |
---|---|
名称 | 定时任务名称 |
状态 | 启用/未启用,创建时默认启用,可手动停用 |
执行类型 | 支持一次性、周期性两种执行类型 |
首次执行时间 | 定位任务首次执行时间,注意:应用重新发布后,定时任务才能生效 |
执行周期 | 执行类型为"周期性"时,必填执行周期定时任务按执行周期间隔,重复触发当前定时任务执行周期单位可选择:年、月、天、小时、分钟、秒 |
有效期 | 执行类型为"周期性"时,必填有效期,定时任务有效期在有效期内按执行周期重复触发执行当前定时任务的执行流程有效期最大可选择到2037年 |
执行流程 | 当前定时任务执行的流程。未有输入参数的流程方可选为执行流程 |
描述 | 定时任务描述 |
一次性定时任务
根据所填首次执行时间,执行当前定时任务所选流程,流程只触发执行一次,流程首次执行完成,不会再此执行流程。
周期性定时任务
根据首次执行时间与有效期时间范围,按照执行周期重复循环执行所选流程。
执行周期:执行周期最大单位到年,最小可到秒。
有效期:最大有效期到2037年。
停用定时任务
定时任务进入定时任务管理页面,单击停用,停用所选定时任务。
删除定时任务
定时任务进入定时任务管理页面,单击删除,删除所选定时任务。
定时任务应用
定时任务新增、编辑、删除、启/停用等设置在应用发布后方可生效。
页面事件触发
场景示例
操作场景:通过按钮单击事件去触发一个开始节点带输入变量的流程。
创建名称为请假的流程,给流程开始节点设置输入变量 id,例如。
编辑器中使用按钮组件,通过按钮事件进行赋值,选择触发流程后进入配置页面。
触发流程中,流程选择请假,配置入参 id。
-
保存后单击按钮即可触发流程,其中编辑器配置的 id 值将会作为流程的输入参数
自定义api触发
场景示例
-
配置流程:流程开始节点支持配置变量:
注意
如果仅在方法测试、应用编辑器的实时预览或者应用的预览环境触发流程,保存流程即可,不需要发布;如果要在应用的正式环境触发流程,需要发布流程。
配置自定义 API。
参考下面的代码配置 APIs 和工作流相关信息即可触发流程,可以通过方法测试验证,验证后通过出参映射可以快速配置 API 的出参。
/*** 使用 npm 包 node-fetch 发送http请求, 详细使用文档可以参考* https://github.com/node-fetch/node-fetch*/const fetch = require('node-fetch'); module.exports = async function (params, context) { // 这里是方法入参 console.log(params); /** * 可以在这里编写业务逻辑,例如: * 1. 使用 node-fetch 通过 HTTP 方式请求外部数据,并对获取的数据进行加工; * 2. 使用 context.database API 来直接操作云开发云数据库; * 3. 使用 context.callModel 来操作其他数据模型数据; * 4. 使用 context.callConnector 来使用 API ; * 5. 使用 context.app.callFunction 来调用同环境的云开发云函数; */ const response = await context.callWorkflow({action: 'StartProcessWithParams', data: { TriggerType: 6, ConnectorParam: { ConnectorName: "startflow_n17f6cw", FunctionName: "method_65d91583fc619" }, ProcessKey: "flow_ttmzhe5", StartParams: [ { "name":"form_test3", "paramCode": "168049347798818754", "fieldType": "object", "fieldValueMap":{ "_id":'50b8a5676425824e001b06661838b821', "xh":'1311311236743' } ], ExtraUserInfo: { UserId: 1000000000000000000, Source: 4 } }}); return response;};
其中:
ConnectorName:触发的 APIs 标识。
FunctionName:触发的方法标识。
ProcessKey:流程的唯一标识。
StartParams中:
name:开始节点变量名称。
paramCode:开始节点变量标识(获取方式参考以下截图示例,对照接口出参中 rightId 字段内容)。
fieldType:开始节点变量类型。
fieldValueMap:{_id:数据模型记录 ID,数据模型字段 key-value}。
应用中使用自定义 API。 自定义 API 发布后,在应用编辑器中可以配置表单容器。
选择配置好的 API 方法,单击提交即可触发流程。
如果需要在自定义应用中使用,需要先配置登录组件,确认应用登录授权信息。
可通过单击应用编辑器右上角发布成功 > 访问链接进行访问。
注意