手机站:/m

数据库_云主机计算机大数据-费用_评分榜

时间:2021-09-28 12:05编辑:淘客樊里来源:淘客樊里当前位置:主页 > CDN >

数据库_云主机费用_评分榜

在这篇博文中,您将学习如何在sapgui的字段掩蔽中处理基于上下文(属性)的掩蔽场景。这些场景是使用"BAdI:UI掩蔽和字段访问跟踪"实现的。这里提供了带有每个场景解释的示例编码。

用例1

一个对象(例如工资)被试图看到该对象的主体(例如用户)屏蔽。如果对象(如薪资)仅为某些值(如CEO的薪资而非其他所有值)屏蔽,这称为基于属性的屏蔽(ABM)。

解决方案通过以下步骤在UI屏蔽中实现–

**导入数据包含表名。将表名读入变量

DATA(lv\u tabname)=cs\u mask\u DATA-tabname.

**设置逻辑所基于的上下文字段。在用例中我们需要知道对象的职员号

lv\u context\u field='PERNR'。

**读取用户界面的程序名

DATA(lv\u program)=/uim/cl\u dynp\u msk=>sv\u In\u prog.

**获取对象的职员号(salary)

CONCATENATE'('lv\u program')'lv tabname'-'lv\u context\u field INTOlv\u oid.

分配(lv\u oid)到

如果sy subrc NE 0.

**表中不包含员工编号字段。实现一些逻辑来获取员工编号(例如,通过程序堆栈读取)

RETURN.

ENDIF.

**检查对象是否要从主题中屏蔽。例如,这可以通过在用户表中维护对象的employee来实现。此外,此表中还应维护员工的白名单角色

从中选择单个白名单角色进入@lv\u角色

,其中pernr=@

**如果在表中找不到条目,掩蔽以标准方式发生

IF sy subrc NE 0.

RETURN.

ENDIF.

**检查查看对象的主体是否具有白名单角色。如果没有为员工维护白名单角色,企业信息化软件,这意味着应该从所有用户屏蔽对象

将cs\u mask\u data-masked\u val->*分配给。

如果lv\u role是初始角色。

cs\u mask\u data-auth\u flag=abap\u false。

='***'。"选择您选择的掩蔽图案

返回

结束

***如果用户表中维护了白名单角色,购物返利app,检查查看信息的主体是否具有角色

选择单个agr\U名称

从agr\U用户

进入lv\U授权

绕过缓冲区

其中uname EQ sy uname

和agr\U名称=lv\U角色

和FROM\U dat=sy datum.

**如果主体未经授权查看对象,老虎淘客,屏蔽对象否则显示原值

如果sy subrc EQ 0.

cs\u mask\u data-auth\u flag=abap\u true.

else.

cs\u mask\u data-auth\u flag=abap\u false.

='***'.

ENDIF.

结论–

使用上述代码在BADI实现中屏蔽敏感数据(如CEO工资或任何其他敏感信息)只有那些拥有白名单角色的人才能访问组织和组织。

用例2

员工(主题)只能看到他们自己部门的员工数据(对象)或通过PFCG角色(白名单角色)额外允许的员工数据(对象)。

这是一种基于级别的掩蔽情况,其中取决于层次结构级别主题(如用户)的对象(如薪资)被屏蔽

解决方案在UI屏蔽中实现,步骤如下–

**导入数据包含表名。将表名读入变量

DATA(lv\u tabname)=cs\u mask\u DATA-tabname.

**设置逻辑所基于的上下文字段。在用例中我们需要知道对象的职员号

lv\u context\u field='PERNR'。

**读取用户界面的程序名

DATA(lv\u program)=/uim/cl\u dynp\u msk=>sv\u In\u prog.

**获取对象的职员号(salary)

CONCATENATE'('lv\u program')'lv tabname'-'lv\u context\u field INTOlv\u oid.

分配(lv\u oid)到

如果sy subrc NE 0.

**表中不包含员工编号字段。实现一些逻辑来获取员工编号(例如通过程序堆栈读取)

返回

结束

**获取员工的部门(对象)

从pa0001中选择单个werks

进入@lv\u o\u did

其中pernr EQ@

**获取主题的员工编号

从pa0105中选择单个pernr

进入@lv\u pernr\u subject

WHERE usrid EQ@sy uname.

**获取受试者的部门

从pa0001

中选择单个werks进入@lv\u s\u did

WHERE pernr EQ@lv\u pernr\u subject.

**如果受试者和受试者属于同一部门,如果PFCG角色允许他/她,企业网站自助建站,则不要遮罩

如果lv\U s\U did EQ lv\U o\U did

返回

ENDIF

**如果主题和对象属于不同的部门,则理想情况下不允许主题查看对象数据。作为一个特例,如果主体有一个被列入白名单的角色,他就可以看到这个对象。这可以通过在用户表中维护对象的employee来实现。维护此表中员工的白名单角色

从中选择单个白名单角色进入@lv\u角色

其中pernr=@

**如果在表中找不到条目,则以标准方式进行掩蔽

如果sy subrc NE 0.

返回

ENDIF.

**检查查看对象的主体是否具有白名单角色。如果没有为员工维护白名单角色,这意味着应该从所有用户屏蔽对象

将cs\u mask\u data-masked\u val->*分配给。

如果lv\u role为INITIAL.

cs\u mask\u data-auth\u flag=abap\u false.

='***'。选择您选择的屏蔽模式

返回

ENDIF.

***如果白名单角色为INITIAL在用户表中维护,返利系统,检查查看信息的主体是否具有角色

选择单个agr\U名称

从agr\U用户

进入lv\U授权

绕过缓冲区

其中uname EQ sy uname

和agr\U名称=lv\U角色

和FROM\U dat=sy datum.

**如果主体未经授权查看对象,mask对象else显示原值

如果sy subrc EQ 0.

cs\u mask\u data-auth\u flag=abap\u true.

else.

cs\u mask\u data-auth\u flag=abap\u false.

='***'。

ENDIF.

结论–

上一篇香港服务器_acces买云服务器-s数据库使用_限时特惠

下一篇云服务器_香港国内大数据-站群服务器_返利

云市场知识本月排行

云市场知识精选