SAP 프로젝트 혹은 운영을 하다 보면 SAP 테이블 데이터 수정, 삭제 등 필요 할 때가 있습니다.
SAP SE16N 사용법 및 해당 티코드 EDIT 권한이 없을 때 대안으로 사용할 수 있는 SE16N_INTERFACE 펑션을 알아보도록 하겠습니다.
SAP 테이블 데이터 수정 SE16N 사용법 – 기본 Edit 편집 방법
CBO 테이블 데이터를 강제로 수정하고자 할 때에는 T-CODE 창에 /H 로 디버깅을 걸고 난 후 테이블 명을 입력 후 실행, GD 스트럭처의 변수값 GD-EDIT 및 GD-SAPEDIT에 값을 ‘X’로 넣어주면 에디트가 활성화 됩니다.
그러면 SAP 테이블 데이터 수정, 삭제, 삽입 등이 가능합니다.
하지만 이러한 권한도 막는 경우가 있습니다.
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에서 디버그를 걸어 실행한 것과 동일한 결과를 볼 수 있습니다.
만약 조회되는 내역에 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 만을 조회하여 결과를 볼 수 있습니다.
SAP 테이블 데이터 수정 이력 확인 티코드 및 관련 테이블
SE16N의 수정 이력은 리포트 RKSE16N_CD_DISPLAY 를 확인이 가능합니다.
T-CODE : RKSE16N_CD_DISPLAY
해당 리포트를 실행하면 다음과 같이 CBO 테이블의 수정 시간과 수정 내역을 확인할 수 있습니다.
이 프로그램은 다음의 테이블 변경 조회 이력 테이블을 조회 합니다. 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 사용법 및 예제 등