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.