재무회계

SAP 영업부문 공시 금액 조정표 점검 — 보고부문 합계에서 재무제표 금액까지, 빠진 조정 항목이 없는지 한 화면에서

조정표 네 항목 · 점검 코드 판정 · 원장 집계 대 공시 초안 대사 · 별도 식별 점검 · 정합성 대사 — 소개 영상과 실제 화면 7종, 그리고 CDS 코드까지

소개 영상0분 47초9개 장면표지 → 조회 → 점검 결과 → 조정 항목 → 부문 → 유형별 → 상세 → 대사 → 정리

개발 배경 — 이 앱을 사용해야 하는 이유

영업부문 공시를 준비하는 회계팀이 해마다 같은 자리에서 막힙니다. 보고부문 금액을 다 더했는데 재무제표 금액과 맞지 않습니다. IFRS 8(K-IFRS 제1108호)은 보고부문 수익 · 손익 · 자산 · 부채의 합계를 기업 금액으로 조정하는 표를 요구하고, 모든 중요한 조정 항목을 별도로 식별하고 설명하도록 합니다. 그런데 부문 금액은 부문 보고 체계에서, 기업 금액은 원장에서, 조정 항목은 공시 초안에서 따로 오기 때문에 세 곳이 어긋난 채로 마감 막바지에야 드러나는 일이 많습니다.

지금은 표준 원장 조회 화면에서 세그먼트별 라인을 내려받고, 엑셀에서 비보고 사업과 부문간 상계를 빼고 미배분을 얹어 조정표를 손으로 맞춥니다. 조정 항목 한 줄이 초안에 옮겨 적히는 사이에 부호가 바뀌거나, 금액이 작아 보여 다른 항목에 합산되는 일을 잡아낼 도구가 따로 없습니다.

이 앱은 그 자리를 메웁니다. 조정표 네 항목을 다시 계산하고, 조정 항목을 원장 집계와 공시 초안 금액으로 맞대어 보고, 금액이 큰데 합산된 항목을 짚어 줍니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 점검 관점을 더해 확장합니다. 회계 처리와 공시의 최종 판단은 회사와 감사인이 하며, 화면은 판단을 돕는 도구입니다.

한 줄 요약 — 조정표를 만드는 일이 아니라, 만든 조정표가 원장과 공시 초안에 맞는지 마감 전에 다시 계산해 보는 일입니다. 맞지 않는 자리는 점검 필요로만 표시하고 원인은 사람이 정합니다.

세 곳의 숫자가 따로 오면 마지막 날에야 어긋남이 보인다

부문 금액 · 원장 금액 · 초안 금액이 서로 다른 시스템과 담당자에게서 오면, 합계가 맞지 않을 때 어느 쪽이 틀렸는지를 가리는 데 시간이 듭니다. 이 앱은 세 곳을 같은 화면에 올리고 보고부문 합계 + 조정 합계 = 조정 후 금액, 조정 후 금액 − 재무제표 금액 = 차이를 항목마다 계산합니다. 차이가 0 이 아니면 R01 이 붙고, 그 위에서 어느 조정 항목이 빠졌거나 부호가 달라졌는지를 조정 항목 명세에서 좁혀 갑니다.

초안에 옮겨 적은 금액은 원장 집계와 따로 놀 수 있다

조정 항목은 원장에서 집계한 금액과 공시 초안에 적힌 금액이 두 개입니다. 초안은 손으로 옮겨 적는 값이라 한 자리 오타나 부호 반전이 생기기 쉽습니다. 항목마다 두 금액의 차이를 계산해 0 이 아니면 R02 로 표시하므로, 초안을 고치기 전에 어느 줄이 원장과 다른지부터 보입니다.

금액이 큰데 다른 항목에 합산돼 있으면 별도 식별 요구를 놓친다

조정 항목이 재무제표 금액의 1% 이상이면 중요 항목으로 보고, 공시 초안에 별도 행으로 식별돼 있지 않고 합산돼 있으면 R03 을 붙입니다. 1% 는 이 화면의 점검용 가정이며 실제 중요성 기준은 회사가 정합니다. 반대로 금액이 작아 합산돼 있어도 점검 대상이 아닌 항목은 정상으로 둡니다.

점검 도구는 점검 필요라고만 말하고 원인을 단정하지 않는다

공시 숫자가 다른 이유는 오타일 수도, 기준 해석일 수도, 원장 반영 시점 차이일 수도 있습니다. 화면이 오류라고 단정하면 담당자가 방어적이 되므로 결과는 점검 필요 · 확인 필요로만 적고, 각 코드 옆에 사용자가 할 조치(원장 집계와 비교 · 별도 행으로 식별할지 검토 등)를 한 줄로 붙였습니다.

사용 방법

  1. 조회조건 입력 — 기준 연월(6자리, 필수)을 확인합니다. 조정표 항목 · 조정 유형 · 점검 코드 · 점검 결과는 선택이며 비워 두면 전체입니다.
  2. 조회 — 조회조건 줄 맨 오른쪽의 조회 버튼을 누르거나 입력 칸에서 Enter 를 누릅니다. 화면을 처음 열면 기본 기준 연월로 자동 조회됩니다.
  3. 요약 확인 — 조정표 항목 수 · 조정 항목 수 · 조정 후 금액이 재무제표 금액과 다른 항목 · 초안 금액이 다른 조정 항목 · 별도 식별 누락 중요 항목 · 점검 필요 항목 · 정합성 대사 차이 건수를 봅니다.
  4. 탭 이동 — 조정표 → 조정 항목 명세 → 부문 명세 → 조정 유형별 집계 → 대사 결과 순서로 확인합니다.
  5. 행 클릭 상세 — 조정표 탭의 행을 누르면 보고부문 합계에서 재무제표 금액에 이르는 조정 항목이 창으로 열립니다.
  6. CSV 내려받기 — 현재 탭의 조회 결과를 CSV(UTF-8)로 내려받아 검토 자료로 씁니다.

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

점검 화면이 틀린 숫자를 보여 주면 점검의 의미가 없으므로, 만든 쪽에서 먼저 대사식을 세워 검증용 샘플 데이터 전수에 돌렸습니다. 두 기준 연월(202412 · 202312)을 합산한 결과입니다.

대사식검사 건수차이 건수
01 부문 총수익 = 외부수익 + 부문간 수익100
02 보고부문 합계 = Σ보고부문 금액80
03 조정 합계 = Σ조정 항목 금액80
04 조정 후 금액 = 보고부문 합계 + 조정 합계80
05 Σ부문간 수익 = 부문간 수익 상계 조정액20
06 조정 유형별 합계 = 조정 항목 명세 합계80
07 조정 후 금액 = 재무제표 금액81 (의도적 예외)
08 공시 초안 조정액 = 원장 집계 조정액381 (의도적 예외)
09 중요 조정 항목 수 = 별도 식별 항목 수341 (의도적 예외)
10 Σ외부수익 = 재무제표 수익20

01~06 정합성 대사와 10 외부수익 대사의 차이는 0건입니다. 07~09 의 차이는 점검 화면의 동작을 확인하려고 202412 에 의도적으로 넣은 예외 3건과 같은 대상입니다 — R01 1건(부채: 조정 후 금액이 재무제표 금액보다 8,650,000,000원 적음) · R02 1건(세전계속사업이익: 본사 공통 관리비 초안 금액이 원장 집계와 180,000,000원 다름) · R03 1건(자산: 이연법인세자산 미배분이 중요 항목인데 초안에 합산). 정합성 대사 차이와 분리해 기록했습니다. 202312 는 예외 없이 모두 정상이고, 금액이 작아 합산돼 있어도 점검 대상이 아닌 항목을 일부러 포함해 중요 항목 기준 판정을 확인합니다.

화면 쪽은 렌더링된 상태에서 요약 숫자 7개가 검증 결과와 같은지(조정표 항목 4 · 조정 항목 19 · 조정 후 금액 ≠ 재무제표 금액 1 · 초안 금액이 다른 조정 항목 1 · 별도 식별 누락 중요 항목 1 · 점검 필요 3 · 정합성 대사 차이 0)를 대조했습니다. 기준 연월을 202312 로 바꾸면 점검 필요가 0 으로 내려가는 것도 확인했습니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 표준 컨트롤 — 조회조건 줄, 요약 숫자 칸, 탭 다섯 개, 표, 상세 창외부 라이브러리 반입 심사가 필요 없고 표준 테마(sap_horizon)와 같은 모양으로 열립니다.
점검 · 대사 로직점검 코드 판정과 조정 후 금액 산출은 서비스 쪽에서 계산하고, 화면은 받은 값을 보여 줍니다판정 규칙이 한 곳에 있어야 화면과 CSV 와 다른 소비자가 같은 결과를 봅니다.
데이터 서비스OData V2 서비스 하나 — 조정표 · 조정 항목 · 부문 · 조정 유형별 · 대사 다섯 가지 조회 단위조회조건은 모두 필터 객체로 보내고 "전체"는 필터를 만들지 않습니다. 운영 전환 때는 같은 계약의 실제 서비스로 주소만 바꿉니다.
서비스 선언매니페스트의 데이터 소스에 상대 경로로 선언절대 주소를 박지 않아야 환경마다 코드를 고치지 않습니다.
오류 안내서비스 정의를 못 불러왔는지 · 요청이 실패했는지 · 응답이 비었는지를 구분해 안내연결 문제와 데이터 없음을 구분해야 사용자가 누구에게 물을지 압니다.
테마sap_horizonSAP 표준 화면과 나란히 놓았을 때 이질감이 없도록 했습니다.
항목내용
업무 영역재무회계(FI) — 영업부문 공시
관련 기준서IFRS 8 영업부문(K-IFRS 제1108호) — 보고부문 금액과 기업 재무제표 금액의 조정
SAP 표준 T-codeFAGLL03 · FAGLB03 · FB03
화면 성격조회 · 점검 · 대사 (조회 전용)
데이터 연동OData V2 서비스
테마sap_horizon
SAP 표준 기능을 그대로 이어받은 부분 — 원천은 표준 데이터 구조(ACDOCA 의 계정 · 금액 · 세그먼트 구분)를 그대로 이어받고, 값을 맞춰 볼 때는 표준 T-code 의 같은 필드를 씁니다. 이 화면은 표준 화면을 대체하지 않고, 표준 화면 여러 개를 오가며 하던 대조를 한 화면에서 이어 주는 조회 · 검증 관점을 더합니다.

실행 화면

아래 화면은 모두 같은 검증용 샘플 데이터에서 캡처했습니다. 가상 회사 · 가상 사업부문으로 만든 자료이며 실제 고객사의 부문 구분과 금액을 쓰지 않았습니다. 숫자는 화면끼리 맞춰 보셔도 됩니다.

처음 열었을 때와 점검 필요만 골라 볼 때

조회조건 줄, 요약 숫자 칸, 탭, 조정표가 한 화면에 세로로 쌓입니다. 점검 결과 조건으로 확인이 필요한 항목만 남길 수 있습니다.

처음 연 화면 — 조회조건 · 요약 숫자 · 조정표
처음 연 화면 — 조회조건 · 요약 숫자 · 조정표 — 기준 연월을 넣고 조회하면 수익 · 세전계속사업이익 · 자산 · 부채 네 항목의 조정 결과가 한 표에 나옵니다.

화면을 열면 기본 기준 연월로 자동 조회됩니다. 맨 위 요약 숫자는 점검 필요가 몇 건인지, 정합성 대사 차이가 0인지를 먼저 보여 줍니다. 표 한 줄이 한 항목이며, 보고부문 합계 + 조정 합계 = 조정 후 금액이 재무제표 금액과 같은지가 왼쪽에서 오른쪽으로 읽힙니다. 조회 버튼은 조회조건 줄 맨 오른쪽에 있고 입력 칸에서 Enter 를 눌러도 같은 조회가 됩니다.

점검 결과로 좁힌 화면 — 확인이 필요한 항목만
점검 결과로 좁힌 화면 — 확인이 필요한 항목만 — 점검 결과를 점검 필요로 고르고 조회하면 확인이 필요한 세 항목만 남습니다.

점검 필요는 원인을 단정하지 않습니다. 원장 집계와 공시 초안이 다르거나, 금액이 큰데 합산돼 있다는 신호일 뿐이며 어느 쪽이 맞는지는 사람이 원장을 보고 정합니다. 조건을 비워 두면 전체이고, 초기화 버튼은 기본 기준 연월로 되돌립니다.

조정 항목을 하나씩 들여다볼 때

조정표의 숫자가 어디서 왔는지는 조정 항목 명세와 부문 명세, 그리고 유형별 집계에서 확인합니다.

조정 항목 명세 — 원장 집계 대 공시 초안
조정 항목 명세 — 원장 집계 대 공시 초안 — 조정 항목마다 원장 집계 조정액 · 공시 초안 조정액 · 차이 · 별도 식별 여부 · 중요 항목 여부를 한 줄에 놓았습니다.

표 오른쪽의 차이 열이 0 이 아닌 줄과 별도 식별 열이 아니오인 줄이 점검 대상입니다. 금액이 재무제표 금액의 1% 이상이면 중요 항목으로 표시하는데, 이 기준은 점검용 가정이며 실제 중요성 기준은 회사가 정합니다. 조정 유형(부문간 거래 상계 · 비보고 사업 · 미배분 · 회계정책 차이)으로 좁혀 볼 수도 있습니다.

부문 명세 — 조정표의 출발점
부문 명세 — 조정표의 출발점 — 보고부문과 비보고(기타) 사업의 외부수익 · 부문간 수익 · 손익 · 자산 · 부채를 나란히 봅니다.

부문 총수익은 외부수익에 부문간 수익을 더한 값입니다. 조정표의 보고부문 합계는 여기서 보고부문으로 구분한 사업만 더한 것이고, 비보고 사업은 합계에서 빠져 조정 항목으로 되돌아옵니다. 이 탭은 기준 연월만 조건으로 받습니다.

조정 유형별 집계 — 어떤 종류의 조정이 얼마인가
조정 유형별 집계 — 어떤 종류의 조정이 얼마인가 — 조정 항목을 부문간 거래 상계 · 비보고 사업 · 미배분 항목 · 회계정책 차이로 묶어 항목별 금액과 초안 차이를 봅니다.

공시 설명에서 가장 자주 받는 질문이 어떤 성격의 조정이 큰가입니다. 이 탭은 같은 조정 항목 명세를 유형으로 묶었을 뿐이라 합계가 명세와 같아야 하며, 그 일치를 대사 06 이 확인합니다.

한 항목의 조정 과정을 따라갈 때

조정표의 행을 누르면 보고부문 합계에서 재무제표 금액까지의 길이 한 창에 모입니다.

조정표 항목 상세 — 보고부문 합계에서 재무제표 금액까지
조정표 항목 상세 — 보고부문 합계에서 재무제표 금액까지 — 조정표의 행을 누르면 보고부문 합계에서 출발해 재무제표 금액에 이르는 조정 항목이 순서대로 펼쳐집니다.

상세 창 맨 위에는 항목의 점검 코드와 한 줄 설명이 있고, 아래 표는 조정 항목을 금액 순서가 아니라 번호 순서로 보여 줍니다. 별도 행으로 식별되지 않은 중요 항목은 여기서 눈에 띄게 표시되므로, 공시 초안을 고칠 때 어느 줄을 따로 적어야 하는지가 바로 보입니다. ESC 로 닫습니다.

숫자가 맞는지 스스로 점검할 때

마지막 탭은 화면이 스스로 하는 검산입니다.

대사 결과 — 정합성 대사와 장부 점검 대사
대사 결과 — 정합성 대사와 장부 점검 대사 — 대사식 10종마다 검사 건수와 차이 건수, 좌변·우변 금액을 보여 줍니다.

01~06 은 화면이 스스로 계산한 값끼리 맞는지 보는 정합성 대사이고, 07~10 은 재무제표 금액 · 공시 초안과 맞는지 보는 장부 점검 대사입니다. 둘을 분리해 둔 이유는 의도적 점검 사항이 정합성 오류처럼 읽히지 않게 하기 위해서입니다. 이 탭도 기준 연월만 받습니다.

화면 뒤에서 일어나는 일

조회를 누르면 화면은 조회조건을 필터 객체로 만들어 서비스에 보내고, 서비스가 다섯 가지 조회 단위(조정표 · 조정 항목 · 부문 · 조정 유형별 · 대사)를 돌려줍니다. 점검 코드와 조정 후 금액은 화면이 아니라 서비스에서 계산됩니다. 화면은 받은 값을 표에 바인딩하고, 행을 누르면 같은 서비스의 단건과 조정 항목을 다시 읽어 상세 창을 채웁니다.

점검 코드 판정 규칙

조정표 항목 한 건에는 점검 코드가 하나만 붙습니다. 아래 순서대로 먼저 해당하는 코드를 씁니다. 조정 항목에는 R02 · R03 만 같은 기준으로 붙습니다. 결과는 점검 필요 · 확인 필요로만 표기하고 원인은 단정하지 않습니다.

순서코드판정 조건결과사용자 조치
1R01조정 후 금액 − 재무제표 금액 ≠ 0점검 필요빠졌거나 부호가 달라진 조정 항목이 없는지 확인
2R02공시 초안 조정액 − 원장 집계 조정액 ≠ 0 인 조정 항목이 있음점검 필요초안에 옮겨 적은 금액을 원장 집계와 비교
3R03조정 항목 금액이 재무제표 금액의 1% 이상인데 초안에 별도 행이 아니라 합산돼 있음점검 필요별도 행으로 식별해 설명할지 검토
4I00위 조건에 모두 해당하지 않음정상조치 없음

중요 항목 기준(재무제표 금액의 1%)은 이 화면의 점검용 가정입니다. 실제 중요성 기준은 회사가 정하며 확인 필요입니다.

조정 후 금액 산출과 대사 순서

단계산식
부문 총수익외부수익 + 부문간 수익
보고부문 합계보고부문으로 구분한 사업부문의 해당 금액 합계 (비보고 사업은 제외)
조정 항목 합계비보고 사업 + 부문간 거래 상계 + 미배분 항목 + 회계정책 · 측정 차이
조정 후 금액보고부문 합계 + 조정 항목 합계
차이조정 후 금액 − 재무제표 금액
수익의 부문간 상계 조정액−Σ 부문간 수익 (전체 사업 기준)

조회조건

조건필수기본값필터
기준 연월필수202412Period eq '202412'
조정표 항목선택전체선택 시에만 Measure eq 'REV' · 'PRF' · 'AST' · 'LIA'
조정 유형선택전체선택 시에만 AdjType eq 'ELIM' 등 (조정 항목 명세 · 유형별 집계에 적용)
점검 코드선택전체선택 시에만 CheckCode eq 'R01' 등 (조정표 · 조정 항목 명세에 적용)
점검 결과선택전체선택 시에만 CheckStatus eq 'CHECK'

"전체"는 코드값으로 보내지 않고 해당 조건을 필터에서 뺍니다. 부문 명세 · 대사 결과 탭에는 기준 연월만 적용됩니다.

결과 컬럼

컬럼의미산출
보고부문 합계조정표 항목별 보고부문 금액의 합보고부문의 해당 금액 합계
조정 합계조정 항목 금액의 합Σ 조정 항목 금액
조정 후 금액조정을 반영한 기업 금액보고부문 합계 + 조정 합계
재무제표 금액원장 계정 잔액 기준 금액FAGLB03 로 확인하는 잔액
차이조정 후 금액과 재무제표 금액의 차조정 후 금액 − 재무제표 금액
공시 초안 조정액공시 초안에 적힌 조정 금액입력값
원장 집계 조정액원장에서 집계한 조정 금액미배분 · 상계 대상 계정 집계
별도 식별 · 중요 항목초안에 별도 행인지 · 1% 이상인지Y / N 구분

좁은 화면에서 달라지는 것

조회조건 칸은 줄바꿈되어 세로로 쌓이고 표는 가로로 스크롤됩니다. 요약 숫자 칸은 두 줄로 접힙니다. 휴대폰에서는 점검 필요만 골라 확인하는 용도가 맞고, 대사 결과와 조정 항목 명세는 넓은 화면에서 보시는 편이 낫습니다.

파일 구성

index.html · Component.js · manifest.json
controller/   BaseController.js · Main.controller.js
view/         Main.view.xml · DetailDialog.fragment.xml
model/        formatter.js · ErrorHandler.js
css/ · i18n/  스타일 · 화면 문구
odata/        서비스 정의(metadata) · 서비스 로직 · 엔티티셋별 샘플 json
media/        소개 영상 · 포스터

SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 이어지는가

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 아래는 표준으로 이미 되는 일과 이 화면이 이어 붙이는 일을 나눠 적은 것입니다.

표준으로 되는 것과 이 화면이 더하는 것

하고 싶은 일SAP 표준표준에서 걸리는 자리이 화면이 더하는 것
세그먼트별 원장 라인 보기FAGLL03라인 단위라 조정표 항목으로 묶는 일은 사람이 합니다라인 집계를 조정 항목 · 조정표 항목으로 묶어 보여 줍니다
계정 잔액 확인FAGLB03재무제표 금액과 부문 합계를 나란히 놓는 화면이 없습니다재무제표 금액을 조정표 오른쪽에 두고 차이를 계산합니다
전표 열람FB03전표 한 건 단위입니다점검 필요 항목에서 어느 전표를 열지 좁혀 줍니다
조정 항목이 공시 초안에 맞는지없음표준에 공시 초안이라는 개념이 없어 보통 엑셀로 맞춥니다원장 집계와 초안 금액을 항목마다 맞대고 차이를 표시합니다
중요 항목 별도 식별 점검없음표준에서 점검하지 않습니다1% 이상이면서 합산된 항목을 R03 으로 짚습니다

