SAP/ABAP 코드

(ABAP 코드) SWM0 열기

haramang 2022. 2. 8. 06:10


CONSTANTS: C_SMW0 TYPE W3OBJID VALUE 'ZBD212_COST_CENTER'.

*&---------------------------------------------------------------------*
*& Form EXCEL_FORM_DOWN_SWM0_LOGIC
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM EXCEL_FORM_DOWN_SWM0_LOGIC .

  PERFORM FACTORY_INITIAL_SMW0 USING C_SMW0.

  PERFORM OPEN_DOCUMENT1_SMW0  USING C_SMW0.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FACTORY_INITIAL_SMW0
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> C_SMW0
*&---------------------------------------------------------------------*
FORM FACTORY_INITIAL_SMW0 USING P_APPNAME.

  CHECK FACTORY IS INITIAL.

  CALL METHOD C_OI_FACTORY_CREATOR=>GET_DOCUMENT_FACTORY
    IMPORTING
      FACTORY = FACTORY
      RETCODE = RETCODE.
  IF RETCODE NE C_OI_ERRORS=>RET_OK. EXIT. ENDIF.


  CALL METHOD FACTORY->START_FACTORY
    EXPORTING
      R3_APPLICATION_NAME = P_APPNAME
    IMPORTING
      RETCODE             = RETCODE.
  CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE
    EXPORTING
      TYPE = 'E'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form OPEN_DOCUMENT1_SMW0
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> C_SMW0
*&---------------------------------------------------------------------*
FORM OPEN_DOCUMENT1_SMW0 USING P_OBJID.

  CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA'
    EXPORTING
      OBJECT_ID        = P_OBJID
    IMPORTING
      DATA_SIZE        = DOC_SIZE
      DOCUMENT_FORMAT  = DOC_FORMAT
      DOCUMENT_TYPE    = DOC_TYPE
    TABLES
      DATA_TABLE       = DOC_TABLE
    EXCEPTIONS
      OBJECT_NOT_FOUND = 1
      INTERNAL_ERROR   = 2
      OTHERS           = 3.
  IF SY-SUBRC NE 0.
    MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  IF DOC_SIZE NE 0.
    CALL METHOD FACTORY->GET_DOCUMENT_PROXY
      EXPORTING
        DOCUMENT_TYPE  = DOC_TYPE
      IMPORTING
        DOCUMENT_PROXY = DOCUMENT
        RETCODE        = RETCODE.
    CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE
      EXPORTING
        TYPE = 'E'.

    CALL METHOD DOCUMENT->OPEN_DOCUMENT_FROM_TABLE
      EXPORTING
        DOCUMENT_TABLE = DOC_TABLE[]
        DOCUMENT_SIZE  = DOC_SIZE
      IMPORTING
        RETCODE        = RETCODE.
    CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE
      EXPORTING
        TYPE = 'E'.
  ELSE.
  ENDIF.

ENDFORM.