솔루션 홈
자금 분석

SAP 은행 자금 포지션 점검 — 은행 잔고가 원장 현금계정과 맞는지부터 본다

회사·은행·통화·기간별로 입출금을 모아 기말잔고를 계산하고, 총계정원장 현금계정 잔액과 자동으로 대사하는 화면을 OpenUI5로 구현했습니다

은행 계좌는 계좌별로는 잘 관리되어도, "은행 거래로 계산한 잔고가 장부(총계정원장 현금계정)와 실제로 맞는가"를 회사·은행·통화·기간 단위로 한눈에 모아 보는 화면은 따로 없는 경우가 많습니다. 그래서 은행 거래 명세(입금·출금)를 회사코드·은행·통화·회계연도·기간 단위로 모아 기초잔고 + 입금액 − 출금액 = 기말잔고 를 계산하고, 이를 총계정원장 현금계정 잔액과 자동으로 대사하는 화면을 OpenUI5로 구현했습니다.

기말잔고와 원장 현금계정 잔액의 차이가 허용오차 이상이면 "확인필요"로 자동 표시합니다. 계좌·차입금 잔액 조회는 표준 자금 관리 기능이 담당하고, 이 화면은 그 위에 회사·은행·통화·기간 단위 대사와 자동 판정을 더한 층입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 자금 포지션 조회 — 계좌별 잔고를 모아 보는 표준 자금 관리 조회 관점을 은행·통화·기간별 포지션 구성에 이어받습니다
  • 총계정원장 라인아이템 조회 — 현금계정 잔액을 라인아이템 단위로 확인하는 표준 조회 방식을 원장 대사의 원천으로 그대로 씁니다
항목내용
업무 영역자금(Treasury) · 자금 분석
Namespacezui5.bankpos
셸 구조조회조건 영역(우측 조회) + 요약 KPI 3종 + 회사·은행·통화·기간별 요약 테이블, 행 클릭 상세 Dialog
화면 수조회 화면 1개 + 상세 다이얼로그
SAP 표준 T-code-
데이터 연동 방식OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩
성격조회·점검형 — 최종 판단은 회사와 감사인이 수행
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

기본 조건으로 조회하면 회사·은행·통화·기간별 요약과 요약 KPI 가 뜹니다 → 통화 조건을 좁혀 확인필요 건을 가려보고 → 행을 클릭해 거래 명세를 봅니다.

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

메인 화면
은행 자금 포지션 점검 메인 화면 — 조회조건과 요약 KPI, 회사·은행·통화·기간별 요약
메인 화면 — 조회조건 · 요약 KPI(조회 건수 · 확인필요 건수 · 기말잔고 합계) · 회사·은행·통화·기간별 요약 목록이 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
통화 조건 조회
통화 조건을 좁혀 확인필요 건을 가려낸 화면
통화별 조회 — 통화 조건을 좁히면 해당 통화 계좌만 남고, 대사 차이가 있는 기간은 "확인필요"로 자동 표시됩니다.
거래 명세
행 클릭 시 열리는 은행 거래 명세 팝업 화면
거래 명세 — 요약 행을 클릭하면 해당 은행·통화·기간의 입출금 거래가 전기일·구분·금액·전표번호·적요와 함께 팝업으로 펼쳐집니다.

사용 방법

  1. 화면에 들어오면 기본 조건(전체 회사·통화, 당해연도 001~009기)으로 자동 조회가 1회 실행되어 요약 KPI와 요약 목록이 함께 채워집니다.
  2. 조회조건 영역에서 회사코드(선택, 비우면 전체)·통화(선택, 비우면 전체)·회계연도·기간(부터/까지)을 입력합니다.
  3. 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 조회조건 영역 어디서든 Enter 키를 눌러도 같은 조회가 실행됩니다. 초기화 버튼은 조회 버튼 바로 왼쪽에 있습니다.
  4. 상단 카드에서 조회 건수 · 확인필요 건수 · 기말잔고 합계를 먼저 확인합니다.
  5. 목록에서 행을 클릭하면 해당 은행·통화·기간의 거래 명세가 팝업으로 열립니다.
  6. 목록 위 CSV 내려받기(UTF-8 BOM)로 현재 조회된 결과 전체를 저장합니다.

