재무회계

SAP 현금흐름표 총액·순액 표시 점검 — IAS 7, 순액으로 올린 투자·재무활동 현금흐름이 예외 요건을 채우는지 거래 명세로 다시 계산해 장부와 대조한다

총액 표시 원칙과 순액 표시 예외 요건 점검 · 항목별 회전 횟수·평균 만기일수 재계산 · 총액 환산 시 유입 증가분 · 명세·항목·활동 3층 대사 — 소개 영상과 실제 화면 7종, 그리고 CDS 코드까지

소개 영상49초9개 장면조회 → 점검 필요 좁히기 → 상세 → 활동 집계 → 명세 → 대사

개발 배경

결산을 앞두고 현금흐름표를 맞추는 팀이 매번 마주치는 질문이 있습니다. 이 항목은 총액으로 올려야 하나, 순액으로 올려도 되나. 투자활동과 재무활동의 현금유입과 현금유출은 원칙적으로 구분해 총액으로 표시하는 것이 기본이고, 고객을 대신해 받거나 준 돈이거나 회전이 빠르고 금액이 크며 만기가 짧은 항목에 한해 순액 표시가 허용되는 예외가 있습니다. 관련 요구사항은 IAS 7 현금흐름표(K-IFRS 제1007호)입니다.

문제는 그 예외를 "충족했다"고 말할 근거를 매 분기 다시 모아야 한다는 점입니다. 표준 화면은 전표 라인을 보여 주지만 회전 횟수나 평균 만기일수는 계산해 주지 않고, 그 계산은 보통 엑셀 시트에서 사람이 합니다. 이 앱은 그 시트가 하던 일, 곧 순액으로 올린 항목마다 요건을 다시 계산해 보고 총액으로 바꾸면 유입이 얼마나 늘어나는지까지 보여 주는 일을 한 화면에 옮겨 둔 것입니다. 이 화면은 분류·집계·대사를 돕는 점검 도구이고, 총액·순액 표시의 최종 판단은 회사와 감사인이 합니다.

순액 표시의 근거는 항목마다 따로 흩어져 있다

순액으로 올린 항목이 열 개라면 근거도 열 갈래입니다. 어떤 항목은 고객 대신 받은 돈이라는 사실이, 어떤 항목은 만기와 회전과 금액 세 숫자가 근거입니다. 이 근거들이 결산 파일 여러 곳에 흩어져 있으면 감사 대응 때 같은 질문에 매번 새로 답을 만들게 됩니다. 이 앱은 항목마다 근거를 같은 형식의 한 줄로 모아, 요건을 채운 항목과 다시 확인할 항목을 같은 표에서 나누어 보여 줍니다.

합계가 맞아도 층이 어긋나 있을 수 있다

활동별 순증감이 현금 증감과 맞는 것만 확인하면 항목 수준의 오류는 가려집니다. 항목 합계는 맞는데 명세 합계와는 어긋나 있는 경우가 대표적입니다. 이 앱은 명세 → 항목 → 활동의 세 층을 서로 다시 합산해 보는 대사식 일곱 개를 매번 돌려, 어느 층에서 어긋났는지 바로 좁힐 수 있게 합니다.

"점검 필요"가 많아질수록 설명 문장이 필요하다

점검 대상이 "요건 미충족" 한 줄로만 표시되면 담당자는 결국 근거를 직접 열어 봐야 합니다. 이 앱은 만기가 길어서인지, 회전이 부족해서인지, 금액이 작아서인지를 점검 내용에 문장으로 남기고, 그 항목의 거래 명세를 같은 창에서 열어 줍니다. 판단을 대신하지 않고 판단에 필요한 재료를 한 자리에 두는 것이 이 화면의 일입니다.

사용 방법

  1. 조회조건 입력 — 회계연도(필수, 4자리)를 넣고 필요하면 기간·활동 구분·항목·현재 표시 방식·기준일 범위·점검 결과를 고릅니다. 비워 두거나 "전체"를 고른 조건은 적용되지 않습니다.
  2. 조회 — 조회 버튼을 누르거나 회계연도 칸에서 Enter 를 누릅니다. 화면을 처음 열 때는 기본 조건으로 자동 조회됩니다.
  3. 요약 확인 — 판정 항목 수, 순액 표시 항목 수, 점검 필요 항목 수, 총액 환산 시 유입 증가분, 대사 차이 건수를 먼저 봅니다.
  4. 탭 이동 — 항목별 판정 → 활동별 집계 → 거래 명세 → 정합성 대사 순서로 근거 쪽으로 내려갑니다.
  5. 행 클릭 상세 — 항목 행을 누르면 판정 사유와 해당 항목의 거래 명세가 한 창에 열립니다.
  6. 내보내기 — 현재 탭의 결과를 화면의 컬럼 이름과 표시 형식 그대로 UTF-8 CSV 로 내려받습니다.

숫자를 믿을 수 있는가 — 검증 결과

화면에 나오는 숫자는 서비스가 계산하고, 그 계산을 서비스와 무관한 코드로 한 번 더 계산해 비교했습니다. 검사는 대사식 7종을 세 기간에 걸쳐 돌린 135건이며 차이는 0건입니다. 항목 판정 30건도 같은 규칙으로 다시 구해 불일치가 0건이었습니다.

대사식검사 건수차이 건수
R01 항목 순액 = 총유입 − 총유출300
R02 항목 총유입 = 명세 유입 합300
R03 항목 총유출 = 명세 유출 합300
R04 활동 순증감 = 소속 항목 순액 합60
R05 표시 유입 − 표시 유출 = 순액300
R06 순액 표시 건수 = 요건 부합 + 점검 필요30
R07 활동별 증가분 합 = 항목별 증가분 합60
합계1350

샘플 데이터에는 점검 필요 항목이 일부러 5건 들어 있습니다(2026-07 단기차입금, 2026-08 단기매매증권·단기차입금·임대보증금, 2026-09 장기대여금). 이는 판정이 제대로 걸러내는지 보기 위한 의도적 예외이며 대사 차이와는 따로 기록했습니다. 금액·항목·거래처는 모두 가상이고 단위는 백만원입니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 1.120 표 컨트롤과 탭 4개, 조회조건 영역, 상세 창표가 서버 정렬·페이징을 그대로 쓰므로 행이 늘어도 화면 구조를 바꾸지 않습니다.
판정·집계 로직서비스 쪽 한 파일(항목 판정, 활동 집계, 대사 계산, 총액 환산 함수)판정을 화면에 두면 화면마다 결론이 달라질 수 있어 서비스에 한 번만 둡니다.
OData 구성OData V2 서비스 한 개, 엔티티 네 개(항목·활동·명세·대사)와 함수 한 개탭마다 엔티티 하나에 표를 직접 연결하고, 조회조건은 표준 필터 객체로 서비스에 전달합니다.
조회조건 처리문자열 조건은 정확히 같음, 기준일은 범위, "전체"는 조건 생략서비스가 날짜 조건을 직접 처리해 화면은 날짜를 가공하지 않습니다.
오류 처리구성 정보 로드 실패와 요청 실패를 구분해 안내하는 처리기서비스 설정이 잘못된 것과 서버가 응답하지 못한 것은 조치가 다릅니다.
테마·표시sap_horizon, 금액은 소수 첫째 자리, 단위 백만원SAP 표준 화면과 같은 시각 언어를 써서 사용자가 다시 배울 것이 적습니다.

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

전표·계정·전기일·금액의 개념은 표준 데이터 구조를 그대로 이어받습니다. 명세의 전표번호는 표준 전표 조회에서 그대로 열 수 있고, 계정 단위 대사는 표준 계정 개별 항목 조회·잔액 조회와 맞춰 볼 수 있습니다. 이 앱은 표준 실행을 대신하지 않고, 표준이 담당하는 기록 위에 점검 관점을 더해 확장합니다.

실행 화면

아래 화면은 모두 검증용 샘플 데이터(가상, 단위 백만원)로 실제 렌더링한 것입니다. 화면 순서는 실제로 쓰는 순서를 따랐습니다.

처음 열었을 때와 점검 필요 항목 좁히기

조회조건과 요약, 첫 탭이 한 화면에 나오고, 점검 결과 조건 하나로 다시 확인할 항목만 남길 수 있습니다.

처음 열었을 때 — 조회조건과 요약 지표
처음 열었을 때 — 조회조건과 요약 지표 — 조회조건 영역, 요약 지표 다섯 개, 첫 탭(항목별 표시 방식 판정)이 한 화면에 나옵니다.

회계연도는 필수이고 기본값은 2026년·기간 전체입니다. 화면을 열면 자동으로 한 번 조회하므로 아무것도 누르지 않아도 30개 판정 행이 보입니다. 조회 버튼은 조회조건 오른쪽 끝에 있고 회계연도 칸에서 Enter 를 눌러도 같은 조회가 됩니다. 요약 지표 중 "점검 필요" 건수와 "총액 환산 시 유입 증가분"을 가장 먼저 보면 됩니다. 두 숫자가 0 이면 이번 조건 범위에서는 다시 확인할 순액 표시 항목이 없다는 뜻입니다.

점검 필요 항목만 좁혀 보기
점검 필요 항목만 좁혀 보기 — 점검 결과를 "점검 필요"로 두고 조회하면 순액으로 표시했지만 요건을 다시 확인해야 할 항목만 남습니다.

샘플에서는 세 기간을 합쳐 5건이 남습니다. 행마다 회전 횟수·평균 만기일수·총유입이 나란히 있어 어느 요건이 걸렸는지 한눈에 읽힙니다. 점검 내용 칸에는 만기, 회전, 금액 중 무엇이 기준에 못 미쳤는지가 문장으로 적힙니다. "점검 필요"는 원인이나 위반을 단정하는 표시가 아니라 다시 확인하라는 신호이며, 기준값은 회사 정책으로 바꿀 수 있는 샘플 값입니다.

활동별로 접고 명세로 내려가기

항목 판정을 활동 단위로 접어 보고, 판정의 근거가 되는 전표 단위 명세까지 내려갑니다.

활동별 집계 — 투자활동과 재무활동
활동별 집계 — 투자활동과 재무활동 — 투자활동·재무활동을 기간별로 나눠 총유입·총유출·순증감과 표시 유입·표시 유출 합계를 보여 줍니다.

같은 활동 안에서 표시 방식이 총액이든 순액이든 순증감은 같아야 합니다. 이 탭은 그 사실을 합계로 확인하는 자리입니다. 표시 유입·표시 유출은 방식에 따라 달라지고, 그 차이가 "총액 환산 시 유입 증가분"으로 따로 집계됩니다. 점검 필요 항목 수가 있는 활동은 첫 탭으로 돌아가 해당 항목을 눌러 보면 됩니다.

거래 명세 — 판정의 근거가 되는 전표 단위 내역
거래 명세 — 판정의 근거가 되는 전표 단위 내역 — 전표·전기일·방향(유입·유출)·금액·만기일수·거래처를 한 줄씩 보여 줍니다.

항목 숫자를 의심할 때 가장 먼저 내려오는 탭입니다. 유입 건수가 곧 회전 횟수이고 유입 금액으로 가중한 만기일수가 평균 만기일수이므로, 명세만 있으면 판정을 손으로 다시 계산해 볼 수 있습니다. 명세의 전표번호는 표준 전표 조회로 원본을 확인할 때 그대로 입력하면 됩니다.

대사로 확인하고 상세로 사유 읽기

세 층의 합계가 서로 맞는지 확인하고, 점검 필요 항목은 상세 창에서 사유와 명세를 함께 읽습니다.

정합성 대사 — 일곱 개 식의 좌변과 우변
정합성 대사 — 일곱 개 식의 좌변과 우변 — 대사식 7종의 좌변·우변 합계, 검사 건수, 차이 건수, 최대 차이를 기간별로 보여 줍니다.

항목 합계와 명세 합계, 활동 합계와 항목 합계가 서로 맞는지를 화면이 스스로 매번 다시 잽니다. 차이 건수가 0 이 아닌 줄이 있으면 그 줄의 좌변·우변을 보고 어느 층에서 어긋났는지를 찾습니다. 샘플 데이터에는 이 대사가 모두 0 으로 나오도록 만들었고, 점검 필요 항목은 대사 차이와 분리해 따로 기록했습니다.

항목 상세 — 판정 사유와 명세를 한 창에서
항목 상세 — 판정 사유와 명세를 한 창에서 — 항목 행을 누르면 열리는 창에서 회전 횟수·평균 만기일수·표시 유입/유출·점검 내용과 그 항목의 거래 명세를 봅니다.

목록에서 이미 본 숫자를 창 안에서 다시 풀어 보여 주는 화면입니다. 판정 조건과 항목의 실제 값이 같은 창에 있어 "왜 점검 필요인가"가 바로 읽힙니다. 창을 닫으면 조회조건과 스크롤 위치가 그대로 남아 다음 항목으로 이어 갈 수 있습니다.