T-code 별 연계 지점

T-code이름이 화면과의 연계
FAGLL03G/L 계정 라인 아이템 조회이어받는 데이터 — 세그먼트(사업부문) 구분이 있는 원장 라인의 금액이 부문 금액과 조정 항목 금액의 원천입니다. 대사 지점 — 조정 항목 한 줄의 원장 집계 금액이 이 T-code 에서 같은 계정 · 세그먼트 · 기간 조건으로 더한 값과 같아야 합니다. 오가는 법 — 점검 필요 항목에서 조정 항목의 계정과 기간을 가져가 FAGLL03 에서 원천 라인을 확인합니다.
FAGLB03G/L 계정 잔액 조회이어받는 데이터 — 자산 · 부채 계정 잔액이 재무제표 금액의 원천입니다. 대사 지점 — 조정표의 재무제표 금액이 이 T-code 의 같은 계정군 잔액과 맞는지 07 대사가 확인합니다. 오가는 법 — 차이가 있는 항목은 FAGLB03 로 잔액 쪽이 맞는지부터 봅니다.
FB03전표 조회이어받는 데이터 — 개별 전표의 라인과 세그먼트 필드. 대사 지점 — 점검 필요 조정 항목의 전표를 열어 미배분 · 상계 처리가 의도대로인지 봅니다. 표준에 남겨 둘 일 — 전표 수정과 반영은 표준 거래에서만 합니다.

운영 전환 시 기존 리포트를 없애야 하는가. 없애지 않습니다. 법정 · 감사 대응에 쓰는 표준 리포트와 조정표 양식은 그대로 두고, 이 화면은 마감 전에 두 곳을 맞춰 보는 점검 용도로 함께 씁니다. 공시 숫자를 만드는 일은 이 화면이 하지 않습니다.

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

S/4HANA 에서는 CDS 뷰 위에 분석 쿼리를 올려 Fiori 분석 앱이나 Analysis for Office 로 같은 집계를 열 수 있습니다. 이 앱의 서비스가 하는 일은 그 CDS 집계와 점검 코드 판정입니다. 그래서 운영에서는 아래 CDS 구성처럼 집계를 DB 로 내리고 점검 코드만 쿼리 위에 얹으면, 같은 숫자를 표준 분석 앱에서도 열 수 있습니다. 표준 CDS 뷰 이름은 릴리스마다 다르므로 View Browser(F2170)로 실제 이름을 확인해야 하며, 확인하지 못한 뷰는 확인 필요로 두었습니다.

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

자리무엇을 손대나이유
세그먼트 → 보고부문 매핑어느 세그먼트가 보고부문이고 어느 것이 비보고인지회사의 부문 보고 체계에 따라 다릅니다(확인 필요)
조정 유형 매핑어느 계정이 부문간 상계 · 미배분 · 회계정책 차이인지계정 체계마다 다릅니다
중요성 기준1% 를 회사 기준 값으로점검용 가정이며 회사가 정합니다
공시 초안 공급초안 금액을 입력으로 받을지, 파일을 읽을지표준 원천 테이블이 없습니다(확인 필요)
확장 필드부문 보고에 쓰는 추가 속성커스텀 필드로 추가하고 CDS 에 노출합니다
권한회사코드 · 세그먼트 단위 조회 권한집계를 읽는 자리에 걸어야 합니다

기준서 요구사항 매핑

기준서요구사항대응 기능원천 데이터비고
IFRS 8 영업부문(K-IFRS 제1108호)보고부문 수익 합계를 기업 수익에 조정조정표 수익 항목 · 부문간 수익 상계 대사(05)원장 수익 라인 · 부문 구분 필드-
IFRS 8 영업부문(K-IFRS 제1108호)보고부문 손익 합계를 기업 세전계속사업이익에 조정조정표 세전계속사업이익 항목원장 손익 라인손익 측정 기준은 회사 보고 체계에 따름(확인 필요)
IFRS 8 영업부문(K-IFRS 제1108호)보고부문 자산 합계를 기업 자산에 조정조정표 자산 항목원장 자산 계정 잔액-
IFRS 8 영업부문(K-IFRS 제1108호)보고부문 부채 합계를 기업 부채에 조정(부채 금액을 정기적으로 제공하는 경우)조정표 부채 항목원장 부채 계정 잔액적용 대상 여부는 확인 필요
IFRS 8 영업부문(K-IFRS 제1108호)모든 중요한 조정 항목을 별도로 식별하고 설명중요 항목 판정과 별도 식별 점검(R03) · 초안 금액 대사(R02)공시 초안 · 원장 집계중요성 기준은 점검용 가정

CDS 구성

이 사례의 화면은 검증용 샘플 데이터를 서비스가 읽어 돌려줍니다. 데모라서 되는 일이고, 운영 데이터에서는 집계를 CDS 로 내리는 것이 첫 작업입니다. 아래는 그때 만드는 객체를 레이어 순서대로 적은 것입니다.

코드는 스케치입니다. 필드 이름과 표준 뷰 이름은 릴리스와 환경에 따라 다르므로 그대로 붙여 넣기 전에 View Browser(F2170)로 실제 이름을 확인해야 합니다. 확인이 필요한 자리는 주석에 적어 두었습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZSEGR_ADJMAP세그먼트 · 계정 → 조정표 항목 · 조정 유형 매핑부문 체계와 계정은 바뀝니다. 코드에 박으면 바뀔 때마다 개발자를 부르게 됩니다.
차원ZI_SegAdjDim계정 한 행 + 조정표 항목 + 조정 유형 + 번호큐브에서 join 을 한 번만 걸고 값 도움말과 텍스트가 이 뷰 하나를 보게 합니다.
큐브(원장)ZI_SegLedgerCubeACDOCA 기반 분개 항목을 세그먼트 · 조정 항목으로 집계화면이 들고 묶던 일을 DB 로 내립니다.
입력(초안)ZSEGR_DRAFT · ZI_SegDraft공시 초안 금액과 별도 식별 표시표준에 없는 값이라 입력으로 받고, 키를 원장 집계와 같게 둡니다.
점검ZI_SegAdjCheck원장 대 초안 금액 차이와 점검 코드 판정판정 순서를 한 곳에 두어 모든 소비자가 같은 결과를 봅니다.
쿼리ZC_SegReconQuery조회조건 · 컬럼 선언표준 Fiori 분석 앱과 Analysis for Office 가 그대로 엽니다.
권한ZI_SEGLEDGERCUBE (DCL)회사코드 · 세그먼트집계를 읽는 자리에 걸어야 뺄셈으로 새지 않습니다.
서비스Z_SegReconServiceOData V2 로 노출화면은 서비스 주소만 바꾸면 그대로 씁니다.

① 부문 · 조정 유형 매핑 테이블

조정표의 모든 분류가 이 표에서 갈립니다. 어느 세그먼트가 보고부문이고, 어느 계정이 부문간 상계 · 미배분 · 회계정책 차이인지를 정하는 자리라 운영 전환에서 가장 먼저 합의해야 하는 항목입니다. 유효기간을 둔 이유는 부문 체계가 바뀌어도 과거 기간의 조정표가 흔들리지 않게 하기 위해서입니다.

