• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
^ω^SAp傻X^o^
博客园    首页    新随笔    联系   管理    订阅  订阅
起初库存批导
*&---------------------------------------------------------------------*
*& Report ZMMF007
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMMR009.
*Code listing for: ZMMR009
*Description: 期初库存导入程序
**&---------------------------------------------------------------------*
**& Report  ZMMB_T001
**&
**&---------------------------------------------------------------------*
**&
**&
**&---------------------------------------------------------------------*

*REPORT zmmf0007 LINE-SIZE 500.

DATA: BEGIN OF t_kucun OCCURS 0,
        matnr     TYPE mara-matnr,
        MAKTX     TYPE makt-MAKTX,
        werks     TYPE marc-werks,
        lgort     TYPE mard-lgort,
        menge     TYPE ltbp-menge,
        lifnr     TYPE lfa1-lifnr,     " 外协供应商
        KUNNR      TYPE KNA1-KUNNR,      " 客户编号
        amount_lc TYPE bapi2017_gm_item_create-amount_lc,
        batch     TYPE bapi2017_gm_item_create-batch,
        hsdat     TYPE bapi2017_gm_item_create-prod_date,
        lgtyp     TYPE lqua-lgtyp,
        lgpla     TYPE lqua-lgpla,
        lenum     TYPE lqua-lenum,

      END OF t_kucun.

DATA: t_gvitem TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
      t_serial  TYPE TABLE OF bapi2017_gm_serialnumber WITH HEADER LINE,
      gt_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA: BEGIN OF gt_serial OCCURS 0,
        matnr     TYPE mara-matnr,
        werks     TYPE marc-werks,
        lgort     TYPE mard-lgort,
        menge     TYPE ltbp-menge,
        amount_lc TYPE bapi2017_gm_item_create-amount_lc,
        batch     TYPE bapi2017_gm_item_create-batch,
        hsdat     TYPE bapi2017_gm_item_create-prod_date,
        lgtyp     TYPE lqua-lgtyp,
        lgpla     TYPE lqua-lgpla,
        lenum     TYPE lqua-lenum,
        KUNNR      TYPE kna1-KUNNR,
        lifnr     TYPE lfa1-lifnr.     " 外协供应商
DATA: END OF gt_serial.

DATA: BEGIN OF tmp_gvitem OCCURS 0.
        INCLUDE STRUCTURE bapi2017_gm_item_create.

DATA: flag TYPE c,
      maktx TYPE makt-MAKTX,
        matdoc_itm TYPE bapi2017_gm_serialnumber-matdoc_itm,
        lenum      TYPE lein-lenum,
        END OF tmp_gvitem.

DATA: BEGIN OF t_matdoc OCCURS 0,
        materialdocument TYPE bapi2017_gm_head_ret-mat_doc,
        tono             TYPE ltap-tanum,
        to_flag          TYPE c,
      END OF t_matdoc.

TYPES: BEGIN OF ty_matdoc,
         materialdocument TYPE bapi2017_gm_head_ret-mat_doc,
         tono             TYPE ltap-tanum,
         to_flag          TYPE c,
       END OF ty_matdoc.

DATA wa_matdoc TYPE ty_matdoc.
FIELD-SYMBOLS: <fs_matdoc> TYPE ty_matdoc.

DATA: BEGIN OF gt_error OCCURS 0,
        matnr     TYPE mara-matnr,
        MAKTX     TYPE makt-MAKTX,
        werks     TYPE marc-werks,
        lgort     TYPE mard-lgort,
        menge     TYPE ltbp-menge,
        amount_lc TYPE bapi2017_gm_item_create-amount_lc,
        batch     TYPE bapi2017_gm_item_create-batch,
        hsdat     TYPE bapi2017_gm_item_create-prod_date,
        lgtyp     TYPE lqua-lgtyp,
        lgpla     TYPE lqua-lgpla,
        lenum     TYPE lqua-lenum,
        KUNNR      TYPE kna1-KUNNR,
        lifnr     TYPE lfa1-lifnr,     " 外协供应商
      END OF gt_error.

DATA: l_answer TYPE c,
      l_serial TYPE i,
      l_exit   TYPE c.
