1. 程式人生 > >ABAP WB01 BDC ”No batch input data for screen & &“ ”沒有螢幕 & & 的批輸入資料“

ABAP WB01 BDC ”No batch input data for screen & &“ ”沒有螢幕 & & 的批輸入資料“

 繼續除錯上面出錯的JOB,F8直到上面兩處斷點地方,繼續除錯JOB:經過F6一步步除錯,Module呼叫順序 :PBO --> PAI  --> PBO,這與前面1000螢幕不一樣,PAI觸發過(1000螢幕只執行過PBO),問題有所變化:雖然都是 沒有螢幕 && 的批輸入資料 的問題,但可能引發的原因不一樣,以經過一段時間的思考,這裡應該是螢幕沒有退出,因為PBO執行了第二次,問題的原因應該是在修改標準函式 TRINT_ORDER_CHOICE引起的。下面那就在TRINT_ORDER_CHOICE函式裡修改的地方打上斷點: 然後繼續除錯上面JOB,F8直到上面的斷點地方: F6一步步執行,發現當執行完 PERFORM append_to_order. 後,直接退到了上面第二行,即呼叫0101螢幕的地方:
現在可以看出,函式 TRINT_ORDER_CHOICE 就直接退到0101螢幕了,說明該函式中有 LEAVE SCREEN 語句,退出了401螢幕:按理來說,TRINT_ORDER_CHOICE 函式的呼叫不應該退出401螢幕,因這個函式是在 PERFORM append_to_order. form中呼叫的,該函式是我們修改標準程式呼叫的,而修改的目的是不走螢幕流程,即螢幕以及流程跳轉語句應該也要遮蔽掉,所以繼續看append_to_order Form,發現最後面有LEAVE SCREEN 語句:也將其遮蔽掉
  再次以JOB跑,結果成功:
總結:出現No batch input data for screen & &問題
1、BDC輸入沒有轉到錄屏,比如下面紅框注掉,但流程中有這個屏(注:如果有相關的BDC錄屏,但沒有對應的螢幕,不會出這種問題): (現在上面圖中1000與300 BDC錄屏的程式碼,對於後臺可以留著,也可以去掉,但前面需要,所以還是留著吧)2、螢幕沒有結束,就像上面0101螢幕那樣,PBO --> PAI --> PBO,螢幕未退出,會導致螢幕流不能正常結束