销售订单导入+序列号 VA01

阅读: 评论:0

销售订单导入+序列号 VA01

销售订单导入+序列号 VA01

*&-----------------------------------------------------------*
*& 程序名: 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小时内删除。

上一篇:va
标签:序列号   订单
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23