# 资产流程审批相关问题排查指南
# 排查指南详细说明
通用前置检查:
- 确认版本:首先明确是
7.3 GA还是7.3.1版本,不同版本的补丁不通用。 - 确认流程类型:资产发布流程、变更流程、申请流程、问题上报流程,不同流程的排查重点不同。
- 查阅补丁列表:在寻求复杂解决方案前,强烈建议先检索是否有官方发布的补丁。您可以通过以下链接访问官方补丁列表:
- DAMP 7.3.1 补丁列表: DAMP7.3.1补丁列表 (opens new window)
- DAMP 7.3 GA 补丁列表: DAMP7.3GA补丁列表 (opens new window)
# 场景一:流程发起失败
问题现象:
- 点击“提交”后报错,无法发起流程。
- 报主键冲突错误:
Duplicate entry '...' for key 'PRIMARY'。 - 报事务回滚错误。
- 报“找不到前驱节点”或“操作数据异常”。
排查步骤:
第一步:排除产品BUG。
- 操作:在官方补丁列表中,使用
Ctrl+F搜索关键词流程、提交、主键冲突。 - 相关补丁:
- DAMP 7.3.1:
DAMP_7.3.1_SERVER_20250611_P2(解决资产发布流程中获取不到字段属性详情) - DAMP 7.3 GA:
DAMP_7.3_SERVER_20240416_P1(解决模型提交无提示问题)
- DAMP 7.3.1:
- 解决方案:若找到描述匹配的补丁,则申请并应用。
- 操作:在官方补丁列表中,使用
第二步:处理主键冲突问题。
现象:报错
Duplicate entry '...' for key 'PRIMARY'。排查项:
- 网络波动时用户重复点击提交按钮。
- BPS流程定义ID生成器达到上限。
- 流程相关表存在脏数据。
解决方案:
方案A:清理重复数据
-- 找到重复的主键值对应的流程,根据情况删除或忽略 -- 如果是重复点击导致,忽略即可,重新发起新流程方案B:调整BPS唯一ID生成器
-- 检查eos_unique_table表 SELECT * FROM eos_unique_table WHERE NAME = 'ProcessDefPropertiesID'; -- 修改CODE值为更大的数(如原值+20) UPDATE eos_unique_table SET CODE = CODE + 20 WHERE NAME = 'ProcessDefPropertiesID'; -- 重启BPS服务
第三步:处理事务回滚问题。
现象:报错
Transaction rolled back because it has been marked as rollback-only。排查项:业务表字段长度不足,如
rcm_operation_log表的BUS_ID字段。解决方案:
-- 修改表结构,增加BUS_ID字段长度 ALTER TABLE rcm_operation_log MODIFY BUS_ID VARCHAR(1000); -- 或改为TEXT类型 ALTER TABLE rcm_operation_log MODIFY BUS_ID TEXT; -- 修改后重启服务,重新发起流程
第四步:处理“找不到前驱节点”错误。
- 现象:报错
Can't find previous transitions。 - 排查项:BPS流程定义损坏或版本问题。
- 解决方案:
- 申请补丁
PLATFORM_8.3.1_BPS_20240618_P1(BPS组件补丁)。 - 重新发布流程定义版本。
- 申请补丁
- 现象:报错
第五步:检查用户权限。
- 现象:点击提交无反应或提示无权限。
- 排查项:用户是否拥有发起流程的权限。
- 解决方案:
- 资产发布/变更:需要资产管理员或部门管理员角色。
- 资产申请:普通用户即可发起。
- 问题上报:普通用户即可发起。
# 场景二:流程卡住/无法审批
问题现象:
- 流程提交后长时间处于“审核中”。
- 流程回退后卡住,无法继续或终止。
- 资源准备环节卡住,无法完成。
- 点击审批按钮无响应。
排查步骤:
第一步:排除产品BUG。
- 操作:在官方补丁列表中,搜索关键词
卡住、审核中、回退。 - 相关补丁:暂无直接相关补丁。
- 解决方案:按以下步骤排查。
- 操作:在官方补丁列表中,搜索关键词
第二步:处理审核中卡住问题。
操作:检查流程实例当前状态。
SQL查询:
-- 查询BPS流程实例表 SELECT * FROM bps_process_instance WHERE business_key = '资产ID'; -- 查询待办任务表 SELECT * FROM bps_work_item WHERE process_instance_id = '实例ID';排查项:
- 是否有节点处于待处理状态但无人处理。
- 是否有节点执行失败但未报错。
解决方案:
在“工作流程-流程监控”中手动推进或终止流程。
清理
bfp_process_opinions表中的脏数据:CREATE TABLE bfp_process_opinions_bak_yyyymmdd AS SELECT * FROM bfp_process_opinions; DELETE FROM bfp_process_opinions WHERE process_id = '问题流程ID';
第三步:处理回退后卡住问题。
现象:资产变更流程回退并终止后,资产状态卡在“变更中”。
排查项:流程配置中发起人环节的终止操作设置。
解决方案:
- 管理员登录,进入“工作流程” -> “业务配置” -> “流程配置”。
- 找到对应的资产流程(如资产变更流程)。
- 点击流程定义,进入“环节定义”页签。
- 找到“发起人”环节,点击“修改”。
- 将“终止操作”从默认值改为 “保存数据”。
- 保存配置后重新发起流程测试。
原理:当流程在发起人环节被终止时,“保存数据”选项会保存当前变更的数据并将资产状态回滚到变更前状态,而不是卡在“变更中”。
第四步:处理资源准备卡住问题。
- 现象:资产申请流程到“资源准备”环节卡住。
- 排查项:
- 是否已完成服务授权。
- 是否已完成自定义授权。
- 资源生成是否成功。
- 解决方案:
- 进入申请单详情,查看“资源准备”标签页。
- 检查是否所有资源都已授权。
- 如果共享方式为“数据服务”,确认“服务授权”已完成。
- 补全资源后,点击“提交”完成资源准备环节。
# 场景三:待办任务收不到
问题现象:
- 流程已经提交,但审批人收不到待办任务。
- 审批人登录后在“我的待办”中看不到任务。
- 会签节点部分审批人收不到任务。
排查步骤:
第一步:排除产品BUG。
- 操作:在官方补丁列表中,搜索关键词
待办、任务。 - 相关补丁:暂无直接相关补丁。
- 解决方案:按以下步骤排查。
- 操作:在官方补丁列表中,搜索关键词
第二步:检查角色授权。
操作:确认审批人拥有正确的角色。
各流程审批角色:
流程类型 审批节点 所需角色 资产发布流程 数据部门审批 资产管理员 资产变更流程 数据部门审批 资产管理员 资产申请流程 业务部门审批 资产部门管理员 资产申请流程 数据部门审批 资产管理员 问题上报流程 问题处理 资产管理员 解决方案:
- 租户管理员(
admin)登录。 - 进入“组织管理” -> “员工管理”。
- 找到审批人账号,点击“授权”。
- 授予相应的角色(资产管理员/资产部门管理员)。
- 重新发起流程测试。
- 租户管理员(
第三步:检查部门管理员配置。
- 现象:业务部门审批环节收不到任务。
- 排查项:资产所属部门是否有部门管理员。
- 解决方案:
- 确认资产所属的部门在“部门目录”中已存在。
- 如果部门不存在,点击“同步部门”从AFCenter同步。
- 确认该部门下有员工拥有“资产部门管理员”角色。
- 如果部门下没有员工拥有该角色,则由资产管理员(
dtadmin)代为审批。
第四步:检查会签节点配置。
- 现象:多部门资产申请时,部分部门审批人收不到任务。
- 排查项:会签节点配置是否正确。
- 解决方案:
- 这是产品设计特性,一次申请多个资产会触发会签。
- 需要所有涉及的部门管理员都审批通过才能进入下一步。
- 确认所有涉及的部门都已配置部门管理员。
第五步:检查流程变量。
操作:查看流程实例的变量表。
SQL查询:
SELECT * FROM bps_variable WHERE process_instance_id = '实例ID';排查项:审批人变量是否正确赋值。
解决方案:如果变量错误,需调整流程定义。
# 场景四:资产状态与流程不一致
问题现象:
- 流程已审批通过,但资产状态仍为“审核中”。
- 流程已作废,但资产仍可被检索到。
- 资产变更流程完成后,资产内容未更新。
- 流程回退后,资产状态未回滚。
排查步骤:
第一步:排除产品BUG。
- 操作:在官方补丁列表中,搜索关键词
状态、审核中、已发布。 - 相关补丁:
- DAMP 7.3.1:
DAMP_7.3.1_SERVER_20250313_P2(解决分类名称修改后未同步)
- DAMP 7.3.1:
- 解决方案:若找到描述匹配的补丁,则申请并应用。
- 操作:在官方补丁列表中,搜索关键词
第二步:处理“发布后仍为审核中”问题。
操作:检查流程完成后的回调逻辑。
排查项:
- BPS流程完成事件是否成功触发。
- 资产状态更新SPI是否执行成功。
- 是否有流程脏数据阻塞状态更新。
解决方案:
清理流程脏数据
-- 备份相关表 CREATE TABLE bfp_process_opinions_bak_yyyymmdd AS SELECT * FROM bfp_process_opinions; -- 清理流程意见表中的脏数据(谨慎操作) DELETE FROM bfp_process_opinions WHERE process_id = '具体流程ID';手动更新资产状态
-- 查看资产当前状态 SELECT id, name, status FROM rcm_catalog WHERE id = '资产ID'; -- 手动更新状态(STATUS: 0-草稿, 1-审核中, 2-已发布, 3-已下线, 4-已作废) UPDATE rcm_catalog SET status = 2 WHERE id = '资产ID';
第三步:处理“作废后仍可查看”问题(7.3GA版本)。
- 现象:标准数据已作废,但标准修订记录中应该显示一条作废的记录,实际未显示。
- 排查项:7.3_GA_1050版本限制。
- 解决方案:
- 这是7.3GA版本的产品设计,作废后数据类似于逻辑删除。
- 发版时不包含在数据上加操作内容的功能。
- 当前版本不支持在修订记录中显示作废操作。
- 后续版本研发考虑支持此功能,或升级到7.3.1版本。
第四步:处理“变更后状态卡住”问题。
- 现象:变更流程完成后,资产内容未更新或状态异常。
- 排查项:SPI实现是否有定制。
- 解决方案:
- 如果项目有源码定制,检查SPI接口实现逻辑。
- 确认流程完成后调用资产更新接口是否成功。
- 查看DAMP后台日志,搜索资产ID或流程ID相关日志。
# 场景五:批量操作流程异常
问题现象:
- 批量发布资产时,部分资产发布失败。
- 批量提交标准时,事务回滚。
- 批量申请资产时,待申请列表异常。
排查步骤:
第一步:排除产品BUG。
- 操作:在官方补丁列表中,搜索关键词
批量、发布、提交。 - 相关补丁:
- DAMP 7.3.1:
DAMP_7.3.1_SERVER_20250509_P1(解决批量导出问题)
- DAMP 7.3.1:
- 解决方案:若找到描述匹配的补丁,则申请并应用。
- 操作:在官方补丁列表中,搜索关键词
第二步:处理批量发布失败。
- 操作:检查失败资产的状态。
- 排查项:批量发布只支持“草稿”状态的资产/标准。
- 解决方案:
- 筛选出状态为“草稿”的资产进行批量发布。
- 已完成发布或审核中的资产不能再次批量发布。
第三步:处理批量提交流失效率。
现象:多个标准批量提交时,部分标准提交失败,报事务回滚。
排查项:
rcm_operation_log表的BUS_ID字段长度不足。解决方案:
-- 修改表结构,增加BUS_ID字段长度 ALTER TABLE rcm_operation_log MODIFY BUS_ID VARCHAR(1000); -- 或改为TEXT类型 ALTER TABLE rcm_operation_log MODIFY BUS_ID TEXT;
第四步:处理批量申请异常。
- 现象:添加到待申请列表的资产,发起申请时异常。
- 排查项:待申请列表数据损坏。
- 解决方案:
- 清空待申请列表。
- 重新选择资产,添加到待申请列表。
- 重新发起申请。
# 场景六:流程配置/SPI问题
问题现象:
- 流程走了错误的审批节点。
- 需要自定义流程逻辑但不知如何配置。
- 流程SPI扩展不生效。
- 流程版本错误。
排查步骤:
第一步:检查平台参数配置。
- 操作:进入“平台配置” -> “平台参数配置”。
- 排查项:资产流程配置参数是否正确。
参数名 说明 默认值 flow.asset_release资产发布流程 com.primeton.data.dam.portal.flow.asset_releaseflow.asset_chenge资产变更流程 com.primeton.data.dam.portal.flow.asset_releaseflow.asset_use资产申请流程 com.primeton.data.dam.portal.flow.asset_applyflow.assest_problem问题上报流程 com.primeton.data.dam.portal.flow.assest_problem- 解决方案:确保参数值正确指向存在的流程定义ID。
第二步:检查流程定义版本。
- 操作:进入“工作流程” -> “流程定义”。
- 排查项:
- 流程定义是否存在。
- 流程版本是否为“已发布”状态。
- 是否有多个版本导致混乱。
- 解决方案:
- 如果流程定义不存在,重新导入流程包。
- 将正确的流程版本设为默认版本。
- 停用旧版本。
第三步:检查SPI实现。
现象:需要定制流程逻辑,如根据资产密级动态选择审批人。
排查项:SPI接口实现类是否正确。
解决方案:
SPI接口说明
- 资产发布/变更流程SPI:
com.primeton.data.dam.portal.flow.asset_release - 资产申请流程SPI:
com.primeton.data.dam.portal.flow.asset_apply - 问题上报流程SPI:
com.primeton.data.dam.portal.flow.assest_problem
项目定制注意事项
- 如果项目有源码,可以自行修改SPI实现。
- 修改后需重新打包部署。
- 确保SPI类路径与平台参数配置一致。
- 资产发布/变更流程SPI:
第四步:处理多路分支流程。
- 现象:多路分支流程设置审批通过后,业务状态不一致。
- 排查项:SPI接口判断逻辑。
- 解决方案:
- 目前是根据人工活动的名称(如
auth)判断的。 - 项目有源码的情况下,可以自行修改SPI接口判断逻辑。
- 修改
getTaskType方法,根据实际活动名称返回正确类型。
- 目前是根据人工活动的名称(如