BDC程式需要注意的問題!(常見問題集合)

2021-06-17 20:46:35 字數 1883 閱讀 9089

bdc在fico模組是經常用到的,用於批量過賬程式時使用的,但是穩定性不如使用bapi的好,但是bdc可以有多種t-code進行過賬,也有不同的模式,功能也不錯,但是在寫程式或者是出現問題的時候需要考慮下面幾個問題:

1、可以在程式加入bdc的模式選擇,預設為n模式,但是可以選擇a模式,方便除錯。當然這個也可以debug進去之後進行改值。

2、loop裡面有call bdc的情況,在每一次call

transaction 之後,可以適當延時幾秒,可以防止在有些t-code過賬的時候出現profit center被鎖著的情況:

call 

transaction 

'f-30' 

using bdcdata

mode  p_mode

messages into l_bdcmsg.

wait 

up to p_wait seconds.

有時候,當你直接跑,過賬失敗,而你debug跑的話就成功,也可以看看是不是鎖的問題,然後頁可以考慮下對兩次生成憑證進行延時。

3、可能會出現的a模式下過賬成功,n模式過賬不成功:

原因是:有些事你的bdc在這一屏沒有這個字段,然後會返回乙個這個欄位不存在的s型別的message,然後bdc退出了,就沒有完全成功過賬。

同乙個螢幕,不同的過賬碼+科目可能有不同的字段。所以錄屏完寫程式的時候,這個游標的問題,最好還是要有if判斷或者是基本排除游標,這個基本沒有用。在寫bdc程式的時候,最好自己要對這個t-code的不同條件下會有不一樣的螢幕顯示有一定的了解,然後寫程式的時候一定要注意使用if語句,去判斷在這個公司**下,這個螢幕有沒有這個字段。

4、loop裡面過賬完,要記得清bdcdata,和bdcmessage(這個就是低階錯誤了)

5、過賬完了,生產的message裡面,提取憑證號:

loop 

at l_bdcmsg.

call 

function 

'message_text_build'

exporting

msgid               = l_bdcmsg-msgid

msgnr               = l_bdcmsg-msgnr

msgv1               = l_bdcmsg-msgv1

msgv2               = l_bdcmsg-msgv2

msgv3               = l_bdcmsg-msgv3

msgv4               = l_bdcmsg-msgv4

importing

message_text_output = wa_log-msg.

其中,l_bdcmsg

-msgv1就是返回的憑證號!

6、遇見bdc程式跑了,報錯了,最好跑a模式去檢視報錯處在哪個環節了!

7、乙個fb60的bdc程式,有些成功並返回了憑證號,有些成功生成了憑證號,但是沒有返回message。

reason:這種問題通常是一些增強導致。

方法:在s   f5  312 message前面設斷點,然後跑n模式,檢視沒有返回憑證號的情況,是在前面那裡跳出了而沒有跑這個312的message。通常都是增強導致。(遇到乙個是增強裡面的更新表,然後commit work的時候直接跳出了,但是實際表已經更新成功了。因為modify是不需要commit work的。因為通過call transaction fb60的話,裡面有個選項opt,通過這個選項可以選擇執行commit work是否跳出。這也就是為什麼fb60直接跑這段,即使有commit work也沒有問題,但是通過call transaction會有問題。)

Object c block需要注意的幾點問題

摘自 date 2015 12 4 1.block定義 1 說明 a.block是oc中的一種資料型別,在ios開發中被廣泛使用 b.是block的特有標記 c.block的實現 包含在 之間 d.大多情況下,以內聯inline函式的方式被定義和使用 e.block與c語言的函式指標有些相似,但使用...

需要注意的問題

決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...

編寫shell程式 指令碼時需要注意的幾個問題

在實際工作中運用shell程式時,總結的幾個經常忽視的問題,如果不注意很可能導致一些麻煩事 判斷使用者的屬性,比如uid gid,甚至是使用者名稱 使用者互動 能不互動就不互動吧,鬼知道使用者會輸入什麼 另一方面,加強正規表示式的學習,一般用來作輸入邊界測試很好用 注意程式的可維護性,能函式化的語句...