来自我的同事Xu Miles

Authorization Objects are business concept, they are distinguished by business scenario.
Therefore, there might be a lot of Authorization Objects using the same Authorization Field. Such as VKORG.

In Sales Planning, there're two Authorization Objects related to Sales Area, V_VBAK_VKO and V_VBRK_VKO, they represent transaction scenario Sales Document and Billing Document repectively. If we want to extract the Sales Area master data, technically we could use any Authorization Object with Authorization Field VKORG, VTWEG, SPART.
However, considering the authorization of the business user, we need to use Authorization Object V_VBAK_VKO and V_VBRK_VKO separately when end user is planning for income sales or sales volume.
To do this, we could use additional CDS view + DCL to realize.

Example on ERG/001:

CDS: ZMX_SalesArea_DCL
DCL: ZMX_SalesArea_DCL
The logic in DCL:

@EndUserText.label: 'Auto assigned mapping role for ZMX_SalesArea_DCL'
@MappingRole: true
define role ZMX_SalesArea_DCL  {
grant select on ZMX_SalesArea_DCL
where (SalesPlanPurpose = '0' and (SalesOrganization, DistributionChannel, Division) =
aspect pfcg_auth (V_VBAK_VKO,
VKORG,
VTWEG,
SPART,
actvt = '03'))
OR (SalesPlanPurpose = '1' and (SalesOrganization) =
aspect pfcg_auth (V_VBRK_VKO,
VKORG,
actvt = '03'));
}

The logic in the CDS view:

define view ZMX_SalesArea_DCL
as select from
I_SalesArea
{
key SalesOrganization,
key DistributionChannel,
key Division,'0' as SalesPlanPurpose}
union all select from I_SalesArea
{
key SalesOrganization,
key DistributionChannel,
key Division,'1' as SalesPlanPurpose
};

Authorization test on QW9/910
User: MILES01
Authorization:

Test Report:

REPORT mx_test_sa_dcl.PARAMETERS:
p_purp TYPE C LENGTH 1.DATA:
lt_tab TYPE STANDARD TABLE OF i_salesarea_dcl.SELECT * FROM i_salesarea_dcl INTO TABLE @lt_tab
WHERE salesplanpurpose = @p_purp.LOOP AT lt_tab ASSIGNING FIELD-SYMBOL(<fs_row>).
WRITE:/ <fs_row>-salesorganization, <fs_row>-distributionchannel, <fs_row>-division, <fs_row>-salesplanpurpose.
ENDLOOP.WRITE:/ 'Finished.'.

The logic flow is that firstly we use SalesPlanUUID to get SalesPlanPurpose, then with SalesPlanPurpose we could get the Sales Area master data via the corresponding Authorization Objects.
SalesPlanPurpose: 0 (Incoming sales)

SalesPlanPurpose: 1(Sales Volume)

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

SAP S/4HANA CDS View的访问控制实现:DCL介绍相关推荐

  1. SAP S/4HANA CDS View的访问控制实现:DCL介绍 1

    来自我的同事Xu Miles Authorization Objects are business concept, they are distinguished by business scenar ...

  2. SAP CDS view权限控制实现原理介绍

    Part1 – how to test odata service generated by CDS view Part2 – what objects are automatically gener ...

  3. SAP SD里CDS view对status的设计

    SAP S4CRM One Order redesign的CDS view也参考了SD里的CDS view对状态字段的处理:

  4. SAP CDS view 单元测试框架 Test Double 介绍

    系列目录 Part1 – how to test odata service generated by CDS view Part2 – what objects are automatically ...

  5. 使用CDS view进行S4HANA的OData开发

    CDS(Core Data Service)View是S/4HANA里重要的建模方式之一.下面是S/4HANA的架构图,可以很清晰的看到CDS View在整个架构中的重要地位:S/4HANA里大部分A ...

  6. 在 Excel 里使用 ODBC 读取 SAP BTP 平台上 CDS view 的数据

    这是 Jerry 2021 年的第 59 篇文章,也是汪子熙公众号总共第 336 篇原创文章. Jerry 之前曾经给大家分享过,如何使用各种工具和编程语言,消费 SAP API Business H ...

  7. 在 Excel 内使用 ODBC 消费 SAP ABAP CDS view

    Consuming CDS View Entities Using ODBC-Based Client Tools 本文介绍通过基于 ODBC(Open Database Connectivity) ...

  8. SAP ABAP CDS view和 HANA CDS view的区别,CDS consumption view 和 BO view 的区别

    这两种技术都是SAP提出的"Code pushdown"理念的具体实现.SAP ABAP CDS view位于ABAP应用服务器层,使用OPEN SQL,支持的数据库不限HANA, ...

  9. 使用CDS view开发SAP Marketing contact的facet追溯工具

    这篇SAP社区博客里,我的一位同事介绍了SAP Marketing里contact facet数据模型的存储表: https://blogs.sap.com/2016/07/01/how-does-s ...

最新文章

  1. 基于XML的自动装配||SpEL测试
  2. 企业建立数据驱动决策该如何做?终于有大神总结全了
  3. 用VisualVM和JConsole监控tomcat性能
  4. 我是如何用Jquery实现网页缩小放大的
  5. linux dhcp服务软包,dpkg包管理器详解
  6. Kali Linux 无线渗透测试入门指南 翻译完成!
  7. 【数据结构和算法笔记】用c和c++分别实现二叉搜索树
  8. 从零开始学Android应用安全测试
  9. python之父去面试-Django面试题
  10. acme申请泛域名证书
  11. Juniper 防火墙JSRP高可用性HA(High Availability) chassis cluster双击冗余
  12. Systemverilog always_comb 过程块
  13. js汉语转拼音(全拼、首字母、拼音首字母)
  14. Python While循环与break语句_加工零件
  15. linux trac apache,Ubuntu下集成Apache+Trac+Git
  16. 一感冒就得红眼病,而且很严重怎么办
  17. cesium for unreal 坐标参考框架
  18. 关于Vue使用ueditor富文本编辑器上传图片
  19. php sha256签名,PHP 使用 SHA256、SHA512 等 算法的写法
  20. 视通科技互动录播主机,互动教学超简单!

热门文章

  1. 调参侠看过来!两个提高深度学习训练效率的绝技
  2. 让机器像人一样听音乐,Facebook开源Demucs项目
  3. 进化深度神经网络是推动技术发展的强劲动力
  4. 人工智能:看看BAT三巨头怎么说
  5. 机器学习将影响客户互动的8种方式
  6. 对话吴恩达:AI火得还不够,997都满足不了我
  7. 吴恩达机器学习笔记 —— 18 大规模机器学习
  8. 生命真的源于宇宙吗?多名宇航员身体,都曾发生“不可逆”的变化
  9. 三大运营商集体为电费发愁,宣布“智能化关闭5G基站”,5G建设能省则省!
  10. 罗兰贝格84页白皮书:一文看懂中国ICT产业新黄金十年