Camunda 7按BPMN定义提取FNI使用量的数据库查询求助
按BPMN定义拆分的Camunda 7 FNI计数查询
以下是扩展后的查询语句,可按BPMN流程定义拆分统计指定时间段内的FNI(流程实例启动)数量:
SELECT 'FNI' AS Metric, COALESCE(pd.KEY_, '未知流程定义') AS BPMN_Definition_Key, COALESCE(pd.NAME_, '未命名流程') AS BPMN_Definition_Name, ISNULL(SUM(ml.VALUE_), 0) AS FNI_Count FROM ACT_RU_METER_LOG ml LEFT JOIN ACT_RE_PROCDEF pd ON ml.PROC_DEF_ID_ = pd.ID_ WHERE ml.NAME_ = 'activity-instance-start' AND ml.TIMESTAMP_ BETWEEN '2022-01-01' AND '2022-12-31' GROUP BY pd.KEY_, pd.NAME_ ORDER BY FNI_Count DESC;
关键说明:
- 通过
LEFT JOIN关联ACT_RE_PROCDEF表,从流程定义表中获取BPMN定义的唯一标识(KEY_)和名称(NAME_) - 用
COALESCE处理流程定义信息缺失的情况,避免结果出现NULL值 - 按流程定义的
KEY_和NAME_分组,确保同一流程定义的实例被聚合统计 - 按FNI计数降序排列,方便快速定位最频繁启动的流程
额外扩展:按具体活动节点拆分
如果需要进一步细化到流程内的具体活动节点(比如用户任务、网关等),可以调整查询如下:
SELECT 'FNI' AS Metric, COALESCE(pd.KEY_, '未知流程定义') AS BPMN_Definition_Key, COALESCE(pd.NAME_, '未命名流程') AS BPMN_Definition_Name, COALESCE(ml.ACTIVITY_ID_, '未知活动') AS Activity_ID, COALESCE(ml.ACTIVITY_NAME_, '未命名活动') AS Activity_Name, ISNULL(SUM(ml.VALUE_), 0) AS FNI_Count FROM ACT_RU_METER_LOG ml LEFT JOIN ACT_RE_PROCDEF pd ON ml.PROC_DEF_ID_ = pd.ID_ WHERE ml.NAME_ = 'activity-instance-start' AND ml.TIMESTAMP_ BETWEEN '2022-01-01' AND '2022-12-31' GROUP BY pd.KEY_, pd.NAME_, ml.ACTIVITY_ID_, ml.ACTIVITY_NAME_ ORDER BY FNI_Count DESC;
这个查询会把统计粒度降到流程内的每个活动节点,和Enterprise Cockpit展示的节点级数据对应,帮助你识别流程中最复杂、调用最频繁的环节。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