DATA:t_log LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY,
            p_bwart LIKE mseg-bwart DEFAULT '561' OBLIGATORY,
            p_sobkz LIKE mseg-sobkz,
            p_date LIKE  sy-datum  DEFAULT '20170130' OBLIGATORY,
            p_int TYPE i OBLIGATORY DEFAULT 450.
*            p_ser TYPE i OBLIGATORY DEFAULT 1000.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM frm_f4_help CHANGING p_file.

AT SELECTION-SCREEN.
  CLEAR l_exit.
***结果提取
  IF t_matdoc[] IS NOT INITIAL.
    PERFORM frm_guidown USING 'C:/MM_IMPORT/MATDOC.TXT' t_matdoc[].
    CLEAR t_matdoc[].
    l_exit = 'X'.
  ENDIF.
  IF gt_return[] IS NOT INITIAL.
    PERFORM frm_guidown USING 'C:/MM_IMPORT/ERROR_INFO.TXT' gt_return[].
    CLEAR gt_return[].
    l_exit = 'X'.
  ENDIF.
  IF gt_error[] IS NOT INITIAL.
    PERFORM frm_guidown USING 'C:/MM_IMPORT/FAILE.TXT' gt_error[].
    CLEAR gt_error[].
    l_exit = 'X'.
  ENDIF.
  IF gt_serial[] IS NOT INITIAL.
    PERFORM frm_guidown USING 'C:/MM_IMPORT/SERIAL.TXT' gt_serial[].
    CLEAR gt_serial[].
    l_exit = 'X'.
  ENDIF.

  IF l_exit = 'X'.
    EXIT.
  ENDIF.
********************

  CLEAR: l_answer.
  IF p_int > 499.
    MESSAGE '物料凭证行项目数不能超过499' TYPE 'E'.
  ENDIF.

  IF  p_bwart = '561' OR p_bwart = '562' OR
      p_bwart = '563' OR p_bwart = '564' OR
      p_bwart = '565' OR p_bwart = '566'.
  ELSE.
    MESSAGE e000(zdev) WITH '移动类型有误,请更改后重新导入!'.
  ENDIF.

  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      text_question  = '是否执行批导入操作?'
      default_button = '3'
    IMPORTING
      answer         = l_answer.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF l_answer = '1'.
    PERFORM frm_data_import.
    PERFORM frm_dataprocess.
    IF t_matdoc[] IS NOT INITIAL.
      PERFORM frm_guidown USING 'C:/MM_IMPORT/MATDOC.TXT' t_matdoc[].
      CLEAR t_matdoc[].
    ENDIF.
    IF gt_return[] IS NOT INITIAL.
      PERFORM frm_guidown USING 'C:/MM_IMPORT/ERROR_INFO.TXT' gt_return[].
      CLEAR gt_return[].
    ENDIF.
    IF gt_error[] IS NOT INITIAL.
      PERFORM frm_guidown USING 'C:/MM_IMPORT/FAILE.TXT' gt_error[].
      CLEAR gt_error[].
    ENDIF.
    IF gt_serial[] IS NOT INITIAL.
      PERFORM frm_guidown USING 'C:/MM_IMPORT/SERIAL.TXT' gt_serial[].
      CLEAR gt_serial[].
    ENDIF.
  ENDIF.

START-OF-SELECTION.

END-OF-SELECTION.
  DATA:l_message(300) TYPE c.
  LOOP AT t_log.
    CONCATENATE '消息类型:' t_log-type '  消息:' t_log-message_v1 t_log-message_v2 t_log-message_v3 t_log-message_v4  INTO l_message.
    WRITE: / l_message.

  ENDLOOP.
*&---------------------------------------------------------------------*
*&      Form  FRM_DATA_IMPORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_data_import .
  REFRESH: t_kucun.
  PERFORM frm_excel_upload USING p_file CHANGING t_kucun[].

ENDFORM. " FRM_DATA_IMPORT
*&---------------------------------------------------------------------*
*&      Form  FRM_GUI_UPLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_U_FNAME  text
*----------------------------------------------------------------------*
FORM frm_excel_upload USING u_fname CHANGING c_table TYPE STANDARD TABLE.
*  DATA l_fname TYPE string
  DATA l_fname TYPE RLGRAP-FILENAME.
  l_fname = u_fname.
