SAP 테이블 데이터 수정 SE16N 사용법(+권한 없을 때 se16n_interface)

SAP 프로젝트 혹은 운영을 하다 보면 SAP 테이블 데이터 수정, 삭제 등 필요 할 때가 있습니다.

SAP SE16N 사용법 및 해당 티코드 EDIT 권한이 없을 때 대안으로 사용할 수 있는 SE16N_INTERFACE 펑션을 알아보도록 하겠습니다.

SAP 테이블 데이터 수정 SE16N 사용법 – 기본 Edit 편집 방법

CBO 테이블 데이터를 강제로 수정하고자 할 때에는 T-CODE 창에 /H 로 디버깅을 걸고 난 후 테이블 명을 입력 후 실행, GD 스트럭처의 변수값 GD-EDIT 및 GD-SAPEDIT에 값을 ‘X’로 넣어주면 에디트가 활성화 됩니다.

SAP SE16N GD EDIT, GD SAPEDIT 처리 - SAP 테이블 데이터 수정

그러면 SAP 테이블 데이터 수정, 삭제, 삽입 등이 가능합니다.

SAP SE16N 편집 가능한 상태로 변경

하지만 이러한 권한도 막는 경우가 있습니다.

SAP funtion se16_interface function으로 zse16n 만들기

만약 위의 방법이 권한 등으로 인해 막혔다면, se16 테이블 조회 티코드 형태와 마찬가지로, SE16_INTERFACE FUNCTION을 호출하는 Z CBO 를 만들어 사용할 수 있습니다.

Z프로그램을 하나 만들어서 간단하게 START-OF-SELECTION 밑에 다음과 같이 작성하면 SE16과 동일한 형태의 기능을 할 수 있습니다.

  CALL FUNCTION 'SE16N_INTERFACE'
    EXPORTING
      I_TAB     = 'ZSFLIGHT'
      I_EDIT    = 'X'
      I_SAPEDIT = 'X'.

위와 같이 작성을 한 후, 해당 CBO 프로그램을 실행하면 SE16N에서 디버그를 걸어 실행한 것과 동일한 결과를 볼 수 있습니다.

SE16N_INTERFACE FUNCITON으로 동일하게 SE16N 구현

만약 조회되는 내역에 WHERE 조건을 걸어주고자 한다면 IT_SELFIELDS 매개변수에 값을 넣어주면 된다.

DATA : LT_SE16N_SELTAB TYPE STANDARD TABLE OF SE16N_SELTAB.
DATA : LS_SE16N_SELTAB TYPE SE16N_SELTAB.

LS_SE16N_SELTAB-FIELD = 'CONNID'.
LS_SE16N_SELTAB-LOW = '17'.
LS_SE16N_SELTAB-OPTION = ''.
LS_SE16N_SELTAB-SIGN = ''.
APPEND LS_SE16N_SELTAB TO LT_SE16N_SELTAB.

*
CALL FUNCTION 'SE16N_INTERFACE'
EXPORTING
    I_TAB = 'ZSFLIGHT'
    I_EDIT = 'X'
    I_SAPEDIT = 'X'
TABLES
    IT_SELFIELDS = LT_SE16N_SELTAB.

SE16N_SELTAB 은 FIELD, LOW, HIGH, SIGN, OPTION 필드로 이루어진 RANGE 타입 변수(SAP 공식 문서 참조)입니다. CONNID = 17 만을 조회하여 결과를 볼 수 있습니다.

SE16N_INTERFACE에서 SELTAB으로 조건 걸기

SAP 테이블 데이터 수정 이력 확인 티코드 및 관련 테이블

SE16N의 수정 이력은 리포트 RKSE16N_CD_DISPLAY 를 확인이 가능합니다

T-CODE : RKSE16N_CD_DISPLAY 

해당 리포트를 실행하면 다음과 같이 CBO 테이블의 수정 시간과 수정 내역을 확인할 수 있습니다.

SAP 테이블 데이터 수정 시 해당 내용의 변경 이력을 확인 할 수 있음.

이 프로그램은 다음의 테이블 변경 조회 이력 테이블을 조회 합니다. SE16 로그 조회 프로그램에서는 다음의 조회 헤더/데이터 2개의 테이블을 조회합니다.

테이블 조회 변경 문서 헤더 테이블: SE16N_CD_KEY
테이블 조회 변경 문서 데이터 테이블: SE16N_CD_DATA

이 로그 테이블에는 SE16N에서 디버깅을 걸어 수정을 하거나 SE16N_INTERFACE 펑션 방식 모두 테이블 수정 시 모두 이력이 남게 되니 참고하시기 바랍니다.

이상으로 SAP SE16N 사용법 및 SE16N_INTERFACE 활용, 그리고 로그가 남는 테이블 및 조회 티코드 등을 정리해 보았습니다.

함께 보면 좋은 글 – ABAP 기본 문법 정리 편

ABAP READ TABLE 사용법 및 예제 정리
ABAP Collect 사용법 및 예제
ABAP CONCATENATE 사용법 및 예제 정리
ABAP LOOP AT 사용법 및 예제 등