有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能简介

自定义 API 的自定义代码可以触发流程实例。

场景示例

1. 配置流程:流程开始节点支持配置变量:
注意:
如果仅在方法测试、应用编辑器的实时预览或者应用的预览环境触发流程,保存流程即可,不需要发布;如果要在应用的正式环境触发流程,需要发布流程。






2. 配置自定义 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}。




3. 应用中使用自定义 API。 自定义 API 发布后,在应用编辑器中可以配置表单容器。

选择配置好的 API 方法,单击提交即可触发流程。

如果需要在自定义应用中使用,需要先配置登录组件,确认应用登录授权信息。



可通过单击应用编辑器右上角发布成功 > 访问链接进行访问。
注意
如果不配登录组件,只能在自定义代码中指定用户触发,即传入 ExtraUserInfo 参数的 UserId 和 Source(如上文示例所示)。如果已经配置了登录组件则不需要配置该入参。