SAP CDS重定向视图是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
脚本
假设我们有一个数据库表a,然后我们为它创建一个CDS重定向视图B,那么每次对表a执行读开放SQL时,ABAP内核都会将该请求定向到视图B,并使用来自B的内容为请求提供服务。
先决条件
为了使视图B限定为表A的重定向视图,A和B必须具有顺序和名称完全相同的相同字段。
为了演示逻辑,我在ER9/001中创建了一个Z表,其中有四个字段,如下所示。
编写一份简单的测试报告:
数据:zcomm_产品的lt_表类型标准表。从zcomm_产品中选择*进入表格lt_表格。写入:/sy dbcnt。
由于此表是刚刚创建的,因此其中没有内容,因此输出应为0。
使用以下源代码创建新的CD视图:
@AbapCatalog.sqlViewName: 'zmara_cds' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'Redirect ZCOMM_PRODUCT to MARA' define view Zp_Mara_Redirect as select from mara { mara.matnr as PRODUCT_ID, case when (mara.mtart = 'HAWA' or mara.mtart = 'INTR') then '01' when (mara.mtart = 'DIEN' or mara.mtart = 'COUP') then '02' else '' end as product_Type, mara.mtart as object_family }
注意:由于这只是一个示例,ZCOMM_产品之间的映射。产品类型为MARA。从业务角度来看,MTART没有意义,我只是用它来说明如何将数据库表中的字段映射到CDS视图(字段名和技术类型必须相等)。
完成CDS视图后,激活它并通过SE11中的菜单将视图分配给数据库表:
Once done, execute the report once again. This time, you could see the SELECT OPEN SQL on empty table ZCOMM_PRODUCT is actually redirected to MARA table - lots of entries returned.
当您从tcode SE16浏览ZCOMM_产品的内容时,也会自动执行重定向:
重定向在引擎盖下如何工作
如果执行ST05跟踪,您可以观察到重定向是由ABAP运行时自动完成的,不需要应用程序端执行任何操作。
看完上述内容,你们掌握SAP CDS重定向视图是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。