솔루션 홈
내부통제

SAP 통제 매트릭스 점검 — 업무영역별 통제 테스트 결과를 한 화면에서 가른다

정상·예외·미실시가 흩어져 있던 통제 테스트 결과를 한 화면에 모읍니다

통제 테스트는 보통 업무영역별로 담당팀이 따로 수행합니다. 전표 자가승인은 총계정원장팀이, 마스터 변경 승인은 마스터관리팀이, 중복지급 점검은 매입채무팀이 — 이렇게 결과가 흩어져 있으면 이번 달에 어느 통제가 예외 상태인지, 어느 팀이 아직 테스트를 마치지 않았는지 한눈에 보기가 어렵습니다.

여러 업무영역의 통제 테스트 결과를 통제 항목 단위로 모아 정상·예외·미실시로 구분하고, 예외로 판정된 통제는 위반 후보 상세까지 바로 확인할 수 있는 화면을 OpenUI5로 구현했습니다. 판정 결과는 "점검 필요" 수준으로만 표시해 최종 확인은 담당팀이 하도록 안내합니다. 실제 구동 화면 3종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 통제 원천 — 표준 회계전표(BKPF/BSEG)·변경문서(CDHDR/CDPOS)·미결항목 구조를 그대로 활용
  • 표준 화면 — 계정별 회선항목 조회(FBL3N) · 변경이력 조회(FB04)
항목내용
업무 영역재무회계(FI) · 내부통제
관련 대상 영역- (내부통제 · 통제 테스트 결과 집계)
Namespacezui5.ctrlmatrix
셸 구조조회조건 영역(우측 조회) + 통제 매트릭스 표, 위반 후보 상세 Dialog
화면 수조회 화면 1개 + 상세 다이얼로그
SAP 표준 T-code-
성격조회·집계형 — 통제 위반 여부의 최종 확인은 회사·감사인 몫
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

업무영역·점검월·결과상태를 넣고 조회하면 통제 매트릭스가 뜹니다 → 예외건수를 클릭하면 위반 후보 상세가 다이얼로그로 열립니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

Main.view.xml
통제 매트릭스 전체 조회 화면 — 업무영역별 결과상태
전체 조회 — 조회조건 영역 오른쪽 끝에 조회·초기화 버튼이 있고, 업무영역별 통제 테스트 결과가 정상·예외·미실시 색상으로 구분되어 표시됩니다.
조회 결과 — 업무영역 필터
업무영역을 매입채무로 좁혀 조회한 화면
업무영역 필터 — 매입채무로 좁혀 조회하면 해당 업무영역의 통제 항목만 남습니다.
위반 후보 상세
예외건수 클릭 시 뜨는 위반 후보 상세 다이얼로그
위반 후보 상세 — 예외건수를 클릭하면 전표/문서번호·금액·위험도가 담긴 상세 다이얼로그가 열립니다.

사용 방법

  1. 업무영역 · 점검월 · 결과상태를 지정합니다.
  2. 점검월 입력 필드에서 Enter 키를 누르거나 조회조건 영역 오른쪽 끝의 조회 버튼을 누르면 재조회됩니다. 초기화 버튼은 조건을 기본값으로 되돌립니다.
  3. 업무영역·결과상태를 "전체"로 두면 해당 조건 없이 조회합니다.
  4. 예외건수 숫자를 클릭하면 위반 후보 상세 다이얼로그가 열립니다(0건이면 열리지 않습니다).
  5. 현재 조회된 목록은 CSV로 내려받을 수 있습니다.

결과상태 판정 규칙

결과상태판정 조건사용자 조치
정상해당 점검월 테스트 결과가 통제 기준을 모두 충족별도 조치 불요
예외위반 후보가 1건 이상 발견됨(예외건수 > 0)예외건수를 클릭해 상세 확인 후 담당팀에 후속 확인 요청
미실시해당 점검월에 테스트가 아직 수행되지 않음테스트 수행 여부와 일정 확인

이 화면이 대신 정하지 않는 것

예외로 표시된 통제라도 정당한 사유가 있는 경우가 있어, 곧바로 통제 위반으로 단정하지 않습니다. 최종 판단은 회사와 감사인이 하며, 이 화면은 그 판단이 필요한 후보를 가려내는 점검 도구입니다.

통제 테스트 집계 절차

단계내용
1단계업무영역별 통제 항목을 마스터로 정의
2단계정의된 주기(월·분기)에 따라 통제 테스트를 수행하고 결과를 기록
3단계예외로 판정된 통제는 위반 후보 건을 통제ID 단위로 상세 기록
4단계통제별 예외건수와 위반 후보 상세 건수를 대사해 집계 오차 여부 확인
5단계집계 결과를 업무영역 · 점검월 · 결과상태 기준으로 화면에 표시

조회조건

필드필수설명
업무영역선택전체/매출채권/매입채무/총계정원장/고정자산/세무/마스터데이터/자금(전체 선택 시 조건 미전달)
점검월선택YYYY-MM, Enter 키로 바로 조회
결과상태선택전체/정상/예외/미실시

결과 컬럼