포지션 판정 기준

판정 조건결과 상태사용자 조치
기말잔고(계산값)와 원장 현금계정 잔액의 차이 절대값이 허용오차(0.01) 미만정상조치 없음
차이 절대값이 허용오차 이상확인필요은행 거래 명세와 원장 전표를 대조해 미기표·중복기표·환산차이 등 원인을 점검

위 기준은 조회·점검을 돕기 위한 것이며, 차이의 최종 원인 판정과 회계처리는 화면이 단정하지 않고 회사와 감사인이 확인합니다.

포지션 산출·대사 절차

단계내용
1단계은행·통화·회계연도·기간별로 거래 명세(입금/출금)를 집계해 입금액·출금액을 산출
2단계정합성 검증: 거래 명세 합계 = 기간별 입금액·출금액(전수 일치 확인)
3단계기초잔고 + 입금액 − 출금액 = 기말잔고 산출(전기 기말잔고가 당기 기초잔고로 이월)
4단계기말잔고를 총계정원장 현금계정 잔액과 대사해 차이를 산출
5단계차이가 허용오차 이내면 "정상", 아니면 "확인필요"로 점검결과 부여

조회조건

필드필수설명
회사코드선택전체면 조건 제외
통화선택전체면 조건 제외
회계연도필수4자리 회계연도
기간(부터/까지)필수3자리 기간 범위(이상·이하)

결과 컬럼

컬럼설명
회사코드 · 회사명 · 은행ID · 은행명 · 통화 · 연도 · 기간대상 회사·은행·통화·기간
기초잔고 · 입금액 · 출금액 · 기말잔고포지션 대사식의 각 구성요소
원장 현금계정 잔액 · 차이대사 대상과 그 차이
거래건수 · 점검결과해당 기간 거래 건수, 정상/확인필요
거래ID · 전기일 · 구분 · 금액 · 전표번호 · 적요거래 명세 팝업 컬럼

SAP 표준 기능 매핑

표준 실행은 SAP 표준 기능이 담당하고, 이 화면은 그 데이터에 회사·은행·통화·기간 단위 대사와 자동 판정 관점을 더해 확장합니다.

표준 기능표준 기능 설명이 화면이 더한 것
자금 포지션 조회계좌별 잔고를 모아 보는 표준 자금 관리 조회은행·통화·기간 단위로 입출금을 모아 기말잔고를 계산합니다
총계정원장 라인아이템 조회현금계정 잔액을 라인아이템 단위로 확인하는 표준 조회산출된 기말잔고를 원장 현금계정 잔액과 자동으로 대사·판정합니다

분석 지표 정의표

대상 영역지표정의원천 데이터
자금 분석기말잔고(CloseBal)기초잔고 + 입금액 − 출금액은행 거래 명세
자금 분석차이(Diff)기말잔고 − 원장 현금계정 잔액은행 거래 명세, 총계정원장 현금계정

참고 CDS 뷰

원천 테이블주요 필드쓰임
BSEGBUKRS · GJAHR · HKONT · DMBTR현금계정 라인아이템 — 원장 현금계정 잔액 산출 원천(표준 원장 테이블 기준)
BKPFBUKRS · BELNR · BUDAT전표 헤더 — 전기일자·전표번호
define view entity I_BankPositionSketch
  as select from bseg as Ledger
{
  key Ledger.bukrs         as Bukrs,
  key Ledger.gjahr         as Gjahr,
  key Ledger.monat         as Period,
      sum(Ledger.dmbtr)    as GlBalance   // 현금계정 한정, 회사·연도·기간 집계
}
group by Ledger.bukrs, Ledger.gjahr, Ledger.monat

필드 매핑은 가상 데이터 기준 스케치이며, 은행별 입출금 명세는 별도 거래 데이터에서 집계합니다.

OpenUI5 구성

