指定参与人或者重新指定参与人时,报错:“ 选定的职员处于非正常工作状态或者没有合适的用户,请检查!”
报错的代码类及方法:
com.kingdee.eas.basedata.person.app.PersonToWFAdapter.getPersonByEmployeeId(Context, String)
分析过程:
重新指定执行人时,根据职员person.id为入口,组装filter对象,对用户user进行过滤,从而为用户user成功分配新建工作流任务
User的Filter对象:person.id = 'Bkbu0Kw5Q5itncgUXQ+lOIDvfe0=' AND isDelete = 0 AND isForbidden = 0 AND (effectiveDate < {TS '2021-06-11 20:43:34'}) AND (invalidationDate > {TS '2021-06-11 20:43:34'})
结果:指定人不满足工作流对参与人的要求,目前,EAS系统仅支持绑定了职员的未禁用的未删除的有效日期范围内的用户且职员的类型是正式员工或试用员工才能参与工作流。
在查询分析器执行以下语句查看指定人是否满足要求:
select person.fnumber 职员编码,person.fname_l2 职员名称, type.fname_l2 职员类型, usr.fname_l2 用户编号 ,usr.fnumber 用户名称,usr.FISDELETE 是否删除,usr.FFORBIDDEN 是否禁用,usr.FEFFECTIVEDATE 生效时间,usr.FINVALIDATIONDATE 失效时间
from t_bd_person person
left outer join t_hr_bdemployeetype type on type.fid = person.femployeetypeid
left outer join t_pm_user usr on usr.fpersonid = person.fid
where person.fnumber='510467'
Ps:必须不能为空,若存在空的字段数据,则有误。
推荐阅读