ABAP

SAP CBO 에서 Standard Change Log 사용하기.

공사중 2021. 4. 14. 19:28

안녕하세요.

공사중 입니다. 

 

SAP 에서 CBO 프로세스를 개발 하려할때, 변경 History 를 구현해야하는 일이 종종 있습니다.

보통 Time Stamp 를 Key Field 로 추가해서 신규 테이블을 만들어 변경시마다 삽입 처리하거나 하는데요. 

 

필요없이 저장되는 필드들도 많고, 따로 레포트도 만들어줘야하는 번거로움도 있습니다. 

 

SAP 표준에서 변경 로그로 잘알려진 CDHDR / CDPOS  테이블에 변경로그를 저장하는 방법에 대해 공유드립니다.

 

(1) 변경 로그를 남길 대상 필드의 Data Element 에 Change Document 체크박스에 체크표시.

  • 모든 필드의 변경사항을 다 남길 필요가 없기 때문에, 변경대상의 Field에 지정된 Data Element 에만 설정하면 됩니다.

< Data Element 의 Change Document 위치 >

(2) 변경문서 오브젝트 ( T-Code : SCDO ) 만들기.

 

  • 초기화면에서 Object ID 입력후 생성 버튼을 눌러서 생성작업을 시작 합니다. 

< SHDO 초기화면 >

 

  • 변경 로그를 저장할 테이블을 입력후 생성 버튼을 눌러서 관련된 객체들에 대한 생성을 진행합니다.

< 변경 문서 오브젝트 생성 화면 >

 

  • 관련 펑션이 추가될 Funcgion Group 을 만들고, Popup 창에 입력하고 생성버튼으로 진행합니다. 

< 갱신 프로그램 생성 Popup >

  • 갱신 프로그램의 작성 결과를 확인하고, 반드시 활성화 버튼을 눌러서 활성화 해야합니다.

< 갱신프로그램 생성 결과 >

내역중에 갱신 기능 모듈 "YTESTCMD_WRITE_DOCUMENT" 가 만들어진 것을 확인할 수 있습니다. 

( 네이밍룰이 "변경문서오브젝트ID"+"_WRITE_DOCUMENT" 인것을 알수 있습니다. )

 

만들어진 Function Module 을 호출해서 변경 로그를 저장하시면 됩니다. 

< 갱신 펑션 호출 예시 >

  • ICDTXT_~ 의 파라메터에는 빈값을 전달하셔도 됩니다.
  • Function Module 에서 입력한 이전데이터와 이후데이터를 비교해서, 변경된 필드만 로그에 저장합니다.

변경로그 조회는 T-code : FMCA_TRM_CD ( Program : RSSCD100 ) 으로 가능합니다. 

< 변경 이력 조회 선택화면 >

 

실제로 만들어서 사용해보니, 적은 공수로 완성도도 높은 프로세스를 만들어 제공할 수 있었습니다.

 

현재는 변경로그가 필요한 경우에 무조건 쓰게 되더라구요~~^^;;

 

끝...