*&-----------------------------------------------------------*
*& 程序名: ZSDBI001
*& T-CODE:
*& 功能描述:订单导入
*& First Created:
*&-----------------------------------------------------------*
*& Date Userid Reason/Description of Change
*&
*&
*&-----------------------------------------------------------*
REPORT zsdbi001.TYPE-POOLS slis.*------------------------------------------------------------*
* 数据声明 - 开始
*------------------------------------------------------------**------------------------------------------------------------*
* DESC: 表/ 结构 / 视图的声明
*------------------------------------------------------------*
TYPES : BEGIN OF ty_vbap,sernr TYPE gernr,serail TYPE serail,matnr TYPE matnr,anzsn TYPE anzsn,cuobj TYPE cuobj,vbeln TYPE vbeln,posnr TYPE posnr,kunnr TYPE kunnr,vbtyp TYPE vbtyp,auart TYPE auart,pstyv TYPE pstyv,END OF ty_vbap.*------------------------------------------------------------*
* DESC:定义所需要的内表
*------------------------------------------------------------*
* 文件表头/序列号
DATA : BEGIN OF lt_xls1 OCCURS 0,bstkd TYPE vbeln,auart TYPE auart,vkorg TYPE vkorg,vtweg TYPE vtweg,spart TYPE spart,kunnr TYPE kunnr,kunwe TYPE kunwe,augru TYPE augru,posnr TYPE posnr,matnr TYPE matnr,kwmeng TYPE kwmeng,werks TYPE werks_d,lgort TYPE lgort_d,
* ihrez TYPE ihrez,
* remark TYPE tdline,END OF lt_xls1,wa_xls1 LIKE LINE OF lt_xls1,BEGIN OF lt_xls2 OCCURS 0,bstkd TYPE vbeln,posnr TYPE posnr,sernr TYPE gernr,END OF lt_xls2.* 转换数据 - 销售订单表头 , 销售订单项目 , 序列号
DATA : BEGIN OF lt_sales OCCURS 0,bstkd TYPE vbeln,auart TYPE auart,vkorg TYPE vkorg,vtweg TYPE vtweg,spart TYPE spart,kunnr TYPE kunnr,kunwe TYPE kunwe,augru TYPE augru,zzflag TYPE c,zzso TYPE vbeln_va,zzdn TYPE vbeln_vl,zzpgi TYPE mblnr,zzmsg TYPE bapi_msg,END OF lt_sales,BEGIN OF lt_salesitem OCCURS 0,bstkd TYPE vbeln,posnr TYPE posnr,matnr TYPE matnr,kwmeng TYPE kwmeng,werks TYPE werks_d,lgort TYPE lgort_d,END OF lt_salesitem,BEGIN OF lt_material OCCURS 0,bstkd TYPE bstkd,posnr TYPE posnr,werks TYPE werks_d,lgort TYPE lgort_d,matnr TYPE matnr,sernr TYPE gernr,END OF lt_material,wa_material LIKE LINE OF lt_material.DATA : wa_sales LIKE LINE OF lt_sales.
DATA : lt_vbap TYPE ty_vbap OCCURS 0 WITH HEADER LINE.*------------------------------------------------------------*
* DESC: BAPI
*------------------------------------------------------------*
* CREATE SO DECLARE
DATA : lt_so_head TYPE bapisdhd1 ,lt_so_item TYPE STANDARD TABLE OF bapisditm INITIAL SIZE 0 WITH HEADER LINE,lt_so_sch TYPE STANDARD TABLE OF bapischdl INITIAL SIZE 0 WITH HEADER LINE,lt_so_partners TYPE STANDARD TABLE OF bapiparnr INITIAL SIZE 0 WITH HEADER LINE,lt_so_conditions TYPE STANDARD TABLE OF bapicond INITIAL SIZE 0 WITH HEADER LINE,lt_so_text TYPE STANDARD TABLE OF bapisdtext INITIAL SIZE 0 WITH HEADER LINE.* CREATE DN DECLARE
DATA : lt_dn_item TYPE STANDARD TABLE OF bapidlvreftosalesorder INITIAL SIZE 0 WITH HEADER LINE,lt_sernr TYPE STANDARD TABLE OF bapidlvserialnumber INITIAL SIZE 0 WITH HEADER LINE,lt_return TYPE STANDARD TABLE OF bapiret2 INITIAL SIZE 0 WITH HEADER LINE,l_dnno TYPE bapishpdelivnumb-deliv_numb.* PGI
DATA : wa_mvt TYPE vbkok,lt_vbpok TYPE STANDARD TABLE OF vbpok INITIAL SIZE 0 WITH HEADER LINE,lt_dn_sernr TYPE shp_sernr_update_t,wa_dn_sernr TYPE shp_sernr_update_s,lt_prot TYPE STANDARD TABLE OF prott INITIAL SIZE 0 WITH HEADER LINE.DATA : l_sono TYPE vbeln_va,doc_no TYPE vbeln_va,l_dn_no TYPE vbeln_vl,l_error TYPE c,lv_msg TYPE bapi_msg.* ALV
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,wa_fieldcat TYPE slis_fieldcat_alv,wa_layout TYPE slis_layout_alv.************************************************************************
* MICRO
************************************************************************
DEFINE de_alvflds.clear wa_fieldcat.wa_fieldcat-ddictxt = 'M'.wa_fieldcat-fieldname = &1. "字段wa_fieldcat-seltext_m = &2. "描述append wa_fieldcat to it_fieldcat.
END-OF-DEFINITION.DEFINE de_alpha.call function 'CONVERSION_EXIT_ALPHA_INPUT'exportinginput = &1importingoutput = &2.
END-OF-DEFINITION.
************************************************************************
* PARAMETERS
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS :p_sales LIKE rlgrap-filename DEFAULT 'C:SALES.TXT',p_serial LIKE rlgrap-filename DEFAULT 'C:SERIAL.TXT',p_pstdt LIKE likp-wadat_ist DEFAULT sy-datum OBLIGATORY.SELECTION-SCREEN SKIP 1 .PARAMETERS : p_dn TYPE c AS CHECKBOX DEFAULT 'X',p_pgi TYPE c AS CHECKBOX DEFAULT 'X'.SELECTION-SCREEN END OF BLOCK b1.SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN COMMENT 1(79) comm1.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN COMMENT 1(79) comm2.
SELECTION-SCREEN END OF BLOCK b2.INITIALIZATIONm1 = '销售订单:订单号,订单类型,销售组织,分销渠道,产品组,售达方,送达方,订单原因,项目,物料,数量,工厂,仓库'm2 = '序列号 :订单号,项目,序列号'.AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_sales.PERFORM frm_req_file USING p_sales.AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_serial.PERFORM frm_req_file USING p_serial.************************************************************************
*----------------------------------------------------------------------*
*
* MAIN PROGRAM
*
*----------------------------------------------------------------------*
************************************************************************
START-OF-SELECTION."文件上载PERFORM frm_upload.IF lt_xls1[] IS INITIAL OR lt_xls2[] IS INITIAL.MESSAGE s001(00) WITH '文件数据为空'.EXIT.ENDIF."数据转换 及处理PERFORM frm_process."日志显示PERFORM frm_display.*&---------------------------------------------------------------------*
*& Form FRM_CREATE_SALESORDER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_create_salesorder.DATA : lv_itm_number TYPE posnr,lv_sched_line TYPE etenr,lv_anzsn TYPE anzsn,lv_pstyv TYPE pstyv,lv_serail TYPE serail,lv_qty TYPE kwmeng.CLEAR : lt_so_head,lt_so_item,lt_so_partners,lt_so_conditions,lt_so_text,l_error.REFRESH:lt_so_item,lt_so_partners,lt_so_conditions,lt_so_text,lt_return,lt_so_sch,lt_vbap.
*----HEADlt_so_head-doc_type = wa_sales-auart. "销售凭证类型lt_so_head-sales_org = wa_sales-vkorg.lt_so_head-distr_chan = wa_sales-vtweg.lt_so_head-division = wa_sales-spart.lt_so_head-doc_date = sy-datum.
* lt_so_head-ref_1 = ''. "您的参考
* lt_so_head-purch_no_c = ''. "采购单编号补充
* lt_so_head-purch_date = ''. "客户采购订单日期lt_so_head-ord_reason = wa_sales-augru. "订单原因de_alpha wa_sales-kunnr wa_sales-kunnr.lt_so_partners-partn_role = 'AG'.lt_so_partners-partn_numb = wa_sales-kunnr.APPEND lt_so_partners.
* lt_so_partners-partn_role = 'RE'.
* lt_so_partners-partn_numb = wa_sales-kunnr.
* APPEND lt_so_partners.
* lt_so_partners-partn_role = 'RG'.
* lt_so_partners-partn_numb = wa_sales-kunnr.
* APPEND lt_so_partners.lt_so_partners-partn_role = 'WE'.lt_so_partners-partn_numb = wa_sales-kunnr.APPEND lt_so_partners.CLEAR lt_so_partners.* Sales itemLOOP AT lt_salesitem WHERE bstkd = wa_sales-bstkd."出货点
* SELECT SINGLE vstel INTO lt_so_item-ship_point
* FROM tvstzSELECT SINGLE vstel INTO lt_so_item-ship_point FROM tvswz WHERE werks = lt_salesitem-werks.IF sy-subrc <> 0 .lt_so_item-ship_point = lt_salesitem-werks.ENDIF."销售单位SELECT SINGLE vrkme INTO lt_so_item-target_qu FROM mvke WHERE vkorg = wa_sales-vkorg AND vtweg = wa_sales-vtweg AND matnr = lt_salesitem-matnr.lt_so_item-itm_number = lt_salesitem-posnr.lt_so_item-material = lt_salesitem-matnr.lt_so_item-target_qty = lt_salesitem-kwmeng.
* lt_so_item-target_qu = 'EA'.lt_so_item-plant = lt_salesitem-werks.lt_so_item-store_loc = lt_salesitem-lgort.APPEND lt_so_item.
* SALES SCHLINElt_so_sch-itm_number = lt_salesitem-posnr.lt_so_sch-sched_line = '0001'.lt_so_sch-req_date = sy-datum.lt_so_sch-date_type = '1'.lt_so_sch-req_qty = lt_salesitem-kwmeng.APPEND lt_so_sch."项目类别SELECT SINGLE pstyv INTO lv_pstyv FROM t184 WHERE auart = wa_sales-auart."序列号参数文件SELECT SINGLE serial INTO lv_serail FROM mara WHERE matnr = lt_salesitem-matnr.lv_anzsn = lt_salesitem-kwmeng.LOOP AT lt_material WHERE bstkd = lt_salesitem-bstkd AND posnr = lt_salesitem-posnr.lt_vbap-sernr = lt_material-sernr.lt_vbap-serail = 'ZK01' . "lv_serail.lt_vbap-matnr = lt_material-matnr.lt_vbap-anzsn = lv_anzsn.lt_vbap-cuobj = ''.lt_vbap-vbeln = ''.lt_vbap-posnr = lt_salesitem-posnr.lt_vbap-kunnr = wa_sales-kunnr.lt_vbap-vbtyp = 'C'.lt_vbap-auart = wa_sales-auart.lt_vbap-pstyv = lv_pstyv.APPEND lt_vbap.CLEAR:lt_material,lt_vbap.ENDLOOP.ENDLOOP.* Sales header text
* lt_so_text-doc_number = l_sono.
* lt_so_text-text_id = '0001'.
* lt_so_text-langu = sy-langu.
* lt_so_text-format_col = '*'.
* lt_so_text-text_line = wa_sales-remark.
* APPEND lt_so_text.* Sales item conditions
* lt_so_conditions-itm_number = '000010'.
* lt_so_conditions-cond_type = 'ZCP0'.
* lt_so_conditions-cond_value = wa_sales-kbetr.
* lt_so_conditions-conbaseval = '1'.
* lt_so_conditions-cond_p_unt = '1'.
* lt_so_conditions-currency = wa_sales-waerk.
* APPEND lt_so_conditions.
* CLEAR lt_so_conditions.
* break hp_abap3.CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'EXPORTINGsalesdocumentin = l_sonoorder_header_in = lt_so_headIMPORTINGsalesdocument = doc_noTABLESreturn = lt_returnorder_items_in = lt_so_itemorder_partners = lt_so_partnersorder_schedules_in = lt_so_schorder_conditions_in = lt_so_conditionsorder_text = lt_so_text.IF doc_no IS INITIAL.l_error = 'X'.ENDIF.IF l_error = 'X'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.LOOP AT lt_return WHERE type = 'E' OR type = 'A'.CLEAR lv_msg.MESSAGE ID lt_return-id TYPE lt_return-type NUMBER lt_return-numberWITH lt_return-message_v1 lt_return-message_v2 lt_return-message_v3 lt_return-message_v4INTO lv_msg.CONCATENATE wa_sales-zzmsg lv_msg INTO wa_sales-zzmsg.ENDLOOP.ELSE.lt_vbap-vbeln = doc_no.MODIFY lt_vbap TRANSPORTING vbeln WHERE vbeln IS INITIAL.CALL FUNCTION 'SERIAL_INTTAB_REFRESH'EXPORTINGobjects_status_refresh = 'E'.PERFORM frm_set_serial.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.wa_sales-zzso = doc_no.ENDIF.
ENDFORM. "FRM_CREATE_SALESORDER*&---------------------------------------------------------------------*
*& Form FRM_CREATE_DELIVERY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_create_delivery.REFRESH:lt_dn_item , lt_return.CLEAR :lt_dn_item , lt_return , l_dn_no.LOOP AT lt_so_item.lt_dn_item-ref_doc = wa_sales-zzso.lt_dn_item-ref_item = lt_so_item-itm_number.lt_dn_item-dlv_qty = lt_so_item-target_qty.lt_dn_item-sales_unit = 'EA'.APPEND lt_dn_item.LOOP AT lt_vbap WHERE vbeln = wa_sales-zzso AND posnr = lt_so_item-itm_number.lt_sernr-ref_doc = wa_sales-zzso.lt_sernr-ref_item = lt_so_item-itm_number.lt_sernr-serialno = lt_vbap-sernr.APPEND lt_sernr.ENDLOOP.ENDLOOP.CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'IMPORTINGdelivery = l_dn_noTABLESsales_order_items = lt_dn_itemserial_numbers = lt_sernrreturn = lt_return.IF l_dn_no IS INITIAL.l_error = 'X'.ENDIF.IF l_error = 'X'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.LOOP AT lt_return WHERE type = 'E' OR type = 'A'.CLEAR lv_msg.MESSAGE ID lt_return-id TYPE lt_return-type NUMBER lt_return-numberWITH lt_return-message_v1 lt_return-message_v2 lt_return-message_v3 lt_return-message_v4INTO lv_msg.CONCATENATE wa_sales-zzmsg lv_msg INTO wa_sales-zzmsg.ENDLOOP.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.wa_sales-zzdn = l_dn_no.ENDIF.
ENDFORM. "FRM_CREATE_DELIVERY*&---------------------------------------------------------------------*
*& Form FRM_DELIVERY_PGI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_delivery_pgi.CLEAR :wa_mvt,lt_return,lt_dn_sernr.REFRESH :lt_return , lt_vbpok , lt_prot , lt_dn_sernr.wa_mvt-vbeln_vl = wa_sales-zzdn.wa_mvt-vbtyp_vl = 'J'.wa_mvt-vbeln = wa_sales-zzso.wa_mvt-wabuc = 'X'.wa_mvt-wadat_ist = p_pstdt. "实际货物移动日期 --待确认过帐日期LOOP AT lt_so_item.lt_vbpok-vbeln_vl = wa_sales-zzdn.lt_vbpok-posnr_vl = lt_so_item-itm_number.lt_vbpok-vbeln = wa_sales-zzso.lt_vbpok-posnn = lt_so_item-itm_number.lt_vbpok-matnr = lt_so_item-material.lt_vbpok-werks = lt_so_item-plant.lt_vbpok-kzlgo = 'X'.lt_vbpok-pikmg = lt_so_item-target_qty.APPEND lt_vbpok.LOOP AT lt_sernr.wa_dn_sernr-rfbel = wa_sales-zzdn.wa_dn_sernr-rfpos = lt_sernr-ref_item.wa_dn_sernr-sernr = lt_sernr-serialno.APPEND wa_dn_sernr TO lt_dn_sernr.ENDLOOP.ENDLOOP.CALL FUNCTION 'WS_DELIVERY_UPDATE'EXPORTINGvbkok_wa = wa_mvtsynchron = 'X'
* commit = 'X'delivery = wa_sales-zzdnif_error_messages_send_0 = ''it_sernr_update = lt_dn_sernr
* IMPORTING
* ef_error_any_0 = l_err01
* ef_error_in_item_deletion_0 = l_err02
* ef_error_in_pod_update_0 = l_err03
* ef_error_in_interface_0 = l_err04
* ef_error_in_goods_issue_0 = l_err05
* ef_error_in_final_check_0 = l_err06
* ef_error_partner_update = l_err07
* ef_error_sernr_update = l_err08TABLESvbpok_tab = lt_vbpokprot = lt_prot.
* IF l_err01 = 'X' OR l_err02 = 'X' OR l_err03 = 'X' OR l_err04 = 'X' OR
* l_err05 = 'X' OR l_err06 = 'X' OR l_err07 = 'X' OR l_err08 = 'X'.
* l_error = 'X'.
* wa_sales-zzmsg = 'DN PGI error'.
* ENDIF.LOOP AT lt_prot WHERE msgty = 'A' OR msgty = 'E'.MESSAGE ID lt_prot-msgid TYPE lt_prot-msgty NUMBER lt_prot-msgnoWITH lt_prot-msgv1 lt_prot-msgv2 lt_prot-msgv3 lt_prot-msgv4INTO lv_msg.CONCATENATE wa_sales-zzmsg lv_msg INTO wa_sales-zzmsg.l_error = 'X'.ENDLOOP.IF l_error = 'X'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.SELECT SINGLE vbelnINTO wa_sales-zzpgiFROM vbfaWHERE vbelv = wa_sales-zzdnAND vbtyp_n = 'R'AND vbtyp_v = 'J'.ENDIF.ENDFORM. "FRM_DELIVERY_PGI*&---------------------------------------------------------------------*
*& Form FRM_SET_SERIAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->LS_VBAP text
*----------------------------------------------------------------------*
FORM frm_set_serial.DATA ls_vbap TYPE ty_vbap.LOOP AT lt_vbap INTO ls_vbap.CALL FUNCTION 'SERNR_ADD_TO_AU'EXPORTINGsernr = ls_vbap-sernr "'LVTDH12A3EB040976'profile = ls_vbap-serailmaterial = ls_vbap-matnrquantity = ls_vbap-anzsncuobj = ls_vbap-cuobjdocument = ls_vbap-vbelnitem = ls_vbap-posnrdebitor = ls_vbap-kunnrvbtyp = ls_vbap-vbtypsd_auart = ls_vbap-auartsd_postyp = ls_vbap-pstyvi_bapi = 'X'
* IMPORTING
* anzsn = ls_vbap-anzsn
* serial_commit = lv_datalossEXCEPTIONSkonfigurations_error = 1serialnumber_errors = 2serialnumber_warnings = 3OTHERS = 4.ENDLOOP.CALL FUNCTION 'SERIAL_LISTE_POST_AU'.
* TABLES
* tab_cuobj = lt_dbcuobj.ENDFORM. "FRM_SET_SERIAL*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_display.de_alvflds :'BSTKD' '订单序号','AUART' '订单类型','KUNNR' '客户编号','ZZSO' '销售订单号','ZZDN' '交货单号','ZZPGI' '交货物料凭证','ZZMSG' '消息'.wa_layout-zebra = 'X'.wa_layout-colwidth_optimize = 'X'. "优化列宽选项是否设置CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program = sy-cprog
* i_callback_user_command = 'SUB_USER_COMMAND'i_default = 'X'i_save = 'X'is_layout = wa_layoutit_fieldcat = it_fieldcat[]TABLESt_outtab = lt_sales[]EXCEPTIONSprogram_error = 1OTHERS = 2.
ENDFORM. "FRM_DISPLAY
*&---------------------------------------------------------------------*
*& Form FRM_UPLOAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_upload .IF p_sales IS NOT INITIAL.CALL FUNCTION 'WS_UPLOAD'EXPORTINGfilename = p_salesfiletype = 'DAT'TABLESdata_tab = lt_xls1EXCEPTIONSconversion_error = 1file_open_error = 2file_read_error = 3invalid_type = 4no_batch = 5unknown_error = 6invalid_table_width = 7gui_refuse_filetransfer = 8customer_error = 9no_authority = 10OTHERS = 11.ENDIF.IF p_serial IS NOT INITIAL.CALL FUNCTION 'WS_UPLOAD'EXPORTINGfilename = p_serialfiletype = 'DAT'TABLESdata_tab = lt_xls2EXCEPTIONSconversion_error = 1file_open_error = 2file_read_error = 3invalid_type = 4no_batch = 5unknown_error = 6invalid_table_width = 7gui_refuse_filetransfer = 8customer_error = 9no_authority = 10OTHERS = 11.ENDIF.
ENDFORM. " FRM_UPLOAD
*&---------------------------------------------------------------------*
*& Form FRM_PROCESS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_process .DATA : lt_vin TYPE zsdvin OCCURS 0 WITH HEADER LINE.DATA : lv_anzsn TYPE anzsn,lv_qty TYPE kwmeng.SORT lt_xls1 BY bstkd posnr.SORT lt_xls2 BY bstkd posnr.LOOP AT lt_xls1.wa_xls1 = lt_xls1.CLEAR : lv_qty , lv_anzsn.LOOP AT lt_xls2 WHERE bstkd = wa_xls1-bstkd AND posnr = wa_xls1-posnr.CLEAR :lt_vin,lt_vin[].de_alpha lt_xls2-sernr lt_material-sernr.CALL FUNCTION 'ZF_SD_GETVINBYDN'EXPORTINGi_sernr = lt_material-sernrTABLESet_item = lt_vin.READ TABLE lt_vin INDEX 1.CHECK lt_vin-lbbsa = '01' AND lt_vin-sobkz = space.ADD 1 TO lv_anzsn.lt_material-bstkd = wa_xls1-bstkd.de_alpha wa_xls1-posnr lt_material-posnr.lt_material-matnr = wa_xls1-matnr.lt_material-sernr = lt_vin-sernr.lt_material-werks = lt_vin-werks.lt_material-lgort = lt_vin-lgort.APPEND lt_material.CLEAR lt_material.ENDLOOP.lt_salesitem-bstkd = wa_xls1-bstkd.de_alpha wa_xls1-posnr lt_salesitem-posnr.lt_salesitem-matnr = wa_xls1-matnr.lt_salesitem-kwmeng = wa_xls1-kwmeng.lv_qty = lv_anzsn.IF lt_salesitem-kwmeng NE lv_qty.lt_sales-zzflag = 'X'.lt_sales-zzmsg = '项目数量与可用序列号数量不一致'.ENDIF.lt_salesitem-werks = wa_xls1-werks.lt_salesitem-lgort = wa_xls1-lgort.APPEND lt_salesitem.AT END OF bstkd.lt_sales-bstkd = wa_xls1-bstkd.lt_sales-auart = wa_xls1-auart.lt_sales-vkorg = wa_xls1-vkorg.de_alpha wa_xls1-vtweg lt_sales-vtweg .lt_sales-spart = wa_xls1-spart.de_alpha wa_xls1-kunnr lt_sales-kunnr .de_alpha wa_xls1-kunwe lt_sales-kunwe .lt_sales-augru = wa_xls1-augru.APPEND lt_sales.CLEAR lt_sales.ENDAT.CLEAR:wa_xls1,lt_salesitem.ENDLOOP.FREE:lt_xls1,lt_xls2.LOOP AT lt_sales INTO wa_sales WHERE zzflag IS INITIAL.PERFORM frm_create_salesorder.IF p_dn = 'X' AND l_error IS INITIAL.PERFORM frm_create_delivery.ENDIF.IF p_dn = 'X' AND p_pgi = 'X' AND l_error IS INITIAL.PERFORM frm_delivery_pgi.ENDIF.MODIFY lt_sales FROM wa_sales.CLEAR wa_sales.ENDLOOP.PERFORM frm_free.
ENDFORM. " FRM_PROCESS*&---------------------------------------------------------------------*
*& Form FRM_FREE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_free.CLEAR : lt_so_head,lt_so_item,lt_so_partners,lt_so_conditions,lt_so_text,lt_so_sch.REFRESH:lt_so_item,lt_so_partners,lt_so_conditions,lt_so_text,lt_return,lt_so_sch.REFRESH:lt_dn_item , lt_return , lt_sernr.CLEAR :lt_dn_item , lt_return , l_dn_no.CLEAR :wa_mvt,lt_return,lt_dn_sernr.REFRESH :lt_return , lt_vbpok , lt_prot , lt_dn_sernr.REFRESH :lt_material , lt_vbap .
ENDFORM. "FRM_FREE*&---------------------------------------------------------------------*
*& Form sub_req_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FILE text
*----------------------------------------------------------------------*
FORM frm_req_file USING p_file.CALL FUNCTION 'WS_FILENAME_GET'EXPORTINGdef_filename = 'def_path = 'C:\'mask = ',*.txt,*.txt,' "mode = 'O'title = '请选择要上载的文件'IMPORTINGfilename = p_fileEXCEPTIONSinv_winsys = 1no_batch = 2selection_cancel = 3selection_error = 4OTHERS = 5.
ENDFORM. "sub_req_file
本文发布于:2024-01-31 09:20:46,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666404727485.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |