【泛微OA】DML接口实现入职流程自动创建人员账号
通过人事状态变更流程关联,我们可以实现流程流转到指定位置时自动创建新入职人员的人力资源卡片,但是对应的OA账号还是要到手动创建,操作不是很方便,也经常给不太熟练的人事或系统管理员带来困扰。这时候我们可以通过DML接口实现自动创建账号,减轻人事的负担。
第一步,入职流程创建人力资源卡片
创建好入职流程后,通过关联人事状态变更流程让系统自动创建人力资源卡片。
第二步,自动带出安全级别
人事在入职流程里通过选择框选择人员职级,我们根据所选择的职级自动带出对应的安全级别。
方法是在“安全级别”字段属性里插入SQL操作
doFieldSQL(" select case $6509$ when 0 then 20 when 1 then 40 when 2 then 50 when 3 then 60 when 4 then 65 when 5 then 70 when 6 then 80 when 7 then 90 end ")
第三步,获取账号和密码
在分配账号节点由系统管理员填写分配的账号和密码。
有的公司账号就是员工的姓名或工号,可以用字段属性插入SQL把账号和密码字段自动赋值成姓名或工号:
参考语句:
取表单姓名字段或工号字段变量
doFieldSQL(" select $9999$ ")
取数据库当前流程对应的工号
doFieldSQL(" select GH from formtable_main_26 where requestId= $requestid$ ")
第四步,计算登录许可密钥
数据库里是存储的密钥是明文密码经过MD5算法得到的大写32位字符串,如果直接把明文密码更新到password字段是无效的,可以通过字段SQL赋值获得。(加密密钥字段建议隐藏起来。)
第一种写法,根据流程表单上的明文密码字段值转换(推荐):
doFieldSQL(" select CONVERT(VARCHAR(50),HashBytes('MD5',$7992$),2)")
第二种写法,根据流程表单上的工号与hrmresource表对应的人员记录匹配,获取workcode,再转换(不推荐):
doFieldSQL(" select CONVERT(VARCHAR(50),HashBytes('MD5',workcode),2) from hrmresource where workcode=$6540$")
第五步,设置附加规则,添加DML接口
触发接口的位置根据需要而定。
注册新的DML接口。
update hrmresource set loginid='{?zh}',password='{?md5}',seclevel='{?aqjb}' where workcode='{?gh}'
这家公司是将工号设置成人员的编号,所以根据入职流程表单的工号值与Hrmresource表的workcode字段做匹配筛选,update筛选出的这一行人员记录的账号,密钥,安全级别,大功告成。
如果姓名是唯一的,也可以把姓名作为筛选条件where lastname='{?xm}'
注意:
1.这个触发接口的附加条件要设置在人力资源卡片创建之后,不然人力资源主表没有对应人员记录。
2.这里并没有对创建的账号做唯一性校验,如果账号字段的值在系统中已经存在,将会造成两个以上的人员账号是相同的,这点需要规避。
共有 2 条评论