*  DATA t_table TYPE ALSMEX_TABLINE.
*  t_table = c_table.
*  CALL FUNCTION 'GUI_UPLOAD'
*    EXPORTING
*      filename                = l_fname
*      filetype                = 'ASC'
*      has_field_separator     = 'X'
*      codepage                = '8400'
*    TABLES
*      data_tab                = c_table
*    EXCEPTIONS
*      file_open_error         = 1
*      file_read_error         = 2
*      no_batch                = 3
*      gui_refuse_filetransfer = 4
*      invalid_type            = 5
*      no_authority            = 6
*      unknown_error           = 7
*      bad_data_format         = 8
*      header_not_allowed      = 9
*      separator_not_allowed   = 10
*      header_too_long         = 11
*      unknown_dp_error        = 12
*      access_denied           = 13
*      dp_out_of_memory        = 14
*      disk_full               = 15
*      dp_timeout              = 16
**      OTHERS                  = 17.
*                    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
*                      EXPORTING
*                        FILENAME                      = l_fname
*                        I_BEGIN_COL                   = 1
*                        I_BEGIN_ROW                   = 1
*                        I_END_COL                     = 100
*                        I_END_ROW                     = 1000
*                      TABLES
*                        INTERN                        = t_table
*                     EXCEPTIONS
*                       INCONSISTENT_PARAMETERS       = 1
*                       UPLOAD_OLE                    = 2
*                       OTHERS                        = 3
*                              .
*                    IF SY-SUBRC <> 0.
** Implement suitable error handling here
*                    ENDIF.


*
*     CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
*       EXPORTING
*         FILENAME = l_fname
*         I_BEGIN_COL = 1
*         I_BEGIN_ROW = 1
*         I_END_COL = 100
*         I_END_ROW = 10000
*       TABLES INTERN = c_table
*       EXCEPTIONS
*


     DATA: l_raw TYPE truxs_t_text_data.
*
    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
     EXPORTING
*      I_FIELD_SEPERATOR    =
       i_line_header        = 'X'
       i_tab_raw_data       = l_raw
       i_filename           = l_fname
     TABLES
      i_tab_converted_data = c_table
     EXCEPTIONS
       conversion_failed    = 1
       OTHERS               = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
    STOP.
    endif.



*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.

ENDFORM. " FRM_GUI_UPLOAD

*&---------------------------------------------------------------------*
*&      Form  frm_f4_help
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->O_FNAME    text
*----------------------------------------------------------------------*
FORM frm_f4_help CHANGING o_fname TYPE rlgrap-filename.
  DATA: l_filetab TYPE         filetable,
        l_waftab  LIKE LINE OF l_filetab,
        l_rc      TYPE         i.

  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = '打开文件'
      initial_directory       = 'C:/'
    CHANGING
      file_table              = l_filetab
      rc                      = l_rc
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
  ELSE.
    READ TABLE l_filetab INTO l_waftab INDEX 1.
    o_fname = l_waftab-filename.
    CLEAR: l_filetab,
           l_waftab.
  ENDIF.

ENDFORM. " frm_f4_help
*
*&---------------------------------------------------------------------*
*&      Form  frm_inputformat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_PP  text
*----------------------------------------------------------------------*
FORM frm_inputformat CHANGING u_value.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = u_value
    IMPORTING
      output = u_value.

ENDFORM. " frm_inputformat
*&---------------------------------------------------------------------*
*&      Form  FRM_DATAPROCESS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_dataprocess .
  DATA: l_count        TYPE bapi2017_gm_serialnumber-matdoc_itm,
        l_menge        TYPE i,
        l_sernr        TYPE equi-sernr,
        messagebar(40) TYPE c,
        l_lines        TYPE i,
        l_line         TYPE i,
        str_lines      TYPE string,
        str_line       TYPE string,
        l_last         TYPE c.
  REFRESH: t_gvitem,t_serial,tmp_gvitem.
  CLEAR: l_count,l_menge.
  LOOP AT t_kucun.
    PERFORM frm_inputformat CHANGING t_kucun-matnr.

    TRANSLATE t_kucun-batch TO UPPER CASE.

    MODIFY t_kucun.
  ENDLOOP.

