如何在单据上实现自动取员工的主任岗部门或者主任岗岗位?GetstaffInfo函数的用法介绍原创
金蝶云社区-茗德馨
茗德馨
36人赞赏了该文章 2,956次浏览 未经作者许可,禁止转载编辑于2022年08月30日 19:28:07

部分用户,由于流程设计的需要,需要在单据上自动带出员工的主任岗位或者员工主任岗的部门。但是由于员工任岗是一个单据体,不支持直接配置取岗位或者部门,取出来是一个集合,配置公式会报错,所以,星空8.0.100.202203版本,平台有封装一个公式GetStaffInfo,支持配置自动取取单据上员工的主任岗部门或者主任岗岗位。

GetstaffInfo('p1','p2'),本函数有2个入参。获取部门时,p1为员工标识,p2固定为FPostDept﹔获取岗位时,p1为员工标识,p2固定为FPost。


具体用法举例如下:


案例一:实现取单据上员工的主任岗部门。如出差申请单,实现费用申请部门自动取申请人的主任岗部门。


在申请人字段上,添加引用属性,岗位信息单据体.所属部门。然后在申请人字段做值更新, 公式为:FCostDeptID = GetStaffInfo( 'FStaffID' ,'FPostDept')。


image.png

实现效果为,在出差申请单上,选择申请人字段,带出费用承担部门为申请人的主任岗部门。

image.png

如果希望新增单据默认就带出来,可以在单据头做实体服务规则,公式一样,前置条件为申请人不为空。

image.png


案例二:实现取单据上员工的主任岗岗位。如出差申请单,实现申请人岗位自动取申请人的主任岗岗位。


在申请人字段上,添加引用属性,岗位信息单据体.就任岗位。在bos加一个基础资料字段,基础资料类型绑定岗位信息,设置过滤条件为:

FPOSTID  in (select FPOSTID from T_BD_STAFF where FEMPINFOID = 'GetValue(FStaffID)' AND FFORBIDSTATUS = 'A'),可以实现,岗位F8开窗选择时,可选择的岗位,只有申请人任岗的岗位。
其中FStaffID 标识取的是申请人标识

image.png

但是这样,还是会需要手工去选一下岗位,不能实现自动携带,所以,我们要用到GetStaffInfo公式,在单据头做实体服务规则,前置条件为: FStaffID  <> null(意思是:申请人不为空), 公式为:F_ces_Base = GetStaffInfo( 'FStaffID' ,'FPost')。

image.png
image.png

实现效果,新增即带出申请人岗位

image.png

F8开窗选择,可以选择这个员工任岗的其它岗位

image.png

岗位携带逻辑为:有主任岗就默认带主任岗(不区分单据的组织),如果没有主任岗,就带员工在这个组织(单据主业务组织)下的第一个任岗 岗位

赞 36