SAP cPA 차이 자동기표 — 회계와 수익성분석의 간극을 메우기
회계 금액과 수익성분석 금액의 차이를 항목별로 찾아 기표 가능한 건을 가려내고, 전표를 만드는 화면입니다.
계정 기반 수익성분석을 쓰면 회계 금액과 CO-PA 금액이 원칙적으로 같아야 합니다. 같은 전표를 두 관점에서 본 것이기 때문입니다.
그런데 실제로는 차이가 납니다. 수익성 세그먼트가 붙지 않은 전표나 CO-PA 에만 있는 조정 때문입니다. 이 차이를 찾아 기표 가능한 건만 골라 조정하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 항목 — 대조 단위인 값필드/계정 그룹(
vfg)과 명칭 - 구분 — 항목 종류(
kind)로 매출·원가 등 구분 - 금액 — 회계 금액(
dmbtr)과 CO-PA 금액(dmbtrPa) - 기표 계정 — 조정 전표에 쓸 계정(
postAcct)과 코스트센터 - 결과 — 생성된 전표번호(
belnr)와 메시지
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO-PA) · 결산 조정 |
| Namespace | zui5.cpadiff |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 차이 목록 + 기표 실행 |
| 화면 수 | 조회·처리 화면 1개 |
| 데이터 | 차이 항목 7건 |
| 성격 | 조회·처리형 — 기표는 표준 전기 인터페이스 호출 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 1종 둘러보기
회사코드·기간으로 조회하면 항목별 차이가 나옵니다 → 기표 가능한 건을 가려내고 → 조정 전표를 생성합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 기간을 고릅니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 차이가 0이 아닌 항목을 확인합니다.
- 기표 가능 표시가 있는 건을 봅니다. 기표 계정이 지정된 항목입니다.
- 기표 계정과 코스트센터가 맞는지 확인합니다.
- 기표 실행으로 조정 전표를 생성합니다.
- 결과 메시지와 전표번호를 확인합니다.
차이 판정과 기표 규칙
같은 항목을 두 관점에서 본 금액을 비교합니다.
차이 = 회계 금액(dmbtr) − CO-PA 금액(dmbtrPa)
차이 = 0 → 일치 — 조치 없음
차이 ≠ 0 → 조정 대상
기표 계정 지정됨 → 기표 가능
기표 계정 없음 → 기표 불가 — 수동 확인
기표 전표 차변/대변에 차이 금액을 조정 계정으로 반영
기표 가능 여부를 나누는 이유
모든 차이를 자동으로 기표하면 원인을 모른 채 숫자만 맞추게 됩니다. 기표 계정이 미리 지정된 항목만 자동 처리하고 나머지는 사람이 보게 하면, 반복되는 차이는 자동화하고 새로운 차이는 원인을 따지게 됩니다.
차이가 생기는 세 가지 경우
| 경우 | 상황 | 결과 |
|---|---|---|
| 세그먼트 미할당 | 전표에 수익성 세그먼트가 안 붙음 | CO-PA 금액 누락 |
| CO-PA 전용 조정 | 관리 목적 조정이 CO-PA 에만 | 회계 금액과 차이 |
| 기간 귀속 차이 | 인식 시점이 다름 | 다음 기에 해소 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대상 법인 |
| 기간 | 필수 | 대조 기간 |
항목 vfg | 선택 | 값필드/계정 그룹 |
구분 kind | 선택 | 매출 · 원가 등 |
| 기표 여부 | 선택 | 기표 가능 / 불가 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
항목 vfg · vfgTx | 대조 단위와 명칭 |
구분 kind | 매출 · 원가 등 |
회계 금액 dmbtr | 전표 기준 금액 |
CO-PA 금액 dmbtrPa | 수익성분석 금액 |
차이 dmbtrDiff | 회계 − CO-PA. 0이 아니면 경고 색 |
통화 rhcur | 표시 통화 |
기표 계정 postAcct · postAcctTx | 조정 계정 |
코스트센터 kostl | 귀속 부서 |
기표 가능 postable | 자동 기표 대상 여부 |
전표번호 belnr · 메시지 msg | 기표 결과 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
KE24 | CO-PA 실제 데이터 | CO-PA 금액 원천 |
FS10N | 계정 잔액 | 회계 금액 원천 |
ACDOCA | 유니버설 저널 | 계정 기반 CO-PA 대조 |
FB01 | 전표 입력 | 조정 전표 생성 |
| 값필드/계정 매핑 | CO-PA 설정 | 대조 단위 정의 |
도입 시 확인이 필요한 부분
대조 단위를 어떻게 잡을지가 핵심입니다. 계정 단위인지 값필드 단위인지에 따라 차이가 나타나는 모습이 달라집니다. 또 자동 기표 계정을 지정하려면 반복되는 차이의 성격을 먼저 파악해야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCCPADIFF'
@EndUserText.label: 'cPA 차이 대조 (Z)'
define view Z_C_CPA_DIFFERENCE
as select from acdoca as Line
{
key Line.rbukrs as Bukrs,
key Line.gjahr,
key Line.poper as Period,
key Line.racct as Account,
// 회계 금액: 전체 라인 집계
sum( Line.hsl ) as FiAmount,
// CO-PA 금액: 수익성 세그먼트가 붙은 라인만 집계
sum( case when Line.paobjnr <> '' then Line.hsl else 0 end ) as PaAmount
// 차이 = 회계 − CO-PA (소비 뷰에서 계산)
// 기표 계정은 조정 계정 매핑 테이블과 조인
}
group by Line.rbukrs, Line.gjahr, Line.poper, Line.racct
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 차이 목록 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 차이 목록 | sap.m.Table — 회계·CO-PA·차이를 인접 배치 |
| 기표 표시 | sap.m.ObjectStatus — 기표 가능 / 불가 |
| 기표 실행 | 선택 건 조정 전표 생성과 결과 메시지 |
기표 결과를 행에 남기는 이유
기표는 여러 항목을 한 번에 처리하는데 일부만 실패할 수 있습니다. 전체 결과만 알려 주면 어느 항목이 안 됐는지 다시 조회해야 합니다. 행마다 전표번호와 메시지를 남기면 실패 건만 바로 보입니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.cpadiff) · ko 로케일 |
view/Main.view.xml | 조회조건과 차이 목록 |
controller/Main.controller.js | 조회 · 차이 계산 · 기표 실행 |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 차이 · 상태 포맷터 |
localdata/cpadiff.json | 차이 항목 7건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 차이 = 회계 금액 − CO-PA 금액 (전 항목) | 통과 |
| 기표 가능 건은 기표 계정 존재 | 통과 |
| 기표 전표 차변 합계 = 대변 합계 | 통과 |
| 기표 후 전표번호가 항목에 기록 | 통과 |
| 차이 0 인 항목은 기표 대상 제외 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 후 캡처 | 통과 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
차이가 항상 0이어야 하나요?
계정 기반 CO-PA 라면 원칙적으로 그렇습니다. 다만 CO-PA 전용 조정이 있으면 의도된 차이가 생기므로, 어느 항목에서 차이가 정상인지 미리 정해 두는 것이 좋습니다.
기표 불가 건은 어떻게 하나요?
원인을 확인해 수동으로 조정하거나, 반복되면 기표 계정을 지정해 다음부터 자동 처리되게 합니다.
세그먼트가 안 붙은 전표는 왜 생기나요?
일반전표로 직접 전기하거나 수익성 세그먼트 유도 규칙이 적용되지 않는 거래에서 생깁니다. 반복되면 유도 규칙을 보완하는 편이 근본 해결입니다.
SAP 표준 기능과 어떻게 이어지나요?
회계와 CO-PA 데이터는 모두 표준 구조에 있습니다. 이 화면은 두 금액을 항목별로 대조하고 반복되는 차이를 자동 기표해 결산 조정을 줄이는 확장입니다.