2016年7月16日 星期六

ABAP/4 : How to use "Update debugging" to debug in method IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_UPDATE (BAPI:MB_DOCUMENT_BADI)

在 BAPI MB_DOCUMENT_BADI 中有兩個 method,其中在 MB_DOCUMENT_BEFORE_UPDATE 設定 Debug 時可以進入,但如果是在 MB_DOCUMENT_UPDATE 會發現程式直接結束,雖然會執行其中的程式,但並無法進入 Debug Mode



主要原因應為 method MB_DOCUMENT_UPDATE 是透過 Update Task 進行,但 Update Task 是由 SAP 再安排 JOB 進行,因此會造成執行時並不是在 User 目前的 Session 進行,甚至有可能因 Program 有問題發生在 Update Task 異常的情況 (如下 Error),使用 SM13 可以查詢 update Task 的結果

要造成下面 Error,請在 MB_DOCUMENT_UPDATE 把 Message Type 由 'S' 改 'I' 就會有 Error,可以介此證明段 method 的執行是透過其他 Update Task 產生的結果,因 Update Task 是在背景執行,如果用 Information 這種跳出的視窗造成程式卡住不能執行但 User 又無法操作的情況下,系統會直接拋出 Error



可透過在 MB_DOCUMENT_BEFORE_UPDATE method 中,設定把目前 debug 切換成 classic debugger Mode

在傳統的模式中,選擇 Setting,再勾選 Setting 中的 Update Debug Checkbox

接下來就可以看到程式可以在 MB_DOCUMENT_UPDATE 進入 debug Mode

沒有留言:

張貼留言

How to install & specified python version or distreibtuion package version in google colab

在買了 RTX 3080 要來 挖礦...  嗯~是跑機器學習後,結果發現了 GOOGLE COLAB,其實之前在「GAN 對抗式生成網路」一書就有看到,但資訊人就是什麼都想自己安裝,在本機用 Anaconda + pyCharm 弄了 GPU 環境,結果有天從新竹回家發現家裡沒...