国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

C4C Cloud Application Studio做ABSL開發(fā)的一些性能方面的最佳實踐

dance / 747人閱讀

摘要:在博文里介紹了在里使用進(jìn)行編程的一些性能方面的最佳實踐。文章里提綱挈領(lǐng)地給出了一些。這里提供一些具體的例子。的提供的的接口定義也完全采用了這種支持批量操作的設(shè)計。這兩種不同的輸入,會導(dǎo)致編譯生成的代碼分別進(jìn)入和的執(zhí)行邏輯,產(chǎn)生性能差異。

Stefan Hagen在博文SAP Cloud Application Studio Performance Best Practices里介紹了在C4C里使用Cloud Application Studio進(jìn)行ABSL編程的一些性能方面的最佳實踐。

文章里提綱挈領(lǐng)地給出了一些guideline。這里提供一些具體的例子。

如何批量調(diào)用BO action

不好的例子:

第一行和第四行有兩個循環(huán),然后在第二次循環(huán)里調(diào)用一個比較耗時的ServiceRequest BO的item 節(jié)點上定義的標(biāo)準(zhǔn)action FinishFulfilmentProcessing。代碼的時間復(fù)雜度為o(n2)

正確的做法:

優(yōu)化的原理就是,C4C和其他很多基于Netweaver的SAP產(chǎn)品一樣,其BO的核心service都支持批量操作。所謂批量操作,技術(shù)上就是指這些service的輸入?yún)?shù)是一個內(nèi)表,而非單條數(shù)據(jù)。如果您做過CRM開發(fā),可以類比CRM_ORDER_MAINTAIN這個function module,其所有輸入?yún)?shù)都是內(nèi)表結(jié)構(gòu)。C4C的BO提供的service的接口定義也完全采用了這種支持批量操作的設(shè)計。

上述不好的例子,編譯出來的ABAP代碼的偽代碼如下:(因為C4C的后臺代碼沒有開放給Partner和客戶,我只能提供偽代碼)。可以看出盡管BO的action是執(zhí)行批量操作,但是這種寫法并沒有發(fā)揮批量操作的作用,每次在循環(huán)內(nèi)部作為輸入?yún)?shù)的內(nèi)標(biāo)在第二行被清空,造成每次調(diào)用BO action時輸入?yún)?shù)只有一條記錄。

而正確的例子,編譯后生成的偽代碼為:

能清楚地看到BO action的執(zhí)行已經(jīng)放到循環(huán)外部了。

如何批量執(zhí)行BO Retrieve

當(dāng)我們在Cloud Studio里通過代碼自動完成功能試圖調(diào)用BO的Retrieve方法時,IDE會提示我們Retrieve方法有三個重載(Overload), 這表明Retrieve能夠支持傳入不同的參數(shù)。

正確和不建議的做法分別見下圖藍(lán)色和紅色代碼??梢钥吹剿{(lán)色代碼retrieve接受的輸入?yún)?shù)是一個集合, 包含了兩個ID為3和4的元素,使得41行的調(diào)用能夠一次即可返回2個ServiceRequest的數(shù)據(jù)。

line 43編譯后生成的ABAP代碼的偽代碼:

line 41編譯后生成的ABAP代碼的偽代碼:

通過比較能發(fā)現(xiàn)如果傳入retrieve的參數(shù)是一個ID的集合,那么編譯生成的ABAP代碼會調(diào)用一個接口為內(nèi)表的retrieve方法,批量讀取數(shù)據(jù)。

如何批量執(zhí)行BO Create

對于基礎(chǔ)的Create操作,見下列代碼第54行,只支持基于單個節(jié)點的數(shù)據(jù)創(chuàng)建。

但是對于CreateWithReference的場景,則和第二個例子的Retrieve場景一樣,不僅支持傳入單個數(shù)據(jù)(第56行), 也支持傳入一個集合(第58行)。

這兩種不同的輸入,會導(dǎo)致編譯生成的ABAP代碼分別進(jìn)入CREATE_WITH_REF_1和CREATE_WITH_REF_N的執(zhí)行邏輯,產(chǎn)生性能差異。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/92909.html

相關(guān)文章

  • C4C Cloud Application StudioABSL開發(fā)一些性能方面最佳實踐

    摘要:在博文里介紹了在里使用進(jìn)行編程的一些性能方面的最佳實踐。文章里提綱挈領(lǐng)地給出了一些。這里提供一些具體的例子。的提供的的接口定義也完全采用了這種支持批量操作的設(shè)計。這兩種不同的輸入,會導(dǎo)致編譯生成的代碼分別進(jìn)入和的執(zhí)行邏輯,產(chǎn)生性能差異。 Stefan Hagen在博文SAP Cloud Application Studio Performance Best Practices里介紹了在...

    darryrzhong 評論0 收藏0
  • C4C Cloud Application StudioABSL開發(fā)一些性能方面最佳實踐

    摘要:在博文里介紹了在里使用進(jìn)行編程的一些性能方面的最佳實踐。文章里提綱挈領(lǐng)地給出了一些。這里提供一些具體的例子。的提供的的接口定義也完全采用了這種支持批量操作的設(shè)計。這兩種不同的輸入,會導(dǎo)致編譯生成的代碼分別進(jìn)入和的執(zhí)行邏輯,產(chǎn)生性能差異。 Stefan Hagen在博文SAP Cloud Application Studio Performance Best Practices里介紹了在...

    jzman 評論0 收藏0
  • Document flow API in SAP CRM and C4C

    摘要:的和描述信息已經(jīng)能夠正常顯示了。同時在區(qū)域也能看到該關(guān)聯(lián)關(guān)系假設(shè)我需要在里開發(fā)一個功能,允許客戶能夠手動將兩個關(guān)聯(lián)起來。的實現(xiàn)代碼假設(shè)我想把和關(guān)聯(lián)起來,我需要打開,在新字段里手動輸入,然后點擊按鈕成功執(zhí)行之后,在的即可看到這個關(guān)聯(lián)關(guān)系。 Document flow API in CRM 以一個具體的例子來說明。在Appointment的Overview page上能看見一個名叫Refe...

    i_garfileo 評論0 收藏0
  • Document flow API in SAP CRM and C4C

    摘要:的和描述信息已經(jīng)能夠正常顯示了。同時在區(qū)域也能看到該關(guān)聯(lián)關(guān)系假設(shè)我需要在里開發(fā)一個功能,允許客戶能夠手動將兩個關(guān)聯(lián)起來。的實現(xiàn)代碼假設(shè)我想把和關(guān)聯(lián)起來,我需要打開,在新字段里手動輸入,然后點擊按鈕成功執(zhí)行之后,在的即可看到這個關(guān)聯(lián)關(guān)系。 Document flow API in CRM 以一個具體的例子來說明。在Appointment的Overview page上能看見一個名叫Refe...

    Sanchi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<