SAP Code Inspector(SCI) 란, SAP ABAP Code 와 DDIC 오브젝트들을 점검하기 위해 제공되는 기본 도구(Tool) 로써, 개발 오브젝트들에 대한 성능, 안정성등의 검사 목적을 위해 사용된다.
Code Inspector 를 사용하여 오브젝트에 대한 구문 체크, 퍼포먼스, 보안, 컨버전 등등의 검사가 가능하며, 이는 CBO 개발 및 유지보수 시 품질에 대한 지표로 사용 가능하다.
여러 기능 중에서 본인이 필요한 항목으로 커스텀한 검사 셋트를 사용할 수도 있고, SAP 에서 기본으로 제공하는 검사 셋트(DEFAULT 등등)를 사용할 수도 있다.
Code Inscpector 를 수행하고, 결과 화면에서 대상 오브젝트의 검사 항목에 대한 Error, Warnings, Information 에 대한 정보를 한눈에 확인할 수 있으며, 각 항목을 더블 클릭하여, 즉시 해당 코드 라인으로 이동할 수 있다.
Tcode : SCI
Tcode SCI 를 접속하면 크게 3가지 입력필드가 있다.
Inspection 은 아래의 오브젝트 세트와 검사 세트의 조합을 정의한다.
사전에 정의된 오브젝트 세트와 검사 세트가 있다면, 해당 세트를 사용하여 특정 이름의 Inspection 을 저장하여 재사용이 가능하다.
여기에는 검사에 대상이되는 오브젝트 세트를 정의한다.
오브젝트 세트는 크게는 Software Component 부터 전송 계층, 개발클래스(Package) 단위로도 가능하며, 작게는 하나의 프로그램이나 DDIC 오브젝트 단위로도 가능하다.
정확히는 검사 변형(Check Variant) 이 맞으나, 직관적인 이해를 위해 검사 세트로 지칭한다.
SAP 에서 기본적으로 제공하는 여러 검사 세트가 존재하며, 사용자 요구사항에 맞게 커스텀으로 검사 세트를 만드는 것도 가능하다.
가장 기본적으로는 DEFAULT 검사 세트가 있으며, S4 Readiness Check 에 사용되는 검사 세트도 버전별로 존재한다.
대부분의 CBO 오브젝트는 Z
이름의 Package(개발클래스) 내에 존재하기에, 만약 모든 CBO 오브젝트를 대상으로 검사를 진행하고자 한다면 다음과 같이 설정하면 된다.
Package : Z*
그외에 개별 오브젝트에 대해서는 각 오브젝트 타입과 이름을 설정하면 된다.
개별 오브젝트에 대한 검사는 Tcode SE37, SE38, SE80 등등의 소스코드 브라우저에서도 가능하다.
DEFAULT 검사 세트는 SAP 기본 검사세트이며, 크게 다음 5가지 Tests 를 수행한다.
각 Tests 하위에는 추가 세부 항목이 있다.
(세부 항목에서도 종류에 따라 추가 옵션이 존재한다.)
DEFAULT 검사 세트 외에도 유용하다고 생각되는 검사 세트에 대해서 기록한다.
운영하는 SAP 버전 또는 SAP_BASIS 버전에 따라 검사 세트가 없을 수도 있다.
추가로 사용해 볼만한 검사 세트 조합에 대해서도 기록한다.
소스코드 내 오브젝트 타입이 정해진 네이밍 룰에 따라 제대로 맞춰져있는지 확인 가능하다.
아래 Tests 에 Attribute 추가옵션을 선택하여 네이밍 룰 조건을 정할 수 있다.
간혹 프로젝트 기간 중 사용하던 데이터 수정, 에디터 콜 관련 소스코드가 남아있는 경우가 있다.
다음 Test 로 해당 소스코드를 포함한 오브젝트를 확인할 수 있다.
N
/ Search String : EDITOR-CALL
N
/ Search String : SE16N_INTERFACE
오브젝트 세트와 검사 세트를 성공적으로 저장했다면, 해당 세트를 사용하여 반복적인 검사 수행이 가능하다.
Code Inspector Initial 화면의 Inspection 에 검사 이름을 지정하고 신규 생성 버튼을 클릭한다.
신규 생성 화면 내부에서 미리 저장한 오브젝트 세트와 검사 세트를 입력하고, 수행 버튼을 누르면 검사가 시작된다.
오브젝트 세트의 대상이 많을수록 검사에 오랜 시간이 소요되며, 이를 위해 병렬로 검사를 수행할 수 있다. (수행... 버튼)
병렬 검사를 수행하기 위해서는 사전에 Tcode RZ12 에서 병렬 수행 그룹이 존재해야한다.
검사 수행의 진행도는 하단의 인디케이터로 표시가 된다.
오브젝트 대상 세트에 대해서 모든 검사가 완료되면, 메뉴바의 Result 버튼으로 결과를 확인할 수 있다.
각 검사 세트 별로 Error, Warning, Information 이 카운팅되며, 이 중 Error 부분은 반드시 수정이 필요하다.
그 외 Warning 의 경우는 수정이 필요하지는 않지만, 품질 향상을 위해서 체크를 해볼만한 포인트이며, Information 의 경우는 단순 정보이므로 훑어보는 것만으로도 충분하다.
위와 같은 Code Inspector 는 트리거를 통해 자동 수행이나, 배치잡을 통해서 주기적으로 수행하도록 설정이 가능하다.
대표적으로, CTS 를 Release 할 때 수행되도록 트리거 설정이 가능하며, Tcode ATC (ABAP Test Cockpit) 를 사용하여 주기적으로 수행되도록 설정할 수 있다.
Tcode : SE03
-> Transport Organizer Tools
-> Administration
-> Global Customizing (Transport Organizer)
-> Object check at request or task release
-> globally activated
설정
Tcode : ATC
-> ATC Administration
-> Setup
-> Basic Settings 또는 Configure ATC
-> Code Inspector 블럭
-> Global Check Variant : <수행 검사 세트>
지정
-> Transport Tool Integration 블럭
-> Transport Settings - Do automatic checks on transport release
확인
Tcode : ATC
-> ATC Administration
-> Runs
-> Schedule Runs
-> 메뉴바 Create 클릭
-> Series Config. Name - <시리즈 이름>
입력
-> Check Run 블럭
-> Description : 매개변수 조합이며, Default 세팅 그대로 사용
-> Checks 블럭
-> Check Variant : <수행 검사 세트>
지정
-> Objects to Check 블럭 - Checkable Namespaces 탭
-> By Query 옵션으로 특정 오브젝트를 지정할 수 있다.
-> 또는 By Object Set 옵션으로 사전 정의된 <수행 오브젝트 세트>
도 지정 가능하다.
-> 저장
-> 생성된 시리즈 이름 선택
-> 메뉴바 Schedule 클릭
-> Header 블럭
-> Series Name : 선택한 시리즈 이름으로 자동 지정
-> Days Before Deletion : 보관 기간 설정
-> Execution 블럭
-> Number Processes : 병렬 수행 프로세스 수 설정. 가용 워크프로세스를 참조하여 설정
-> Schedule on Single Server / Server Group : 단일 서버 수행 / 서버 그룹 수행 선택
-> Notification 블럭
-> 알림 임계치와 알림 수신자 설정
-> 메뉴바 Execute in Background 클릭
-> Backgroud 수행 일시 및 주기 설정
-> 저장
위에서 설정한 일시 및 주기대로 SCI 가 정기적으로 수행된다.
해당 수행 결과는 다음 메뉴에서 확인 가능하다.
Tcode : ATC
-> ATC Administration
-> Runs
-> Monitor and Control Runs
단순히 결과만 확인해보고 참고용도로 사용해도 되지만, 결과를 바로 반영할 경우가 있다.
이때는 Manage Result 메뉴에서 정기 수행된 SCI 를 선택하여, 문제가 있는 소스코드로 바로 이동이 가능하다.
Tcode : ATC
-> ATC Administration
-> Runs
-> Manage Result