【camunda】获取act_hi_detail表中的所有信息,包括每个节点用过的变量信息

        // 该流程实例的所有走过的task
        List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery()
                .processInstanceId(processInstanceId)
                .finished()
                .list();
        for (HistoricTaskInstance h : taskInstanceList) {
            Map<String, Object> variables = new HashMap<>();
            // 获取act_hi_detail表中的信息,但是HistoricDetail还没有包含变量信息
            List<HistoricDetail> details = historyService.createHistoricDetailQuery()
                    .variableUpdates()
                    .activityInstanceId(h.getActivityInstanceId())// 使用activityInstanceId可以获取到每个节点对应的detail信息
                    .list();
            for (HistoricDetail historicDetail : details) {
                // 所以需要将HistoricDetail转换为HistoricVariableUpdate才可以获取到variables
                HistoricVariableUpdate historicVariableUpdate = (HistoricVariableUpdate) historicDetail;
                variables.put(historicVariableUpdate.getVariableName(), historicVariableUpdate.getValue());
            }
        }

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要给 Camunda 中的 `act_hi_procinst` 表新增字段,你需要执行以下步骤: 1. 创建扩展表:由于 `act_hi_procinst` 表是 Camunda 的历史流程实例表,直接修改该表可能会影响 Camunda 的正常运行。因此,我们建议创建一个新的扩展表,与 `act_hi_procinst` 表进行关联。 2. 创建新的扩展表:你可以使用数据库管理工具(如MySQL Workbench)或命令行来创建新的扩展表。确保新表具有与 `act_hi_procinst` 表相同的主键列,并添加你想要的新字段。 例如,你可以创建一个名为 `ext_act_hi_procinst` 的新表,具有以下列: - `proc_inst_id_`:与 `act_hi_procinst` 表的 `proc_inst_id_` 列关联 - `new_field1`:新增的字段1 - `new_field2`:新增的字段2 - ... 3. 更新历史流程实例数据:将现有的历史流程实例数据从 `act_hi_procinst` 表复制到新的扩展表中。你可以使用 SQL 语句或编写一个程序来完成这个任务。确保在复制数据时保持数据的一致性。 4. 修改 Camunda 配置:在 Camunda 的配置文件中,将历史流程实例表的映射更改为新的扩展表。这样,Camunda 将使用新的表来存储历史流程实例数据。 在 `camunda.cfg.xml` 或 `application.properties`(如果你使用 Spring Boot)中,找到以下配置项并进行相应的更改: ``` camunda.history.table-prefix=ext_ camunda.history.schema-update=false ``` 这将告诉 Camunda 使用新的扩展表来存储历史流程实例数据,并防止 Camunda 自动更新数据库结构。 请确保在执行这些步骤之前备份你的数据库,并在生产环境中小心操作。这样可以避免不必要的数据丢失或损坏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值