*  DESCRIBE TABLE t_kucun LINES l_lines.
*  str_lines = l_lines.
*  SORT t_kucun BY matnr werks lgort menge lgtyp lgpla. "vbeln posnr."不排序处理-2014.12.01

  LOOP AT t_kucun.

    IF t_kucun-matnr <> ''.
      PERFORM frm_inputformat CHANGING t_kucun-matnr.
    ENDIF.

    IF t_kucun-MAKTX <> ''.
      PERFORM frm_inputformat CHANGING t_kucun-MAKTX.
    ENDIF.

    IF t_kucun-lenum <> ''.
      PERFORM frm_inputformat CHANGING t_kucun-lenum.
    ENDIF.

    IF t_kucun-lifnr <> ''.
      PERFORM frm_inputformat CHANGING t_kucun-lifnr.
    ENDIF.

    IF t_kucun-KUNNR ne ''.
      PERFORM frm_inputformat CHANGING t_kucun-KUNNR.
    ENDIF.


    CLEAR: l_sernr,l_last.
    l_menge = l_menge + 1.
    l_line = l_line + 1.
    str_line = l_line.
    CONCATENATE '库存导入中!一 一+ : ' str_line '/' str_lines INTO messagebar.
    CLEAR: t_gvitem,tmp_gvitem.

    l_count = l_count + 1.
    SHIFT t_kucun-matnr LEFT DELETING LEADING '0'.
    t_gvitem-material = t_kucun-matnr.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = t_gvitem-material
      IMPORTING
        OUTPUT        = t_gvitem-material.
              .

    t_gvitem-plant = t_kucun-werks.
    t_gvitem-stge_loc   = t_kucun-lgort.
    t_gvitem-entry_qnt  = t_kucun-menge.
    t_gvitem-amount_lc = t_kucun-amount_lc.
    t_gvitem-batch = t_kucun-batch.
    t_gvitem-prod_date = t_kucun-hsdat.
    t_gvitem-vendor = t_kucun-lifnr.
    t_gvitem-CUSTOMER = t_kucun-kunnr.
    t_gvitem-item_text = t_kucun-lgpla.

    t_gvitem-move_type = p_bwart.
    t_gvitem-spec_stock = p_sobkz.

    tmp_gvitem-matdoc_itm = l_count.
    SHIFT t_kucun-matnr LEFT DELETING LEADING '0'.
    tmp_gvitem-material = t_kucun-matnr.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = t_gvitem-material
      IMPORTING
        OUTPUT        = t_gvitem-material.
    tmp_gvitem-MAKTX = t_kucun-MAKTX.
    tmp_gvitem-plant = t_kucun-werks.
    tmp_gvitem-stge_loc   = t_kucun-lgort.
    tmp_gvitem-entry_qnt  = t_kucun-menge.
    tmp_gvitem-amount_lc  = t_kucun-amount_lc.
    tmp_gvitem-batch  = t_kucun-batch.
    tmp_gvitem-prod_date = t_kucun-hsdat.
    tmp_gvitem-stge_type  = t_kucun-lgtyp.
    tmp_gvitem-stge_bin  = t_kucun-lgpla.
    tmp_gvitem-lenum = t_kucun-lenum.
    tmp_gvitem-vendor = t_kucun-lifnr.

    APPEND t_gvitem.
    APPEND tmp_gvitem.
    CLEAR l_menge.

    IF l_count = p_int. "OR l_serial =  p_ser.
      PERFORM frm_goods_mvt.
      REFRESH: t_gvitem,t_serial,tmp_gvitem.
      l_last = 'X'.
      CLEAR l_count.
      CLEAR l_serial.
    ENDIF.

    AT LAST.
      IF l_last <> 'X'.
        PERFORM frm_goods_mvt.
        REFRESH: t_gvitem,t_serial.
      ENDIF.
    ENDAT.

    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
*       PERCENTAGE       = 0
        text = messagebar.
  ENDLOOP.