" ────────────────────────────────────────────────────────────────
"  ZSEGR_ADJMAP — 세그먼트 · 계정 → 조정 분류 매핑 (투명 테이블)
"  한 행이 "이 계정(또는 세그먼트)은 조정표의 어느 칸인가" 를 말한다.
"  코드에 박지 않는 이유 : 부문 체계와 계정은 해마다 바뀌고,
"  바뀔 때마다 개발자를 부르게 만들면 점검 화면이 금방 낡는다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '영업부문 조정 분류 매핑'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C          " 고객 유지 — 전송(TR)으로 옮긴다
@AbapCatalog.dataMaintenance : #ALLOWED  " 유지보수 뷰를 함께 만들어 둔다
define table zsegr_adjmap {
  key mandt      : mandt not null;
  key ktopl      : ktopl not null;        " 계정과목표
  key saknr      : saknr not null;        " 계정
  key valid_from : abap.dats not null;    " 유효 시작일
  valid_to       : abap.dats;
  measure_id     : abap.char(3);          " REV 수익 · PRF 세전계속사업이익 · AST 자산 · LIA 부채
  adj_type       : abap.char(4);          " ELIM 부문간 상계 · UNRP 비보고 · UNAL 미배분 · POLC 회계정책 차이
  adj_no         : abap.numc(3);          " 조정 항목 번호 — 화면 정렬 순서
  adj_name       : abap.char(40);
  is_segment_acc : abap.char(1);          " X = 보고부문 금액 집계 대상 계정
}

② 조정 항목 차원 뷰

조정표 항목(수익 · 세전계속사업이익 · 자산 · 부채)과 조정 유형의 이름과 정렬 순서가 여기서 결정됩니다. 매핑을 읽는 join 을 이 뷰에 한 번만 두면, 아래 큐브와 쿼리가 같은 분류를 보게 되어 화면 사이에 분류가 어긋날 자리가 없습니다.

" ────────────────────────────────────────────────────────────────
"  ZI_SegAdjDim — 조정 항목 차원
"  계정 한 행에 조정표 항목 · 조정 유형 · 번호가 붙는다.
"  차원 뷰를 따로 두는 이유 : 큐브에서 join 을 한 번만 걸고,
"  값 도움말과 텍스트가 이 뷰 하나를 보게 하기 위해서다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #NOT_REQUIRED
@EndUserText.label                   : '조정 항목 차원'
@Analytics.dataCategory              : #DIMENSION
@ObjectModel.representativeKey       : 'GLAccount'
define view entity ZI_SegAdjDim
  as select from zsegr_adjmap as Map
{
  key Map.ktopl                                  as ChartOfAccounts,
  key Map.saknr                                  as GLAccount,
  key Map.valid_from                             as ValidFrom,
      Map.valid_to                               as ValidTo,

      @EndUserText.label : '조정표 항목'
      Map.measure_id                             as Measure,

      @EndUserText.label : '조정 유형'
      Map.adj_type                               as AdjType,

      @EndUserText.label : '조정 유형명'
      case Map.adj_type
        when 'ELIM' then cast( '부문간 거래 상계'    as abap.char(30) )
        when 'UNRP' then cast( '비보고 사업'         as abap.char(30) )
        when 'UNAL' then cast( '미배분 항목'         as abap.char(30) )
        when 'POLC' then cast( '회계정책 · 측정 차이' as abap.char(30) )
        else             cast( '미분류'             as abap.char(30) )
      end                                        as AdjTypeName,

      Map.adj_no                                 as AdjNo,
      Map.adj_name                               as AdjName,
      Map.is_segment_acc                         as IsSegmentAccount
}

③ 원장 집계 큐브 — 세그먼트 금액과 조정 항목 금액

화면이 들고 묶던 일을 DB 로 내립니다. 표준 분개 항목 뷰의 세그먼트 · 계정 · 금액을 기간 단위로 집계하고, 매핑을 join 해 보고부문 금액과 조정 항목 원장 집계 금액을 한 뷰에서 만듭니다. 이 큐브의 합계가 조정표의 보고부문 합계와 조정 합계가 되므로, 대사 02 · 03 이 이 뷰를 기준으로 돌아갑니다.

" ────────────────────────────────────────────────────────────────
"  ZI_SegLedgerCube — 세그먼트 · 조정 항목 원장 집계 큐브
"  원천 : 표준 분개 항목 뷰(I_JournalEntryItem — ACDOCA 기반)
"  확인 필요 : 릴리스에 따라 세그먼트 필드(Segment)와 원장 필드(Ledger) 이름이
"             다를 수 있다. View Browser(F2170)로 실제 필드를 확인한다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK
@EndUserText.label                   : '영업부문 원장 집계 큐브'
@Analytics.dataCategory              : #CUBE
define view entity ZI_SegLedgerCube
  as select from I_JournalEntryItem as Item
  inner join      ZI_SegAdjDim      as Dim
    on  Dim.ChartOfAccounts = Item.ChartOfAccounts
    and Dim.GLAccount       = Item.GLAccount
    and Item.PostingDate   >= Dim.ValidFrom
    and Item.PostingDate   <= Dim.ValidTo
{
  key Item.CompanyCode                                     as CompanyCode,
  key Item.FiscalYear                                      as FiscalYear,
  key Item.FiscalPeriod                                    as FiscalPeriod,
  key Item.Segment                                         as SegId,
  key Dim.Measure                                          as Measure,
  key Dim.AdjType                                          as AdjType,
  key Dim.AdjNo                                            as AdjNo,

      @Semantics.currencyCode : true
      Item.CompanyCodeCurrency                             as Currency,

      @Semantics.amount.currencyCode : 'Currency'
      @Aggregation.default : #SUM
      sum( Item.AmountInCompanyCodeCurrency )              as Amount,

      @Aggregation.default : #SUM
      count( * )                                           as LineCount
}
where Item.Ledger = '0L'                  " 리딩 원장 — 운영 원장 구성에 맞춰 확인
group by Item.CompanyCode, Item.FiscalYear, Item.FiscalPeriod, Item.Segment,
         Dim.Measure, Dim.AdjType, Dim.AdjNo, Item.CompanyCodeCurrency

④ 공시 초안 입력 테이블과 뷰

표준에는 공시 초안이라는 개념이 없어 이 값은 입력으로 받아야 합니다. 초안을 파일로 올릴지, 입력 화면을 둘지, 공시 관리 도구에서 받을지는 회사가 정합니다. 어느 쪽이든 키를 원장 집계 큐브와 같은 모양으로 맞춰 두어야 두 금액이 항목마다 나란히 놓입니다.

" ────────────────────────────────────────────────────────────────
"  ZSEGR_DRAFT — 공시 초안 조정 금액 (입력 테이블)
"  원장 집계 큐브와 같은 키 모양으로 둔다. 키가 어긋나면 초안 금액이
"  원장 집계 옆에 붙지 않고 따로 뜬다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '영업부문 공시 초안 조정 금액'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
define table zsegr_draft {
  key mandt       : mandt not null;
  key bukrs       : bukrs not null;
  key gjahr       : gjahr not null;
  key poper       : poper not null;
  key adj_no      : abap.numc(3) not null;
  waers           : waers;
  @Semantics.amount.currencyCode : 'zsegr_draft.waers'
  draft_amount    : abap.curr(23,2);       " 초안에 적힌 조정 금액
  is_separate     : abap.char(1);          " X = 초안에 별도 행으로 식별됨
}

