日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

发生系统错误53_SAP那些事-推理剧-36-奇怪的付款清账(F-53)报错“TABLE_INVALID_INDEX”...

發布時間:2023/12/10 windows 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发生系统错误53_SAP那些事-推理剧-36-奇怪的付款清账(F-53)报错“TABLE_INVALID_INDEX”... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述:

在使用F-53進行供應商付款清賬操作時,模擬憑證(包括保存憑證)時出現如下的ABAP Down錯誤:

問題分析:

從報錯內容看,我們首先看到報錯的程序為SAPMF05A,這個程序財務顧問都熟悉,是財務模塊的主程序,大部分的財務過賬(如F-02)操作都是調用的這個程序。

另外,就是報錯的原因是因為index小于等于0了,這對于數據庫來說是不允許的,因為index只能大于0。

關于SAPMF05A這個程序,我們可以使用SE80查看開發對象,截圖如下:

在這里我們也能看到這個程序會被哪些使用代碼用到,如下圖:

反過來,我們也可以通過SE93或者執行事務代碼時來查看對應的程序,比如SE93查看F-02所對應的程序:

下圖則是通過執行事務代碼F-02,對任意一個字段按F1按鈕,再點擊“技術信息”按鈕,從而查看事務代碼所使用的程序。

接下來,我們通過ST22再進行分析,轉到具體的程序代碼,如下圖操作:

這里看到了具體的程序行和程序名。

在這里相應的位置打斷點,并繼續操作F-53進行debug時,發現是因為內表kontab的索引index變為0導致的錯誤,而index的值來源于變量i,而變量i則是由ld_tabix-1得到的,ld_tabix來源于系統的索引值sy-tabix。

我們再找sy-tabix為何變為1,這個時候的思路是找一個沒有報錯的系統對比進行debug,比較在不同的系統里內表kontab的數據是否有不一致的地方。

第一個圖是沒有發生錯誤的系統內表kontab的值,第二個圖則是有錯誤的系統內表kontab的值,再debug發現,對于無錯誤的系統,在對內表kontab執行loop循環時,因為kontab-shkzg(借貸方)為H,就直接結束了第一次循環,第二次循環時,sy-tabix(系統索引)已經變為了2,再減1變為了1,就不會出現索引為0的情況了。

那接下來就是看kontab的數據來源于哪里了,為什么到了這里字段kontab-shkzg為空了。

通過在主程序中搜索。

我們發現內表kontab是由postab賦值的,如下圖:

通過上圖發現,有一個增強(S4H900878是增強產生的請求號)把字段shkzg的賦值代碼給注釋掉了。這樣終于找到了最終的原因。

然后通過SE01查看請求號S4H900878,發現是在今年2月5號做的一個增強。

總結:最近發現年紀大了,反而更想鉆研技術了,說到底,程序還是一堆堆代碼組成的,如果我們想用系統解決業務問題,對代碼以及底層程序邏輯的理解是不可或缺的,不過這個時候查找程序的速度快了很多,這個過程和剛開始接觸系統的時候去看程序有所不同,此時看系統代碼會結合業務,更多的去研究系統的設計思路。畢竟不是專業的開發人員,這個過程寫出來大家看到沒多少時間,實際花費了2個多小時才搞定。標準程序還是盡量少寫增強吧,一個是影響面太廣,一旦出問題,就是比較大的問題,另外是出現問題也不好排查,基本就是靠debug(或者有比較完備的文檔)去發現,然后去調整。

總結

以上是生活随笔為你收集整理的发生系统错误53_SAP那些事-推理剧-36-奇怪的付款清账(F-53)报错“TABLE_INVALID_INDEX”...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。