좁은 화면에서 본 모습

좁은 화면 — 폭 900픽셀
좁은 화면 — 폭 900픽셀 — 화면 폭이 줄어들면 조회조건이 줄바꿈되고 요약 지표가 여러 줄로 나뉩니다.

표는 컬럼을 줄이지 않고 가로 스크롤로 같은 내용을 보여 줍니다. 노트북 분할 화면이나 태블릿에서도 판정 컬럼이 빠지지 않는다는 점이 중요합니다. 조회 버튼과 초기화 버튼은 좁아져도 조회조건 바로 옆에 남습니다.

좁은 화면에서도 컬럼은 줄지 않고, 조회조건·요약 지표의 배치만 바뀝니다. 아래 장에서 설명하는 판정 규칙과 조회조건은 화면 폭과 무관하게 같습니다.

화면 뒤에서 일어나는 일

조회 버튼을 누르면 화면은 입력한 조건으로 표준 필터 객체를 만들어 서비스에 보내고, 서비스는 명세를 읽어 항목 단위로 접어 판정까지 끝낸 행을 돌려줍니다. 화면은 받은 행을 그대로 표에 연결하고, 정렬과 스크롤도 서비스가 처리합니다. 요약 지표 중 "총액 환산 시 유입 증가분"만 서비스의 함수를 한 번 더 불러 받아 옵니다.

순액 표시 요건 판정 규칙

아래 허용 기준(평균 만기 90일 이내, 회전 4회 이상, 총유입 1,000 이상)은 설명을 위한 샘플 값이며 회사 정책에 따라 조정해야 합니다. 기준서가 정한 구체 수치와의 대조는 확인 필요입니다.

점검 대상판정 조건결과 상태사용자 조치
항목고객 대신 수취·지급 항목이고 순액으로 표시정상-
항목순액으로 표시했고 평균 만기 90일 이내, 회전 4회 이상, 총유입 1,000 이상을 모두 충족정상-
항목순액으로 표시했고 고객 대신 항목이 아니며 위 세 조건 중 하나라도 미충족점검 필요점검 내용의 사유(만기·회전·금액)를 확인하고, 총액 표시로 바꾸면 늘어나는 유입을 함께 검토
항목총액으로 표시정상-
활동소속 항목 중 점검 필요가 1건 이상점검 필요소속 항목의 점검 내용 확인
그 밖위 조건에 해당하지 않음정상-

산출 순서와 대사식

  1. 총유입은 명세 중 방향이 유입인 금액의 합, 총유출은 방향이 유출인 금액의 합입니다.
  2. 순액 = 총유입 − 총유출
  3. 회전 횟수 = 유입 명세 건수, 평균 만기일수 = Σ(유입 금액 × 만기일수) ÷ 총유입(반올림한 정수)
  4. 순액 표시 요건 부합 = 고객 대신 수취·지급이거나 (0 < 평균 만기일수 ≤ 90 이고 회전 횟수 ≥ 4 이고 총유입 ≥ 1,000)
  5. 표시 유입·표시 유출은 총액 표시이면 (총유입, 총유출), 순액 표시이면 (max(순액, 0), max(−순액, 0))입니다.
  6. 점검 결과는 순액 표시이면서 요건 부합이 아니면 점검 필요, 그 밖은 정상입니다.
  7. 총액 환산 시 유입 증가분 = 순액 표시이면서 점검 필요인 항목의 (총유입 − 표시 유입)

금액 단위는 백만원이며 소수 첫째 자리까지 다룹니다. "고객 대신" 판정 방식과 만기·회전·금액 기준은 회사 정책으로 정하며 이 글에서는 확인 필요로 남겨 둡니다.

조회조건

조건필수적용 대상설명
회계연도필수전 탭4자리 숫자. 기본값 2026
기간(월)선택전 탭전체 · 2026-07 · 2026-08 · 2026-09
활동 구분선택항목·활동·명세투자활동 · 재무활동 (전체 선택 시 조건 제외)
항목선택항목·명세10개 항목 중 선택 (전체 선택 시 조건 제외)
현재 표시 방식선택항목총액 · 순액
기준일 시작/종료선택항목·활동·명세날짜 범위. 서비스가 직접 처리
점검 결과선택항목·활동정상 · 점검 필요

대사 탭은 회계연도·기간만 조건으로 받고, 거래 명세 탭은 현재 표시 방식·점검 결과 조건을 적용하지 않습니다.

결과 컬럼

탭주요 컬럼의미와 산출식
항목별 표시 방식 판정기간 · 항목 · 활동 구분 · 현재 표시 방식항목이 어느 활동에 속하고 지금 어느 방식으로 올렸는지
항목별 표시 방식 판정회전 횟수 · 평균 만기일수 · 총유입 · 총유출 · 순액유입 건수 · 가중 평균 만기 · 방향별 합 · 총유입 − 총유출
항목별 표시 방식 판정점검 결과 · 순액 표시 요건 부합 · 표시 유입/유출 · 증가분위 판정 규칙과 산출 순서대로 계산한 값
활동별 집계항목 수 · 순액 표시 항목 수 · 점검 필요 항목 수 · 순증감소속 항목의 건수와 합계
거래 명세전표 · 전기일 · 방향 · 금액 · 만기일수 · 거래처항목 판정의 근거 행
정합성 대사대사식 · 좌변/우변 합계 · 검사 건수 · 차이 건수 · 최대 차이세 층 합계의 일치 여부

좁은 화면에서 달라지는 것

폭이 줄면 조회조건이 여러 줄로 나뉘고 요약 지표도 줄바꿈됩니다. 표는 컬럼 수를 줄이지 않고 가로 스크롤을 줍니다. 상세 창은 화면 폭에 맞춰 줄어들며 닫으면 이전 조회 상태가 그대로 남습니다.

파일 구성

화면 앱
├─ 시작 파일 · 앱 설정 · 컴포넌트
├─ 화면 정의(메인 화면 · 상세 창)
├─ 컨트롤러(조회·정렬·상세·내보내기)
├─ 모델 보조(표시 형식 · 오류 처리)
├─ 문구 · 스타일
└─ 서비스 구현(항목 판정 · 활동 집계 · 대사 · 총액 환산 함수)

SAP 표준 기능 확장 포인트

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 아래 표는 표준 화면으로 충분한 일과 이 앱이 더하는 관점을 나란히 놓은 것입니다.

