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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

One Order distribution logic issue - automatic BDOC creation and sent to Middleware outbound queue -

發布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 One Order distribution logic issue - automatic BDOC creation and sent to Middleware outbound queue - 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AG9 Service order創建好之后,要自動通過middleware傳其他系統去。
line 325的function module會負責通過outbound queue往外發,

只有當line 321的IF里的三個條件同時滿足才會進入CRM_UPLOAD_BUS_TRANS_MSG:



條件1: IV_NO_BDOC_SEND = FALSE, AG9上這個參數用的默認參數false,滿足

條件2: LV_SEND_BDOC = TRUE
讀這個global的internal table,如果讀不到,置為TRUE,AG9上讀不到,所以為true,這個條件也滿足了。

條件3: LV_SKIP_ASYNCRONOUS_FUNCTION = INITIAL
如果該order的狀態置為POST PROCESSING, 則該變量值為true,但是AG9上我們的status是open,所以這個條件也滿足

三個條件同時滿足,所以通過middleware里往outbound queue發數據。

如何避免這個行為?根據代碼分析,破壞IF里三個條件任意一個即可。通過debug可知破壞第二個條件最容易。

條件2少截一張圖:

條件2: LV_SEND_BDOC = TRUE
讀這個global的internal table,如果讀不到,置為TRUE,AG9上讀不到,所以為true,這個條件也滿足了。

有兩種solution disable這個行為:

(1) CRM_ORDER_SAVE call line 56行的CRM_ORDER_SAVE_OW時,IV_NO_BDOC_SEND沒有指定value,所以傳進來的是默認值ABAP_FALSE,
這里我們強制改成TRUE, 就會破壞要上傳的那三個條件的第一個,導致不會進入上傳的分支。

(2) 如果只是想disable 某種特定transaction type的document,call 這個function module:
CRM_ORDER_SET_NO_BDOC_SEND_OW, 輸入order的guid,會添加一行entry到GT_NO_BDOC_SEND里,
這樣會破壞IF判斷里中間那個條件,也能實現不上傳的目的。

?

?

i042416 added One Order Middleware labels on Oct 13, 2017

?

?

?

總結

以上是生活随笔為你收集整理的One Order distribution logic issue - automatic BDOC creation and sent to Middleware outbound queue -的全部內容,希望文章能夠幫你解決所遇到的問題。

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