如何进行条件UI屏蔽

2020-08-25 22:56发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,专家们,有人可以帮我解决以下与条件用户界面屏蔽有关的要求吗?

问题-根据要求,我们必须屏蔽整个行(如果可能)或多列,具体取决于数据(包含敏感数据)表以及Tcode中的特定字段。

我拥有的信息-

由于UI屏蔽中存在一个约束,该约束限制了我们在获取数据时将确定行数据的方式按列进行,因此BAPI中不满足上述条件。 表的主键字段可以有条件地被屏蔽,因为它们的关系可以直接从DB中选择。 因此,对于POC,只有MARC表中的2个字段被有条件地屏蔽-MATNR(材料)和Plant(WERKS)。 MATNR是表MARC的主键字段,因此我们可以通过从数据库中检查材料来确定该材料是否已扩展到核电站。 WERKS具有直接条件,因此我们知道哪些是特定工厂的。 但是,在其他字段的情况下,我们无法确定该值属于哪个材料或植物,因此无法对其进行屏蔽。我们希望基于MARC-WERKS 的值对MARC表中的其余字段进行屏蔽。/p>

根据不同的标准,超过109个表需要使用类似的遮罩。

对于POC,我们在BAPI/UIM/ES_MASKING-PREPARE_MASK_DATA中完成了以下代码

检查cs_mask_data-fldname EQ'MATNR'或cs_mask_data-fldname EQ'WERKS'或cs_mask_data-fldname EQ'EMATN'。 分配:cs_mask_data-original_val-> * TO ,cs_mask_data-masked_val-> * TO 。 *如果已分配。 案例cs_mask_data-fldname。 当" MATNR"或" EMATN"时。 获取参数ID'MAT'字段lv_matnr。 如果不是lv_matnr是INITIAL。 清除lv_matnr。 设置参数ID'MAT'字段lv_matnr。 万一。 lv_matnr = 。 调用功能'CONVERSION_EXIT_MATN1_INPUT'导出输入= lv_matnr导入输出= lv_matnr例外EXCEPTIONS length_error = 1其他=2。如果sy-subrc <>0。*在此处执行适当的错误处理。 从marc WHERE matnr EQ lv_matnr和werks像中选择COUNT(*)。 如果不是sy-subrc是INITIAL,并且cs_mask_data-auth_flag是INITIAL。 = 。 万一。 当" WERKS"。 如果cs_mask_data-auth_flag是INITIAL并且(1)NE <特定工厂>。 = 。 万一。 当别人。 结束。 ENDIF。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,专家们,有人可以帮我解决以下与条件用户界面屏蔽有关的要求吗?

问题-根据要求,我们必须屏蔽整个行(如果可能)或多列,具体取决于数据(包含敏感数据)表以及Tcode中的特定字段。

我拥有的信息-

由于UI屏蔽中存在一个约束,该约束限制了我们在获取数据时将确定行数据的方式按列进行,因此BAPI中不满足上述条件。 表的主键字段可以有条件地被屏蔽,因为它们的关系可以直接从DB中选择。 因此,对于POC,只有MARC表中的2个字段被有条件地屏蔽-MATNR(材料)和Plant(WERKS)。 MATNR是表MARC的主键字段,因此我们可以通过从数据库中检查材料来确定该材料是否已扩展到核电站。 WERKS具有直接条件,因此我们知道哪些是特定工厂的。 但是,在其他字段的情况下,我们无法确定该值属于哪个材料或植物,因此无法对其进行屏蔽。我们希望基于MARC-WERKS 的值对MARC表中的其余字段进行屏蔽。/p>

根据不同的标准,超过109个表需要使用类似的遮罩。

对于POC,我们在BAPI/UIM/ES_MASKING-PREPARE_MASK_DATA中完成了以下代码

检查cs_mask_data-fldname EQ'MATNR'或cs_mask_data-fldname EQ'WERKS'或cs_mask_data-fldname EQ'EMATN'。 分配:cs_mask_data-original_val-> * TO ,cs_mask_data-masked_val-> * TO 。 *如果已分配。 案例cs_mask_data-fldname。 当" MATNR"或" EMATN"时。 获取参数ID'MAT'字段lv_matnr。 如果不是lv_matnr是INITIAL。 清除lv_matnr。 设置参数ID'MAT'字段lv_matnr。 万一。 lv_matnr = 。 调用功能'CONVERSION_EXIT_MATN1_INPUT'导出输入= lv_matnr导入输出= lv_matnr例外EXCEPTIONS length_error = 1其他=2。如果sy-subrc <>0。*在此处执行适当的错误处理。 从marc WHERE matnr EQ lv_matnr和werks像中选择COUNT(*)。 如果不是sy-subrc是INITIAL,并且cs_mask_data-auth_flag是INITIAL。 = 。 万一。 当" WERKS"。 如果cs_mask_data-auth_flag是INITIAL并且(1)NE <特定工厂>。 = 。 万一。 当别人。 结束。 ENDIF。

付费偷看设置
发送
2条回答
野沐沐
1楼-- · 2020-08-25 23:24

嗨Chandan

我来自UI数据保护产品的产品管理团队。

您可以参考该产品的库尔文德拉(Architect)博客,以帮助您解决自己的情况。

https://blogs .sap.com/2020/01/06/abac-attribute-based-masking-in-transaction-fbl1n/

如果您还有其他疑问,请在评论中提及,我会尽快与您联系。

谢谢,
Deepak

渐行渐远_HoldOn
2楼-- · 2020-08-25 23:19

请格式化您的代码。 有一个按钮" CODE"。

一周热门 更多>