표준으로 되는 것과 안 되는 것

하고 싶은 일SAP 표준표준에서 걸리는 자리이 앱이 하는 일
계정별 전표 라인 확인FBL3N · FAGLL03라인은 보이지만 항목별 회전·만기 계산은 따로 해야 합니다라인을 항목 단위로 접어 회전 횟수·평균 만기일수를 계산
계정 잔액 변동 확인FAGLB03기간 잔액은 보이지만 총액·순액 표시 구분은 없습니다활동별 순증감과 표시 유입·유출을 나란히 제시
전표 원본 확인FB03전표 한 건씩 열어야 합니다명세에서 전표를 골라 같은 번호로 바로 확인
순액 표시 요건 재계산없음표준 거래에는 이 계산이 없습니다만기·회전·금액 기준으로 항목마다 판정
표시 방식 변경의 영향없음총액으로 바꾸면 유입이 얼마나 늘지 계산할 곳이 없습니다총액 환산 시 유입 증가분을 항목·활동별로 집계

T-code 별 연계 지점

T-code이름연계
FBL3NG/L 계정 개별 항목 조회이 앱의 명세가 읽는 라인 항목과 같은 원천입니다. 이 앱 결과 → FBL3N: 항목의 계정과 기간으로 라인을 열어 명세 합계와 맞춥니다. 법정·감사 대응 자료는 표준 화면에 그대로 남겨 둡니다.
FAGLL03G/L 계정 개별 항목 조회(원장 기준)원장별로 같은 라인을 보며 근거 금액을 대조합니다. 원장이 여럿인 회사는 이 앱의 원장 조건을 같은 값으로 맞춥니다.
FAGLB03G/L 계정 잔액 조회활동별 순증감과 기간별 잔액 변동을 맞춥니다. 표준 화면 값 → 이 앱: 같은 기간의 활동 탭 순증감과 비교합니다.
FB03전표 조회명세의 전표번호를 그대로 넣어 거래처·전기일·금액 원본을 확인합니다.

운영 전환 시에도 기존 리포트를 없앨 필요는 없습니다. 표준 화면은 법정·감사 대응의 기록으로 그대로 두고, 이 앱은 결산 전에 순액 표시 항목을 다시 확인하는 용도로 나란히 씁니다.

S/4HANA 분석 스택과의 자리

이 앱의 계산은 CDS 큐브와 분석 쿼리로 옮길 수 있게 나뉘어 있습니다. 표준 Fiori 분석 앱이나 Analysis for Office 에서 같은 쿼리를 읽으면 같은 판정이 나오고, 이 앱의 화면은 그 위에서 점검 흐름(조회 → 점검 필요 좁히기 → 상세 → 대사)을 맡습니다. 표준 CDS 뷰의 이름과 필드는 릴리스마다 다를 수 있어 이 글에서는 원천 테이블 기준으로 쓰고, 표준 뷰 사용 여부는 확인 필요로 둡니다.

확장 포인트 — 운영에서 실제로 손대는 자리

자리무엇을 손대나비고
항목 배정계정·전표를 어느 항목·활동에 묶는지, 현재 표시 방식, 고객 대신 구분회사 설계 자료. 계정이 늘 때마다 갱신
기준값평균 만기 · 회전 · 총유입 기준샘플 90일·4회·1,000. 회사 정책으로 정함
만기일수 원천명세별 만기일수를 어느 필드에서 가져올지확인 필요
확장 필드계약 구분·상대방 구분 등 회사가 붙이는 필드커스텀 필드로 추가 후 뷰에 노출
권한회사코드·원장 단위 조회 범위접근 제어(DCL)에서 설정
서비스 주소화면 설정의 서비스 경로를 운영 서비스로 교체화면 코드는 그대로

요구사항 매핑

기준서요구사항대응 기능원천 데이터비고
IAS 7 현금흐름표(K-IFRS 제1007호)투자활동·재무활동의 총현금유입과 총현금유출을 구분해 총액으로 표시항목별 판정, 활동별 집계전표 라인 항목, 현금흐름 항목 배정(회사 설계)배정 방식은 확인 필요
IAS 7 현금흐름표(K-IFRS 제1007호)순액 표시 예외 — 고객 대신 수취·지급 항목고객 대신 판정, 판정 규칙거래처 구분(회사 설계)판정 기준은 회사 정책
IAS 7 현금흐름표(K-IFRS 제1007호)순액 표시 예외 — 회전이 빠르고 금액이 크며 만기가 짧은 항목회전 횟수·평균 만기일수·총유입 판정거래 명세샘플 기준 90일·4회·1,000, 확인 필요
IAS 7 현금흐름표(K-IFRS 제1007호)표시 방식과 관계없이 활동별 순현금흐름은 같아야 함정합성 대사 R04·R05항목 판정·활동 집계-

CDS 구성

아래는 같은 판정을 S/4HANA 의 CDS 로 옮길 때의 구성안입니다. 샘플 앱의 서비스 로직과 같은 규칙을 뷰 단계로 나눈 것이며, 객체 이름은 설명을 위한 가상의 이름입니다. 표준 CDS 뷰의 이름과 필드는 릴리스별 확인 필요이고, 여기서는 원천 테이블을 직접 읽는 형태로 적었습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준(매핑 테이블)항목 배정표 · 기준값 테이블계정이 속한 항목·활동·표시 방식과 판정 기준값을 보관계정이 늘 때 이송 없이 현업이 고칠 수 있게
기준 뷰현금흐름 명세원장 전표 라인에 배정표를 붙여 한 줄에 모음판정·집계·대사가 같은 원천을 읽게
큐브항목 판정 큐브항목 단위로 접어 총유입·총유출·회전·평균 만기를 계산판정을 뷰에 두어 모든 소비자가 같은 결론을 내게
쿼리/Consumption항목 점검 쿼리 · 활동 집계 쿼리요건 부합·점검 결과·조회조건 노출계산과 화면 노출을 나눠 변경 범위를 줄이려고
권한(DCL)접근 제어회사코드 단위로 조회 범위 제한아래에서 한 번만 걸어 모든 탭에 적용
서비스서비스 정의 · 바인딩쿼리를 OData 로 노출화면은 바인딩 주소만 알면 되도록

① 항목 배정표 — 계정이 어느 항목·활동에 속하는지를 정하는 자리

