ts mmv20接口创建国产备件定单并进口收货_第1页
ts mmv20接口创建国产备件定单并进口收货_第2页
ts mmv20接口创建国产备件定单并进口收货_第3页
ts mmv20接口创建国产备件定单并进口收货_第4页
ts mmv20接口创建国产备件定单并进口收货_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

总体信 TS_MM04_V1.0国产及进口零部件自动创建采购订单并收货程序对应功能说明书文件名称 接口作者 最后修改日期 开发对象类型 报 √接 增 负责该技术说明书顾问 文档修改历2011-3-2011-9-未解决的Issue一、接口简单说1PLSSAP,BAPISAP23456无7系统自动执8二、输入页指定接口文件三、输出页接口程序执行完成后会有报告生四、条件五、主流程进行数据字段有效性进行数据字段有效性检解析数据内程序结程序结获取上载数据文件解析数据内容进行数据字段有效性检查:采购入库操作-国产件 :七、虚拟代码(VirtualPROGRAMID/NAME: DATEAUTHOR'S LASTPROGRAM PROJECT 郑州日产VERSION: REPORTzpvmmi004MESSAGE-IDNOSTANDARDPAGEHEADING LINE-SIZE193 LINE-COUNT INCLUDE: INCLUDE *CALLS:(RFCAND TABLES:mara,marc,mard,t001w,t001l,t006,zpv_t_plsdoc,zna_t_vendormap. CHANGE | |DATA:BEGINOFgt_file_dataOCCURS TYPE "分组条件

TYPE TYPE TYPE TYPEc, LIKEekko-verkf, TYPE TYPE TYPE TYPE TYPEc, TYPEc, LIKEekpo-menge, LIKEekpo-ebelp, LIKEekpo-netwr, LIKEekpo-meins, LIKEekko-waers, TYPEc, LIKEekko-ebeln, "sap采购订单gr_number(10)TYPEc, LIKEmseg-zeile, TYPEc, TYPEc, TYPEc, TYPEc,

TYPE TYPE TYPE TYPEp, TYPEp, TYPE TYPE TYPE TYPE TYPEmkpf- TYPEmkpf- TYPEsy- TYPEc, TYPEekpo-peinh,"价格单位_Tommy TYPEekpo- TYPEekpo-menge,"数量汇总ENDOFgt_purchase_dataLIKEgt_file_dataOCCURS0WITHHEADERgt_cancel_dataLIKEgt_file_dataOCCURS0WITHHEADERtableforvalidgt_valid_dataLIKEgt_file_dataOCCURS0WITHHEADERtableforvaliddatagt_valid_data0LIKEgt_file_dataOCCURS0WITHHEADERtableforvaliddatagt_valid_data1LIKEgt_file_dataOCCURS0WITHHEADERtableforvaliddatagt_valid_data2LIKEgt_file_dataOCCURS0WITHHEADERtableforvaliddatagt_valid_data3LIKEgt_file_dataOCCURS0WITHHEADERDATA:gt_valid_data4LIKEgt_file_dataOCCURS0WITHHEADERLINE,gt_valid_data5LIKEgt_file_dataOCCURS0WITHHEADERtableforprocessinformationDATA:BEGINOFgt_proc_infoOCCURS0, TYPEc, TYPEc, TYPEc, TYPE "订单类型-ENDOF BEGINOFgt_errcontentOCCURS0, TYPEc,ENDOFDATA:BEGINOFgt_mail_contentOCCURS0,field1(10)TYPEc, field2(10)TYPEc, field3(10)TYPEc, field4(20)TYPEc, field5(255)TYPEc, ENDOFAddbyLxh DATA:BEGINOFpt_add_ekknOCCURS0, LIKEekpo- LIKEekpo- LIKEekpo- LIKEekpo- LIKEekpo- LIKEekpo- LIKEekpo- TYPE TYPE "冲销标记:Y,N销 TYPE "超收标记:YENDOFtableforBAPItocreateDATA:g_create_po_number LIKEbapimepoheader-po_number.DATA:gw_create_header LIKEbapimepoheader, LIKE LIKESTANDARDTABLEOFbapimepoitemINITIALSIZE0WITHHEADERLINE, LIKEbapimepoitemxOCCURS0WITHHEADERLINE, LIKESTANDARDTABLEOFbapimeposcheduleINITIALSIZE0WITHHEADER LIKEbapimeposchedulxOCCURS0WITHHEADERLINE, LIKESTANDARDTABLEOFbapiret2INITIALSIZE0WITHHEADERtableforBAPItochangeDATA: LIKEbapimepoheader-DATA:gt_change_return bapiret2OCCURS0WITHHEADERLINE, bapimepoitemOCCURS0WITHHEADERLINE, bapimepoitemxOCCURS0WITHHEADERLINE, LIKEbapimeposcheduleOCCURS0WITHHEADERLINE, LIKEbapimeposchedulxOCCURS0WITHHEADERLINE, LIKEbapimepocondOCCURS0WITHHEADER LIKEbapimepocondxOCCURS0WITHHEADERDATA:BEGINOFgt_ekpoOCCURSebelpLIKEekpo-ebelp,matnrLIKEekpo-matnr,werksLIKEekpo-werks,mengeLIKEekpo-menge,netprLIKEekpo-netpr,retpoLIKEekpo-ENDOFtableforBAPItoGoodsDATA:g_gr_num LIKEbapi2017_gm_head_ret-mat_doc.DATA:gw_gr_header LIKEbapi2017_gm_head_01.DATA:BEGINOFgt_gr_itemOCCURSINCLUDESTRUCTUREbapi2017_gm_item_create.DATArownumTYPEp. DATAENDOFgt_gr_item.DATA:gt_gr_returnLIKESTANDARDTABLEOFbapiret2INITIALSIZE8WITHHEADERtableforBAPItoCancletheDATA:gw_canc_poheader LIKEbapimepoheader, LIKE LIKESTANDARDTABLEOFbapiret2WITHHEADERtableforBAPItoCancletheDATA:gt_canc_poitem LIKEbapimepoitemOCCURS0WITHHEADERLINE, LIKEbapimepoitemxOCCURS0WITHHEADERDATA:g_mail_title(20)TYPE g_dateLIKEsy-datum, g_timeLIKEsy- forbdcDATA:it_bdc_tabLIKESTANDARDTABLEOFINITIALSIZE0WITHHEADERconstantdeclarationareac_werks(4)TYPEcVALUE'8915', c_log(50)TYPEcVALUEMM04的运行日志',c_msgtype(8)TYPEcVALUE'消息类型',c_rundate(8)TYPEcVALUE'运行日期',c_runtime(8)TYPEcVALUE'运行时间',c_programm(8)TYPEcVALUE'程序名称',c_msgdesp(8)TYPEcVALUE'消息描述',c_default_msg(100)TYPEcVALUEc_ekorg1LIKEt024e-ekorg VALUE'1000', c_ekorg2LIKEt024e-ekorg VALUE'2000', c_ekgrpLIKEekko-ekgrp VALUE'Z01', c_matklLIKEeina-matkl VALUE'PLWG01',"物料组c_bukrsLIKEt001k-bukrs VALUE'8919', LIKEekko-LIKEekko-c_mwskz1LIKEt007a-c_mwskz2LIKEt007a-c_lgortLIKEgt_gr_item-c_mvtcodeLIKE"Movementc_gr_mvt_indTYPE LIKEt156-c_move_type1LIKEt156-c_move_type_161LIKEt156-c_datb(2)TYPEc_err_(1)TYPE TYPESELECTION- SELECTION-SCREENBEGINOFBLOCKb01WITHFRAMETITLEtext-900.PARAMETERS:p_fname(128)TYPEcDEFAULT'ZNMM04'.SELECTION-SCREENENDOFBLOCKb01.*&Main PERFORMSTART-OF-MOVEp_fnameTOg_filename. PERFORMfrm_prg_start.PERFORMfrm_get_data. PERFORMfrm_resolve_data. PERFORM PERFORM PERFORMfrm_hmd_normal1USINGc_bsart_eb01c_ekorg1."采购入库操作-国产件PERFORMfrm_hmd_normal2USINGc_bsart_eb02c_ekorg2."采购入库操作-进口件PERFORMfrm_hmd_cancel. PERFORM END-OF-PERFORMfrm_save_log. PERFORMfrm_prg_end. Form *&功能说明:对程序中用到的全局变量进行初始 FORMLOOPATSCREEN.IFscreen-name='P_FNAME'.screen-input='0'.MODIFY*REFRESH REFRESH "接口文件保存数据的内REFRESH CLEAR Form *&功能说明:解析上传文件中的内容到gt_file_data内表 FORMDATA:l_lifnrTYPElfa1-g_date=sy-datum.g_time=sy-LOOPAT CONDENSEgt_file_data-optypeNO-GAPS.CONDENSEgt_file_data-tszd1NO-GAPS.CONDENSEgt_file_data-tszd2NO-GAPS.CONDENSEgt_file_data-verkfNO-GAPS.CONDENSEgt_file_data-bktxtNO-GAPS.CONDENSEgt_file_data-budatNO-GAPS.CONDENSEgt_file_data-matnrNO-GAPS.CONDENSEgt_file_data-mengeNO-GAPS.CONDENSEgt_file_data-lgobeNO-GAPS.CONDENSEgt_file_data-lifnrNO-GAPS.CONDENSEgt_file_data-sgtxtNO-GAPS.CONDENSEgt_file_data-po_numberNO-GAPS.gt_file_data-pmenge=gt_file_data-****对于二级供应商需要做特定转换 SELECTSINGLElifnrINTOl_lifnrFROM WHEREmatnrEQgt_file_data- IFsy-subrcEQ gt_file_data-lifnr= APPENDgt_file_data.CLEARgt_file_data.CLEAR:l_lifnr.gt_file_name-filenamegt_input_content-name.COLLECTgt_file_name."存放所有文件的文件名CLEARgt_file_name. Form *&功能说明:各字段的有效 FORMDATA:l_pstatLIKEmara-pstat.DATA:l_msg(255)TYPEc, TYPEi,l_valid_(1)TYPEc,l_msgnr(3)TYPEc,l_sap_ebelnLIKEekko-ebeln,l_sap_ebelpLIKEekpo-ebelp,l_mat_catLIKEmarc-zzspsg, LIKEekpo-netwr,l_po_unitLIKEekpo-meins, LIKEekomd-koein,l_menge_convertLIKEekpo-menge,l_info_catLIKEa017-esokz.DATA:l_lifnrTYPElfa1-lifnr.DATA:lifnr_flag(4)TYPEc.DATA:lenTYPEDATA: TYPEDATA:BEGINOFlt_lfb1OCCURSlifnrLIKElfb1-lifnr,lifnr_flag(4)TYPEc,ENDOFlt_lfb1.SELECTlfb1~lifnrINTOCORRESPONDINGFIELDSOFTABLEFROMLOOPATCONDENSE:lt_lfb1-lifnrNO-GAPS.len=STRLEN(lt_lfb1-lifnr).len=len-4.lt_lfb1-lifnr_flag=lt_lfb1-lifnr+len(4).MODIFYlt_lfb1TRANSPORTINGlifnr_flag.CLEAR:lt_lfb1,LOOPATCLEAR:CONDENSE:gt_file_data-gt_file_data-po_numberNO-GAPS.TRANSLATEgt_file_data-optypeTOUPPERCASE.TRANSLATEgt_file_data-tszd1TOUPPERCASE.TRANSLATEgt_file_data-tszd2TOUPPERCASE.TRANSLATEgt_file_data-verkfTOUPPERCASE.TRANSLATEgt_file_data-budatTOUPPERCASE.TRANSLATEgt_file_data-matnrTOUPPERgt_file_data-TOUPPERgt_file_data-TOUPPERCALLFUNCTION'CONVERSION_EXIT_MATN1_INPUT'input=gt_file_data-matnroutput=gt_file_data-CALLFUNCTION'CONVERSION_EXIT_ALPHA_INPUT'input=gt_file_data-lifnroutput=gt_file_data-IFgt_file_data-optypeISINITIALgt_file_data-tszd1ISINITIALORgt_file_data-tszd2ISINITIALORgt_file_data-verkfISINITIALORgt_file_data-bktxtISINITIALORgt_file_data-budatISINITIALORgt_file_data-matnrISINITIALORgt_file_data-mengeISINITIALORgt_file_data-lgobeISINITIAL.ORgt_file_data-lifnrISPERFORMfrm_build_msgUSINGc_msg_cls_in'401'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msggt_file_data.-1:根据物料号取maraSELECTSINGLEmeinsINTOgt_file_data-meinsFROMmaraWHEREmatnr=gt_file_data-IFsy-subrcEQ0.-2E3S-P的提单号取SAPIFgt_file_data-optype=SELECTSINGLEmblnrINTOgt_file_data-gr_numberFROMmkpfWHEREbktxtEQgt_file_data-po_number.len=STRLEN(gt_file_data-matnr).len=len-4.lifnr_flag=gt_file_data-READTABLElt_lfb1WITHKEYlifnr_flag=lifnr_flag.IFsy-subrcEQ0.MOVElt_lfb1-lifnrTOgt_file_data-PERFORMfrm_build_msgUSINGc_msg_cls_in'404'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msggt_file_data.SELECTSINGLEpstatINTOl_pstatFROMmaraWHEREmatnrEQgt_file_data-matnr.IFl_pstatNS'E'ORsy-subrcISNOTINITIAL."未采购视图PERFORMfrm_build_msgUSINGc_msg_cls_in'407'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg.PERFORMfrm_append_infoUSING l_msgSELECTSINGLE*FROMmarcWHEREmatnrEQgt_file_data-matnrANDwerksEQc_werksANDlvormNE'X'.IFsy-subrcNEPERFORMfrm_build_msgUSINGc_msg_cls_in'407'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msggt_file_data.CLEARl_valid_PERFORMfrm_date_checkUSINGgt_file_data-budatCHANGINGl_valid_.IFl_valid_EQ'N'.PERFORMfrm_build_msgUSINGc_msg_cls_in'409'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msggt_file_data.****检查采购类型是否有效 CLEARl_valid_ PERFORMfrm_bsart_checkUSINGgt_file_data-bsartCHANGINGl_valid_ IFl_valid_EQ PERFORMfrm_build_msgUSINGc_msg_cls_in'045'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg. PERFORMfrm_append_infoUSINGc_err_l_msg CLEARl_valid_PERFORMfrm_dec_checkUSINGgt_file_data-mengeCHANGINGl_valid_.IFl_valid_NE'Y'ORgt_file_data-mengeEQ0.PERFORMfrm_build_msgUSINGc_msg_cls_in'410'gt_file_data-verkfgt_file_data-matnr''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msggt_file_data.*对于二级供应商需要做特定转换SELECTSINGLElifnrINTOl_lifnrFROMzna_t_vendormapWHEREmatnrEQgt_file_data-matnr.IFsy-subrcEQgt_file_data-lifnr=APPENDgt_file_dataTO Form *& FORMfrm_distribute_data.DATA:l_msg(255)TYPEDATA:intnumTYPEnum=1.Addby *begin--LOOPATIFgt_valid_data-tszd1='01'ANDgt_valid_data-tszd2=PERFORMfrm_build_msgUSINGc_msg_cls_in'399'gt_file_data-verkf''''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msggt_file_data.ELSEIFgt_valid_data-tszd1='01'ANDgt_valid_data-tszd2='11'.gt_valid_data-bukrs=c_bukrs.gt_valid_data-ekorg=c_ekorg1.gt_valid_data-ekgrp=c_ekgrp.gt_valid_data-mwskz=c_mwskz1.gt_valid_data-bsart=c_bsart_eb01.ELSEIFgt_valid_data-tszd1='02'ANDgt_valid_data-tszd2='11'.gt_valid_data-bukrs=c_bukrs.gt_valid_data-ekorg=c_ekorg2.gt_valid_data-ekgrp=c_ekgrp.gt_valid_data-mwskz=c_mwskz2.gt_valid_data-bsart=c_bsart_eb02.gt_valid_data-rownum=intnum**本次收货数量默认为文本文件上的数量,超收数量默认为gt_valid_data-menge_i=gt_valid_data-mengegt_valid_data-menge_o=0MODIFYgt_valid_dataTRANSPORTINGrownummenge_imenge_obukrsekorgekgrpmwskzintnum=intnum+1*endLOOPATIFgt_valid_data-optypeEQ'E1'. IFgt_valid_data-bsartEQc_bsart_eb01.APPENDgt_valid_dataTOgt_valid_data0. ELSEIFgt_valid_data-bsartEQc_bsart_eb02.APPENDgt_valid_dataTOgt_valid_data1. APPENDgt_valid_dataTOgt_valid_data2. CLEAR Form *&功能说明:国产备件正常业务数据的采购处 FORMfrm_hmd_normal1USINGDATAlt_groupLIKEgt_file_dataOCCURS0WITHHEADERLINE.DATA:BEGINOFlt_periodOCCURS0,datbLIKEsy-datum,dateLIKEsy-ENDOFDATA:l_budatTYPEsy-datum.DATA:l_countTYPEi.DATA:l_msg(255)TYPEDATA:l_default_dateTYPEsy-datum.DATA:l_month(2)TYPEc.DATA:l_year(4)TYPEIFgt_valid_data0[]ISINITIAL.LOOPATSELECTz_date1ASdatbz_date2ASdateINTOCORRESPONDINGFIELDSOFFROMWHERElifnrEQgt_valid_data0-lifnrANDbukrsEQc_bukrsANDekorgEQc_ekorg1ANDz_dqjsEQ'Y'ANDz_date1LEgt_valid_data0-budatANDz_date2GEgt_valid_data0-DESCRIBETABLElt_periodLINESl_count.IFl_countEQ0.*如果没有找到则取当前月份的时间MOVE-CORRESPONDINGgt_valid_data0TO*CLEAR:l_month,l_year,l_default_date,l_budat.l_budat=gt_valid_data0-budat.CALLFUNCTION'CACS_DATE_GET_YEAR_MONTH'i_date=l_budat"gt_valid_data0-budate_month=l_monthe_year=UNPACKl_monthTO

CONCATENATEl_yearl_month'01'INTOgt_purchase_data-gr_dategt_valid_data0- MOVEl_default_dateTOgt_purchase_data-budat.COLLECTgt_purchase_data.gt_file_data-gt_valid_data0-gt_valid_data0-gt_valid_data0- CHANGING****避免重复生成错误数据 LOOPAT PERFORMfrm_append_infoUSINGc_err_l_msg PERFORMfrm_append_infoUSINGc_err_l_msg CLEAR ELSEIFl_countGTPERFORMfrm_build_msg CHANGINGPERFORMfrm_append_infoUSINGc_err_l_msggt_valid_data0.CLEARl_msg.MOVE-CORRESPONDINGgt_valid_data0TOgt_purchase_data.READTABLElt_periodINDEX1.MOVElt_period-datbTOgt_purchase_data-budat.COLLECTgt_purchase_data.CLEARLOOPATgt_purchase_data.gt_purchase_data-menge=gt_purchase_data-pmenge.MODIFYgt_purchase_dataTRANSPORTINGmenge.CLEAR:LOOPATgt_purchase_data.CONCATENATEgt_purchase_data-verkfgt_purchase_data-lifnrgt_purchase_data-budatINTOgt bine.CONDENSE bineNO-MODIFYgt_purchase_dataTRANSPORTINGcombine.CLEAR:gt_purchase_data.SORTgt_purchase_dataBYcombine."lifnrbudat.LOOPATgt_purchase_data.APPENDgt_purchase_dataTOlt_group.ATENDOFcombine."budat.PERFORMfrm_deal_group_dataTABLESUSINGREFRESH Form *&功能说明:对分组数据进行采购收 FORMfrm_deal_group_dataTABLESpt_groupSTRUCTUREUSINGDATA:BEGINOFlt_periodOCCURS0,datbLIKEsy-datum,dateLIKEsy-datum,ENDOFlt_period.DATA:lt_groupLIKEgt_file_dataOCCURS0WITHHEADERLINE.DATA:l_countTYPEi,l_msg(255)TYPEc,l_check_(1)TYPEc,l_invalid_price(1)TYPEc,l_pplslist(16)TYPEc,l_pbktxt(25)TYPEc,l_plslist(16)TYPEc,l_bktxt(25)TYPEc,l_lifnrLIKElfa1-lifnr,l_ebelnLIKEekko-ebeln,l_xb_dateLIKEsy-datum.*PERFORMfrm_check_item_priceTABLESpt_groupCHANGINGl_invalid_price.IFl_invalid_priceEQ'X'.CLEARl_invalid_price.READTABLEpt_groupINDEX*SELECTSINGLEebelnINTOl_ebelnFROMekkoWHEREbukrsEQc_bukrsANDekorgEQpv_ekorgANDbsartEQpv_bsartANDloekzEQ''ANDbedatEQpt_group-budatANDverkfEQpt_group-verkf.IFsy-subrcEQ*增加采购组织作为拆分的判断条件PERFORMfrm_exec_change_po_grTABLESpt_groupUSINGl_ebelnlt_period-datblt_period-datepv_ekorgpt_group-gr_datept_group-PERFORMfrm_exec_create_po_grTABLESpt_groupUSINGpt_group-budatpt_group-budatpt_group-gr_date"pt_group-budat

pv_bsart* Form *&功能说明:取物料的采购信息记录中的价 FORMfrm_check_get_price bapieinaOCCURS0WITHHEADERbapireturnOCCURS0WITHHEADERekomdOCCURS0WITHHEADERl_price_text(15)TYPESELECTmatklINTOl_mara_matklUPTO1ROWSFROMmaraWHEREmatnrEQ*CALLFUNCTION'BAPI_INFORECORD_GETLIST' = = = =pr_cat =pr_werks ='X'inforecord_general=lt_inf_general =DESCRIBETABLElt_inf_generalLINESl_line_num.CASEl_line_num.WHENSELECTSINGLEmatklINTOl_eina_matklFROMeinaWHEREinfnrEQlt_inf_general-IFl_eina_matklISINITIAL.CLEAR:l_mara_matkl.READTABLElt_inf_generalINDEXIFpr_meinsEQlt_inf_general-pr_menge1=pr_menge*lt_inf_general-conv_num1/lt_inf_general-CALLFUNCTION'ME_GET_INFORECORD_CONDITIONS'i_ekorg= i_esokz=i_infnr=lt_inf_general-info_reci_lifnr=pr_lifnri_matkl=l_mara_matkli_matnr=pr_matnri_werks=pr_werkstekomd=lt_ekomd.l_cond_line=0.IFlt_ekomd[]ISNOTLOOPATlt_ekomdWHEREdatabLEpr_dateANDdatbiGEpr_date.l_cond_line=l_cond_line+1.IFpr_meinsEQlt_ekomd-pr_menge1=pr_menge*lt_inf_general-conv_num1/

MOVE'Y'TOpr_msgnr.pr_netpr=lt_ekomd-kbetr.pr_po_unit=lt_ekomd-kmein.pr_curr=lt_ekomd-koein.pr_kpein=lt_ekomd-kpein.ELSEIFpr_meinsEQlt_ekomd-kmein.pr_menge1=pr_menge.MOVE'Y'TOpr_msgnr.pr_netpr=lt_ekomd-kbetr.pr_po_unit=lt_ekomd-kmein.pr_curr=lt_ekomd-koein.pr_kpein=lt_ekomd-kpein.MOVE'911'TOpr_msgnr.IFl_cond_lineGEMOVE:'420'TOpr_msgnr.IFl_cond_lineEQMOVE'419'TOMOVE:'419'TOWHENMOVE:'419'TOWHENMOVE:'419'TO Form *&功能说明:新建PO并收 FORMfrm_exec_create_po_grTABLESpt_create_itemSTRUCTUREUSINGpr_datbpr_datepr_budatpv_bsartDATA:l_po_item_numTYPEi, TYPEi, TYPEc, TYPEi, TYPEi,l_last_flag(1)TYPE DATA:lt_canc_sub LIKEbapimepoitemOCCURS0WITHHEADERLINE, LIKEbapimepoitemxOCCURS0WITHHEADERLINE,lt_create_itemLIKEgt_file_dataOCCURS0WITHHEADERLINE, LIKESTANDARDTABLEOFbapi2017_gm_item_createINITIALSIZE8WITHHEADERDATA:l_menge LIKEbapimepoitem-ty, TYPEc.READTABLEpt_create_itemINDEXreadforpo'sheader = =c_bsart.gw_create_header- =gw_create_header-creat_date=sy-datum. =pr_datb.gw_create_header-created_by=sy-uname. =pt_create_item-lifnr. =pt_create_item-ekorg. =c_ekgrp. p_code='X'.gw_create_headerx-doc_type='X'.gw_create_headerx-creat_date='X'.gw_create_headerx-doc_date='X'.gw_create_headerx-created_by='X'.gw_create_headerx-vendor='X'.gw_create_headerx-purch_org='X'.gw_create_headerx-pur_group=*增加销售员字段gw_create_header-sales_pers=pt_create_item-verkf.gw_create_headerx-sales_pers='X'.readyforpo'sitemdataLOOPATpt_create_item.BO*考虑多种货币 IFpr_ekorgEQ gw_create_header-currency= gw_create_header-currency= gw_create_headerx-currency=EOCLEARl_l_menge=pt_create_item-menge_convert.IFl_menge<0.l_menge=-1* =l_po_item_num+ =l_po_item_num.gt_create_item- = =pt_create_item-matnr. =c_werks. =l_menge. gt_create_item- =pt_create_item- gt_create_item- =pt_create_item-peinh. =pt_create_item-po_unit. ='1'.IFpt_create_item-bsart='EB02'.gt_create_item-tax_code=ELSEIFpt_create_item-bsart='EB01'.gt_create_item-tax_code=IFl_EQgt_create_item- =APPENDgt_create_itemx-=l_po_item_numgt_create_itemx-=gt_create_itemx-=gt_create_itemx-=gt_create_itemx-=gt_create_itemx-=gt_create_itemx-=gt_create_itemx-=gt_create_itemx-=gt_create_itemx-=IFl_EQgt_create_itemx-=APPEND TOgt_pocond- TOgt_pocond- TOgt_pocond- TOgt_pocond-pt_create_item-TOgt_pocond-pt_create_item-pt_create_item-APPENDTOgt_pocondx-APPENDgt_create_schedule-=l_po_item_numgt_create_schedule-=gt_create_schedule-=gt_create_schedule-=APPENDgt_create_schedule.=gt_create_schedulex-=gt_create_schedulex-=gt_create_schedulex-=gt_create_schedulex-=gt_create_schedulex-=gt_create_schedulex-=APPENDgt_create_schedulex.=*readyforgoodsrecievedata =c_werks. =l_po_item_num. =c_lgort. =c_move_type. =pt_create_item-matnr. =l_menge. =c_gr_mvt_ind. =pt_create_item-sgtxt.gt_gr_item- =pt_create_item-IFl_EQgt_gr_item- =APPENDreadyforPOcancel =l_po_item_num.gt_canc_poitem-delete_ind='X'.APPEND =l_po_item_num.gt_canc_poitemx-delete_ind='X'.APPENDMODIFYpt_create_itemTRANSPORTINGsap_ebelp.CLEAR:gt_create_item,callfunctiontocreateCALLFUNCTION'BAPI_PO_CREATE1' = =gw_create_headerxno_price_from_po='X'exppurchaseorder=g_create_po_number = = =gt_create_itemx =gt_create_schedule =gt_create_schedulex. = =IFg_create_po_numberISINITIAL.ROLLBACKWORK.READTABLEpt_create_itemINDEXREADTABLEgt_create_returnWITHKEYtype=LOOPATPERFORMfrm_build_msg CHANGINGPERFORMfrm_append_infoUSINGc_err_l_msgPERFORMfrm_append_err_infoTABLESUSINGBO,LXH REFRESH:EOCOMMITWORKANDREADTABLEpt_create_itemINDEXgw_gr_header-pstng_date=pr_budat. gw_gr_header- = "凭证日gw_gr_header-header_txtpt_create_item- LOOPATgt_gr_item-po_number=g_create_po_number.MODIFYgt_gr_itemTRANSPORTINGpo_number.l_count=LOOPATREADTABLEpt_create_itemINDEXl_count.READTABLEgt_canc_poitemINDEXl_count.READTABLEgt_canc_poitemxINDEXl_count.READTABLEgt_gr_itemINDEXl_count.APPENDpt_create_itemTOlt_create_item.APPENDgt_canc_poitemTOlt_canc_sub.APPENDgt_canc_poitemxTOlt_canc_subx.APPENDgt_gr_itemTOlt_gr_item.l_count=l_count+1.l_count_499=l_count_499+AT =IFpr_ekorgEQc_ekorg1.l_split=249.l_split=IFl_count_499EQl_splitORl_last_flagEQCALLFUNCTION'BAPI_GOODSMVT_CREATE'goodsmvt_header=gw_gr_header =c_mvtcodematerial=g_gr_num =lt_gr_item =gt_gr_return.*failedtorecievinggoodsIFg_gr_numISINITIAL.ROLLBACKREADTABLEgt_gr_returnWITHKEYtype=PERFORMfrm_canc_po_itemTABLESUSINGg_create_po_number*successtorecievinggoodsCOMMITWORKANDREADTABLElt_create_itemINDEXPERFORMfrm_update_customdbTABLES PERFORMfrm_append_succ_infoTABLESUSINGREFRESH:IFNOTg_create_po_numberISPERFORMfrm_canc_po_headerUSINGPERFORM Form *&功能说明:修改PO并收 FORM TABLESpt_change_itemSTRUCTUREUSINGpr_ebelnpr_datbpr_datepr_ekorgDATA:l_po_item_numTYPEi, TYPEi, TYPEc, TYPEi, l_last_flag(1)TYPEc. DATA:bapimepoitemOCCURS0WITHHEADERbapimepoitemxOCCURS0WITHHEADERlt_change_itemLIKEgt_file_dataOCCURS0WITHHEADERLINE, LIKESTANDARDTABLEOFbapi2017_gm_item_createINITIALSIZE8WITHHEADERDATA:l_menge LIKEbapimepoitem-ty, TYPEc. DATA:l_splitTYPEDATA:l_max_po_itemLIKEekpo-否则,则根据POITEMITEM*SELECTMAX(ebelp)INTOl_max_po_itemFROMekpoWHEREebelnEQ*SELECTebelpmatnrwerksmengenetprretpoINTOCORRESPONDINGFIELDSOFTABLEFROMWHEREebelnEQpr_ebelnANDloekzEQLOOPATl_menge=pt_change_item-IFl_menge<l_menge=-1*IFl_EQREADTABLEgt_ekpoWITHKEYmatnr=pt_change_item-werks=netpr=pt_change_item-netprretpo='X'.READTABLEgt_ekpoWITHKEYmatnr=pt_change_item-werks=netpr=pt_change_item-netprretpo=''.IFsy-subrcISgt_change_poitem- =gt_ekpo-pt_change_item- =gt_ekpo-gt_change_poitem- =gt_ekpo-IFpt_change_item-optype=gt_change_poitem- =gt_ekpo-menge+gt_change_poitem- =gt_ekpo-menge-APPEND =gt_ekpo-ebelp. ='X'. ='X'.APPEND =gt_ekpo-ebelp.IFpt_change_item-optype='E1'.gt_change_poitem- =gt_ekpo-menge+gt_change_poitem- =gt_ekpo-menge-gt_change_poschedule-ty=gt_ekpo-menge+l_menge*解决0000错误信息gt_change_poschedule-sched_line='0001'.APPENDgt_change_poschedule.gt_change_poschedulex-po_item=gt_ekpo-ebelp.gt_change_poschedulex-ty='X'. ='0001'. ='X'.APPEND*ReadyGRgt_ekpo-gt_gr_item-gt_ekpo-gt_gr_item-gt_gr_item-gt_gr_item-gt_ekpo-gt_gr_item-gt_gr_item-gt_gr_item-mvt_indpt_change_item-gt_gr_item-pt_change_item-gt_gr_item-IF EQMOVE gt_gr_item-APPENDCLEARReadyforCanclethePO'schangeinggt_canc_poitem-po_item=gt_ekpo-ebelp.gt_canc_poitem-ty=gt_ekpo-menge.APPENDgt_canc_poitemx-po_item=gt_ekpo-ebelp.gt_canc_poitemx-ty='X'.APPENDl_max_po_item=l_max_po_item+10. =l_max_po_item.pt_change_item- = =pt_change_item-matnr. =c_werks. =l_menge. gt_change_poitem-net_price=pt_change_item- gt_change_poitem- =pt_change_poitem-peinh. =pt_change_item-po_unit. ='1'.IFl_EQgt_change_poitem- =APPEND =l_max_po_item. ='X'. ='X'. ='X'. ='X'. ='X'. gt_change_poitemx-net_price= ='X'.gt_change_poitemx- =IFl_EQgt_change_poitemx- =APPEND TOgt_pocond- TOgt_pocond- TOgt_pocond- TOgt_pocond-cond_value, TOgt_pocond-currency, TOgt_pocond-currency_iso, TOgt_pocond-change_id.APPEND TOgt_pocondx- TOgt_pocondx- TOgt_pocondx- TOgt_pocondx-cond_value, TOgt_pocondx-currency, TOgt_pocondx- TOgt_pocondx-APPENDgt_change_poschedule- = gt_change_poschedule-delivery_date=pr_date."采用凭证日期_Tommygt_change_poschedule-delivery_date=pr_sch_date. ='D'. =l_menge. APPENDgt_change_poschedule. =l_max_po_item. ='X'.gt_change_poschedulex-delivery_date='X'.gt_change_poschedulex-del_datcat_ext='X'. ='X'. ='0001'. ='X'.APPENDReadyforGRMOVE:c_werks gt_gr_item- gt_gr_item- gt_gr_item-mvt_ind, pt_change_item- IFl_EQMOVE APPENDCLEARReadyforCanclethePO'schangeinggt_canc_poitem-po_item=l_max_po_item.gt_canc_poitem-delete_ind='X'.APPENDgt_canc_poitemx-po_item=l_max_po_item.gt_canc_poitemx-delete_ind='X'.APPENDMODIFYpt_change_itemTRANSPORTINGsap_ebelp.CLEAR:l_,gt_ekpo.CLEAR:CALLFUNCTION'BAPI_PO_CHANGE'purchaseorder=pr_ebeln = = =gt_change_poitemx =gt_change_poschedule =gt_change_poschedulex =gt_pocond =READTABLEgt_change_returnWITHKEYtype='E'.IFsy-subrcISINITIAL.ROLLBACKREADTABLEpt_change_itemINDEX1.LOOPATpt_change_item.*把错误信息全显LOOPATgt_change_returnWHEREtype=CONCATENATEgt_change_return-message''INTOgt_change_return-PERFORMfrm_build_msg_ex pt_change_item-bktxt"verkfgt_change_return-message''''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msgpt_change_item.CLEARl_msg.****thencreategoodsrecieve*************************************COMMITWORKANDREADTABLEpt_change_itemINDEX gw_gr_header-pstng_date=pt_change_item-budat. gw_gr_header-pstng_date=pr_gr_date. =pr_datb. =pr_gr_date. gw_gr_header-header_txt=pt_change_item-bktxt. l_count=1.LOOPATREADTABLEpt_change_itemINDEXl_count.READTABLEgt_canc_poitemINDEXl_count.READTABLEgt_canc_poitemxINDEXl_count.READTABLEgt_gr_itemINDEXl_count.APPENDpt_change_itemTOlt_change_item.APPENDgt_canc_poitemTOlt_canc_sub.APPENDgt_canc_poitemxTOlt_canc_subx.APPENDgt_gr_itemTOlt_gr_item.l_count=l_count+1.l_count_499=l_count_499+AT =IFpr_ekorgEQc_ekorg1.l_split=249.l_split=IFl_count_499EQl_splitORl_last_flagEQCALLFUNCTION'BAPI_GOODSMVT_CREATE'goodsmvt_header=gw_gr_header =c_mvtcodematerial=g_gr_num =lt_gr_item =gt_gr_return.*failedtorecievinggoodsIFg_gr_numISINITIAL.ROLLBACKREADTABLEgt_gr_returnWITHKEYtype=PERFORMfrm_canc_po_itemTABLESUSINGgt_gr_return-*successtorecievinggoodsCALLFUNCTION'BA wait=READTABLElt_change_itemINDEXPERFORMfrm_update_customdbTABLES PERFORMfrm_append_succ_infoTABLES

USINGREFRESH:PERFORM Form *&功能说明:将记录及信息写入信息收集表 FORMfrm_append_infoUSINGpr_flagpr_msgpw_errdataSTRUCTUREMOVE-CORRESPONDINGpw_errdataTOgt_proc_info.gt_proc_info-msgid=pr_flag.gt_proc_info-msg=pr_msg.APPENDgt_proc_info. " Form *>_proc_info FORMfrm_append_info_iUSINGpr_flagpr_msgpw_errdataSTRUCTURE**BOgt_proc_info-lifnr=pw_errdata-lifnr.gt_proc_info-budat=pw_errdata-budat.gt_proc_info-bktxt=pw_errdata-bktxt.gt_proc_info-filename=pw_errdata-filename.gt_proc_info-matnr=pw_errdata-matnr.gt_proc_info-lgort=pw_errdata-lgort.gt_proc_info-mengepw_errdata-menge_i gt_proc_info-meins=pw_errdata-meins.gt_proc_info-sgtxt=pw_errdata-sgtxt.gt_proc_info-str_ori=pw_errdata-str_ori.**EOgt_proc_info-msgid=pr_flag.gt_proc_info-msg=pr_msg.APPEND " Form*&FORMfrm_append_info_oUSINGpr_flagpr_msgpw_errdataSTRUCTURE**MOVE-CORRESPONDINGpw_errdataTO**BOgt_proc_info-lifnr=pw_errdata-lifnr.gt_proc_info-budat=pw_errdata-budat.gt_proc_info-bktxt=pw_errdata-bktxt.gt_proc_info-filename=pw_errdata-filename.gt_proc_info-matnr=pw_errdata-matnr.gt_proc_info-lgort=pw_errdata-lgort.gt_proc_info-menge=pw_errdata-menge_o. gt_proc_info-meins=pw_errdata-meins.gt_proc_info-sgtxt=pw_errdata-sgtxt.gt_proc_info-str_ori=pw_errdata-str_ori.**EOgt_proc_info-msgid=pr_flag.gt_proc_info-msg=pr_msg.APPEND " Form FORMfrm_canc_po_item pt_canc_poitemSTRUCTUREpt_canc_poitemxSTRUCTUREbapimepoitemxpt_create_itemSTRUCTUREgt_file_data DATAl_msg(255)TYPEDATA:l_wa_canc_poheaderLIKEbapimepoheader,l_wa_canc_poheaderxLIKEDATA:lt_canc_returnLIKESTANDARDTABLEOFbapiret2INITIALSIZE0WITHHEADERLINE.callfunctiontomodifythePOCALLFUNCTION'BAPI_PO_CHANGE'purchaseorder=pr_po_num = = =READTABLElt_canc_returnWITHKEYtype='E'.IFsy-subrcISINITIAL.ROLLBACKREADTABLEpt_create_itemINDEX1.LOOPATpt_create_item.PERFORMfrm_build_msg_ex '917'lt_canc_return-message''CHANGINGl_msg.PERFORMfrm_append_infoUSINGc_err_l_msgpt_create_item.CLEARl_msg.COMMITWORKANDREADTABLEpt_create_itemINDEX1.LOOPATpt_create_item.PERFORMfrm_build_msg_ex '916'pr_po_num''''CHANGINGPERFORMfrm_append_infoUSINGc_err_l_msgpt_create_item."无论成功都使用CLEAR " Form FORM USINGDATA:lw_canc_poheader LIKEbapimepoheader, LIKEbapimepoheaderx, LIKESTANDARDTABLEOFbapire

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论