這篇文章將為大家詳細講解有關(guān)怎樣實現(xiàn)SAP S/4HANA系統(tǒng)CDS view擴展原理分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計制作的公司,為廣大用戶提供了成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,一元廣告,成都做網(wǎng)站選成都創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。
創(chuàng)建擴展字段后,我想從接口視圖中檢索它的數(shù)據(jù),就像I_產(chǎn)品一樣。也就是說,擴展字段已經(jīng)在MARA中,我想通過I_產(chǎn)品而不是MARA使用它。
使用以下ABAP代碼時,它不起作用:
```ABAP
數(shù)據(jù):I_產(chǎn)品的lt_表類型表。
從I_產(chǎn)品中選擇*INTO TABLE@lt_TABLE。
```
原因是
我_產(chǎn)品的SQL視圖中根本沒有相應(yīng)的擴展字段。為什么?
只是因為I_產(chǎn)品未啟用擴展字段。
還應(yīng)在自定義字段邏輯磁貼中啟用:
(1). 選擇您的擴展字段。
(2). 選項卡UI和報告:
(3). 單擊“啟用使用”按鈕:
永遠不要忘記發(fā)布您的更改。
一旦完成,它現(xiàn)在就可以工作了:
我來解答這兩天我們討論的問題。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的出發(fā)點是某個具體的extension field, 而不是從CDS view出發(fā)。選擇了具體的extension field之后,再選擇要extend的CDS view,點擊publish,此時將會自動創(chuàng)建一個帶有當(dāng)前extension field的extension view,對選中的CDS extensible view進行擴展。這樣造成的結(jié)果是,從SE11里觀察SQL view能發(fā)現(xiàn)extension field會通過append的方式直接成為extensible view的一部分,這之后和E_PRODUCT再無任何關(guān)系。
比如這個extension view 在點publish時是什么時候生成的?
你可以自己debug,在這個方法里設(shè)個斷點,然后點publish,你會發(fā)現(xiàn)publish時,有10個object會自動生成,其中第三個就是上面圖里的extension view.
那框架咋知道我這個extension field在publish時要生成這10個東西?
答案還是在registry里:
如果想研究具體框架的generation實現(xiàn),看這個class,里面每個sub class負責(zé)一種特定的repository generation實現(xiàn),
其中CL_CFD_ENH_CDS_ENH_ABSTRACT又包含了所有CDS view相關(guān)的generation邏輯,里面又分了三種不同的類型。
所有這些協(xié)同工作,最后確保從application developer的眼里,看到extension field在design time時即出現(xiàn)在extensible view本身。額外補充一點哈。
E_PRODUCT一個最主要的目的就是為了register使用,同時在創(chuàng)建custom field時點publish時,能夠自動生成一個E_Product的extension view。
如下圖。當(dāng)然在此之前需要先去自動擴展Product table的這個字段,這也是在點publish時自動完成的。
然后當(dāng)你需要把這個custom field暴露在上層的view時,比如I_ProductWD,這時去Jerry提到的點擊Enable時就會生成I_ProductWD的extension view。
其實你如果點擊對應(yīng)的字段,你會發(fā)現(xiàn)其實就是從上面的E_Product的extension view里去讀取的。
總結(jié)一下,I_ProductWD里定義的E_PRODUCT的association更多是用于design time(register),之后在enable時知道如何創(chuàng)建extension view。然后有了extension view時,就跟E_Product沒有直接關(guān)系了,因為extension view:ZZ1_PRE47GXHDI6P2ZLO3ADGY4HHFE里的內(nèi)容是自動暴露為hosting view:I_PRODUCTWD的interface的。這也是為什么select *能自動出來,并不需要通過association。
關(guān)于怎樣實現(xiàn)SAP S/4HANA系統(tǒng)CDS view擴展原理分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當(dāng)前文章:怎樣實現(xiàn)SAPS/4HANA系統(tǒng)CDSview擴展原理分析
文章來源:http://aaarwkj.com/article28/gjcicp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、小程序開發(fā)、App設(shè)計、ChatGPT、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)