ABAP:BAPI_GOODSMVT_CREATE 根据预留单 物料移动 MB1B
2011-10-16 09:04
453 查看
这几天做根据预留单执行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 -
* 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.
其中 gm_code 與 Tcode對應如下:
01 -- MB01
02 -- MB31
03 -- MB1A
04 -- MB1B
05 -- MB1C
06 -- MB11
07 -- MB04
所以有些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 -
* 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.
其中 gm_code 與 Tcode對應如下:
01 -- MB01
02 -- MB31
03 -- MB1A
04 -- MB1B
05 -- MB1C
06 -- MB11
07 -- MB04
相关文章推荐
- Bapi-BAPI_GOODSMVT_CREATE【该物料不可能有库存记帐】
- 物料转移过账BAPI_GOODSMVT_CREATE
- abap物料凭证冲销BAPI_GOODSMVT_CANCEL
- BAPI_GOODSMVT_CREATE创建带‘E’特殊库存标识的物料凭证
- 【转载】BAPI_GOODSMVT_CREATE FUNCITON FOR MIGO 各种移动类型 源代码参考
- SAP 货物移动 BAPI 的简单使用 BAPI_GOODSMVT_CREATE
- BAPI_GOODSMVT_CREATE实现订单车非订单车的库存移动
- BAPI_GOODSMVT_CREATE物料凭证创建…
- BAPI:BAPI_GOODSMVT_CREATE货物移动例子
- SAP货物移动BAPI BAPI_GOODSMVT_CREATE(WMS TO SAP)
- BAPI_GOODSMVT_CREATE物料凭证创建…
- BAPI_GOODSMVT_CANCEL物料凭证完全…
- 生产工单BAPI过账(BAPI_GOODSMVT_CREATE)
- MM模块-BAPI:BAPI_GOODSMVT_CREATE的CODE分析
- BAPI_GOODSMVT_CREATE --mb01,mb1A
- BAPI_GOODSMVT_CREATE to post Goods Movement
- ABAP 如何根据事物代码查找相应BAPI (转)
- 利用BAPI(BAPI_GOODSMVT_CREATE)投料消耗(261)销售订单E库存
- BAPI_GOODSMVT_CREATE工单超领发料程式
- BAPI_GOODSMVT_CREATE --mb01,mb1A