컬럼설명
통제ID·업무영역·통제항목통제 항목 식별 정보
점검주기·점검월·최종점검일테스트 수행 주기와 최근 수행 이력
결과상태·예외건수정상/예외/미실시 및 위반 후보 건수(클릭 시 상세)
담당팀해당 통제의 담당 조직

SAP 표준 기능 매핑

SAP 표준 T-code연관 기능
-여러 업무영역 통제 테스트 결과를 통합 요약하는 화면으로, 단일 표준 T-code에는 대응되지 않습니다.

분석 지표 정의표

지표정의산출 방식
ExceptionCount통제별 위반 후보 집계 건수COUNT(위반 후보 상세 WHERE 통제ID = 해당 통제)
ResultStatus정상/예외/미실시 판정 결과예외건수와 테스트 수행 여부 기준 판정

참고 CDS 뷰

운영 서비스로 연결할 때를 가정해 새로 스케치한 조회 뷰 예시입니다(운영 반영 시 권한 체크를 추가해야 합니다).

define view I_CtrlMatrixSketch
  as select from bkpf as Header
  left outer join cdhdr as Chg
    on Chg.objectid = Header.bukrs
{
  key Header.bukrs      as ControlId,
      'GL'              as ControlArea,
      count(*)          as TestedCount
}
// 통제별 예외건수는 위반 후보 상세를 통제ID로 집계해 별도 산출

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 Panel + 통제 매트릭스 표
조회조건sap.m.Select · sap.m.Input — 우측 끝에 조회 버튼, Enter 키로 즉시 재조회
결과 목록sap.m.Table — 예외건수 링크 클릭 시 상세 다이얼로그
상세sap.m.Dialog — 선택 통제의 위반 후보 상세 표시
공통 처리전역 오류 처리기(ErrorHandler)

서비스 경로는 manifest.jsondataSources 에 상대 경로로 선언한 OData 모델을 그대로 바인딩하며, 조회조건은 sap.ui.model.Filter 로 조립해 $filter 로만 전달합니다. 업무영역·결과상태를 "전체"로 둘 때는 필터를 아예 생성하지 않습니다.

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon
Component.js컴포넌트 초기화, 전역 오류 처리기 연결
manifest.json앱 디스크립터 — zui5.ctrlmatrix · OData dataSources · ko 로케일
view/Main.view.xml조회조건 + 통제 매트릭스 표
view/DetailDialog.fragment.xml위반 후보 상세 다이얼로그
controller/Main.controller.js조회·필터 조립·다이얼로그 로직
controller/BaseController.js공통 처리(CSV 다운로드 등)
model/ErrorHandler.js전역 오류 처리
model/formatter.js결과상태·위험도 서식
i18n/i18n_ko.propertiesko 로케일 리소스

검증 환경 구성 상세는 이 글에서 다루지 않습니다. 운영 전환 시에는 화면과 판정 로직은 그대로 두고 데이터 계층만 실제 서비스 호출에 맞추면 됩니다.

검증 결과

화면 구성에 쓴 데이터는 통제별 예외건수 = 위반 후보 상세 건수 관계가 항상 성립하도록 구성했습니다.

검증 항목결과
대사식 전수 검증(예외건수 = 위반 후보 상세 건수, 20건 대상)통과(불일치 0건)
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출0건
화면 렌더링 — 실브라우저에서 조회 → 필터 → 상세 확인까지 실동작 후 캡처3/3
조회 버튼 위치 · sap_horizon 테마 적용 · Enter 키 조회확인
OData 계약 — 동사 경로 미사용, $filter·$orderby 로만 조회조건 전달확인

통제·거래 데이터는 모두 검증용으로 구성한 가상 데이터입니다.

자주 묻는 질문

이 화면은 어떤 통제를 대상으로 하나요?

전표 자가승인·마스터 변경 승인·중복지급·여신한도 등 여러 업무영역의 통제 테스트 결과를 통제 항목 단위로 모아 보여줍니다. 개별 통제의 세부 판정 로직은 각 통제별 점검 화면에서 별도로 관리합니다.

결과상태는 어떻게 나뉘나요?

해당 점검월 테스트가 기준을 모두 충족하면 정상, 위반 후보가 1건 이상이면 예외, 아직 테스트가 수행되지 않았으면 미실시로 구분합니다.

예외로 표시되면 곧바로 통제 위반인가요?

아니요. 이 화면은 통제 테스트 결과를 모아 보여주는 조회·점검 도구이며, 위반 후보로 표시된 건에 대한 최종 판단은 회사와 감사인이 합니다.

화면의 수치는 실시간 SAP 데이터인가요?

실제 운영 화면은 OData 서비스를 통해 조회합니다. 이 글에 표시된 수치와 캡처는 검증용 샘플 데이터이며 실제 업무 데이터가 아닙니다.

흩어진 통제 테스트 결과, 한 화면에서 확인해 보세요

업무영역마다 따로 관리되던 통제 테스트 결과를 한 화면에 모아 두면, 이번 달 어느 통제가 예외 상태인지 바로 확인할 수 있습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

내부통제통제 매트릭스통제 테스트위반 후보OpenUI5