现在的位置: 首页 > 综合 > 正文

SAP data migration: Create project milestone

2013年05月26日 ⁄ 综合 ⁄ 共 3694字 ⁄ 字号 评论关闭

引用:翱翔云天

This report is used to create milestone.

REPORT ZUP4 .
DATA:
  BEGIN OF RTAB ,
    PROJECT(24),
    WBS(24),
    USAGE(5),
    DESC(40),
    FBDATE(10),
    ACDATE(10),
    SALES(1),
    IVPER(10),
  END OF RTAB.
DATA: ITAB LIKE STANDARD TABLE OF RTAB.
DATA: TEMP LIKE STANDARD TABLE OF RTAB WITH HEADER LINE.
DATA: PRO_DEF LIKE BAPI_PROJECT_DEFINITION,
      PRO_DEF_UP LIKE BAPI_PROJECT_DEFINITION_UP.
DATA: MED_PRO LIKE BAPI_METHOD_PROJECT OCCURS 0 WITH HEADER LINE,
      MIL_STO LIKE BAPI_WBS_MILESTONE OCCURS 0 WITH HEADER LINE,
      MIL_STO_UP LIKE BAPI_WBS_MILESTONE_UPD OCCURS 0 WITH HEADER LINE.
DATA: RC LIKE BAPIRETURN1.
DATA: DATE1 TYPE D,DATE2 TYPE D.
PARAMETERS: FILE LIKE RLGRAP-FILENAME OBLIGATORY.
perform UPLOAD_FILE.
CHECK NOT ITAB[] IS INITIAL.
*******
SORT ITAB BY PROJECT WBS.
LOOP AT ITAB INTO RTAB.
  APPEND RTAB TO TEMP.
  AT END OF WBS.
    LOOP AT TEMP.
      PRO_DEF-PROJECT_DEFINITION = RTAB-PROJECT.
      PRO_DEF_UP-PROJECT_DEFINITION = 'X'.
      MED_PRO-OBJECTTYPE = 'WBSMILESTONE'.
      MED_PRO-METHOD = 'CREATE'.
      MED_PRO-REFNUMBER = '000001'.
      APPEND MED_PRO.
      CLEAR: MED_PRO.
      MED_PRO-METHOD = 'SAVE'.
      APPEND MED_PRO.
      MIL_STO-WBS_ELEMENT = TEMP-WBS.
      MIL_STO-MILESTONE_USAGE = TEMP-USAGE.
      MIL_STO-DESCRIPTION = TEMP-DESC.
      CLEAR: DATE1,DATE2.
      CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
           EXPORTING
                DATE_EXTERNAL            = TEMP-FBDATE
           IMPORTING
                DATE_INTERNAL            = DATE1
           EXCEPTIONS
                DATE_EXTERNAL_IS_INVALID = 1
                OTHERS                   = 2.
      MIL_STO-FIXED_MILESTONE_DATE_BASIC = DATE1.
      CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
           EXPORTING
                DATE_EXTERNAL            = TEMP-ACDATE
           IMPORTING
                DATE_INTERNAL            = DATE2
           EXCEPTIONS
                DATE_EXTERNAL_IS_INVALID = 1
                OTHERS                   = 2.
      MIL_STO-ACTUAL_DATE = DATE2.
      MIL_STO-SALES_DOC_DATE_INIDICATOR = TEMP-SALES.
      MIL_STO-INVOICE_PERCENTAGE = TEMP-IVPER.
      APPEND MIL_STO.
      MIL_STO_UP-WBS_ELEMENT = 'X'.
      MIL_STO_UP-MILESTONE_USAGE = 'X'.
      MIL_STO_UP-DESCRIPTION = 'X'.
      MIL_STO_UP-FIXED_MILESTONE_DATE_BASIC = 'X'.
      MIL_STO_UP-ACTUAL_DATE = 'X'.
      MIL_STO_UP-SALES_DOC_DATE_INIDICATOR = 'X'.
      MIL_STO_UP-INVOICE_PERCENTAGE = 'X'.
      APPEND MIL_STO_UP.
*    ******
      CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
           EXPORTING
                I_PROJECT_DEFINITION         = PRO_DEF
                I_PROJECT_DEFINITION_UPD     = PRO_DEF_UP
           IMPORTING
                RETURN                       = RC
           TABLES
                I_METHOD_PROJECT             = MED_PRO
                I_WBS_MILESTONE_TABLE        = MIL_STO
                I_WBS_MILESTONE_TABLE_UPDATE = MIL_STO_UP.
      CLEAR: PRO_DEF,RC,MED_PRO,MED_PRO[],MIL_STO,MIL_STO[],
      MIL_STO_UP,MIL_STO_UP[],PRO_DEF_UP.
    ENDLOOP.
    CLEAR: TEMP,TEMP[].
  ENDAT.
ENDLOOP.
*&---------------------------------------------------------------------*
*&      Form  UPLOAD_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_DATASET  text
*----------------------------------------------------------------------*
FORM UPLOAD_FILE.
  CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
            FILENAME                = FILE
            FILETYPE                = 'DAT'
       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.
ENDFORM.                    " UPLOAD_FILE

抱歉!评论已关闭.