표준 계정 마스터에는 "이 계정을 현금흐름표의 어느 항목에, 총액으로 올릴지 순액으로 올릴지"에 대한 정보가 없습니다. 이 구분은 회사가 정하는 설계 자료이므로 코드에 묻지 않고 테이블로 뺍니다. 운영에서는 이 표가 비어 있거나 틀리면 판정 전체가 무의미해지므로 가장 먼저 합의해야 하는 객체입니다.

" ─────────────────────────────────────────────────────────────
"  ZCFNET_FLOWMAP — 현금흐름 항목 배정표
"  역할 : 계정이 어느 현금흐름 항목·활동에 속하는지, 현재 총액/순액 중 무엇으로
"         올리는지, 고객 대신 수취·지급 항목인지를 회사가 직접 적는 자리
"  이렇게 나눈 이유 : 표준 계정 마스터에는 이 구분이 없다. 코드에 묻어 두면
"         계정이 늘 때마다 이송이 필요하므로 현업이 고치는 테이블로 뺀다
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '현금흐름 항목 배정'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zcfnet_flowmap {
  key client   : abap.clnt not null;
  key bukrs    : bukrs not null;
  key saknr    : saknr not null;
  flow_no      : abap.char(3) not null;   " F01 ~ F10
  activity     : abap.char(3) not null;   " INV(투자) / FIN(재무)
  shown_basis  : abap.char(5) not null;   " GROSS(총액) / NET(순액)
  on_behalf    : abap_boolean;            " 고객 대신 수취·지급 여부
}

② 기준값 테이블 — 90일·4회·1,000 을 데이터로 두는 자리

순액 표시 예외의 구체 수치는 회사 정책과 감사인의 해석에 따라 달라질 수 있습니다. 샘플의 값을 뷰에 박아 두면 정책이 바뀔 때마다 이송이 필요하므로, 회사코드 단위로 값을 읽는 테이블로 분리합니다.

" ─────────────────────────────────────────────────────────────
"  ZCFNET_PARAM — 순액 표시 점검 기준값
"  역할 : 만기 일수 상한, 회전 횟수 하한, 총유입 하한을 회사 정책으로 보관
"  이렇게 나눈 이유 : 샘플 값(90일 · 4회 · 1,000)은 설명을 위한 값일 뿐이다.
"         기준을 바꾸는 일이 뷰 수정이 아니라 데이터 수정이 되도록 분리한다
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '순액 표시 점검 기준'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zcfnet_param {
  key client    : abap.clnt not null;
  key bukrs     : bukrs not null;
  mat_days_max  : abap.int4;                          " 평균 만기일수 상한
  turn_min      : abap.int4;                          " 회전 횟수 하한
  @Semantics.amount.currencyCode : 'zcfnet_param.waers'
  big_min       : abap.curr(18,1);                    " 총유입 하한 (백만원)
  waers         : waers;
}

③ 명세 기준 뷰 — 전표 라인에 항목을 붙이는 자리

이 뷰 하나가 항목 판정·활동 집계·대사의 공통 원천입니다. 방향(유입·유출)과 만기일수를 어디서 가져오는지가 여기서 결정되며, 이 부분의 원천은 확인 필요로 둡니다. 전표 수가 큰 회사에서는 이 뷰의 조건이 성능을 좌우합니다.

