[SAP] SE16N 테이블 데이터 삭제 (&SAP_EDIT / GD-EDIT / SE16N_INTERFACE)
SAP의 장점 중 하나는 데이터의 신뢰성이다.
데이터를 추가,수정,삭제를 하면 일반적으로 로그가 남고, 이러한 이력들은 나중에 감사자료에 사용이 된다.
이런 철저한(?) 시스템 때문에 SAP를 사용하는 회사의 재무제표는 신뢰도가 높다.
SAP는 원칙적으로 데이터(특히, 운영서버)를 삭제하지 말라고 한다.
하지만 프로젝트나 운영업무를 하다보면 데이터를 삭제해야 하는 경우가 생긴다. 그럴 때 SE16N EDIT 모드 등을 사용하여 데이터를 삭제한다. (회바회, 케바케)
데이터를 삭제하는 방법들 중에 어떤 것들은 변경 로그를 남기고 어떤 것들은 변경 로그를 남기지 않는다.
이게 나중에 감사에서 큰 이슈( 재무제표 조작가능성 의심 등)가 된다. 특히, 현업이 운영서버에서 직접 데이터를 수정 / 삭제 하는 것은 정말 큰일이기 때문에 외주사에 데이터 삭제를 요청하거나 증빙을 남긴다. (회바회, 케바케)
오늘은 그런 어쩔 수 없는 상황에서 데이터를 삭제하려고 할 때, 하는 방법에 대해서 정리했다.
여러가지 방법들 중에 많이 사용하는 방법은 3가지이다.
- &SAP_EDIT
- SE16N 디버깅으로 편집모드 접속
- CALL FUNCTION SE16N_INTERFACE 사용
하나씩 살펴보자.
1. &SAP_EDIT (S/4HANA 불가)
T-CODE: SE16N 에 접속해 테이블 명을 검색한다.
좌측 상단에 &SAP_EDIT을 입력 후, ENTER를 누르면 우측의 엔트리 유지보수에 체크표시가 생긴다.
만약에 아무 반응이 없거나 권한 에러가 뜬다면, 그것은 S/4HANA를 사용해서 생기는 문제이다.
실제로 노츠에서 찾아볼 수 있는데 S/4HANA 이후로 데이터의 정합성을 유지하기 위해서 “&SAP_EDIT”를 활용하여 데이터를 수정하는 부분을 비활성화 했다는 것이다. 단, 특정 권한 오브젝트가 있는 사람에게는 사용을 허락할 수 있다고 한다. ( 해결 방법은 노츠에 있으니 필요하면 찾아보도록 하자. )
그래서 사람들이 가장 많이 사용하는 방법이 SE16N 디버깅 방법이다.
2. SE16N 디버깅으로 편집모드 접속
T-CODE : SE16N 에 들어가고 테이블 명을 입력해준다.
CBO 테이블은 바로 편집모드로 들어가지고, 스탠다드 테이블은 디버깅에서 EDIT 모드로 접속해야 한다.
먼저 CBO 테이블의 경우,
F8 실행시키면 편집모드로 바로 들어가진다.
애초에 엔트리 유지보수에 체크가 되어있다
빨간색 박스 부분처럼 편집 기능인 행 추가, 삽입, 삭제의 버튼들이 존재한다.
그러면 스탠다드 테이블을 봐보자.
대표적인 스탠다드 테이블로 BKPF로 예시를 들어보자.
스크린 샷을 보면은 엔트리 유지보수가 비활성화 되어있다. F8 을 눌러서 실행시키자.
실행 화면에서 ALV의 버튼 중 편집 기능의 버튼들이 존재하지 않는다.
스탠다드 테이블의 경우, 데이터의 정합성이 더욱 중요하기 때문에 그렇다.
그래서 보통 비공식 방법으로 편집모드를 들어가는거다.
방법은 정말 간단하다.
명령에 필드에 디버깅 ‘/H’ 를 입력하고 ENTER를 누른다.
그러면 아래에 디버깅을 설정했다는 메세지가 뜬다.
이후 F8 또는 시계 모양을 통해 실행시키면 디버깅 모드로 진입하게 된다.
디버깅 모드에 들어왔으면 아래 빨간색 박스에다가 편집모드 명령어를 입력해줄거다.
화면처럼 입력해주면 된다.
GD-EDIT 입력 후 ENTER → 연필 클릭 → X 입력 후 ENTER
GD-SAPEDIT 입력 후 ENTER → 연필 클릭 → X 입력 후 ENTER
입력을 다했으면 F8 키를 누르거나 사진의 빨간색 박스 부분을 클릭한다.
그러면 편집 모드로 들어오고, 원하는 데이터를 클릭하고 삭제한 뒤 저장 버튼을 클릭하면 된다.
저장 버튼을 클릭하면 변경 내역을 알려주고, 체크 박스를 누르면 저장이 완료된다.
3. CALL FUNCTION SE16N_INTERFACE 사용
마지막으로 펑션 모듈 사용법이다.
보통 SE16N에 권한이 없는 경우 사용한다.
이 펑션모듈에서 수행된 모든 변경 사항은 SE16N_CD_KEY 및 SE16N_CD_DATA 테이블의 기록이 된다.
변경 로그가 기록되기 때문에 담당자와 상의하고 사용해야 한다.
해당 Function에는 여러개의 Import가 존재한다. 빨간색 박스로 표시한 3개의 매개변수를 사용하면 된다.
사용하기 위해서는 Z프로그램으로 하나의 CBO 프로그램을 만들면 된다.
START-OF-SELECTION을 써주고 그 아래에 Function을 적어준다.
이후, 프로그램을 실행하면 SE16N 편집모드와 동일한 결과를 볼 수 있다.
하지만, BKPF처럼 수십만건이 조회될 수 있는 스탠다드 테이블의 경우 조건을 걸고 싶을 수도 있다.
그럴 때는 SE16N_SELTAB 를 사용하면 된다.
필드는 레인지 변수와 동일하다. 나 같은 경우는 SE16N_SELETAB의 TABLE TYPE을 사용하였다.
위처럼 SELTAB에 원하는 조건을 추가하면 된다.
해당 코드는 회사코드가 1000번이고, 회계연도가 2024년~2025년 사이인 데이터들이 조회하기 위한 조건이다.
오늘도 파이팅이다!
'SAP > ABAP' 카테고리의 다른 글
[SAP ABAP] ABAP 루프문(Loops) - DO, DO n TIMES, WHILE, SELECT..ENDSELECT, LOOP AT..ENDLOOP (4) | 2024.07.22 |
---|---|
[SAP ABAP] ABAP 주요 T-CODE(티코드) 정리 (0) | 2024.07.22 |
[SAP ABAP] SAP GUI ABAP Workbench Tools(아밥 워크벤치 주요 도구) (0) | 2024.07.22 |
[SAP ABAP] SAP GUI의 화면 요소 (0) | 2024.07.17 |
[SAP ABAP] WRITE 문의 출력 형태 (0) | 2024.07.17 |