ENDFORM. " FRM_DATAPROCESS
*&---------------------------------------------------------------------*
*&      Form  FRM_GOODS_MVT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_goods_mvt .
  DATA: w_header         LIKE          bapi2017_gm_head_01,
        materialdocument TYPE          bapi2017_gm_head_ret-mat_doc,
        matdocumentyear  TYPE          bapi2017_gm_head_ret-doc_year,
        t_error          TYPE TABLE OF bapiret2 WITH HEADER LINE.

  DATA: tmp_tbnum LIKE          ltbk-tbnum, "TR
        tmp_lgnum LIKE          ltbk-lgnum,
        t_ltbp    TYPE TABLE OF ltbp WITH HEADER LINE,
        it_trite  TYPE          l03b_trite_t WITH HEADER LINE.                     "***BAPI L_TO_CREATE_TR  创TO
  DATA: l_flag TYPE c,
        l_to   TYPE c.
  REFRESH: t_error,t_ltbp,it_trite.
  CLEAR: materialdocument,matdocumentyear,tmp_tbnum,tmp_lgnum.

  w_header-pstng_date = p_date.
  w_header-doc_date = p_date.
  w_header-pr_uname = sy-uname.

  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header       = w_header
      goodsmvt_code         = '05'
    IMPORTING
      materialdocument      = materialdocument
      matdocumentyear       = matdocumentyear
    TABLES
      goodsmvt_item         = t_gvitem
      goodsmvt_serialnumber = t_serial
      return                = t_error.

  CLEAR l_flag.
  LOOP AT t_error.
    APPEND t_error TO t_log.
  ENDLOOP.
  LOOP AT t_error WHERE type = 'E'.         "chu cuo
    MOVE-CORRESPONDING t_error TO gt_return.
    APPEND gt_return.
    l_flag = 'X'.
  ENDLOOP.
  IF l_flag = 'X'.
    LOOP AT tmp_gvitem.
      gt_error-matnr = tmp_gvitem-material.
      PERFORM frm_outputformat CHANGING gt_error-matnr.
      gt_error-MAKTX = tmp_gvitem-MAKTX.
      gt_error-werks = tmp_gvitem-plant.
      gt_error-lgort = tmp_gvitem-stge_loc.
      gt_error-menge = tmp_gvitem-entry_qnt.
      gt_error-lgtyp = tmp_gvitem-stge_type.
      gt_error-lgpla = tmp_gvitem-stge_bin.
      gt_error-amount_lc = tmp_gvitem-amount_lc.
      gt_error-batch = tmp_gvitem-batch.
      gt_error-hsdat = tmp_gvitem-prod_date.
      gt_error-lenum = tmp_gvitem-lenum.
      gt_error-lifnr = tmp_gvitem-vendor.

      APPEND gt_error.

    ENDLOOP.
  ENDIF.
  IF l_flag <>  'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ENDIF.


  IF materialdocument IS NOT INITIAL.
    CLEAR l_to.
    t_matdoc-materialdocument = materialdocument.       "产生凭证结果

    APPEND t_matdoc.   "物料凭证已产生

    WAIT UP TO 2 SECONDS.
    DO 5 TIMES.
      SELECT SINGLE tbnum lgnum
       FROM ltbk
       INTO (tmp_tbnum,tmp_lgnum)    "TR
      WHERE mblnr = materialdocument
      AND mjahr = matdocumentyear.
      IF tmp_tbnum IS NOT INITIAL.
        EXIT.
      ENDIF.
    ENDDO.

    IF sy-subrc = 0.
      SELECT *
        FROM ltbp
       INTO CORRESPONDING FIELDS OF TABLE t_ltbp
       WHERE tbnum = tmp_tbnum       "tr号
         AND lgnum = tmp_lgnum
         AND elikz <> 'X'.

      LOOP AT t_ltbp.
        it_trite-tbpos = t_ltbp-tbpos. "行号
        it_trite-altme = t_ltbp-altme. "计量单位
        it_trite-anfme = t_ltbp-menge. "数量
        it_trite-letyp = 'E1'.     "启用托盘管理仓储单位类型

