SAP S/4HANA CDS view的扩展原理是什么

87次阅读
没有评论

共计 1963 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要讲解了“SAP S/4HANA CDS view 的扩展原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“SAP S/4HANA CDS view 的扩展原理是什么”吧!

When using the following ABAP code, it does not work:

data: lt_table TYPE TABLE OF I_Product.

SELECT * INTO TABLE @lt_table FROM I_Product.

The reason is corresponding extension field does not appear in SQL view of I_PRODUCT at all. Why?

Simply because the extension field is not enabled for I_PRODUCT.

The enablement should also be done in custom field logic tile:

(1) select your extension field.

(2) tab UIs and Reports:

(3) Click Enable Usage button:

Never forget to publish your change.

Once done, it works now:

我来解答这两天我们讨论的问题。Key user 点了 enable usage 之后,如下图这个例子,

为什么之后我们 SELECT * FROM I_PRPODUCTWD 就能把 extension field 一起 select 出来,这些 extension field 不是做在 E_PRODUCT 上吗? E_PRODUCT 是通过 association 和 I_PRODUCTWD 连接起来的,为什么 select * 能够把 association view 里的 field 一起读出来?

首先,上述红色的说法就是错误的,extension field 并不是通过 association 从 E_PRODUCT 里读的. 我们要明确我们点 enable usage 的出发点是某个具体的 extension field,而不是从 CDS view 出发。选择了具体的 extension field 之后,再选择要 extend 的 CDS view,点击 publish,此时将会自动创建一个带有当前 extension field 的 extension view,对选中的 CDS extensible view 进行扩展。这样造成的结果是,从 SE11 里观察 SQL view 能发现 extension field 会通过 append 的方式直接成为 extensible view 的一部分,这之后和 E_PRODUCT 再无任何关系。

比如这个 extension view 在点 publish 时是什么时候生成的?

你可以自己 debug,在这个方法里设个断点,然后点 publish,你会发现 publish 时,有 10 个 object 会自动生成,其中第三个就是上面图里的 extension view.

SAP S/4HANA CDS view 的扩展原理是什么SAP S/4HANA CDS view 的扩展原理是什么SAP S/4HANA CDS view 的扩展原理是什么SAP S/4HANA CDS view 的扩展原理是什么

那框架咋知道我这个 extension field 在 publish 时要生成这 10 个东西?

答案还是在 registry 里:

SAP S/4HANA CDS view 的扩展原理是什么

如果想研究具体框架的 generation 实现,看这个 class,里面每个 sub class 负责一种特定的 repository generation 实现,

SAP S/4HANA CDS view 的扩展原理是什么

其中 CL_CFD_ENH_CDS_ENH_ABSTRACT 又包含了所有 CDS view 相关的 generation 逻辑,里面又分了三种不同的类型。

SAP S/4HANA CDS view 的扩展原理是什么

所有这些协同工作,最后确保从 application developer 的眼里,看到 extension field 在 design time 时即出现在 extensible view 本身。

额外补充一点哈。

E_PRODUCT 一个最主要的目的就是为了 register 使用,同时在创建 custom field 时点 publish 时,能够自动生成一个 E_Product 的 extension view。

如下图。当然在此之前需要先去自动扩展 Product table 的这个字段,这也是在点 publish 时自动完成的。

SAP S/4HANA CDS view 的扩展原理是什么

然后当你需要把这个 custom field 暴露在上层的 view 时,比如 I_ProductWD,这时去 Jerry 提到的点击 Enable 时就会生成 I_ProductWD 的 extension view。

其实你如果点击对应的字段,你会发现其实就是从上面的 E_Product 的 extension view 里去读取的。

SAP S/4HANA CDS view 的扩展原理是什么

感谢各位的阅读,以上就是“SAP S/4HANA CDS view 的扩展原理是什么”的内容了,经过本文的学习后,相信大家对 SAP S/4HANA CDS view 的扩展原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1963字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)