使用场景
当人工任务中消息推送无法满足需求时,希望能够个性化定制消息内容或推送至其他消息平台。
功能实现
流程消息订阅配置
开启流程消息订阅功能
前往流程属性配置区,开启流程消息订阅配置。开启并选择 APIs 后,当流程与任务状态变更时会主动推送消息体至该 APIs 下 messageDeliver 方法内。
注意:
选择的 APIs 需存在且满足如下命名规则的方法才可接收到推送消息:
方法标识:messageDeliver
入参:msgContext:json 字符串(消息内容)
出参:code:int(0 表示成功,非 0 表示失败)
新建消息订阅 APIs 模板
如环境下 APIs 不满足命名规则要求,可以新建消息订阅 APIs 模板。如图,单击新建消息订阅 APIs:
创建后可前往该 APIs,根据业务调整请求类型。其中:
请求 URL:API 方法中 HTTP 请求地址。
方法 Method:第三方 HTTP API 的请求方式。
推送内容
推送时机
流程实例和任务状态变更时,会触发消息推送。
推送消息体
流程实例变更时(例如:流程发起、撤回、终止、完成、作废等)。
字段 | 类型 | 描述 |
msgId | string | 消息 ID |
msgType | string | 消息类型: Instance:流程实例 Task:任务状态 |
action | int | 操作。数据字典如下: 0:待办 1:提交 2:同意 3:拒绝 4:转办 5:撤销 6:回退 7:会签加签 8:终止 9:跳过 13:处理 15:节点抄送 16:废弃流程 17:保存草稿 18:删除流程实例 19:自动同意 20:自动同意(异常处理) 21:审批抄送 22:触发流程实例 23:流程实例结束 |
actionName | string | 操作名称 |
processName | string | 流程名称 |
processKey | string | 流程标识 |
flowTitle | string | 流程标题 |
flowCode | string | 流程编码 |
startTime | date | 开始时间 |
endTime | date | 结束时间 |
instanceId | string | 实例 ID |
envType | string | 环境类型 |
sourceType | string | 请求来源 |
requestId | string | 请求 ID |
approverMap | map<string,string> | 当前任务审批人,为审批人 UserId 到审批人名称的映射 |
startUserMap | map<string,string> | 流程发起人,为发起人 UserId 到发起人名称的映射 |
elementMap | map<string,string> | 当前节点列表,为节点 ID 到节点名称的映射 |
instanceStatus | int | 流程实例状态。数据字典如下: 0:审批中 1:已终止 2:已驳回 3:审批通过 4:已作废 5:已删除 |
instanceStatusName | string | 流程实例状态名称 |
任务状态变更时(例如:任务提交、同意、拒绝、转办、加签、回退、撤回等)。
字段 | 类型 | 描述 |
msgId | string | 消息 ID |
msgType | string | 消息类型: Instance:流程实例 Task:任务状态 |
action | int | 操作。数据字典如下: 0:待办 1:提交 2:同意 3:拒绝 4:转办 5:撤销 6:回退 7:会签加签 8:终止 9:跳过 13:处理 15:节点抄送 16:废弃流程 17:保存草稿 18:删除流程实例 19:自动同意 20:自动同意(异常处理) 21:审批抄送 22:触发流程实例 23:流程实例结束 24:删除草稿 |
actionName | string | 操作名称 |
processName | string | 流程名称 |
processKey | string | 流程标识 |
flowTitle | string | 流程标题 |
flowCode | string | 流程编码 |
startTime | date | 开始时间 |
endTime | date | 结束时间 |
instanceId | string | 实例 ID |
envType | string | 环境类型 |
sourceType | string | 请求来源 |
requestId | string | 请求 ID |
approverMap | map<string,string> | 当前任务审批人,为审批人 UserId 到审批人名称的映射 |
startUserMap | map<string,string> | 流程发起人,为发起人 UserId 到发起人名称的映射 |
taskStatus | int | 任务状态。数据字典如下: 1:待办 2或3:已办 4:已终止 5:待提交 |
taskStatusName | string | 任务状态名称 |
elementId | string | 当前节点 ID |
elementName | string | 当前节点名称 |
elementType | string | 节点类型 |
elementTypeName | string | 节点类型名称 |
comment | string | 审批意见 |
turnToUserMap | map<string,string> | 任务转签人,为转办人 UserId 到转办人名称的映射 |
addAssigneeMap | map<string,string> | 任务加签人,为加签人 UserId 到加签人名称的映射 |
ccUserMap | map<string,string> | 任务抄送人,为抄送人 UserId 到抄送人名称的映射 |
taskMap | map<string,string> | 当前审批人任务,为审批人 UserId 到任务 ID 的映射 |
pageUrlMap | map<string,string> | 任务跳转链接,为任务 ID 到跳转链接的映射 |
deletedTaskMap | map<string, string> | 回退、撤销时被删除任务,为审批人 UserId 到任务 ID 的映射 |
taskStartTime | date | 任务开始时间 |
taskEndTime | date | 任务结束时间 |
rollbackElementId | string | 回退目标节点 ID |
rollbackElementName | string | 回退目标节点名称 |
revokeElementId | string | 撤销目标节点 ID |
revokeElementName | string | 撤销目标节点名称 |
isCcTask | boolean | 是否为抄送节点任务 |