<!--StartFragment --><!--StartFragment -->
REPORTzppmm_mb1b.
TABLES:mseg,
mkpf,
rm07m,
t158b,
t001l,
msegk.
DATA:mat_doc
LIKEbapi2017_gm_head_ret-mat_doc.
DATA:save_code
LIKEsy-ucomm,
ok_code
LIKEsy-ucomm,
loc_msg(
50),
gmnga
LIKEafru-gmnga,
mtsnr
LIKErm07m-mtsnr,
errflag..
DATA:
BEGINOFgt_afpo
OCCURS0.
INCLUDESTRUCTUREafpo.
DATA:
ENDOFgt_afpo.
DATA:gmhead
LIKEbapi2017_gm_head_01.
DATA:
BEGINOFgmcode.
INCLUDESTRUCTUREbapi2017_gm_code.
DATA:
ENDOFgmcode.
DATA:
BEGINOFmthead.
INCLUDESTRUCTUREbapi2017_gm_head_ret.
DATA:
ENDOFmthead.
DATA:
BEGINOFitab
OCCURS100.
INCLUDESTRUCTUREbapi2017_gm_item_create.
DATA:
ENDOFitab.
DATA:
BEGINOFerrmsg
OCCURS10.
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'.
"MB1BCALLSCREEN100.
*&----------------------------------------------------**&ModuleSTATUS_0100OUTPUT*&-----------------------------------------------------**text*--------------------------------------------------------*MODULEstatus_0100
OUTPUT.
SETPF-STATUS
'FOR0100'.
SETTITLEBAR'100'.
ENDMODULE.
"STATUS_0100OUTPUT*&--------------------------------------------------**&ModuleUSER_COMMAND_0100INPUT*&----------------------------------------------------**text*-----------------------------------------------------*MODULEuser_command_0100
INPUT.
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'EXPORTINGgoodsmvt_header=gmhead
goodsmvt_code=gmcode
IMPORTINGgoodsmvt_headret=mthead
materialdocument=mat_doc
TABLESgoodsmvt_item=itab
return=errmsg.
LOOPATerrmsg.
CLEARloc_msg.
CONCATENATE'过帐成功!'errmsg-
messageINTOloc_msg.
IFerrmsg-
typeEQ'E'.
MESSAGEerrmsg-
messageTYPE'E'.
errflag=
'X'.
ELSE.
MESSAGEloc_msg
TYPE'S'.
ENDIF.
ENDLOOP.
IFerrflag
ISINITIAL.
COMMITWORKANDWAIT.
CLEARloc_msg.
IFsy-subrc
NE0.
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'EXPORTINGwait=
'X'.
ENDFORM.
"FORM_SAVE*&-----------------------------------------------**&ModuleRM07M-MTSNRINPUT*&----------------------------------------------**text*------------------------------------------------*MODULErm07m-mtsnr
INPUT.
CONCATENATE'0000'rm07m-mtsnr
INTOmtsnr.
*SELECTSINGLEgmngaINTOgmngaFROMafruWHEREaufnr=rm07m-mtsnr.IFsy-subrc=
0.
SELECT*
INTOCORRESPONDING
FIELDSOFTABLEgt_afpo
FROMafpo
WHEREaufnr=mtsnr.
IFsy-subrc=
0.
READTABLEgt_afpo
INDEX1.
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