流程如何知道是同意结束的还是驳回结束的

Blade 未结 1 82
NaNa
NaNa 剑圣 2025-11-23 11:07

我有一个流程,审核人同意也能结束这个流程,驳回也可以,我如何拿到是同意结束的还是驳回结束的
BladexCloud最新版

1条回答
  • 2025-11-23 23:47

     1. 完成任务时传一个流程变量(比如 approveResult = AGREE/REJECT)

     2. 用条件连线自动走到不同的结束节点

     3. 后面任何地方(历史、业务表、消息推送)都可以通过 approveResult 这个变量精准判断到底是“同意结束”还是“驳回结束”


    代码里完成任务时设置变量

    // 同意 → 直接结束流程
    Map<String, Object> variables = new HashMap<>();
    variables.put("approveResult", "AGREE");   // 关键这行
    taskService.complete(taskId, variables);
    
    // 驳回 → 结束流程
    Map<String, Object> variables = new HashMap<>();
    variables.put("approveResult", "REJECT"); // 关键这行
    taskService.complete(taskId, variables);


    后面想判断是哪种方式结束的,直接读历史变量就行

    String result = (String) historicProcessInstance
        .getProcessVariables()
        .get("approveResult");   // 结果是 "AGREE" 或 "REJECT"
    
    // 或者用历史变量表查询
    List<HistoricVariableInstance> vars = historyService.createHistoricVariableInstanceQuery()
        .processInstanceId(processInstanceId)
        .variableName("approveResult")
        .singleResult();


    0 讨论(0)
提交回复