BAPI_GOODSMVT_CREATE 根據預留單 物料移動 MB1B
這幾天做根據預留單執行MB1B生成物料移動憑證,開始用bapi除錯,引數輸入都正確但是就是沒有return的正確返回值,只是能返回一個物料憑證號,如果有錯誤的時候就會報錯E資訊.然後在commit後,終於能更正確生成物料號了.
所以有些sap中的bapi return的返回值是不一定都能返回正誤資訊的.
具體除錯程式碼如下,可以做個參考,MB1B的code是04.而且如果是根據預留單,切記將關聯單號寫在reserv_no,res_item中.
DATA: trqty(13).
DATA: msgtext TYPE bapi_msg.
DATA: l_oid_miscdl TYPE oid_miscdl,
itab TYPE zecst0003,
l_materialdocument type BAPI2017_GM_HEAD_RET-MAT_DOC.
* REFRESH it_message[].
DATA: gdsmt_header LIKE bapi2017_gm_head_01.
DATA: gdsmt_code LIKE bapi2017_gm_code.
DATA: gdsmt_item LIKE bapi2017_gm_item_create OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0.
CLEAR: gdsmt_header, gdsmt_code, gdsmt_item, gdsmt_item[], return.
* Setup BAPI header data.
gdsmt_header-pstng_date = sy-datum.
* gdsmt_header-ref_doc_no = sy-datum.
gdsmt_header-doc_date = sy-datum.
gdsmt_header-pr_uname = sy-uname.
gdsmt_code-gm_code = '04'. "01 - MB01 -
DATA: msgtext TYPE bapi_msg.
DATA: l_oid_miscdl TYPE oid_miscdl,
itab TYPE zecst0003,
l_materialdocument type BAPI2017_GM_HEAD_RET-MAT_DOC.
* REFRESH it_message[].
DATA: gdsmt_header LIKE bapi2017_gm_head_01.
DATA: gdsmt_code LIKE bapi2017_gm_code.
DATA: gdsmt_item LIKE bapi2017_gm_item_create OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0.
CLEAR: gdsmt_header, gdsmt_code, gdsmt_item, gdsmt_item[], return.
* Setup BAPI header data.
gdsmt_header-pstng_date = sy-datum.
* gdsmt_header-ref_doc_no = sy-datum.
gdsmt_header-doc_date = sy-datum.
gdsmt_header-pr_uname = sy-uname.
gdsmt_code-gm_code = '04'. "01 - MB01 -
* Write 101 movement to table.
LOOP AT i_ltresb INTO itab.
MOVE '301' TO gdsmt_item-move_type.
MOVE itab-matnr TO gdsmt_item-material.
MOVE itab-erfmg TO gdsmt_item-entry_qnt.
MOVE itab-erfme TO gdsmt_item-entry_uom.
MOVE 'XXXX' TO gdsmt_item-plant.
MOVE itab-lgort TO gdsmt_item-stge_loc.
MOVE itab-rsnum TO gdsmt_item-reserv_no.
MOVE itab-rspos TO gdsmt_item-res_item.
* MOVE 'X' TO gdsmt_item-withdrawn.
MOVE 'OWN' TO gdsmt_item-batch.
* MOVE itab- TO gdsmt_item-move_plant.
* MOVE 'B' TO gdsmt_item-mvt_ind.
* move 'X' to gdsmt_item-no_more_gr. "是否標識完成收貨
APPEND gdsmt_item.
ENDLOOP.
IF NOT gdsmt_item[] IS INITIAL.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = gdsmt_header
goodsmvt_code = gdsmt_code
IMPORTING
materialdocument = l_materialdocument
TABLES
goodsmvt_item = gdsmt_item
return = return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
ENDIF.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17204926/viewspace-692815/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物料異動函式BAPI_GOODSMVT_CREATE的使用函式APIGo
- SAP RETAIL 根據Merchandise Category Hierarchy Level查詢物料清單AIGo
- 根據選擇的物料顯示其特性值
- 根據介面動態修改應用底部選單欄
- SAP RETAIL 如何根據分配表查到根據它建立的採購訂單?AI
- perl根據函式名動態呼叫函式
- 根據userAgent實現跳轉到移動或者pc頁面程式碼
- SAP 物料移動型別查詢表型別
- [轉]SAP物料移動之差異分析續
- dev 根據datatable動態生成gridviewdevView
- 根據DELTA自動生成SQL語句SQL
- 根據UA簡單判斷訪客客戶端是手機移動端還是電腦PC端客戶端
- activiti 根據模型ID匯出、預覽 xml檔案模型XML
- 根據提示操作
- 移動端禁用系統預設選單
- vue自定義表單生成器,可根據json引數動態生成表單VueJSON
- DcatAdmin 根據選單資料自動填充許可權資訊 (Artisan命令)
- SAP MM 物料組在採購單據批准策略中的應用
- Map根據Value排序排序
- BIRT 中如何根據引數動態拼接 SQLSQL
- PHP根據資料表自動生成CURD操作PHP
- mybatis根據表逆向自動化生成程式碼MyBatis
- 根據商品數量自動計算價格
- iPhone或將根據地點自動解鎖iPhone
- 根據viewport的size自動調整fontsize大小View
- 根據需要動態include不同的檔案 (轉)
- 詳解移動端HTML5頁面根據螢幕適配的四種方案HTML
- 如何在Excel中根據數量生成抽獎名單Excel
- C#根據反射動態建立ShowDoc介面文字資訊C#反射
- webstorm根據.eslintrc檔案自動修復WebORMEsLint
- react根據json格式資料動態增加domReactJSON
- 根據條件動態更新不同表的資料
- 根據表結構,自動生成匯入指令碼指令碼
- 根據Interceptor 分析 OkHttp(一)HTTP
- 根據ip獲取城市
- java 根據日期取得星期Java
- 根據欄位查表名
- js根據時間排序JS排序