ABAP Function函式中引數的問題

2021-10-05 04:16:44 字數 922 閱讀 1979

前幾天碰到了乙個bapi執行報錯的問題,還是突然就好幾個地方都報這個錯誤,查問題發現bapi也沒錯,邏輯也沒錯,但是資料出問題了,居然字段賦值錯位了,然後發現是封裝的函式修改了字段,但是tables入參和出參的結構不一樣。

一般來說這種情況肯定會報錯的,相信報錯訊息大家也都注意到,是說長度不匹配,針對exporting和importing來說,長度檢查確實就夠了,tables就不行了,這次剛好就是,雖然字段對應不上,但是長度是相同的,所以沒有報錯,花了好多精力才找到問題。

復現一下這個錯誤,自己寫個例子

自建了乙個後台表

lt_tab參照剛才的後台表,lt_tab1參照程式裡的定義,實際上可以看到欄位是錯位的。然後我們建個函式,在對tab1賦值

下圖除錯可以發現,函式內錶zhutest001雖然是參照tab,但是卻賦值成tab1的字段,然而zhutest001的表頭卻參考了tab的字段,而且根據賦值情況來看,就是直接擷取字串長度賦值。

只能說,這個問題挺坑的,多注意吧

函式中的this

1.this是什麼?任何函式本質上都是通過某個物件來呼叫的,如果沒有直接指定就是window 所有函式內部都有乙個變數this 它的值是呼叫函式的當前物件 2.如何確定this的值?test window p.test p new test 新建立的物件 p.call obj obj functio...

函式中的this

1.函式中的this指向 普通函式中的this指向誰?window 物件,方法中的this指向 當前例項物件 定時器方法中的this指向 window 建構函式中this指向 例項物件 原型物件中的this指向 例項物件 先來看這一段 target.onclick function 50 表面上看,...

函式中的this

1 函式如果直接呼叫,函式內的this是window 2 如果函式是被new呼叫的,那麼函式內的this是new剛剛建立的新物件 3 事件裡的this是繫結這個事件的物件 4 如果函式是被物件呼叫的,那函式裡的this就是這個物件 可以通過修改this指向使用別的函式的方法 最主要是可以把陣列乙個乙...