物料转移过账BAPI_GOODSMVT_CREATE

物料转移过账BAPI_GOODSMVT_CREATE
<!--StartFragment --><!--StartFragment --> REPORTzppmm_mb1b.
TABLES:mseg,
mkpf,
rm07m,
t158b,
t001l,
msegk.


DATA:mat_docLIKEbapi2017_gm_head_ret-mat_doc.

DATA:save_codeLIKEsy-ucomm,
ok_codeLIKEsy-ucomm,
loc_msg(50),
gmngaLIKEafru-gmnga,
mtsnrLIKErm07m-mtsnr,
errflag..

DATA:BEGINOFgt_afpoOCCURS0.
INCLUDESTRUCTUREafpo.
DATA:ENDOFgt_afpo.

DATA:gmheadLIKEbapi2017_gm_head_01.

DATA:BEGINOFgmcode.
INCLUDESTRUCTUREbapi2017_gm_code.
DATA:ENDOFgmcode.

DATA:BEGINOFmthead.
INCLUDESTRUCTUREbapi2017_gm_head_ret.
DATA:ENDOFmthead.

DATA:BEGINOFitabOCCURS100.
INCLUDESTRUCTUREbapi2017_gm_item_create.
DATA:ENDOFitab.

DATA:BEGINOFerrmsgOCCURS10.
INCLUDESTRUCTUREbapiret2.
DATA:ENDOFerrmsg.

INITIALIZATION.
t001l-lgort='1051'.
mseg-lgort='1050'.
mseg-werks='1000'.
mkpf-bldat=sy-datum.
mkpf-budat=sy-datum.
t158b-bwart='311'.
rm07m-sobkz='E'.
rm07m-werks='1000'.
rm07m-lgort='1050'.
mseg-erfme='PC'.
gmcode-gm_code='04'."MB1B
CALLSCREEN100.

*&----------------------------------------------------*
*&ModuleSTATUS_0100OUTPUT
*&-----------------------------------------------------*
*text
*--------------------------------------------------------*
MODULEstatus_0100OUTPUT.
SETPF-STATUS'FOR0100'.
SETTITLEBAR'100'.

ENDMODULE."STATUS_0100OUTPUT
*&--------------------------------------------------*
*&ModuleUSER_COMMAND_0100INPUT
*&----------------------------------------------------*
*text
*-----------------------------------------------------*
MODULEuser_command_0100INPUT.
save_code=ok_code.
CLEARok_code.
CASEsave_code.
WHEN'SAVE'.
PERFORMform_save.
WHEN'EXIT'OR'BACK'.
LEAVETOSCREEN0.
WHEN'CLOSE'.
LEAVEPROGRAM.
ENDCASE.
ENDMODULE."USER_COMMAND_0100INPUT
*&-----------------------------------------------------*
*&FormFORM_SAVE
*&-------------------------------------------------*
*text
*---------------------------------------------------------*
*-->p1text
*<--p2text
*---------------------------------------------------*
FORMform_save.
IFmkpf-bldat=''
ORmkpf-budat=''
ORrm07m-mtsnr=''
ORmseg-matnr=''
ORmseg-lgort=''
ORmseg-erfmg=''
ORmseg-erfme=''
ORt001l-lgort=''
ORmsegk-mat_kdauf=''
ORmsegk-mat_kdpos=''.
MESSAGEi000(znyj13)WITH'信息不完整'.
RETURN.
ENDIF.
IFgmnga<mseg-erfmg.
MESSAGEi000(znyj13)WITH'移动数量应小于确认数量'.
mseg-erfmg=''.
RETURN.
ENDIF.
gmhead-pstng_date=sy-datum."mkpf-bldat.
gmhead-doc_date=sy-datum."mkpf-budat.
gmhead-ref_doc_no=rm07m-mtsnr.
gmhead-pr_uname=sy-uname.
gmhead-header_txt=mkpf-bktxt.
*APPENDgmhead.


