這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)ABAP方法的exporting類型參數(shù)什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供隴南網(wǎng)站建設(shè)、隴南做網(wǎng)站、隴南網(wǎng)站設(shè)計(jì)、隴南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、隴南企業(yè)網(wǎng)站模板建站服務(wù),10年隴南做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
像下圖里的exporting parameter需要在method 實(shí)現(xiàn)最開始時(shí)顯式CLEAR么?
答案是it depends.
pass by value checkbox默認(rèn)未選中,即pass by reference,此時(shí)實(shí)參的reference直接傳到method 實(shí)現(xiàn)里,修改method里的形參即直接修改了實(shí)參。
如果是pass by value,在runtime進(jìn)入method執(zhí)行時(shí),abap runtime自動(dòng)為輸入和輸出形參創(chuàng)建local object,然后把輸入實(shí)參的value copy到local object里,method里的計(jì)算都存儲(chǔ)在輸出形參的local object里,method執(zhí)行結(jié)束后再把local object的值copy到輸出實(shí)參。
在pass by reference的情況下,exporting參數(shù)在進(jìn)入函數(shù)內(nèi)時(shí)不會(huì)自動(dòng)被初始化,而仍然為傳入時(shí)實(shí)參的值,因此需要developer 自己負(fù)責(zé)去初始化,否則可能會(huì)出現(xiàn)unexpepected的behavior。
Pass by reference性能更好,但需要developer自己在實(shí)現(xiàn)里初始化exporting parameter
如果期望輸出參數(shù)僅當(dāng)method 成功執(zhí)行之后才返回給caller,用pass by value
如果參數(shù)是一個(gè)很復(fù)雜的structure,比如nested table,或者按照abap help里面的建議值—超過100bytes后最好用pass by reference。
二者更詳細(xì)的區(qū)別參考abap help。
Extended check會(huì)自動(dòng)把所有違反規(guī)則的code 列出來,比如CL_CRM_SOC_FND_ACCESS_IMPL 有17處:
這些issue被categorize成programming guideline violation,不會(huì)算作ATC error。
上述就是小編為大家分享的ABAP方法的exporting類型參數(shù)什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。