" ── 위 테이블을 읽는 인터페이스 뷰 ─────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #NOT_REQUIRED
@EndUserText.label                   : '공시 초안 조정 금액'
define view entity ZI_SegDraft
  as select from zsegr_draft
{
  key bukrs        as CompanyCode,
  key gjahr        as FiscalYear,
  key poper        as FiscalPeriod,
  key adj_no       as AdjNo,
      waers        as Currency,
      @Semantics.amount.currencyCode : 'Currency'
      draft_amount as DraftAmount,
      is_separate  as IsSeparate
}

⑤ 점검 큐브 — 조정 후 금액 · 차이 · 점검 코드

점검 코드의 판정 순서(R01 → R02 → R03 → I00)가 코드로 굳는 자리입니다. 판정을 화면이 아니라 여기서 한 번만 정의하면 화면 · CSV · 분석 앱이 같은 결과를 봅니다. 중요성 기준 1% 는 조건식에 박지 않고 파라미터로 받아 회사 기준으로 바꿀 수 있게 했습니다.

" ────────────────────────────────────────────────────────────────
"  ZI_SegAdjCheck — 조정 항목 단위 점검 (R02 · R03)
"  원장 집계 조정액과 초안 조정액을 항목마다 맞대고,
"  중요 항목(재무제표 금액 대비 비율 이상)이 별도 행인지 본다.
"  결과는 점검 필요 / 정상 두 값만 둔다 — 원인은 단정하지 않는다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK
@EndUserText.label                   : '조정 항목 점검'
define view entity ZI_SegAdjCheck
  with parameters
    P_MaterialPct : abap.dec(5,2)         " 중요성 기준(%) — 점검용 가정, 회사가 정한다
  as select from ZI_SegLedgerCube as Led
  left outer join ZI_SegDraft     as Drf
    on  Drf.CompanyCode  = Led.CompanyCode
    and Drf.FiscalYear   = Led.FiscalYear
    and Drf.FiscalPeriod = Led.FiscalPeriod
    and Drf.AdjNo        = Led.AdjNo
{
  key Led.CompanyCode,
  key Led.FiscalYear,
  key Led.FiscalPeriod,
  key Led.Measure,
  key Led.AdjNo,
      Led.AdjType,
      Led.Currency,

      @Semantics.amount.currencyCode : 'Currency'
      Led.Amount                                         as LedgerAmount,
      @Semantics.amount.currencyCode : 'Currency'
      coalesce( Drf.DraftAmount, cast( 0 as abap.curr(23,2) ) ) as DraftAmount,
      @Semantics.amount.currencyCode : 'Currency'
      Led.Amount - coalesce( Drf.DraftAmount, cast( 0 as abap.curr(23,2) ) ) as AmountDiff,

      case when Led.Amount <> coalesce( Drf.DraftAmount, cast( 0 as abap.curr(23,2) ) )
           then cast( 'R02' as abap.char(3) )            " 초안과 원장 집계가 다르다
           when Drf.IsSeparate is initial
                and abs( Led.Amount ) * 100 >= $parameters.P_MaterialPct * Led.StatementAmount
           then cast( 'R03' as abap.char(3) )            " 중요한데 별도 행이 아니다
           else cast( 'I00' as abap.char(3) )
      end                                                as CheckCode
}

⑥ 분석 쿼리 — Consumption

화면의 조회조건과 결과 컬럼이 이 뷰의 선언으로 정해집니다. 필수 조건(기준 연월)과 선택 조건(조정표 항목 · 조정 유형 · 점검 코드 · 점검 결과)을 어노테이션으로 선언해 두면, 표준 Fiori 분석 앱과 Analysis for Office 가 같은 조건 칸으로 이 쿼리를 엽니다.