itab-material=mseg-matnr.
itab-plant='1000'.
itab-stge_loc=mseg-lgort.
itab-move_type=t158b-bwart."rm07m-bwartwa.
itab-spec_stock=rm07m-sobkz.
itab-entry_qnt=mseg-erfmg.
itab-entry_uom=mseg-erfme.
*itab-batch=mseg-charg.
*itab-orderid=rm07m-mtsnr.
*itab-order_itno=msegk-mat_kdpos.
itab-move_mat=mseg-matnr.
itab-move_plant='1000'.
itab-move_stloc=t001l-lgort.
itab-val_sales_ord=msegk-mat_kdauf.
itab-val_s_ord_item=msegk-mat_kdpos.
itab-nb_slips=1.

APPENDitab.
CALLFUNCTION'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header=gmhead
goodsmvt_code=gmcode
IMPORTING
goodsmvt_headret=mthead
materialdocument=mat_doc
TABLES
goodsmvt_item=itab
return=errmsg.

LOOPATerrmsg.
CLEARloc_msg.
CONCATENATE'过帐成功!'errmsg-messageINTOloc_msg.
IFerrmsg-typeEQ'E'.

MESSAGEerrmsg-messageTYPE'E'.
errflag='X'.
ELSE.
MESSAGEloc_msgTYPE'S'.
ENDIF.
ENDLOOP.


IFerrflagISINITIAL.
COMMITWORKANDWAIT.
CLEARloc_msg.
IFsy-subrcNE0.

MESSAGE'过帐操作出现错误,请稍后重试!'TYPE'E'.
EXIT.
ELSE.

CONCATENATE'物料凭证:'mat_doc'已成功创建!'INTOloc_msg.
MESSAGEi000(znyj13)WITHloc_msg.

gmhead-ref_doc_no=''.
gmhead-header_txt=''.
mseg-matnr=''.
msegk-mat_kdauf=''.
msegk-mat_kdpos=''.
mseg-erfmg=''.
rm07m-mtsnr=''.
gmnga=''.
mkpf-bktxt=''.
ENDIF.
ELSE.
MESSAGE'这不是正确的发料单或者已经创建凭证!'TYPE'E'.
ENDIF.

CALLFUNCTION'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait='X'.

ENDFORM."FORM_SAVE
*&-----------------------------------------------*
*&ModuleRM07M-MTSNRINPUT
*&----------------------------------------------*
*text
*------------------------------------------------*
MODULErm07m-mtsnrINPUT.
CONCATENATE'0000'rm07m-mtsnrINTOmtsnr.
*SELECTSINGLEgmngaINTOgmngaFROMafruWHEREaufnr=rm07m-mtsnr.
IFsy-subrc=0.
SELECT*INTOCORRESPONDINGFIELDSOFTABLEgt_afpo
FROMafpo
WHEREaufnr=mtsnr.
IFsy-subrc=0.
READTABLEgt_afpoINDEX1.
msegk-mat_kdauf=gt_afpo-kdauf.
msegk-mat_kdpos=gt_afpo-kdpos.
mseg-matnr=gt_afpo-matnr.
gmnga=gt_afpo-wemng.
ENDIF.
ELSE.
CONCATENATE'订单:'rm07m-mtsnr'不存在!'INTOloc_msg.
MESSAGEi000(znyj13)WITHloc_msg.

RETURN.
ENDIF.
ENDMODULE."RM07M-MTSNRINPUT
<!--StartFragment --> PROCESSBEFOREOUTPUT.
MODULESTATUS_0100.
*
PROCESSAFTERINPUT.
MODULEUSER_COMMAND_0100.
FIELDRM07M-MTSNRMODULERM07M-MTSNRONREQUEST.
* BAPI TO Upload Inventory Data
*
* GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order
* 02 - MB31 - Goods Receipts for Prod Order
* 03 - MB1A - Goods Issue
* 04 - MB1B - Transfer Posting
* 05 - MB1C - Enter Other Goods Receipt
* 06 - MB11
*
* Domain: KZBEW - Movement Indicator
* Goods movement w/o reference
* B - Goods movement for purchase order
* F - Goods movement for production order
* L - Goods movement for delivery note
* K - Goods movement for kanban requirement (WM - internal only)
* O - Subsequent adjustment of "material-provided" consumption
* W - Subsequent adjustment of proportion/product unit material

GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order
* 02 - MB31 - Goods Receipts for Prod Order
* 03 - MB1A - Goods Issue
* 04 - MB1B - Transfer Posting
* 05 - MB1C - Enter Other Goods Receipt
* 06 - MB11

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值