ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ ABAP ] GOS를 활용해서 첨부파일 업로드 및 다운로드 하기 ( PDF, EXCEL... )
    ABAP 2024. 11. 21. 11:50

     

    SAP 내부에서 첨부 문서를 업로드하고 다운 받을 수 있다.

    GOS라는 객체를 이용하여 이런 기능을 사용 할 수 있는데 간단한 실습을 통해 사용해보자 ~~

    대략적인 단계는 다음과 같다

     

    1. SWO1 에서 Business Object (BO) 생성하기

    2. BO 설정

        a. 인터페이스 생성

        b. 키 설정

        c. method 설정

    3. 프로그램 생성하기 

     

    레고


    1. T-CODE : SWO1      BO 생성하기

    이름 자유롭게 설정해서 생성해보자

     

    SWO1에서 Business Object를 생성할 때 '프로그램' 항목은 해당 오브젝트와 연계된 새로운 프로그램을 지정해야 한다.

    여기서 프로그램은 이 Business Object의 메소드 구현과 관련된 ABAP 프로그램으로 사용되는데,

    기존 프로그램명을 입력하면 충돌이 발생할 수 있기 때문에, 새로운 이름을 지정해야 한다..

     

    만들어지면 이런 화면이 나온다.

     

    이거 보면 다 빨간줄 처리가 되어있는데..

    아마 완성이 다 안되었거나 활성화가 안된것이라 그런듯??

    하나씩 눌러서 f6 누르면 하얗게 변함

     


    2. BO 설정

    a. 인터페이스

    [인터페이스] > [생성] (A4용지) > 이름입력후 > [확인]

     

    참고로 IFGOSXSERV는 기능확장 일반오브젝트 서비스라고 한다..

     

     

    b. 키 설정

    [키 필드]  >  [생성]

     

    TRDIR 테이블의 NAME 필드를 지정한다.

     

    왜 ? 

    • TRDIR은 SAP 시스템의 프로그램 디렉터리 테이블로, 모든 프로그램 정보를 저장한다
    • 이 테이블은 프로그램 이름을 즉 name 필드를 고유하게 식별하기 위해 사용된다.
    • Business Object를 프로그램의 이름을 키로 사용해 특정 데이터를 식별하는 구조이기 때문에 이 필드를 참조 해야 한다.

     

     

    c. method 설정

    우리는 GOSAddObjects를 사용할거다.

    이 메서드는 GOS 기능과 비즈니스 객체 간의 데이터를 연결하거나 설정하기 위해 사용하는데

    우리는 gos기능 중 첨부파일 등록 및 다운로드 기능을 사용할거니까 이거 선택.

    저 method를 클릭후 [프로그램] 클릭

     

     

    그럼 이렇게 abap 코드가 나온다.

    그리고 아래 코드와 같이 추가한다.

    LS_BORIDENT-OBJTYPE 에는 초기에 오브젝트 생성시 TYPE옆에 적었던 타입을 적으면 됩니다.

     

    BEGIN_METHOD GOSADDOBJECTS CHANGING CONTAINER.
    DATA:
          SERVICE(255),
          BUSIDENTIFS LIKE BORIDENT OCCURS 0.
    
    *-- 첨부 문서 서비스 이용을 위한 코드 추가 ----------------------------*
    DATA : LS_BORIDENT TYPE BORIDENT.  " 개별 비즈니스 객체 식별 정보
    
      CLEAR LS_BORIDENT.
      LS_BORIDENT-LOGSYS = SPACE.
      LS_BORIDENT-OBJTYPE = 'Z_GOS_074'.
      LS_BORIDENT-OBJKEY = OBJECT-KEY.
      APPEND LS_BORIDENT to BUSIDENTIFS.
    
    *----------------------------------------------------------------------*
    
      SWC_GET_ELEMENT CONTAINER 'Service' SERVICE.
      SWC_SET_TABLE CONTAINER 'BusIdentifs' BUSIDENTIFS.
    END_METHOD.

    코드 첨부.,,

     


    3. 프로그램 생성하기

    이제 프로그램을 만들어 보자. 그냥 간단하게 한번 ~~

    selection screen 툴바에 달아 보자 

    CONSTANTS: OBJTYPE TYPE BORIDENT-OBJTYPE VALUE 'Z_GOS_074'.
    
    DATA: MANAGER TYPE REF TO CL_GOS_MANAGER,
          OBJ TYPE BORIDENT.
    
    PARAMETERS: MATNR TYPE MARA-MATNR.
    
    AT SELECTION-SCREEN OUTPUT.
      CLEAR OBJ.
      
    * SET OBJECT TYPE TO 'Z_GOS_074'
      OBJ-OBJTYPE = OBJTYPE.
    
    * SET OBJECT KEY = REPORT NAME
      SELECT SINGLE NAME
        FROM TRDIR
        INTO OBJ-OBJKEY
       WHERE NAME = SY-REPID.
    
    * CALL GOS MANAGER WITHOUT CONTAINER (WILL BE DISPLAYED IN THE TOOLBAR)
      CREATE OBJECT MANAGER
        EXPORTING
          IS_OBJECT = OBJ
        EXCEPTIONS
          OTHERS = 1.

     

    대충 이렇게 간단하게 만들어놓ㄱ

     

    실행시켜보면

    야호

    여기 클릭해서

     

    새로 생성하거나 기존에 올려둔 파일을 업로드 및 다운로드 할 수 있다 !!

     

    파일이 어떤 형태로 저장되는지는.. 나중에 포스팅 해야지

    오늘할일을 내일 로 미루기

Designed by Tistory.