怎样用BAPI_GOODSMVT_CREATE实现MIGO_GR过程?

我想用BAPI_GOODSMVT_CREATE来实现MIGO_GR的过程,其中gmcode-gm_code='01',itemitab-mvt_ind='B'.bapi完... 我想用BAPI_GOODSMVT_CREATE来实现MIGO_GR的过程,其中gmcode-gm_code = '01', itemitab-mvt_ind = 'B'.bapi完成后,生成了一个document,但是该document在MKPF这个table中的Transaction Code(MKPF-TCODE2)栏位为MB01,并不是我希望的MIGO_GR。请问该怎么弄才可以实现呢?我查看了T158G这个table,当中并没有一个GM_code对应MIGO_GR这个Transaction Code. 展开
蔡希寂
2014-07-01 · TA获得超过119个赞
知道答主
回答量:130
采纳率:50%
帮助的人:70.3万
展开全部
用BDC或BAPI都行的..DATA: BEGIN OF gmhead. INCLUDE STRUCTURE bapi2017_gm_head_01. DATA: END OF gmhead. DATA: BEGIN OF gmcode. INCLUDE STRUCTURE bapi2017_gm_code. DATA: END OF gmcode. DATA: BEGIN OF mthead. INCLUDE STRUCTURE bapi2017_gm_head_ret. DATA: END OF mthead. DATA: BEGIN OF item OCCURS 100. INCLUDE STRUCTURE bapi2017_gm_item_create. DATA: END OF item. DATA: BEGIN OF errmsg OCCURS 10. INCLUDE STRUCTURE bapiret2. DATA: END OF errmsg. DATA: wmenge LIKE iseg-menge, errflag. DATA: mat_doc LIKE bapi2017_gm_head_ret-mat_doc, doc_year LIKE bapi2017_gm_head_ret-doc_year.**** 不是新增,而且未进行过帐 IF NOT zblko-btbh IS INITIAL AND zblko-gz IS INITIAL. IF NOT zblko-lldat IS INITIAL. gmhead-pstng_date = zblko-lldat. gmhead-doc_date = zblko-lldat. ELSE. gmhead-pstng_date = sy-datum. gmhead-doc_date = sy-datum. ENDIF. gmhead-pr_uname = sy-uname. gmhead-header_txt = zblko-bktxt. gmcode-gm_code = '04'. "04 - MB1B LOOP AT g_z_tab_itab INTO g_z_tab_wa. item-material = g_z_tab_wa-matnr. item-plant = '1000'. item-stge_loc = zblko-lgort_f. item-move_type = '311'. item-entry_qnt = g_z_tab_wa-sfs. item-move_plant = '1000'. item-move_stloc = zblko-lgort_s. IF NOT g_z_tab_wa-sfs IS INITIAL. APPEND item. ENDIF. ENDLOOP.**************输出* LOOP AT item.* WRITE:/ item-material,item-plant,item-stge_loc,item-move_type,* item-entry_qnt,item-move_plant,item-move_stloc.* ENDLOOP.*************调用BAPI创建 CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = gmhead goodsmvt_code = gmcode* TESTRUN = ' ' IMPORTING goodsmvt_headret = mthead materialdocument = mat_doc matdocumentyear = doc_year TABLES goodsmvt_item = item* GOODSMVT_SERIALNUMBER = return = errmsg . LOOP AT errmsg. CLEAR loc_msg. CONCATENATE '过帐成功!' errmsg-message INTO loc_msg. IF errmsg-type EQ 'E'.* WRITE:/'Error in function', errmsg-message. MESSAGE errmsg-messageTYPE 'E'. errflag = 'X'. ELSE.* WRITE:/ errmsg-message. MESSAGE loc_msg TYPE 'S'. ENDIF. ENDLOOP. ENDIF. IF errflag IS INITIAL. COMMIT WORK AND WAIT. CLEAR loc_msg. IF sy-subrc NE 0.* WRITE:/ 'Error in updating'. MESSAGE '过帐操作出现错误,请稍后重试!' TYPE 'E'. EXIT. ELSE.* WRITE:/ mthead-mat_doc, mthead-doc_year. CONCATENATE '物料凭证:' mat_doc '已成功创建!' INTO loc_msg. MESSAGE loc_msg TYPE 'S'. IF NOT mat_doc IS INITIAL. PERFORM upd_sta USING mat_doc zblko-btbh zblko-mbbh. ENDIF. zblko-mblnr = mat_doc. ENDIF. ELSE. MESSAGE '这不是正确的发料单或者已经创建凭证!' TYPE 'E'. ENDIF.ENDIF. 查看原帖>>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式