SAP S4HANA 使用CDS view真的比使用Table更先进?
笔者不这么认为!
笔者所在的项目,要求在撰写FS的时候,彻底摒弃传统的取数逻辑,不再从传统的Table里取字段名了,而是强制性要求从CDS view里抓取数据。
比如如果要抓取物料主数据的’批次管理‘字段值,按传统方式写抓取逻辑就是MARA-XCHPF。
![]()
按S4HANA的CDS View来写,抓取逻辑就是:
I_PRODUCT.IsBatchManagementRequired
![]()
![]()
原本使用CDS view替换table也没啥,毕竟很多table都能对应到具体的CDS view,无非就是把table名字和字段名换成CDS view名字和其字段名就行了。事实上,事情并非如此简单。一些原本使用传统table方式写逻辑能很简单,换成CDS view之后反而搞复杂了。
比如采购凭证表(EKKO/EKPO),不管是一次性的采购订单(Purchase Order)还是计划协议(Scheduling Agreement),都是保存在这2个表里(Header表和Item 表),要抓取采购凭证的数据就直接去这2个表里取数即可。现在要换成从CDS View取数据,就需要从2组不同的CDS view里抓取PO和SA了,分别是:I_PURCHASEORDER/ I_PURCHASEORDERITEM以及I_SCHEDGAGRMTHDR和I_SCHEDGAGRMTITM。
CDS view I_PURCHASEORDER,
![]()
CDS view I_PURCHASEORDERITEM,
![]()
CDS view I_SCHEDGAGRMTHDR,
![]()
CDS view I_SchedgAgrmtItm,
![]()
这样一来,如果要抓取采购订单和计划协议数据,就需要从4个CDS view里取数了。简单的问题复杂化!看不出此时使用CDS view的好处在哪里。
-完-
写于2026-1-4.
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.