SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE)


SAP 시스템의 데이터베이스(DB)에서 테이블(Table)을 직접 수정(UPDATE)하는 것은 간단하게 할 수 있는 작업이 아닙니다.

테이블의 데이터를 수정하기 위해서는 ABAP 프로그램을 개발하거나 테이블 유지보수 생성기를 이용하여 데이터를 변경할 수 있습니다. 테이블 유지보수 생성기 사용방법에 대해서는 ABAP Dictionary의 테이블유지보수생성기로 테이블 유지보수 다이얼로그를 생성하고 활용하는 방법 글을 참고하시면 됩니다.

간혹 SE11 또는 SE16에서 디버그 모드로 들어가서 테이블의 데이터를 추가(INSERT), 변경(UPDATE), 삭제(DELETE) 하는 경우가 있는데 ABAP 개발자나 관련 지식이 있는 사용자가 할 수 있는 작업입니다.

하지만 SAP에서는 이와 관련하여 테이블을 직접 변경할 수 있는 Function 모듈을 제공하고 있습니다.

이번 글에서는 SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE)에 대해 알아보겠습니다.

SAP 데이터베이스 테이블을 직접 변경(UPDATE)하는 방법

1. SAP DATABASE TABLE의 데이터를 변경하기 위해서 Function Builder로 엽니다.

  • Function 빌더 트랜잭션코드는 SE37 입니다.

2. Function Builder에서 Function Module에 “SE16N_INTERFACE“를 입력하고 실행(테스트) 버튼을 클릭합니다.

SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE)

3. Function 모듈 테스트 초기화면에서 Import 매개변수의 I_TAB, I_EDIT, I_SAPEDIT 그리고 I_MAX_LINES에 아래 화면과 같이 입력합니다.

  • I_TAB : 작업하고자 하는 SAP 데이터베이스 TABLE을 지정합니다.
  • I_EDIT, I_SAPEDIT : 테이블의 컬럼 데이터를 수정하기 위해 ‘X‘를 지정합니다.
  • I_MAX_LINES : 최대 적중 수를 입력합니다. “0”을 입력하면 테이블의 전체 레코드를 가져옵니다.

4. Import 매개변수를 입력하고 실행 버튼을 클릭합니다.

SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE) 1

5. 실행을 하게 되면 아래 화면과 같이 찾은 엔트리 조회 화면이 나타나게 됩니다.

6. 테이블의 Key에 해당하는 필드는 수정할 수 없고, 나머지 일반 필드는 데이터 수정이 가능합니다.

7. 테이블 필드의 값을 변경하고 상단의 저장 버튼을 클릭해서 변경된 내용을 저장합니다.

SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE) 2

8. 저장 버튼을 클릭하게 되면 변경되는 행의 건수가 표시 됩니다. 계속 버튼을 클릭해서 최종 저장하면 됩니다.

  • 변경된 행이 1건 있음을 표시해 주고 있습니다.
SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE) 3

찾은 엔트리에 표시되는 레코드를 필터링 해서 가져오는 방법

▶ 앞 단락의 설명에서처럼 별도의 필터링을 하지 않으면 대상 테이블의 전체 엔트리를 가져오거나 최대 적중 수에 정한 수만큼 앞의 레코드에서 엔트리를 가져오게 됩니다. 데이터를 변경할 목적이기에 원하는 레코드만 가져오도록 필터링 과정이 필요합니다.

1. Function 모듈 초기 화면의 아래 부분에 테이블의 레코드를 가져오기 위한 조건을 입력할 수 있는 매개변수를 추가할 수 있는 인터널테이블 정의 부분이 있습니다.

2. 필터링 검색 조건을 지정하기 위해 IT_SELFIELDS의 값 엔트리 부분을 클릭해 줍니다.

SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE) 4

3. 검색 조건의 FIELD와 필터 조건을 입력해 줍니다.

  • FIELD : 테이블 필드 이름을 입력해 줍니다.
  • S : Sign을 지정합니다. (I:포함, E:제외)
  • OP : Options을 지정합니다. (EQ, GE, LE, LT, GT 등)
  • LOW : Low 필터 조건을 입력합니다.
  • HIGH : High 필터 조건을 입력합니다.

4. 아래 예제에서는 SFLIGHT 테이블의 CARRID(항공사 ID) 필드 값이 “LH”이고, FLDATE(운항일)이 “1995.03.01” 보다 같거나 큰 레코드만 가져오도록 필터링 조건을 주었습니다.

5. 여러 필드에 조건을 추가할 경우 신규라인을 클릭해서 필드 조건을 추가할 수 있습니다.

SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE) 5

6. 필터링 되어 가져온 테이블 레코드 엔트리 입니다.

SAP 데이터베이스 테이블을 직접 업데이트하는 방법(SE16N_INTERFACE) 6

마무리

어렵게만 느껴졌던 SAP 데이터베이스 테이블을 쉽게 업데이트할 수 있게 되었습니다.

하지만 SAP 스텐다드 테이블을 임의로 변경하는 것은 향후 다른 문제를 야기할 수 있습니다. 따라서 스텐다드 테이블의 수정은 정상적인 트랜잭션을 통해 변경하는 것이 좋습니다.

여기에서 설명한 Function 모듈은 테이블을 변경하기 위해서 뿐만 아니라 일반적인 테이블 조회를 위해서도 사용할 수 있는 편리한 Function 모듈입니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기