流程挂起 - 报错【没有找到{***}活动参与人】&【**{***}没有满足条件的转移】排查方案原创
金蝶云社区-云社区用户70i82178
云社区用户70i82178
23人赞赏了该文章 699次浏览 未经作者许可,禁止转载编辑于2020年08月22日 15:16:55
封面

文章背景:流程定义配置发布后,单据提交进入流程,单据流程在某个节点挂起案例分析。

挂起报错为:

【没有找到{***}活动参与人】

【**{***}没有满足条件的转移】


该类问题并不难,并且初步分析即可解决。

【核心要点】

1、单据运行时 流程导出分析 - 

2、流程属性文件导出分析 -

3、流程图上方 - 错误日志导出分析


经典案例:节点挂起 - 找不到活动参与人。(如下图所示)

image.png

该报错需要结合 (单据运行是流程)和(流程属性文件)进行问题

主要类型有:

    :节点参与人配置 - 【参与人变量 - i】

    :节点参与人配置 - 【某个具体职员、职位、或者对应的某个对应关系(直接上级,下级,间接上下级)】

    :节点参与人配置 - 【工作流角色 /工作流角色组】


【剖析】

:节点参与人配置 - 【参与人变量 - i】

    1、单据提交流程变量 i 值为空,导致流程找不到活动参与人 后挂起

        解决方案: 

                a:检查流程定义配置 变量 i 的赋值情况    见《图二》

                b:分析出该流程变量在该流程中没有赋值 - 需要修改流程定义 在发布重新提交单据走流程即可

                c:对于已经进入提交的流程 - 可参考附件《修改正在运行的流程变量的方案.docx》即可


    2、单据提交流程变量 i 值不为空 ,但是流程还是找不到活动参与人 后挂起 见《图三》

        解决方案: (PS:假如变量值不是预计所获取的值 - 则要像 1 - a 那样分析流程变量赋值情况)

                a:取流程属性文件 - 对应流程变量 i 的值

                b:检测变量 i - 所对应的用户/职员是否满足工作流参与人条件

                        见附件 - 《【SQL】-检查用户是否符合工作流参与人.docx》

                c:若为脚本取值异常 - 则需要写这个脚本的人分析 

                        其余数据问题可咨询总部老师分析

image.png

image.pngimage.png                

:节点参与人配置 - 【某个具体职员、职位、或者对应的某个对应关系(直接上级,下级,间接上下级)】


    1、配置了某个具体 职员 - 但是流程报错 找不到参与人 - 节点挂起

        解决方案: (PS:一般出现该问题的情况为 - 职员/用户离职了导致)

            可通过附件 - 《【SQL】-检查用户是否符合工作流参与人.docx》检查即可

            当前运行流程可 - 重新指定执行人即可


    2、配置了某个具体 职位 - 但是流程报错 找不到参与人 - 节点挂起

        解决方案:(PS:工作流会找到该职位上所有人员作为本节点参与人)

             - 即多了一步通过职位id查职位上所有人员(对应配置的关系 - 找人员),在校验人员是否满足工作流参与人条件

        -- > 【核心要点】 - 我们这里需要取到的是 单据运行时流程定义配置 - 所对应的职位id


        【取法&解释】:见下图 - 代码编辑模式下 - 找到对应节点的-配置的职位id的值

        因为工作流是通过流程定义中这个职位id取后台找人员的,若客户做过组织或职位调整都有可能造成原单据运行时流程找对应人员找不到,故报错找不到活动参与人。


        【取到对应id后】 - 在带入一下sql查询 该职位上人员,再《【SQL】-检查用户是否符合工作流参与人.docx》

        select fpersonid from t_org_positionMember where fpositionid = '【找到的职位id】'


    3、配置了某个    关系,(PS:检查方式与 2 相似 - 只是对应sql需要转换调整一下)

        例如:

        a、取申请人职位直接上级

        select  FPARENTID  from T_ORG_PositionHierarchy where FHIERARCHYID ='00000000-0000-0000-0000-000000000001396FCAD0'and FCHILDID ='【找到的职位id】'

        b、根据部门fid取部门的负责人作为审批人 

        select FID from T_PM_USER where Fpersonid in 

(select Fpersonid from  T_ORG_PositionMember where fpositionid in

( select FID from T_ORG_Position where FIsRespPosition = '1' and FAdminOrgUnitID = '【你拿到的部门fid变量】'))"


image.png

image.png

三:工作流角色 - 内容较多,分析方案与上面有些差异 (预估另外写一篇文章解析)


**{***}没有满足条件的转移


该类问题主要为 - 挂起的节点 后续所有的连接弧都没有满足条件。工作流判断不知道往哪个连接弧方向流走故报此错。

【核心要点】 - 取流程定义文件和流程属性文件分析



【现象 - 流程状态为已挂起】 - 错误日志  路由()没有满足条件的转移!  (见下图)

1598077086(1).jpg

取到对应的流程属性的值 与 该路由节点后续连接弧条件 进行比较。若没有一条连接弧满足该情况 则流程会报该错误

    若流程变量取值不对 - 

        a:没取到值

                检查单据后台单据数据表中对应字段有没有数据

                 - 若没有则检查单据上是否在录入是就没有录入该字段数据

                    【备注】扩展的字段后台数据表没有值 - 需要客户扩展该字段人员自行分析

            【检查方案】流程属性中 - 找到单据id -> 查询分析器 -> uuid查表名 -> 确认 出来的sql在执行一下就是单据                后台数表的存储的情况。

        b:取到了值 - 但是值不对

            按照上述【图二】排查该流程变量在哪里被赋值

                若流程中某个地方将流程变量的值改变了导致 

                    - 按照需求修改流程定义即可


9Z9MTI%(@HCEG(`TY%(E8X5.png        

赞 23