" ─────────────────────────────────────────────────────────────
"  ZI_CfFlowLine — 현금흐름 명세(전표 라인) 기준 뷰
"  역할 : 원장 전표 라인을 배정표에 붙여 항목·활동·방향·금액·만기일수를 한 줄에 모은다
"  이렇게 나눈 이유 : 항목 판정·활동 집계·대사가 모두 이 한 뷰를 읽게 해
"         명세 합계와 항목 합계가 서로 다른 원천에서 어긋날 자리를 없앤다
"  확인 필요 : 만기일수·방향 판정 필드는 회사 자료 원천에 따라 달라진다
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '현금흐름 명세'
@ObjectModel.usageType : { serviceQuality : #X, sizeCategory : #XL, dataClass : #TRANSACTIONAL }
define view entity ZI_CfFlowLine
  as select from acdoca as j
    inner join zcfnet_flowmap as m
      on  m.bukrs = j.rbukrs
      and m.saknr = j.racct
{
  key j.rldnr                          as Ledger,
  key j.rbukrs                         as CompanyCode,
  key j.gjahr                          as FiscalYear,
  key j.belnr                          as AccountingDocument,
  key j.docln                          as LedgerItem,
      j.poper                          as FiscalPeriod,
      j.budat                          as PostingDate,
      m.flow_no                        as FlowNo,
      m.activity                       as ActivityType,
      m.shown_basis                    as ShownBasis,
      m.on_behalf                      as OnBehalf,
      case when j.drcrk = 'S' then 'IN' else 'OUT' end   as Direction,
      @Semantics.amount.currencyCode : 'Currency'
      abs( j.hsl )                     as Amount,
      j.rhcur                          as Currency
}

④ 항목 판정 큐브 — 총유입·총유출·회전·평균 만기를 만드는 자리

case 와 sum 으로 방향별 합과 유입 건수를 만들고, 유입 금액으로 가중한 평균 만기일수를 정수로 맞춥니다. 샘플 앱의 서비스 계산과 같은 식이므로 두 결과를 서로 대조하는 것이 이관 검증의 출발점입니다.

" ─────────────────────────────────────────────────────────────
"  ZI_CfFlowJudge — 항목별 표시 방식 판정 큐브
"  역할 : 명세를 항목 단위로 접어 총유입·총유출·순액·회전 횟수를 만들고
"         순액 표시 요건 부합 여부와 점검 결과, 총액 환산 시 유입 증가분까지 계산
"  이렇게 나눈 이유 : 판정을 화면이 아니라 뷰에 둬야 서비스·배치·다른 화면이
"         같은 결론을 낸다. 화면은 이 뷰가 준 값을 보여 주기만 한다
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@Analytics.dataCategory : #CUBE
@EndUserText.label : '현금흐름 항목 판정'
define view entity ZI_CfFlowJudge
  as select from ZI_CfFlowLine as l
  association [0..1] to zcfnet_param as _Param
    on _Param.bukrs = $projection.CompanyCode
{
  key l.CompanyCode,
  key l.FiscalYear,
  key l.FiscalPeriod,
  key l.FlowNo,
      l.ActivityType,
      l.ShownBasis,
      l.OnBehalf,
      @Semantics.amount.currencyCode : 'Currency'
      sum( case when l.Direction = 'IN'  then l.Amount else 0 end )  as GrossIn,
      @Semantics.amount.currencyCode : 'Currency'
      sum( case when l.Direction = 'OUT' then l.Amount else 0 end )  as GrossOut,
      sum( case when l.Direction = 'IN'  then 1 else 0 end )         as TurnCount,
      cast( case when sum( case when l.Direction = 'IN' then l.Amount else 0 end ) = 0
                 then 0
                 else sum( case when l.Direction = 'IN' then l.Amount * l.MaturityDays else 0 end )
                      / sum( case when l.Direction = 'IN' then l.Amount else 0 end )
            end as abap.int4 )                                      as AvgMaturityDays,
      l.Currency
}
group by l.CompanyCode, l.FiscalYear, l.FiscalPeriod, l.FlowNo,
         l.ActivityType, l.ShownBasis, l.OnBehalf, l.Currency

⑤ 항목 점검 쿼리 — 요건 부합과 조회조건을 정하는 자리

분석 쿼리에서 어떤 필드를 필수 조건으로 노출할지, 어느 필드를 범위 조건으로 둘지가 결정됩니다. 판정식의 기준값은 운영에서 기준값 테이블을 읽도록 바꿔야 하며 여기서는 샘플 값을 주석과 함께 둡니다.

" ─────────────────────────────────────────────────────────────
"  ZC_CfFlowCheck — 항목 판정 분석 쿼리(화면이 읽는 뷰)
"  역할 : 큐브 위에 요건 부합·점검 결과·표시 유입/유출·증가분을 얹고
"         조회조건으로 쓸 필드를 지정한다
"  이렇게 나눈 이유 : 계산 로직(큐브)과 화면 노출 정의(쿼리)를 나눠 두면
"         화면 필드가 바뀌어도 판정 로직은 건드리지 않는다
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@Analytics.query : true
@EndUserText.label : '현금흐름 항목 점검'
define view entity ZC_CfFlowCheck
  as select from ZI_CfFlowJudge as j
{
  @Consumption.filter : { selectionType : #SINGLE, mandatory : true }
  key j.FiscalYear,
  @Consumption.filter : { selectionType : #SINGLE }
  key j.FiscalPeriod,
  @Consumption.filter : { selectionType : #RANGE }
  key j.FlowNo,
      @Consumption.filter.selectionType : #SINGLE
      j.ActivityType,
      @Consumption.filter.selectionType : #SINGLE
      j.ShownBasis,
      j.TurnCount,
      j.AvgMaturityDays,
      j.GrossIn,
      j.GrossOut,
      @AnalyticsDetails.query.axis : #COLUMNS
      j.GrossIn - j.GrossOut                               as NetAmount,
      case when j.OnBehalf = 'X'
             or ( j.AvgMaturityDays > 0 and j.AvgMaturityDays <= 90
                  and j.TurnCount >= 4 and j.GrossIn >= 1000 )
           then 'X' else ' ' end                           as NetAllowed
      /* 90 · 4 · 1,000 은 샘플 기준값. 운영에서는 기준 테이블 값을 읽는다 */
}

⑥ 활동 집계 쿼리 — 항목 판정을 활동으로 접는 자리

활동 순증감이 소속 항목 순액의 합과 같아야 한다는 대사식이 뷰에서도 성립하도록 항목 쿼리를 그대로 합산합니다. 합계가 어긋나면 쿼리 정의가 아니라 항목 배정에서 원인을 찾아야 합니다.

" ─────────────────────────────────────────────────────────────
"  ZC_CfActivitySum — 활동별 집계 쿼리
"  역할 : 항목 판정을 투자활동·재무활동 단위로 접어 순증감과
"         표시 유입·표시 유출 합계, 점검 필요 항목 수를 낸다
"  이렇게 나눈 이유 : 표시 방식이 달라도 활동 순증감은 같아야 한다는 대사(R04)가
"         뷰 수준에서 바로 성립하도록 항목 판정을 그대로 합산한다
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@Analytics.query : true
@EndUserText.label : '현금흐름 활동 집계'
define view entity ZC_CfActivitySum
  as select from ZC_CfFlowCheck as f
{
  key f.FiscalYear,
  key f.FiscalPeriod,
  key f.ActivityType,
      count( * )                                           as FlowCount,
      sum( case when f.ShownBasis = 'NET' then 1 else 0 end ) as NetShownCount,
      sum( case when f.ShownBasis = 'NET' and f.NetAllowed = ' '
                then 1 else 0 end )                        as CheckCount,
      sum( f.GrossIn )                                     as GrossIn,
      sum( f.GrossOut )                                    as GrossOut,
      sum( f.NetAmount )                                   as NetTotal
}
group by f.FiscalYear, f.FiscalPeriod, f.ActivityType

⑦ 접근 제어 — 보는 범위를 정하는 자리

회사코드 단위 권한은 명세 기준 뷰 아래에서 한 번만 걸어도 위의 모든 쿼리에 적용됩니다. 권한을 쿼리 위쪽에 거는 것보다 합계에서 새어 나갈 틈이 적습니다.

" ─────────────────────────────────────────────────────────────
"  ZC_CfFlowCheck — 접근 제어(DCL)
"  역할 : 회사코드 단위로 조회 범위를 제한한다
"  이렇게 나눈 이유 : 명세·항목·활동이 같은 큐브에서 나오므로 권한도
"         큐브 아래에서 한 번만 걸면 모든 탭에 같은 범위가 적용된다
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '현금흐름 점검 접근 제어'
@MappingRole : true
define role ZC_CfFlowCheck {
  grant select on ZI_CfFlowLine
    where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}

⑧ 서비스 정의 — 쿼리를 OData 로 내보내는 자리

서비스 정의는 무엇을 노출할지, 바인딩은 어떤 프로토콜로 게시할지를 가릅니다. 바인딩 유형과 게시 절차는 릴리스에 따라 달라질 수 있으므로 확인 필요입니다.

" ─────────────────────────────────────────────────────────────
"  ZUI_CfFlowCheck — 서비스 정의와 바인딩
"  역할 : 위 쿼리 두 개를 OData V2 서비스로 노출한다
"  이렇게 나눈 이유 : 서비스 정의는 무엇을 내보낼지, 바인딩은 어떤 프로토콜로
"         내보낼지를 가른다. 화면 쪽은 바인딩 주소만 설정에 넣으면 된다
"  확인 필요 : 바인딩 유형(OData V2 - UI)과 게시 방법은 릴리스별로 다를 수 있다
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '현금흐름 점검 서비스'
define service ZUI_CfFlowCheck {
  expose ZC_CfFlowCheck   as FlowCheck;
  expose ZC_CfActivitySum as ActivitySum;
  expose ZI_CfFlowLine    as FlowLine;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래 표의 일은 모두 코드가 아니라 합의에서 시작합니다.

해야 할 일무엇을 정하나정하지 않으면누가
항목 배정계정을 어느 항목·활동에 묶고 총액/순액 중 무엇으로 올리는지판정 결과가 기존 현금흐름표와 달라 첫 검토에서 막힙니다회계팀
기준값 확정만기·회전·금액 기준과 고객 대신 구분 방식"점검 필요" 건수가 의미를 잃습니다회계팀 · 감사인 협의
만기일수 원천명세별 만기일수를 어느 자료에서 가져올지평균 만기일수를 계산할 수 없습니다IT · 자금팀
방향 판정현금 증감을 유입·유출로 나누는 규칙총유입·총유출이 어긋나 대사가 깨집니다회계팀
권한 설계회사코드·원장 단위 조회 범위다른 회사의 현금흐름이 보일 수 있습니다보안 · 권한
성능 기준허용 응답 시간과 필수 조건대용량에서 첫 조회가 느려집니다IT
대사 체계표준 계정 조회와 맞출 항목과 시점숫자가 맞는지 아무도 보지 않습니다회계팀
전송(TR) 순서테이블 → 기준 뷰 → 큐브 → 쿼리 → 권한 → 서비스의존 객체가 없어 활성화가 실패합니다IT
서비스 활성화게시 또는 서비스 활성화(/IWFND/MAINT_SERVICE)와 화면 설정의 서비스 경로 교체화면이 샘플 서비스를 계속 바라봅니다IT

운영 데이터로 갈 때

전표가 수천만 건이면 명세 기준 뷰의 읽기 범위가 가장 먼저 문제가 됩니다. 회계연도·기간을 필수 조건으로 두어 읽는 범위를 좁히고, 집계는 큐브에서 하며 화면은 접힌 행만 받게 합니다. 명세 탭은 항목을 고른 뒤에만 열리도록 조건을 요구하는 편이 안전하고, 응답 시간 기준은 사전에 합의해 둡니다. 샘플은 245행이라 이 문제가 드러나지 않으므로 운영 규모의 시험은 별도로 필요합니다.

자주 묻는 질문

도입을 검토하는 분들이 자주 묻는 내용을 네 묶음으로 정리했습니다.

숫자와 판정

어떤 기준서의 어떤 요구사항을 점검합니까?

IAS 7 현금흐름표(K-IFRS 제1007호)에서 투자활동과 재무활동의 현금유입·현금유출을 총액으로 구분해 표시하는 원칙과, 그 예외로 순액 표시가 허용되는 경우를 점검합니다. 고객 대신 수취·지급하는 항목, 회전이 빠르고 금액이 크며 만기가 짧은 항목이 예외의 대상입니다. 순액으로 올린 항목이 그 요건에 맞는지를 거래 명세로 다시 계산해 봅니다.

이 화면이 총액·순액 표시를 확정해 줍니까?

아닙니다. 분류·집계·대사를 돕는 점검 도구이며 최종 판단은 회사와 감사인이 합니다. "점검 필요"는 요건을 다시 확인해야 할 항목이라는 뜻일 뿐 원인이나 오류 여부를 단정하지 않습니다. 만기·회전·금액 기준도 회사 정책에 따라 조정할 수 있는 샘플 값입니다.

점검 기준값 90일·4회·1,000 은 어디서 나온 숫자입니까?

화면 동작을 설명하기 위해 둔 샘플 값입니다. 기준서가 정한 구체 수치와 같은지는 이 글에서 확인하지 않았고 확인 필요로 남겨 둡니다. 운영에서는 회사 정책과 감사인의 해석을 반영해 기준값 테이블에서 바꾸며, 화면 코드를 고칠 필요는 없습니다.

고객 대신 수취·지급 항목은 어떻게 판정합니까?

항목 배정표의 구분 값을 그대로 읽습니다. 이 구분을 자동으로 추정하지 않고 회사가 직접 적도록 한 이유는, 같은 계정이어도 거래 성격에 따라 달라질 수 있기 때문입니다. 구분 값이 틀리면 판정도 틀리므로 배정 단계의 검토가 가장 중요합니다.

총액 환산 시 유입 증가분은 무엇입니까?

순액으로 올린 항목 중 점검 필요로 나온 항목을 총액으로 바꿨을 때 표시 유입이 얼마나 늘어나는지를 합한 값입니다. 항목별로는 총유입에서 현재 표시 유입을 뺀 값이고, 활동별·기간별로 합산됩니다. 이 값은 영향 규모를 가늠하는 참고 숫자이며 회계처리 결정을 대신하지 않습니다.

숫자가 틀리지 않는다는 것은 어떻게 확인했습니까?

서비스의 계산과 별도의 코드로 같은 계산을 다시 해서 비교했습니다. 대사식 7종을 세 기간에 걸쳐 135건 돌려 차이가 0건이었고, 항목 판정 30건도 불일치가 없었습니다. 샘플 데이터 기준의 결과이므로 운영 데이터에서는 같은 방식으로 다시 확인해야 합니다.

대사식에서 차이가 나오면 어디부터 봅니까?

대사 탭에서 차이 건수가 0 이 아닌 줄의 좌변·우변을 확인합니다. 항목 합계와 명세 합계가 어긋나면 명세 기준 뷰의 방향 판정을, 활동 합계와 항목 합계가 어긋나면 항목 배정을 먼저 의심합니다. 점검 필요는 대사 차이와 다른 개념이므로 섞어 세지 않습니다.

화면과 조작

조회 버튼은 어디에 있습니까?

조회조건 영역의 맨 오른쪽, 초기화 버튼과 같은 줄에 있습니다. 회계연도 입력 칸에서 Enter 를 눌러도 같은 조회가 됩니다. 처음 화면을 열 때는 기본 조건으로 자동 조회되므로 아무것도 누르지 않아도 결과가 보입니다.

점검 필요 항목만 보려면 어떻게 합니까?

점검 결과 조건을 "점검 필요"로 두고 조회합니다. 항목 행에는 회전 횟수·평균 만기일수·총유입이 나란히 있어 어느 요건이 걸렸는지 곧바로 읽힙니다. 행을 누르면 점검 내용과 거래 명세가 한 창에 열립니다.

항목 상세 창에서는 무엇을 볼 수 있습니까?

회전 횟수, 평균 만기일수, 표시 유입·표시 유출, 점검 내용과 그 항목의 거래 명세를 함께 봅니다. 판정 조건과 실제 값이 한 창에 있어 "왜 점검 필요인가"가 바로 읽힙니다. 창을 닫으면 조회조건과 스크롤 위치는 그대로 남습니다.

CSV 내려받기는 어떻게 동작합니까?

현재 탭의 조회 결과를 화면에 보이는 컬럼 이름과 표시 형식 그대로 UTF-8 CSV 로 내려받습니다. 탭마다 따로 받으며 조회조건에 걸러진 행만 들어갑니다. 엑셀에서 한글이 깨지면 인코딩을 UTF-8 로 지정해 열면 됩니다.

좁은 화면에서도 같은 컬럼을 볼 수 있습니까?

볼 수 있습니다. 조회조건과 요약 지표는 줄바꿈되고, 표는 컬럼을 줄이지 않고 가로 스크롤로 같은 내용을 보여 줍니다. 판정 컬럼이 빠져 결론이 달라 보이는 일은 없도록 했습니다.

기준일 조건은 어떻게 적용됩니까?

시작일과 종료일 중 하나만 넣어도 되고, 둘을 함께 넣으면 범위 조건이 됩니다. 날짜 조건은 서비스가 직접 처리하므로 화면에서 날짜를 가공하지 않습니다. 비워 두면 기준일 조건은 적용되지 않습니다.

SAP 표준과 데이터

표준 T-code 와는 어떤 관계입니까?

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 명세는 계정 개별 항목 조회(FBL3N · FAGLL03)와 같은 라인에서 나오고, 활동 순증감은 계정 잔액 조회(FAGLB03)와, 전표 원본은 전표 조회(FB03)와 맞춰 볼 수 있습니다.

기존 현금흐름 리포트를 없애야 합니까?

없앨 필요가 없습니다. 법정·공시·감사 대응의 기록은 표준 화면에 그대로 두고, 이 앱은 결산 전에 순액 표시 항목을 다시 확인하는 용도로 나란히 씁니다. 두 화면의 숫자를 맞춰 보는 지점은 확장 포인트 장의 T-code 별 연계 표에 정리했습니다.

샘플 데이터는 실제 자료입니까?

아닙니다. 항목·거래처·금액이 모두 가상이며 단위는 백만원입니다. 항목 10개, 기간 3개, 명세 245행으로 판정이 걸러지는 모습을 보여 주기 위해 만들었습니다. 점검 필요 항목 5건은 일부러 넣은 의도적 예외입니다.

운영 데이터에 연결하려면 무엇이 필요합니까?

항목 배정표와 기준값 테이블을 채우고, CDS 뷰를 만들어 서비스를 게시한 뒤 화면 설정의 서비스 경로를 운영 서비스로 바꿉니다. 화면 코드는 그대로입니다. 일정은 개발 기간보다 항목 배정과 기준값 합의에 걸리는 시간이 좌우합니다.

S/4HANA 가 아닌 ECC 에서도 쓸 수 있습니까?

화면은 OData 서비스만 바라보므로 서비스를 만들 수 있다면 화면은 같습니다. 다만 이 글의 CDS 구성안은 S/4HANA 를 전제로 하며, ECC 에서는 서비스를 다른 방식으로 구현해야 합니다. 구체 방식은 환경 확인 후 정해야 하므로 확인 필요입니다.

표준 CDS 뷰를 쓰면 안 됩니까?

쓸 수 있습니다. 이 글은 표준 뷰의 이름과 필드가 릴리스마다 달라질 수 있어 원천 테이블 기준으로 적었습니다. 운영에서는 해당 릴리스의 표준 뷰를 확인한 뒤 기준 뷰의 읽기 원천만 바꾸는 방법이 있고, 그 가능 여부는 확인 필요입니다.

도입과 운영

누가 쓰는 화면입니까?

결산 시 현금흐름표를 작성하고 검토하는 회계팀과, 순액 표시 근거를 확인하는 내부 검토자가 주 사용자입니다. 조회·점검 화면이라 전표를 만들거나 수정하지 않습니다. 감사 대응 자료의 최종 판단은 회사와 감사인이 합니다.

권한과 보안은 어떻게 설계합니까?

회사코드·원장 단위 권한을 명세 기준 뷰 아래에서 한 번만 걸어 모든 탭에 같은 범위가 적용되게 합니다. 권한을 쿼리 위쪽에 거는 것보다 합계로 새어 나갈 틈이 적습니다. 권한 객체와 범위는 보안 담당과 함께 정해야 합니다.

전표가 아주 많으면 성능은 어떻습니까?

샘플은 245행이라 성능을 대표하지 않습니다. 운영에서는 회계연도·기간을 필수 조건으로 두고 집계를 큐브에서 처리하며 화면은 접힌 행만 받게 합니다. 명세 탭은 항목을 고른 뒤에만 조회하도록 조건을 요구하는 편이 안전합니다.

계정 체계나 항목 배정이 바뀌면 어떻게 합니까?

항목 배정표만 고치면 됩니다. 뷰나 화면을 수정하거나 이송할 필요가 없습니다. 다만 배정을 바꾼 시점부터 과거 기간의 판정도 달라질 수 있으므로 기간별 배정 이력을 어떻게 관리할지는 사전에 정해야 합니다.

기준서 개정이 있으면 어떻게 반영합니까?

점검 규칙은 기준값 테이블과 판정식에 모여 있어 해당 부분만 고치면 됩니다. 다만 개정 내용이 이 화면의 판정에 어떻게 반영되어야 하는지는 이 글에서 확인하지 않았으며, 개정 시점의 기준서 원문과 회사 정책을 기준으로 정해야 하므로 확인 필요입니다.

도입하면 어떤 효과가 기대됩니까?

순액 표시 근거를 모으는 시간이 줄고, 같은 질문에 같은 형식의 답을 내놓을 수 있게 됩니다. 점검 필요 항목이 결산 앞 단계에서 드러나므로 검토 일정에 여유가 생깁니다. 다만 효과의 크기는 회사의 항목 수와 현재 업무 방식에 따라 다르며 이 글에서 수치로 단언하지 않습니다.

이 앱을 쓰면 감사 대응이 끝납니까?

그렇지 않습니다. 이 앱은 점검과 대사를 돕는 도구이고, 총액·순액 표시의 최종 판단과 감사 대응은 회사와 감사인이 합니다. 화면의 숫자는 판단에 필요한 재료이며, 표준 화면의 기록과 함께 보관하는 것을 권합니다.