开发者社区 问答 正文

钉钉这两个事件类型的区别?

钉钉这两个事件类型的区别?bpms_task_change、bpms_instance_change

展开
收起
真的很搞笑 2024-01-31 20:04:55 30 分享 版权
阿里云 AI 助理回答

在钉钉的事件体系中,bpms_task_changebpms_instance_change 是两种不同的事件类型,分别对应审批任务和审批实例的状态变化。以下是它们的区别及详细说明:


1. bpms_task_change

  • 含义
    该事件表示审批任务的状态发生了变化。例如,某个审批节点的任务被分配、完成或拒绝等操作时会触发此事件。

  • 适用场景
    当需要监控单个审批任务的状态变化时使用。例如,某个审批人完成了自己的审批任务,或者某个任务被转交给其他人。

  • 关键字段

    • taskId:任务的唯一标识。
    • taskStatus:任务的当前状态(如待处理、已完成、已拒绝等)。
    • processInstanceId:所属审批实例的唯一标识。
    • userId:当前任务的操作人(即审批人)。
  • 触发时机

    • 审批任务被分配给某人。
    • 审批任务被完成、拒绝或转交。

2. bpms_instance_change

  • 含义
    该事件表示整个审批实例的状态发生了变化。例如,一个审批流程从“进行中”变为“已完成”或“已终止”。

  • 适用场景
    当需要监控整个审批流程的状态变化时使用。例如,某个审批流程已经结束,或者流程被撤销。

  • 关键字段

    • processInstanceId:审批实例的唯一标识。
    • processInstanceStatus:审批实例的当前状态(如进行中、已完成、已终止等)。
    • originatorUserId:发起审批流程的用户ID。
    • result:审批结果(如同意、拒绝等)。
  • 触发时机

    • 审批流程启动。
    • 审批流程完成或被终止。

主要区别

对比维度bpms_task_changebpms_instance_change
事件粒度单个审批任务的变化整个审批实例的变化
触发范围某个审批节点的任务状态变化整个审批流程的状态变化
关键字段taskId, taskStatus, processInstanceIdprocessInstanceId, processInstanceStatus
适用场景监控单个审批任务的进展监控整个审批流程的结果

重要提醒

  • 事件选择依据
    如果您关注的是某个审批节点的具体操作(如某人是否完成了审批),应订阅 bpms_task_change;如果您关注的是整个审批流程的结果(如流程是否完成),则应订阅 bpms_instance_change

  • 数据关联性
    bpms_task_change 中的 processInstanceId 字段可以与 bpms_instance_changeprocessInstanceId 字段关联,从而实现任务与流程的联动分析。


通过以上说明,您可以根据实际需求选择合适的事件类型进行订阅和处理。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答