zoukankan      html  css  js  c++  java
  • 'BAPI_REQUIREMENTS_CREATE' 创建月需求计划(MD61)

    REPORT ZTY_MM_BAPI_REQUIREMENTS .
    *bapi data
    data: req_item like BAPISITEMR.
    data: req_data like BAPISSHDIN occurs 0 with header line.
    data: RETURN LIKE BAPIRETURN1 OCCURS 0 WITH HEADER LINE.
    data: matertemp like BAPISITEMR-MATERIAL.
    data: begin of wa_itab,
              index type i,  "序号
              matnr like BAPISITEMR-MATERIAL,     "物料编码
              REQ_QTY like BAPISSHDIN-REQ_QTY,    "计划数量
          end of wa_itab.
    data: itab like wa_itab occurs 0 with header line.
    data: matemp like BAPISITEMR-MATERIAL.  "物料编码
    data: begin of log occurs 0,
             index type i,  "序号
             MESSAGE like return-message,  "消息文本
          end of log.

    SELECTION-SCREEN: BEGIN OF BLOCK FRAME01
       WITH FRAME TITLE Text-001.
    parameters: p_number like pbpt-pbdnr obligatory.
    parameters: p_today like sy-datum obligatory.
    parameters: TXTFILE like rlgrap-filename default
      'c:/material.txt' obligatory.
    parameters: logfile like rlgrap-filename default
      'c:/log.txt' obligatory.
    SELECTION-SCREEN: END OF BLOCK FRAME01.
    SELECTION-SCREEN: BEGIN OF BLOCK FRAME02
       WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN COMMENT /5(40) TEXT-003.
    SELECTION-SCREEN: END OF BLOCK FRAME02.

    START-OF-SELECTION.
      PERFORM FRM_GET_DATA.
      PERFORM FRM_CREATE_requ.
    end-of-selection.
    *-----------upload data----------
    FORM FRM_GET_DATA.
    CALL FUNCTION 'WS_UPLOAD'
     EXPORTING
    *   CODEPAGE                      = ' '
       FILENAME                      = TXTFILE
       FILETYPE                      = 'DAT'
    *   HEADLEN                       = ' '
    *   LINE_EXIT                     = ' '
    *   TRUNCLEN                      = ' '
    *   USER_FORM                     = ' '
    *   USER_PROG                     = ' '
    *   DAT_D_FORMAT                  = ' '
    * IMPORTING
    *   FILELENGTH                    =
      TABLES
        DATA_TAB                      = ITAB
     EXCEPTIONS
       CONVERSION_ERROR              = 1
       FILE_OPEN_ERROR               = 2
       FILE_READ_ERROR               = 3
       INVALID_TYPE                  = 4
       NO_BATCH                      = 5
       UNKNOWN_ERROR                 = 6
       INVALID_TABLE_WIDTH           = 7
       GUI_REFUSE_FILETRANSFER       = 8
       CUSTOMER_ERROR                = 9
       OTHERS                        = 10
              .
    IF SY-SUBRC <> 0.
    write : '上载数据出错,请检查文本文件是否存在或格式错误!'.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    exit.
    ENDIF.
    ENDFORM.
    *loop at itab.
    *     itab-index = sy-index.
    *     itab-plan = '8000'.
    *     itab-requ = 'vse'.
    *     itab-v = 'X'.
    *     itab-req_number = p_number.
    *     modify itab.
    *endloop.
    *-----------upload data end------
    *----------create requirements---
    FORM FRM_CREATE_requ.
        loop at itab.
            concatenate '00000000000' itab-matnr into matertemp.
            req_item-material = matertemp.
            req_item-plant = '8000'.
            req_item-REQU_TYPE = 'VSE'.
            req_item-VERSION = '00'.
            req_item-VERS_ACTIV = 'X'.
            req_item-req_number = p_number.

            req_data-DATE_TYPE = 3.
            req_data-req_date = p_today.
            req_data-REQ_QTY = itab-REQ_QTY.
            append req_data.
            CALL FUNCTION 'BAPI_REQUIREMENTS_CREATE'
              EXPORTING
                REQUIREMENTS_ITEM              = req_item
    *           REQUIREMENT_PARAM              =
              IMPORTING
               MATERIAL                       = matemp
    *           PLANT                          =
    *           REQUIREMENTSTYPE               =
    *           VERSION                        =
    *           REQMTSPLANNUMBER               =
              TABLES
                REQUIREMENTS_SCHEDULE_IN       = REQ_data
    *           REQUIREMENTS_CHAR_IN           =
                RETURN                         = RETURN.
     IF NOT matemp IS INITIAL.
            WRITE:/(10) matemp COLOR 4,
                   (50) '创建成功'.
     else.
           log-index = itab-index.
           log-message = return-MESSAGE.
           append log.
     ENDIF.
    clear matemp.
    REFRESH req_data.
    clear matertemp.
    clear req_item.
    endloop.
    CALL FUNCTION 'WS_DOWNLOAD'
     EXPORTING
       FILENAME                      = LOGFILE
       FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                     = LOG
     EXCEPTIONS
       INVALID_FILESIZE              = 1
       INVALID_TABLE_WIDTH           = 2
       INVALID_TYPE                  = 3
       NO_BATCH                      = 4
       UNKNOWN_ERROR                 = 5
       GUI_REFUSE_FILETRANSFER       = 6
       CUSTOMER_ERROR                = 7
       OTHERS                        = 8
              .
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    write : '批输入结束!请检查LOG文件!'.
    endform.
    *----------create end------------

     代码来源:http://blog.csdn.net/hansbj/archive/2004/10/26/152428.aspx
  • 相关阅读:
    “问答回复模块”Java开发文档官方改进版讲解【在线实习·吾研第二期】
    “付费邀请模块”产品原型图评审【在线实习·吾研第三期】
    “学长学姐认证模块”测试用例官方改进版讲解【在线实习·吾研第一期】
    “学长认证模块”Java代码2.0官方版要点讲解【在线实习·吾研第一期】
    “问答评论模块”UI作品评审【在线实习·吾研第二期】
    “认证模块”前端代码1.0评审【在线实习·吾研第一期】
    <<中国专利法详解>>学习笔记(一)
    JS 前端获得时间
    北漂的程序员
    Spring类注入异常
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157352.html
Copyright © 2011-2022 走看看