인터널테이블: APPEND...TO, CLEAR, REFRESH

홍예림·2023년 7월 5일
0

SAP ABAP(개편중...)

목록 보기
16/55
post-custom-banner

GUI : ABAP Dictionary - Table - Contents 에서 입력 및 저장


데이터 조회한다

  • SELECT + INTERNAL TABLE 구문을 사용해 여러 레이블을 조회한다
  • 조회한 데이터를 인터널테이블에 추가하기 위해 APPEND 구문을 사용한다

APPEND...TO

  • APPEND + 저장할 데이터 + TO + 저장할 장소 + .
  • APPEND 구문 여러번 작성 시 :
    • 작성한 횟수만큼 저장됨
      • 스트럭처(구조체)가 인터널테이블에 축적된다.
      • STANDARD TABLE 은 중복 데이터 가능하므로 가능.

CLEAR

  • 인터널테이블 외에 변수, 스트럭처, 테이블에도 사용할 수 있다.
  • APPEND 구문 작성 시 필드 중 일부의 값을 입력하지 않은 경우 :
    • 새로 입력되는 값이 없는 경우 기존에 입력했던 값이 상속되므로, 이를 방지하려면 CLEAR 구문을 입력해 스트럭처를 초기화 한다.
      • 명시된 필드만 CLEAR : CLEAR : __, __, ..., __.
      • 스트럭쳐 전체 CLEAR (권장) : CLEAR : __.

REFRESH

  • 인터널테이블 전용 초기화 명령어이다.

확인하기(디버깅)

  • APPEND구문 밑에 BREAK-POINT 입력
  • 저장 - 활성화 Ctrl+F3 - Direct Processing F8 - [Desktop3]에서 테이블명 더블클릭 - Table Display 아이콘 선택 - 저장된 값 확인

실습문제


DATA : BEGIN OF gs_sd,
        VBELN TYPE LIPS-VBELN,
        POSNR TYPE LIPS-POSNR,
        PSTYV TYPE LIPS-PSTYV,
        MATNR TYPE LIPS-MATNR,
        MATWA TYPE LIPS-MATWA,
        MATKL TYPE LIPS-MATKL,
       END OF gs_sd.

DATA : gt_sd LIKE TABLE OF gs_sd.

gs_sd-VBELN = '1000000001'.
gs_sd-POSNR = 10.
gs_sd-PSTYV = 'ADP1'.
gs_sd-MATNR = 'T-RSP512'.
gs_sd-MATWA = 'ST_10'.
gs_sd-MATKL = '01'.

APPEND gs_sd TO gt_sd.
CLEAR : gs_sd.

gs_sd-VBELN = '1000000002'.
gs_sd-POSNR = 20.
gs_sd-PSTYV = 'ADP3'.
gs_sd-MATNR = 'T-ASA00'.
gs_sd-MATKL = '01'.

APPEND gs_sd TO gt_sd.

gs_sd-VBELN = '1000000003'.
gs_sd-POSNR = 30.
gs_sd-PSTYV = 'AFC'.
gs_sd-MATNR = 'T-RSP512'.
gs_sd-MATKL = '02'.

APPEND gs_sd TO gt_sd.
CLEAR : gs_sd.

gs_sd-VBELN = '1000000004'.
gs_sd-POSNR = 40.
gs_sd-PSTYV = 'AGR'.
gs_sd-MATNR = 'T-SSP112'.
gs_sd-MATWA = 'WHEEL'.
gs_sd-MATKL = '01'.

APPEND gs_sd TO gt_sd.
CLEAR : gs_sd.

gs_sd-VBELN = '1000000005'.
gs_sd-POSNR = 50.

APPEND gs_sd TO gt_sd.
CLEAR : gs_sd.

BREAK-POINT.

DATA: gs_app TYPE ZC5T250011,
      gt_app TYPE TABLE OF ZC5T250011.

gs_app-AUFNR  = '10000000001'.
gs_app-PLNBEZ = 'T-RSP512'.
gs_app-PLNTY  = 'Q'.
gs_app-PLNNR  = 'AB001'.
gs_app-PLNAW  = 'P'.
gs_app-PLNAL  = '01'.

APPEND gs_app TO gt_app.
CLEAR gs_app.

gs_app-AUFNR  = '11000002541'.
gs_app-PLNBEZ = 'ST_10'.
gs_app-PLNTY  = 'A'.
gs_app-PLNNR  = 'AC021'.
gs_app-PLNAW  = 'C'.
gs_app-PLNAL  = '02'.

APPEND gs_app TO gt_app.
CLEAR gs_app.

gs_app-AUFNR  = '11000001254'.
gs_app-PLNBEZ = 'HELMET'.
gs_app-PLNNR  = 'BDC001'.
gs_app-PLNAL  = '03'.

APPEND gs_app TO gt_app.
CLEAR gs_app.

gs_app-AUFNR  = '10000000001'.
gs_app-PLNTY  = 'A'.
gs_app-PLNAW  = 'T'.
gs_app-PLNAL  = '04'.

APPEND gs_app TO gt_app.
CLEAR gs_app.

gs_app-AUFNR  = '10000000001'.
gs_app-PLNBEZ = 'T-SCP512'.
gs_app-PLNNR  = 'PACKI'.
gs_app-PLNAW  = 'S'.
gs_app-PLNAL  = '07'.

APPEND gs_app TO gt_app.
CLEAR gs_app.

BREAK-POINT.
profile
SYNC 3기 5반 2023.07 - 2023.12
post-custom-banner

0개의 댓글