SAP HCM 结构化授权函数


导读

结构化授权:结构化授权是SAPHR模块的一个特殊权限校验模块,因为在HCM系统中不单单是权限对象授权,还有组织ID授权,今天分享的一个案例是关于GOS的文件存储权限控制的方案。

作者:vivi,来源:osinnovation

1 故事背景

   在PA30中,上面有一排按钮,其中有个是今天的“主人公”,附件上传的功能,客户的想法是控制人有这个上传的功能,但是找半天也没找到对应的权限对象能控制这个,后来经过一段时间调查,发现这个按钮SAP没有单独的授权对象控制显示与隐藏。在国网做项目的时候,当时存附件是从gos迁移到文件服务系统,所以想法就是应该有增强的地方控制,要不然当时怎能存储的还到文件服务系统。

图片

图片

2 解决方案

   首先想到还是响应的badi,经过九九八十一难,非常不容易找到一个badi,还要感谢自己原来的知识储备,因为知道附件存储是GOS服务,所以在debug代码的时候非常艰难的看到这个名称。badi的名称是GOS_SRV_SELECT.这个badi增强的参数有点不好看懂,因为HR的增强,关于人员编号的参数都是PERNR,但是这个增强的输入参数IS_LPOR,一开始还觉得这个增强不对,后来才发现pernr会赋值给这个变量。

图片

图片

3 增强实现

   确认增强后,就是实现代码,增强有遇到一个问题,就是代码不知道如何写,参考的代码都是空的,后来去看这个ET_OPTIONS内表的结构,发现有sign、option、low的相关参数,这个时候就联想到range内表的填充值,不断查资料与尝试,low值填充VIEW_ATTA到内表et_options中,系统就会隐藏页面中的按钮。现在这个按钮是可以隐藏,但是还是带来一个问题,就是权限的控制,就是什么人能看,什么人不能看(这里还不能简单的PFCG授权,因为还涉及到组织授权),所以这个时候还需要结构化授权,这个结构化授权的逻辑是SAP系统登录账号能否查看PA30中的员工数据,如果员工数据都不能查看,肯定就不能看附件,所以就需要找到一个函数,输入登录账号与员工变量两个参数,如果授权成功,就允许查看附件,如果不允许就不能查看附件,就实现下面的代码。

DATA:    ls_option TYPE sgos_sels.
  ls_option-sign   = 'E'.  ls_option-option = 'EQ'.  ls_option-low    = 'VIEW_ATTA'.  APPEND ls_option TO et_options.

后面终于发现SAP有一个很好用的函数,HR_CHECK_AUTHORITY_PERNR这个函数能解决此问题。函数有下面这个参数,TCLAS是A,b表示招聘,pernr是员工编号,begda是授权的开始时间,endda是授权的结束时间,uname是登录SAP系统的系统账号,如果SAP登录账号在OOSB与oosp配置结构化授权,name此处就不会弹出NO_AUTHORIZATION_FOR_PERNR的提示,否则就会提示无读取权限。所以这个函数解决我结构化授权的查询工作。

图片

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wl8511

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值