*        LOOP AT tmp_gvitem
*          WHERE material = t_ltbp-matnr  AND
*                plant = t_ltbp-werks     AND
*                stge_loc = t_ltbp-lgort  AND
*                batch    = t_ltbp-CHARG  AND
*                entry_qnt = t_ltbp-menge AND
*                flag <> 'X'.
*
*          it_trite-nltyp = tmp_gvitem-stge_type.
*          it_trite-nlpla = tmp_gvitem-stge_bin.
*          it_trite-nlenr = tmp_gvitem-item_text.    "托盘编码,SU编码
*
*          tmp_gvitem-flag = 'X'.
*          MODIFY tmp_gvitem.
*        ENDLOOP.

        LOOP AT tmp_gvitem
          WHERE matdoc_itm = t_ltbp-mbpos.

          it_trite-nltyp = tmp_gvitem-stge_type.
          it_trite-nlpla = tmp_gvitem-stge_bin.
          it_trite-nlenr = tmp_gvitem-lenum.    "托盘编码,SU编码

          CHECK sy-subrc = '0'.
          EXIT.
        ENDLOOP.

        it_trite-nlber = '001'. "目的地仓储区,存储区全部为001.
        IF it_trite-nltyp IS INITIAL OR it_trite-nlpla IS INITIAL.
          l_to = 'X'.
        ENDIF.
        APPEND it_trite.
      ENDLOOP.

      CLEAR t_matdoc-tono.
      IF l_to <> 'X'.
        CALL FUNCTION 'L_TO_CREATE_TR'     "根据TR创建TO
          EXPORTING
            i_lgnum                        = t_ltbp-lgnum       "WM仓库号
            i_tbnum                        = tmp_tbnum       "TR
            it_trite                       = it_trite[]
          IMPORTING
            e_tanum                        = t_matdoc-tono
          EXCEPTIONS
            foreign_lock                   = 1
            qm_relevant                    = 2
            tr_completed                   = 3
            xfeld_wrong                    = 4
            ldest_wrong                    = 5
            drukz_wrong                    = 6
            tr_wrong                       = 7
            squit_forbidden                = 8
            no_to_created                  = 9
            update_without_commit          = 10
            no_authority                   = 11
            preallocated_stock             = 12
            partial_transfer_req_forbidden = 13
            input_error                    = 14
            OTHERS                         = 15.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDIF.

      t_matdoc-to_flag = 'X'.
      WAIT UP TO 1 SECONDS.
    ENDIF.
    " APPEND t_matdoc.   "jieguo
    READ TABLE t_matdoc[] ASSIGNING <fs_matdoc> WITH KEY materialdocument = materialdocument.
    IF sy-subrc = 0.
      <fs_matdoc>-tono = t_matdoc-tono.
      <fs_matdoc>-to_flag = t_matdoc-to_flag.

    ENDIF.
    CLEAR t_matdoc.
  ENDIF.

ENDFORM. " FRM_GOODS_MVT
*&---------------------------------------------------------------------*
*&      Form  FRM_GUIDOWN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_T_MATDOC[]  text
*----------------------------------------------------------------------*
FORM frm_guidown USING u_file u_table TYPE STANDARD TABLE.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename              = u_file
      filetype              = 'ASC'
      append                = 'X'
      write_field_separator = 'X'
    TABLES
      data_tab              = u_table.
ENDFORM. " FRM_GUIDOWN
*&---------------------------------------------------------------------*
*&      Form  FRM_OUTPUTFORMAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_ERROR_MATNR  text
*----------------------------------------------------------------------*
FORM frm_outputformat CHANGING c_value.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      input  = c_value
    IMPORTING
      output = c_value.

ENDFORM. " FRM_OUTPUTFORMAT


*Selection texts
*----------------------------------------------------------
* P_BWART         移动类型
* P_DATE         过账日期
* P_FILE         导入文件TXT上传路径
* P_INT         物料凭证行项目
* P_SOBKZ         特殊库存


*Messages
*----------------------------------------------------------
*
* Message class: Hard coded
*   物料凭证行项目数不能超过499
*Extracted by Mass Download version 1.4.1 - E.G.Mellodew. 1998-2015. Sap Release 740

 

^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
posted on 2017-03-07 09:49  ^ω^SAP傻X^o^  阅读(675)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3