• 在CDS(Core Data Services)中使用DCL(Data Control Language)


    最近,我在玩ABAP CDS视图,并且遇到了一些权限方面的挑战。我在网上没看到有多少有关CDS开发的文档,因为它是个相当新的东西。因此,我决定写下这篇博客,也许我的想法可以帮助到一些人。

    和你已经意识到的一样,ABAP CDS视图跑在ABAP层,而且不受限于SAP HANA(也就是不存在这样的数据库依赖)。ABAP CDS有它自己的、基于角色的权限概念。角色通过DCL源代码中的DEFINE ROLE定义。

    这里是一个基本的CDS视图,它有数据目录“dimension”

    当我在HANA STUDIO中运行CDS视图的时候,我观察到这个查询没有抓取到成本中心数据。为什么?

    每个CDS视图都在SE11中有它相对应的SQL视图。在上面的例子中。IFICostCenter是DDL I_CostCenter的SQL视图。

    这里有一个找到这些对象定义所在的包的简单方法,

    前往SE11输入视图,IFICostCenter >显示:

    你可以在这里找到包名(上图高亮的部分)。

    现在打开HANA Studio,把这个包添加到你的包收藏夹文件夹。

    一旦添加到了你的收藏夹,展开Core Data Services然后你就可以在数据定义文件夹看到DDL源代码,以及在访问控制文件夹看到DCL源。

    这里是一个成本中心CDS视图的DCL源的例子。

    注意:DDL和DCL的名字必须一致。

    权限在DCL源中执行了。我们应该确保权限对象K_CSKS在后端被分配到用户(在我使用的S/4 HANA 1511中是这样的)。

    将权限检查对象授予给用户之后,可以看到成本中心数据了,Bingo!

    注意:actvt 是操作代码。在该情况下,应该是03——显示。

    注释@AccessControl.authorizationCheck: #CHECK 会强制进行权限检查。

    如果使用 #NOT_REQUIRED 或 #NOT_ALLOWED,权限检查会被忽略。

    希望本文对你有帮助。

    本文链接:http://www.cnblogs.com/hhelibeb/p/6647178.html

    英文原文:Wonder how Data Control Language (DCL) works with ABAP Core Data Services (CDS)?

  • 相关阅读:
    求职简历撰写要点和模板分享
    find命令
    MD5Init-MD5Update-MD5Final
    Linux find命令详解
    Linux进程KILL不掉的原因
    Linux操作系统的内存使用方法详细解析
    Lsof命令详解
    为什么ps中CPU占用率会有超出%100的现象?
    第12课 经典问题解析一
    第11课 新型的类型转换
  • 原文地址:https://www.cnblogs.com/hhelibeb/p/6647178.html
Copyright © 2020-2023  润新知