[9기 SAP방] gpters 사례 발표별 녹화 영상 테이블 만들기

#9기 SAP방

SAP는 DB 라고 볼수있습니다.

DB를 SELECT하고 조인하고 INSERT 하고 DISPLAY하고 DELETE는 기능은 있지만 함부로 할수없게 해놓은 ERP 회계 프로그램이라고 보시면됩니다.

그런데 trial 서버에서는 회계테이블, 자재테이블 등 데이터가 하나도 없습니다.

그래서 실습하는데 한계가 있다는 단점이 있습니다.

그래서 sap교육시 테이블을 만들어서 데이터를 담아서 실습하곤했습니다.

자재 데이터를 담아서 해봣는데 무슨내용인지도 모르겠고 원자재, 부자재, 영어로 코드로 불러오고 하니 재미가 없었습니다.

이렇게 gpters부트캠프에서 SAP 스터디를 하려니 너무 재미없을것 같아서 걱정입니다.

그래서 gpters 어떤 항목이 몇개 있고 이런것을 select하는 것을 해보자 해서 오늘은 사례발표별 녹화영상 제목과 url을 insert하는 프로그램을 만들어보고자 시도해보았습니다.

먼저 se11 에서 테이블을 만듭니다. sap에서 사용자가 임의로 테이블을 만들때는 앞에 z를 붙이고 만들어야합니다. 그래서 zgpters_v_h 비디오 히스토리 약자로 v_h를 붙여서 생성하였습니다.


다음에는 테이블 이름과 속성을 지정하였습니다.

다음은 데이터 필드를 만들었습니다.

sap에서는 데이터 타입을 string int float 이런식으로 지정해도 되지만 다른 데이터 엘리먼트 이름을 적어도 그 데이터 엘리먼트의 데이터 타입을 참조할수있는 장점이있습니다.

그래서 txt50_skat 데이터 엘리먼트를 복사하여 ztxt50_skat_01 부터 03까지 만들어보았습니다.


각 탭마다 원본을 참조해서 똑같이 카피한뒤 저장 및 활성화 activate를 합니다.


데이터 엘리먼트를 다 만들고 필드명을 다 만들었으면 technical settings을 합니다.



데이터 클라스와 사이즈는 appl1, 4 로 각각 입력합니다.

SAP의 데이터 클래스 APPL1은 트랜잭션 데이터를 저장하기 위한 데이터 클래스입니다. 트랜잭션 데이터는 기업의 업무 프로세스에서 발생하는 데이터로, 일반적으로 자주 변경됩니다.

데이터 클래스 APPL1의 사이즈 카테고리는 데이터베이스에 저장되는 데이터의 양을 나타냅니다. 사이즈 카테고리 4는 가장 큰 사이즈 카테고리로, 1백만 건 이상의 데이터를 저장할 수 있습니다.

그리고 기본키를 지정하고 액티배이트 활성화를 합니다.

파라미터를 설정하고 insert하는것으로 작성하였습니다.

그리고 실행


그리고 조회



insert하고 display하는것을 해보았습니다.


전체 소스코드

*&---------------------------------------------------------------------*
*& Report ZIT35_003
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZIT35_003.


PARAMETERS : p_zname TYPE Zgpters_v_h-zname.
PARAMETERS : p_ztitle TYPE Zgpters_v_h-ztitle.
PARAMETERS : p_zlink TYPE Zgpters_v_h-zlink.


PARAMETERS : P_INSERT RADIOBUTTON GROUP RR DEFAULT 'X'.
PARAMETERS : P_MODIFY RADIOBUTTON GROUP RR .
PARAMETERS : P_DELETE RADIOBUTTON GROUP RR .
PARAMETERS : P_DISPLY RADIOBUTTON GROUP RR .

* 테이블 정의
*DATA: BEGIN OF LT_ZFAGLFLEXT OCCURS 0,
*        zname TYPE Zgpters_v_h-zname,
*        ztitle TYPE Zgpters_v_h-ztitle,
*        zlink TYPE Zgpters_v_h-zlink,
*      END OF LT_ZFAGLFLEXT.

" 테이블 생성
data : lt_zfaglflext LIKE table of Zgpters_v_h.
DATA : LS_ZFAGLFLEXT LIKE Zgpters_v_h.

* 필드값 설정


CASE ABAP_TRUE .
  WHEN P_INSERT.


    LS_ZFAGLFLEXT-zname = p_zname.
    LS_ZFAGLFLEXT-ztitle = p_ztitle.
    LS_ZFAGLFLEXT-zlink = p_zlink.

    INSERT Zgpters_v_h FROM LS_ZFAGLFLEXT.

    IF  SY-SUBRC EQ 0.

      MESSAGE S000(ZABAP) WITH ' SAVEDE(DISPLY)'.

      ELSE.
        MESSAGE E000(ZABAP) WITH 'NOT SAVED'.

    ENDIF.
when p_modify.

    LS_ZFAGLFLEXT-zname = p_zname.
    LS_ZFAGLFLEXT-ztitle = p_ztitle.
    LS_ZFAGLFLEXT-zlink = p_zlink.

    modify Zgpters_v_h FROM LS_ZFAGLFLEXT.

    IF  SY-SUBRC EQ 0.

      MESSAGE S000(ZABAP) WITH ' SAVEDE(DISPLY)'.

      ELSE.
        MESSAGE E000(ZABAP) WITH 'NOT SAVED'.

    ENDIF.

when p_delete.

    LS_ZFAGLFLEXT-zname = p_zname.
    LS_ZFAGLFLEXT-ztitle = p_ztitle.
    LS_ZFAGLFLEXT-zlink = p_zlink.

    delete Zgpters_v_h FROM LS_ZFAGLFLEXT.

    IF  SY-SUBRC EQ 0.

      MESSAGE S000(ZABAP) WITH ' SAVEDE(DISPLY)'.

      ELSE.
        MESSAGE E000(ZABAP) WITH 'NOT SAVED'.

    ENDIF.
*
when p_disply.




* 데이터 조회
    SELECT * FROM Zgpters_v_h INTO TABLE @LT_ZFAGLFLEXT.

* 조회된 데이터 출력

    LOOP AT LT_ZFAGLFLEXT INTO LS_ZFAGLFLEXT.

      WRITE: / 'zname:', LS_ZFAGLFLEXT-zname.
      WRITE: / 'ztitle:', LS_ZFAGLFLEXT-ztitle.
      WRITE: / 'zlink:', LS_ZFAGLFLEXT-zlink.
    ENDLOOP.

        IF  SY-SUBRC EQ 0.

      MESSAGE S000(ZABAP) WITH ' SAVEDE(DISPLY)'.

      ELSE.
        MESSAGE E000(ZABAP) WITH 'NOT SAVED'.

    ENDIF.

  WHEN OTHERS.
ENDCASE.
3
1개의 답글

👉 이 게시글도 읽어보세요