SAP 자금흐름 예측 대사 조회 — 계획과 실적, 은행잔고까지 한 화면에서 맞춰본다
현금분류별 계획·실적 금액을 대사하고, 기초잔고-입금-출금-기말잔고 롤포워드까지 함께 점검합니다
자금 계획은 세워두지만, 기간이 지난 뒤 "계획대로 들어오고 나갔는지"를 현금분류별로 다시 맞춰보는 화면은 따로 없는 경우가 많습니다. 그래서 회계연도·기간별 자금 유입·유출 계획과 실적을 수금·지급·차입금상환·기타 네 가지 현금분류로 대사하고, 은행잔고를 기초잔고-입금-출금-기말잔고 순서로 롤포워드하는 화면을 OpenUI5로 구현했습니다.
계획과 실적의 차이금액, 그리고 은행잔고 장부값과 계산값의 차이를 함께 보여주어 확인이 필요한 기간을 바로 가려낼 수 있습니다. 표준 현금포지션·자금계획 조회 기능이 담당하는 조회 위에, 계획 대비 실적 대사와 잔고 롤포워드 검증 층을 더한 셈입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 현금포지션 조회 — 현금포지션 조회(
FF7A)의 은행 계좌별 잔고 조회 관점을 은행잔고 롤포워드 탭에 그대로 이어받습니다 - 자금계획현황 — 자금계획현황 조회(
FF63)의 계획·실적 비교 관점을 카테고리별 예측·실적 탭으로 확장합니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무(FI) · 자금관리 |
| Namespace | zui5.cashfcst |
| 셸 구조 | 조회조건 영역(우측 조회) + 대사 요약 KPI 4종 + 탭 3개, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 3개) + 상세 다이얼로그 |
| SAP 표준 T-code | FF7A · FF63 |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·점검형 — 차이 원인 판단은 담당자가 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
기본 조건으로 조회하면 요약 KPI와 카테고리별 예측·실적 탭이 뜹니다 → 은행잔고 롤포워드 탭에서 기간별 잔고 대사를 보고 → 문서별 상세에서 행을 클릭해 상세를 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 화면에 들어오면 기본 조건(최근 회계연도·전체 기간)으로 자동 조회가 1회 실행되어 요약 KPI와 세 개 탭이 함께 채워집니다.
- 조회조건 영역에서 회계연도(필수)·기간(시작/종료, 필수)·현금분류(선택, 기본값 전체)를 지정합니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 조회조건 영역 어디서든 Enter 키를 눌러도 같은 조회가 실행됩니다. 초기화 버튼은 조회 버튼 바로 왼쪽에 있습니다.
- 상단 카드에서 계획금액 합계 · 실적금액 합계 · 차이금액 합계 · 차이율을 먼저 확인합니다.
- 탭을 옮겨 카테고리별 예측·실적 → 문서별 상세 → 은행잔고 롤포워드 순으로 봅니다.
- 문서별 상세 탭에서 행을 클릭하면 해당 문서의 상세 정보가 다이얼로그로 열립니다.
- 문서별 상세 탭 우측 상단의 CSV 내려받기(UTF-8 BOM)로 현재 조회 결과를 저장합니다.
예측·실적 대사 판정 규칙
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 카테고리별 차이금액(계획−실적) = 0 | 정상 | 조치 불요 |
| 카테고리별 차이금액 ≠ 0 | 확인 필요 | 계획 대비 실적 차이 사유를 확인 |
| 은행잔고 기말잔고(장부) − 계산 기말잔고 ≠ 0 | 확인 필요 | 미기표 거래·수수료 등 차이 원인을 확인 |
| 문서 상태 = 기한초과 | 확인 필요 | 정산 지연 사유를 확인 |
위 기준은 조회·점검을 돕기 위한 것이며, 실제 원인 판단과 조치는 화면이 단정하지 않고 회사 담당자와 감사인이 확인합니다.
자금흐름 대사 처리 단계
| 단계 | 내용 |
|---|---|
| 1단계 | 조회조건(회계연도·기간·현금분류)을 입력 |
| 2단계 | 문서별 계획·실적 금액을 현금분류별로 집계해 카테고리별 예측·실적을 산출 |
| 3단계 | 카테고리별 계획금액과 실적금액의 차이금액·차이율을 계산 |
| 4단계 | 입금 실적(수금+기타)과 출금 실적(지급+차입금상환)을 기간별로 합산 |
| 5단계 | 기초잔고+입금실적−출금실적로 계산 기말잔고를 산출하고 장부상 기말잔고와 대사 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 조회할 회계연도(YYYY) |
| 기간(시작/종료) | 필수 | 회계기간 범위(001~012) |
| 현금분류 | 선택 | 수금 · 지급 · 차입금상환 · 기타 — 전체면 조건 제외 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 현금분류 · 계획금액 · 실적금액 · 차이금액 · 차이율(%) | 카테고리별 예측·실적 탭 |
| 문서유형 · 문서번호 · 거래처 · 만기일 · 계획금액 · 실적금액 · 정산일 · 상태 | 문서별 상세 탭 |
| 기간 · 기초잔고 · 입금실적 · 출금실적 · 기말잔고(장부) · 계산 기말잔고 · 차이 | 은행잔고 롤포워드 탭 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 대사·검증 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
FF7A | 현금포지션 조회 | 계좌별 잔고 조회 위에 기초-입금-출금-기말 롤포워드 대사를 더합니다 |
FF63 | 자금계획현황 조회 | 계획·실적 비교를 현금분류별 차이금액·차이율 중심으로 재구성합니다 |
분석 지표 정의표
| 대상 영역 | 지표 | 정의 | 원천 데이터 |
|---|---|---|---|
| 자금 분석 | 계획 대비 차이금액 | 계획금액 − 실적금액 | 문서별 상세 집계 |
| 자금 분석 | 차이율 | 차이금액 ÷ 계획금액 × 100 | 카테고리별 예측·실적 |
| 자금 분석 | 은행잔고 차이 | 기말잔고(장부) − 계산 기말잔고 | 입금·출금 실적 집계 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
BSID | KUNNR · NETDT · DMBTR | 고객 미결 항목 — 수금 계획의 원천 |
BSIK | LIFNR · NETDT · DMBTR | 공급업체 미결 항목 — 지급 계획의 원천 |
BSEG | DMBTR · AUGDT | 정산 전표 — 실적 금액·정산일의 원천 |
define view entity I_CashForecast
as select from bsid as Ar
{
key ar.bukrs as CompanyCode,
key ar.gjahr as Gjahr,
ar.netdt as DueDate,
ar.dmbtr as PlanAmount
}
필드 매핑은 검증용 샘플 데이터 기준 스케치이며, 실제 회사 계정 구조가 아닙니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 요약 KPI · IconTabBar 3개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 useBatch:false · defaultCountMode:"Inlinecount" 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩합니다 |
| 문서별 상세 탭 | sap.ui.table.Table — 셀 클릭으로 상세 다이얼로그를 엽니다 |
| 카테고리별·잔고 탭 | sap.m.Table 2개 |
| 조회조건 | sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 같은 필드(기간 시작·종료)의 조건은 하나의 AND 복합 Filter 로 묶어 전달합니다. 전체를 고른 현금분류는 필터를 만들지 않습니다 |
| 예외 메시지 | 메타데이터 실패·요청 실패를 구분해 안내하는 전용 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 모델 초기화, 예외 메시지 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.cashfcst · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 요약 KPI · 3개 탭 |
view/DetailDialog.fragment.xml | 문서 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/formatter.js · model/ErrorHandler.js | 표시 서식 · 예외 메시지 처리 |
i18n/i18n_ko.properties | 화면 문구 |
검증 결과
검증용 샘플 데이터(3개 회계연도 × 12개 기간 × 4개 현금분류)를 기준으로 대사식을 전수 검증했습니다. 은행 수수료 등 미기표 거래로 장부 기말잔고와 계산 기말잔고가 달라지는 예외 사례 2건을 의도적으로 포함했습니다.
| 검증 항목 | 결과 |
|---|---|
| 카테고리별 계획−실적=차이금액 (144건 전수) | 통과(불일치 0건) |
| 문서별 상세 → 카테고리 집계 롤업 일치 (288건 전수) | 통과(불일치 0건) |
| 은행잔고 기초+입금−출금=계산기말잔고 및 기간 연속성 (36건 전수) | 통과(의도적 예외 2건 제외 불일치 0건) |
| 조회 조건 전달 — 회계연도·기간·현금분류 필터 · 정렬 · 총건수 표시 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 | 0건 |
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면은 어떤 기간의 데이터를 다루나요?
조회조건으로 지정한 회계연도·기간 범위의 계획·실적 데이터를 다룹니다. 검증에 쓴 샘플 데이터는 여러 회계연도, 각 연도 1~12기간을 포함합니다.
화면에 표시되는 "확인 필요"는 오류를 의미하나요?
아닙니다. 이 화면은 분류·집계·대사 결과를 보여주는 조회·점검 도구이며, "확인 필요"는 계획과 실적, 또는 장부와 계산값 사이에 차이가 있다는 뜻일 뿐입니다. 차이의 원인 판단과 최종 처리는 회사 담당자와 감사인이 수행합니다.
은행잔고 롤포워드에서 차이가 발생하면 어떻게 하나요?
문서별 상세 탭에서 해당 기간의 미정산·부분정산 건을 먼저 확인하고, 미기표 거래(수수료·이자 등) 여부를 점검하는 것을 권장합니다. 이 화면은 조회·점검만 지원하며 자동으로 원인을 판정하지 않습니다.
CSV 내려받기는 어떤 데이터를 포함하나요?
문서별 상세 탭에서 현재 조회조건으로 필터링된 목록을 그대로 CSV(UTF-8 BOM)로 내려받습니다. 파일명은 한글 기능명으로 저장됩니다.