" ────────────────────────────────────────────────────────────────
"  ZC_SegReconQuery — 조정표 점검 분석 쿼리
"  조회조건 · 기본 컬럼 · 정렬을 선언한다. 화면(OData)과 표준 분석 앱이
"  같은 선언을 읽는다.
" ────────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label                : '영업부문 조정표 점검'
@Analytics.query                  : true
@Metadata.ignorePropagatedAnnotations : true
define view entity ZC_SegReconQuery
  with parameters
    P_MaterialPct : abap.dec(5,2)
  as select from ZI_SegAdjCheck( P_MaterialPct : $parameters.P_MaterialPct )
{
      @AnalyticsDetails.query.axis : #ROWS
      @Consumption.filter          : { selectionType : #SINGLE, mandatory : true }
  key FiscalPeriod,

      @AnalyticsDetails.query.axis : #ROWS
      @Consumption.filter          : { selectionType : #SINGLE, multipleSelections : false }
  key Measure,

      @AnalyticsDetails.query.axis : #ROWS
      @Consumption.filter          : { selectionType : #SINGLE }
  key AdjNo,

      @Consumption.filter          : { selectionType : #SINGLE }
      AdjType,
      @Consumption.filter          : { selectionType : #SINGLE }
      CheckCode,

      @Semantics.amount.currencyCode : 'Currency'
      @AnalyticsDetails.query.axis   : #COLUMNS
      LedgerAmount,
      @Semantics.amount.currencyCode : 'Currency'
      @AnalyticsDetails.query.axis   : #COLUMNS
      DraftAmount,
      @Semantics.amount.currencyCode : 'Currency'
      @AnalyticsDetails.query.axis   : #COLUMNS
      AmountDiff,
      Currency
}

⑦ 권한 (DCL)

집계 화면은 권한이 없어도 합계가 보이는 수가 있습니다. 세그먼트 권한이 없는 사람이 전사 합계는 볼 수 있고 상세만 막히면, 뺄셈으로 다른 부문의 숫자를 알아냅니다. 그래서 권한은 상세가 아니라 집계를 읽는 자리에 걸어야 합니다.

" ────────────────────────────────────────────────────────────────
"  ZI_SegLedgerCube — 접근 제어 (DCL)
"  회사코드와 세그먼트 단위로 건다. 집계를 읽는 큐브에 걸어야
"  합계의 뺄셈으로 다른 부문 숫자가 새지 않는다.
"  확인 필요 : 세그먼트 권한 오브젝트는 회사의 권한 설계에 따른다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '영업부문 원장 집계 큐브 권한'
@MappingRole : true
define role ZI_SEGLEDGERCUBE {
  grant select on ZI_SegLedgerCube
    where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' )
      and ( SegId )       = aspect pfcg_auth( F_FAGL_SEG, FAGL_SEG, ACTVT = '03' );
}

⑧ 서비스 정의와 바인딩

화면이 부르는 OData 서비스는 이 두 줄로 열립니다. 서비스 정의에 쿼리를 노출하고 OData V2 바인딩으로 게시한 뒤, 화면의 매니페스트에 적은 서비스 주소만 이 게시 주소로 바꾸면 화면 코드는 그대로 씁니다.

" ────────────────────────────────────────────────────────────────
"  Z_SegReconService — 서비스 정의 (OData V2 로 바인딩)
"  운영 전환 시 /IWFND/MAINT_SERVICE 로 활성화하거나 서비스 바인딩을 게시한 뒤,
"  화면의 manifest 데이터 소스 주소를 그 주소로 바꾼다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '영업부문 조정표 점검 서비스'
define service Z_SegReconService {
  expose ZC_SegReconQuery as SegReconQuery;
  expose ZI_SegLedgerCube as LedgerCube;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래는 코드를 쓰기 전에 합의해야 하는 항목입니다.

해야 할 일무엇을 정하나정하지 않으면누가
세그먼트 → 보고부문 매핑어느 세그먼트가 보고부문이고 어느 것이 비보고 사업인가부문 합계가 부문 보고서와 달라 첫 대사에서 막힙니다회계팀 · 경영기획
조정 유형 · 조정표 항목 매핑계정별로 부문간 상계 · 미배분 · 회계정책 차이를 가름조정 합계가 공시 초안과 어긋납니다회계팀
부호 규칙수익 · 부채를 양수로 보일지 원장 부호대로 둘지표준 화면 금액과 부호가 반대로 보여 혼동이 생깁니다회계팀
원천 확정원장(리딩 원장 · 비리딩 원장)과 세그먼트 필드다른 원장을 집계해 재무제표 금액과 다릅니다재무 · Basis
공시 초안 공급 방식입력 화면 · 파일 · 공시 도구 중 무엇으로 받는가초안 금액이 비어 모든 조정 항목에 R02 가 붙습니다회계팀 · IT
중요성 기준1% 를 쓸지 회사 기준을 쓸지별도 식별 점검이 감사인 기준과 어긋납니다회계팀 · 감사인
권한 설계회사코드 · 세그먼트 단위 조회 권한전사 합계 뺄셈으로 다른 부문 숫자가 드러납니다보안 · 권한
대사 체계FAGLL03 · FAGLB03 과 맞출 항목과 시점마감마다 누가 무엇을 맞추는지가 매번 달라집니다회계팀
전송(TR) 순서매핑 테이블 → 차원 → 큐브 → 점검 → 쿼리 → 권한 → 서비스참조하는 뷰가 없어 활성화가 실패합니다IT
서비스 활성화 · 주소 교체/IWFND/MAINT_SERVICE 활성화(또는 바인딩 게시)와 manifest 주소 교체화면이 샘플 서비스를 계속 바라봅니다IT · Basis

운영 데이터로 갈 때

영업부문 공시는 전표 수천만 건에서 세그먼트별로 집계해도 결과는 수백 행입니다. 그래서 집계를 DB 에서 끝내고 화면에는 집계 결과만 올려야 합니다. 기준 연월(회계연도 · 기간)과 회사코드는 파라미터 또는 필수 조건으로 받아 전체 기간 스캔을 막고, 세그먼트 · 계정 · 기간 컬럼에 대한 조회가 인덱스를 타는지 실행 계획으로 확인합니다. 응답 시간 기준은 회사가 정하되, 마감 중 반복 조회를 전제로 몇 초 안을 목표로 두는 편이 낫습니다. 이 화면은 월마감 점검용이라 실시간 합계보다 마감 시점 스냅샷이 더 중요할 수 있어, 필요하면 큐브 결과를 마감 시점에 저장해 두는 방식도 검토합니다.

자주 묻는 질문

도입 상담과 데모에서 나올 만한 질문을 네 묶음으로 나눠 적었습니다.

숫자와 점검 규칙

이 화면이 대상으로 하는 금액은 무엇이고 적용 시기는 언제입니까?

영업부문 공시에서 보고부문의 수익 · 손익 · 자산 · 부채 합계를 기업 재무제표 금액으로 잇는 조정표가 대상입니다. IFRS 8(K-IFRS 제1108호)이 이 조정을 요구합니다.

기준서별 적용 시기와 경과규정은 이 글에서 확인하지 않았으므로 확인 필요입니다. 기준서 원문과 감사인의 안내로 확인해 주세요.

점검 필요로 표시되면 공시가 잘못된 것입니까?

아닙니다. 이 화면은 점검과 대사를 돕는 조회 도구이며, 점검 필요는 원장 집계와 공시 초안이 다르니 확인해 보라는 뜻입니다.

원인은 오타일 수도, 기준 해석일 수도, 원장 반영 시점 차이일 수도 있어 화면은 단정하지 않습니다. 최종 판단은 회사와 감사인이 합니다.

점검 코드는 왜 한 항목에 하나만 붙습니까?

R01 → R02 → R03 → I00 순서로 먼저 해당하는 것 하나만 씁니다. 항목마다 여러 코드를 달면 요약 숫자의 합이 항목 수보다 커져 읽기 어렵기 때문입니다.

우선순위는 조정표 전체가 맞지 않는 R01 이 가장 높고, 다음이 초안 금액 차이 R02, 별도 식별 R03 입니다. 한 코드를 고치고 다시 조회하면 다음 코드가 드러납니다.

중요 항목 기준 1% 는 어디서 나온 숫자입니까?

이 화면의 점검용 가정입니다. 기준서가 숫자를 정해 주지 않으므로 화면이 임의로 둔 값이며, 실제 중요성 기준은 회사가 감사인과 정합니다.

운영에서는 CDS 의 파라미터로 받아 회사 기준 값으로 바꿉니다. 기준을 바꾸면 R03 대상이 달라지므로 바꾼 기준과 날짜를 기록해 두시길 권합니다.

금액이 작아 합산돼 있는 항목은 왜 정상입니까?

별도 식별이 필요한 것은 중요한 조정 항목이기 때문입니다. 금액이 중요성 기준 미만이면 초안에서 합산돼 있어도 점검 대상으로 보지 않습니다.

검증용 샘플에는 일부러 이 경우(부채의 기타 미배분 부채)를 넣어, 화면이 금액 크기를 보지 않고 합산 여부만으로 점검 필요를 붙이지 않는지 확인했습니다.

정합성 대사와 장부 점검 대사는 무엇이 다릅니까?

정합성 대사(01~06)는 화면이 계산한 값끼리 맞는지 보는 것으로, 차이가 나면 계산이나 데이터 구성이 잘못된 것입니다. 장부 점검 대사(07~10)는 재무제표 금액 · 공시 초안과 맞는지 보는 것으로, 차이가 나면 점검할 사항이 있다는 뜻입니다.

둘을 섞으면 의도한 점검 사항이 계산 오류처럼 읽히므로 따로 집계합니다. 요약 칸의 "정합성 대사 차이 건수"는 앞의 것만 셉니다.

샘플 데이터의 의도적 예외 3건은 무엇입니까?

점검 코드가 실제로 붙는지 보려고 202412 에 넣은 값입니다. R01 은 부채 항목(조정 후 금액이 재무제표 금액보다 8,650,000,000원 적음), R02 는 세전계속사업이익의 본사 공통 관리비 항목(초안이 원장 집계와 180,000,000원 다름), R03 은 자산의 이연법인세자산 미배분(중요 항목인데 초안에 합산)입니다.

202312 는 예외 없이 모두 정상입니다. 두 기준 연월을 번갈아 조회하면 점검 필요가 3건과 0건으로 바뀝니다.

화면과 조작

조회 조건을 비우면 어떻게 됩니까?

기준 연월은 필수이고, 나머지 네 조건은 비우면 전체입니다. "전체"는 코드값으로 보내지 않고 해당 조건을 필터에서 뺍니다.

부문 명세 · 대사 결과 탭은 기준 연월만 받습니다. 그래서 점검 결과를 점검 필요로 좁혀도 이 두 탭의 건수는 변하지 않습니다.

행을 누르면 열리는 창에서 무엇을 볼 수 있습니까?

조정표의 한 행을 누르면 보고부문 합계에서 재무제표 금액까지의 조정 항목이 순서대로 열립니다. 창 위쪽에는 점검 코드와 한 줄 설명이 있고, 별도 행으로 식별되지 않은 중요 항목이 눈에 띄게 표시됩니다.

공시 초안을 고칠 때 어느 줄을 별도로 적어야 하는지 바로 알 수 있습니다. ESC 로 닫습니다.

결과를 내려받을 수 있습니까?

네. 현재 탭의 조회 결과를 CSV(UTF-8)로 내려받습니다. 파일 이름에 탭 이름이 붙습니다.

화면에 보이는 조건 그대로의 결과이므로, 검토 자료에 붙일 때는 기준 연월과 점검 결과 조건을 함께 적어 두는 편이 좋습니다.

서비스에 연결되지 않으면 어떻게 보입니까?

서비스 정의를 불러오지 못한 경우 · 요청이 실패한 경우 · 응답이 비어 있는 경우를 구분해 안내 창을 띄웁니다. 빈 표만 보이는 일은 없도록 했습니다.

연결 문제와 데이터 없음을 구분해야 사용자가 IT 에 물을지 현업에 물을지 압니다.

휴대폰에서도 쓸 수 있습니까?

조회조건이 세로로 쌓이고 표가 가로로 스크롤되어 열립니다. 점검 필요만 골라 확인하는 용도로는 충분하지만, 조정 항목 명세와 대사 결과는 열이 많아 넓은 화면이 편합니다.

표준 T-code 와 운영 연결

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

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 부문 금액과 조정 금액의 원천은 FAGLL03 으로 보는 원장 라인, 재무제표 금액은 FAGLB03 로 보는 계정 잔액, 개별 전표는 FB03 입니다.

화면의 숫자를 의심할 때는 같은 계정 · 세그먼트 · 기간 조건으로 이 T-code 들에서 다시 더해 보시면 됩니다.

기존 영업부문 리포트나 조정표 양식을 없애야 합니까?

없애지 않습니다. 법정 · 감사 대응에 쓰는 표준 리포트와 공시 양식은 그대로 두고, 이 화면은 마감 전에 원장 · 초안 · 부문 금액이 맞는지 보는 점검 용도로 함께 씁니다.

공시 숫자를 만드는 일은 이 화면이 하지 않습니다.

운영 데이터와 연결하려면 무엇을 해야 합니까?

세 가지입니다. 첫째, 매핑(세그먼트 → 보고부문, 계정 → 조정 유형)을 확정합니다. 둘째, 위 CDS 구성대로 원장 집계 큐브와 점검 뷰를 만들어 OData 서비스로 게시합니다. 셋째, 화면의 매니페스트 데이터 소스 주소를 그 서비스로 바꿉니다.

화면 코드는 서비스가 엔티티셋 · 키 · 필터 계약을 지키는 한 그대로 씁니다. 소요는 매핑 합의가 대부분이고, 뷰 작성은 상대적으로 짧습니다(회사 환경에 따라 다르며 확인 필요).

공시 초안 금액은 어디서 옵니까?

표준 원천이 없는 값이라 입력으로 받는 것으로 가정했습니다. 운영에서는 입력 화면 · 파일 업로드 · 공시 관리 도구 연동 중 회사가 정합니다.

어느 방식이든 키를 원장 집계와 같은 모양(회사코드 · 연도 · 기간 · 조정 번호)으로 맞춰야 두 금액이 항목마다 나란히 놓입니다.

부문 금액은 어디서 집계합니까?

원장의 세그먼트 구분 필드를 계정별로 집계하는 것으로 가정했습니다. 세그먼트를 부문 보고 체계에 맞게 설정해 두었다면 그대로 쓸 수 있고, 아니라면 매핑에서 보완합니다.

고객사의 세그먼트 설정에 따라 달라지므로 확인 필요입니다.

계정 체계나 부문 구분이 바뀌면 어떻게 합니까?

매핑 테이블의 유효기간을 이용해 새 행을 추가합니다. 과거 기간은 옛 행을 계속 읽으므로 이미 공시한 기간의 조정표가 바뀌지 않습니다.

매핑을 바꾼 날짜와 이유는 변경 이력으로 남겨 두시길 권합니다.

권한 · 성능 · 책임

권한은 어떻게 다룹니까?

회사코드와 세그먼트 단위로 거는 것을 전제로 합니다. 집계를 읽는 큐브에 걸어야 하는 이유는, 상세만 막으면 전사 합계에서 허용된 부문 합계를 빼서 다른 부문 숫자를 알아낼 수 있기 때문입니다.

세그먼트 권한 오브젝트는 회사의 권한 설계에 따라 달라 확인 필요입니다.

전표가 수천만 건이면 느려지지 않습니까?

집계를 DB 에서 끝내면 결과는 수백 행이라 화면은 가볍습니다. 기준 연월과 회사코드를 필수로 받아 전체 기간 스캔을 막고, 집계 컬럼에 맞는 접근 경로를 실행 계획으로 확인합니다.

화면이 전표 라인을 직접 읽어 묶는 구조는 운영에서 쓰지 않습니다.

이 화면이 공시 숫자의 정확성을 보증합니까?

아닙니다. 이 화면은 점검 도구입니다. 원장 집계와 초안이 같은지, 합계가 산식대로 맞는지를 다시 계산할 뿐이고, 회계 처리와 공시의 최종 판단은 회사와 감사인이 합니다.

점검 필요가 없다고 해서 공시가 기준서에 맞는다는 뜻은 아닙니다.

부채는 항상 조정표에 넣어야 합니까?

IFRS 8 은 부채 금액을 최고경영의사결정자에게 정기적으로 제공하는 경우에 부문 부채와 그 조정을 요구합니다. 그래서 화면은 부채 항목을 조정표에 두되, 적용 대상 여부는 회사별로 확인이 필요합니다.

적용되지 않는 회사는 조회조건에서 조정표 항목을 부채 외로 좁혀 쓰면 됩니다.

손익 측정 기준이 회사마다 다르면 어떻게 합니까?

부문 손익의 측정 기준은 회사가 최고경영의사결정자에게 보고하는 체계를 따릅니다. 이 화면은 그 측정 기준을 정하지 않고, 정해진 부문 금액에서 기업 금액으로 가는 조정을 계산합니다.

측정 기준과 기업 금액의 차이는 회계정책 · 측정 차이 항목에 담습니다.

이 화면의 도입 효과와 대상 사용자는 누구입니까?

영업부문 공시를 준비하는 회계팀과 연결 · 공시 담당자, 그리고 초안을 검토하는 경영지원 조직입니다. 효과는 마감 막바지에 세 곳의 숫자가 어긋난 것을 발견하는 일을, 초안 작성 중에 미리 보는 일로 바꾸는 것입니다.

수치로 효과를 약속하지는 않으며, 현재 조정표를 맞추는 방식에 따라 달라집니다.

유지보수는 어디에 손이 갑니까?

매핑 테이블 하나입니다. 계정이나 세그먼트가 새로 생기면 어느 조정 분류인지만 적어 주면 됩니다. 점검 코드 판정은 CDS 한 곳에 있어 화면을 고칠 일이 거의 없습니다.