기능사용 컨트롤 · 구성
화면 골격sap.m.Page + 조회조건 패널 · 요약 KPI · 포지션 요약 목록
데이터 연동manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩합니다
포지션 요약sap.ui.table.Table(컬럼 15개) — 셀 클릭으로 상세 다이얼로그를 엽니다
거래 명세sap.m.Table 1개 — 다이얼로그 안에서 growing 방식으로 표시
조회조건sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 기간(부터·종료) 조건은 하나의 AND 복합 Filter 로 묶어 전달합니다. 회사코드·통화를 "전체"로 두면 필터를 만들지 않습니다
예외 메시지메타데이터 실패·요청 실패를 구분해 안내하는 전용 처리기

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결
Component.js모델 초기화, 예외 메시지 처리기 연결
manifest.json앱 디스크립터 — zui5.bankpos · ko 로케일, OData 서비스와 모델 선언
view/Main.view.xml조회조건 · 요약 KPI · 포지션 요약 목록
view/DetailDialog.fragment.xml거래 명세 다이얼로그
controller/Main.controller.js조회조건 조립 · 바인딩 · 다이얼로그 · CSV
controller/BaseController.jsCSV 다운로드 공통 처리
model/formatter.js · model/ErrorHandler.js표시 서식 · 예외 메시지 처리
i18n/i18n_ko.properties화면 문구

검증 결과

검증용 샘플 데이터(포지션 63건, 거래 명세 370건)를 기준으로 대사식을 전수 검증했습니다. 판정 로직 시연을 위해 기말잔고와 원장 현금계정 잔액이 일치하지 않도록 의도적으로 편성한 예외 3건을 포함했습니다.

검증 항목결과
거래 명세 합계 = 기간별 입금액·출금액(63건 전수)통과(불일치 0건)
기초잔고 + 입금액 − 출금액 = 기말잔고 항등식통과(전수 일치)
전기 기말잔고 → 당기 기초잔고 이월 연속성통과(전수 일치)
기말잔고 vs 원장 현금계정 잔액 차이 판정(정상/확인필요)통과(의도적 예외 3건 정확히 검출, 미설명 차이 0건)
조회 조건 전달 — 회사코드·통화·회계연도·기간 필터 · 정렬 · 총건수 표시확인
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현0건
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지확인

모든 데이터는 검증용으로 구성한 가상 데이터입니다.

자주 묻는 질문

은행 자금 포지션 화면은 언제부터, 어떤 데이터에 쓸 수 있나요?

특정 기준서 시행일과 무관한 자금 관리 조회·점검 화면입니다. 조회조건에 지정한 회계연도·기간의 은행 거래·원장 데이터가 있으면 바로 조회할 수 있습니다.

화면의 "확인필요" 표시는 어떤 의미인가요?

은행 거래로 계산한 기말잔고와 총계정원장 현금계정 잔액이 허용오차 이상 차이가 날 때 표시됩니다. 미기표 항목, 중복 기표, 환산 차이 등 여러 원인이 있을 수 있어 화면은 차이를 표시할 뿐 원인을 단정하지 않습니다.

화면에 표시되는 점검 결과가 회사의 공식 결론인가요?

아닙니다. 이 화면은 분류·집계·대사를 돕는 조회·점검 도구이며, 차이의 최종 원인 판정과 회계처리 여부는 회사와 감사인이 확인해 결정합니다.

여러 통화의 은행 계좌도 함께 볼 수 있나요?

예. 통화별로 조회조건을 좁혀 볼 수 있고, 통화가 달라도 같은 대사 로직(기초+입금−출금=기말, 기말과 원장 현금계정 잔액 대사)이 그대로 적용됩니다.

은행 잔고 대사, 회사·은행·통화 단위로 한 화면에서 확인해 보세요

계좌별 잔고만으로는 놓치기 쉬운 회사·은행·통화 단위 대사 차이를 미리 걸러 두면, 결산 전 확인 작업을 더 일찍 시작할 수 있습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

은행 자금 포지션자금 포지션 점검자금 분석은행잔고 대사원장 현금계정OpenUI5