자금 솔루션 · 현금 포지션

SAP 가용 자금 충당 점검 — 은행 계좌별 가용 자금을 다시 계산해 당일 지급 충당·이체 가능 여부·은행 통지와 견주는 자금 화면

가용 자금 재계산 · 당일 지급 충당 판정 · 이체 가능 여부와 은행 통지 대사 — 소개 영상과 실제 화면 6종, 그리고 CDS 구성까지

소개 영상1분 32초8개 장면음성 안내·자막가용 자금 계산 → 조회와 요약 → 점검 필요만 보기 → 상세 → 일자·통화 집계 → 계좌 기준과 대사

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

지급 직전 자금 담당이 던지는 질문은 늘 비슷합니다. 오늘 이 계좌에서 실제로 쓸 수 있는 돈은 얼마인가, 그 돈으로 당일 확정 지급을 감당하는가, 모자라면 같은 통화의 다른 계좌에서 옮겨 올 여유가 있는가. 지금은 이 답이 장부 잔액, 제한 자금 목록, 미결제 지급, 은행의 한도 통지에 흩어져 있어 한 번에 맞춰 보기 어렵습니다. 장부 잔액만 보면 충분해 보이지만 제한 자금과 최소 유지 잔액을 빼면 지급액에 못 미치는 날이 생기고, 약정 한도에 기대어 겨우 충당하는 날도 있습니다.

이 앱은 계좌·일자마다 장부 잔액 − 제한 자금 − 미결제 지급 − 최소 유지 잔액 + 유효한 약정 한도로 가용 자금을 다시 구하고, 당일 확정 지급을 뺀 충당 후 잔여를 보여 줍니다. 부족한 계좌는 같은 통화의 다른 계좌 여유로 해소되는지 일자·통화 단위로 확인하고, 은행 통지 가용 잔액과 재계산 값이 허용 오차 안에서 맞는지도 함께 가립니다. 관련 기준서는 없고 대상 영역은 자금(은행 계좌 가용 자금·당일 지급 충당)입니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·점검 관점을 더해 확장합니다.

한 줄 요약 — 잔액을 눈으로 비교하는 일이 아니라, 당일 지급을 감당하지 못하는 계좌를 근거와 함께 가려내는 일을 한 화면에 모았습니다. 숫자는 서비스가 한 곳에서 계산하므로 화면 · 내려받기 · 대사가 서로 어긋나지 않습니다.

장부 잔액이 충분해도 쓸 수 있는 돈은 다르다

이 샘플의 한 당좌 계좌는 9월 초 장부 잔액이 5,200만 원이지만 최소 유지 잔액 1,000만 원을 빼면 4,200만 원이고, 약정 한도의 남은 2억 1,300만 원을 더해야 가용 자금이 2억 5,500만 원이 됩니다. 한도를 빼고 보면 같은 날 지급 1,100만 원도 한도 없이 충당할 수 있는지 달라집니다. 한도가 만료되었거나 한도 사용분이 늘면 숫자가 바로 달라지므로 건마다 다시 구해야 합니다.

부족은 계좌 단위가 아니라 일자·통화 단위로 풀린다

한 계좌가 모자라도 같은 날 같은 통화의 다른 계좌에 한도 없이 쓸 수 있는 여유가 있으면 이체로 해소됩니다. 이 화면은 일자·통화마다 부족액 합과 이체 가능 여유 합을 구해 이체로 해소되는 금액과 그래도 남는 부족을 나눠 보여 줍니다. 여유가 있어도 이체 수수료나 마감 시각 같은 실무 조건은 회사가 판단합니다.

은행 통지 가용 잔액과 재계산이 다르면 원인을 먼저 봐야 한다

통지서의 가용 잔액이 재계산과 다르면 미결제 지급이 반영되지 않았거나, 만료된 약정 한도가 통지에 계속 들어 있을 수 있습니다. 이 화면은 통화별 허용 오차를 넘는 경우만 확인 필요로 표시하고, 만료 한도가 포함된 경우는 따로 가려 줍니다. 원인을 단정하지 않고 확인할 자리를 좁혀 줍니다.

환율과 한도 기준은 회사가 정한다

원화 환산에 쓸 환율 유형과 적용일, 최소 유지 잔액과 제한 자금 기준, 약정 한도의 원천은 회사 정책으로 정할 일입니다. 샘플은 가정값을 쓰며, 이 화면은 그 선택을 대신하지 않고 선택한 기준에서 숫자가 어떻게 보이는지를 보여 줍니다.

사용 방법

  1. 회계연도와 기간(월)을 확인하고 필요하면 회사·은행·통화·계좌 유형·기준일·점검 코드·점검 결과를 고릅니다. 처음 열면 2026년 09월이 채워져 자동으로 한 번 조회됩니다. 비워 두면 “전체”입니다.
  2. 조회 버튼(조회조건 영역의 오른쪽 끝, 초기화 옆)을 누르거나 입력란에서 Enter 를 누릅니다.
  3. 위쪽 요약에서 점검한 계좌·일자 건 · 일평균 가용 자금 · 충당 부족 건과 금액 · 한도에 기댄 건 · 이체 필요 일자·통화 · 확인 필요 · 정합성 대사 차이를 먼저 봅니다.
  4. 계좌·일자 명세 → 일자·통화 집계 → 계좌 기준 → 대사 결과 순서로 탭을 옮겨 봅니다.
  5. 계좌·일자 명세의 행을 누르면 가용 자금 구성 · 약정 한도 · 충당 결과와 같은 기준일·같은 통화의 다른 계좌가 상세 창에 열립니다.
  6. CSV 내려받기 로 지금 보는 탭을 UTF-8(BOM) 파일로 받아 확인 자료로 씁니다.

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

자금 점검에서 가장 비싼 질문은 “이 합계 맞아?” 입니다. 그래서 대사식을 먼저 세우고 샘플 데이터 전체(8월 140건 · 9월 140건)에 돌렸습니다. 검증용 파일을 화면과 별개 코드로 다시 계산해 서비스 결과와 견준 값입니다.

대사식검사 건수차이
가용 자금 구성(장부 − 제한 − 미결제 − 최소 유지 + 한도)2800
충당 후 잔여 = 가용 자금 − 당일 확정 지급2800
일자·통화 집계 합 = 계좌 명세 합1600
부족액 = 이체로 해소 + 이체해도 부족1600
원화 환산 가용 자금 합 = 집계 합1600
정상 + 점검 필요 + 확인 필요 = 전체 건수(월별)20
합계10420

정합성 대사식은 검사 1042건이 모두 차이 0 입니다. 점검 화면이 보여 주려고 일부러 넣은 예외는 대사 차이와 섞이지 않도록 따로 세었습니다.

의도적 점검 예외건수내용
충당 부족(F01)128월 3건 · 9월 9건 — 9월 합계 228,795,857원(원화 환산)
한도 의존(F02)128월 3건 · 9월 9건 — 약정 한도에 기대 충당
은행 통지 가용 ≠ 재계산(F03)48월 1건 · 9월 3건 — 허용 오차를 넘는 차이
만료 한도가 통지에 포함(F04)79월 7건 — 한도 유효기간 종료 후에도 통지에 포함
이체해도 부족(G02)48월 1건 · 9월 3건 — 일자·통화 단위 업무 판정

화면 쪽은 별도로 브라우저 자동화로 확인했습니다 — 조회·초기화·Enter 조회, 기준일 조건, 탭별 건수, 행 클릭 상세, CSV 내려받기, 오류 안내를 실제로 돌려 보았습니다.

무엇으로 만들었나

항목내용
솔루션자금 솔루션
업무 영역현금 포지션 — 은행 계좌 가용 자금과 당일 지급 충당
관련 기준서·대상 영역- (대상 영역: 자금 · 은행 계좌 가용 자금)
SAP 표준 T-codeFF7A · FF7B · FEBAN · FS10N · FI12
화면 성격조회·점검 (가용 자금 재계산 · 충당 판정 · 이체 가능 여부 · 은행 통지 대사)
데이터 연동OData V2 조회 서비스
테마sap_horizon
자리무엇왜 그렇게 두었나
화면SAP UI5 표준 컨트롤(조회조건 · 요약 · 탭 · 표 · 상세 창)외부 차트·표 라이브러리 반입 심사가 필요 없고, Horizon 테마를 그대로 따릅니다.
판정·집계 로직서비스 한 곳에서 재계산 · 판정 · 일자·통화 집계 · 대사식을 계산화면과 내려받기, 대사가 같은 숫자를 쓰도록 계산을 한 곳에만 둡니다.
서비스 구성OData V2 조회 서비스 — 계좌·일자 · 일자·통화 · 계좌 기준 · 대사 네 묶음과 집계 함수 두 개화면은 모델에 바인딩하고, 조회조건은 필터로 나가 서버에서 거릅니다. 서비스 주소는 앱 설정의 상대 경로 하나로만 부릅니다.
날짜 조건날짜 범위 필터를 서비스 로직이 직접 해석기준일 시작·종료를 비우거나 한쪽만 넣어도 같은 결과가 나오게 합니다.
모델 구성이름 없는 기본 모델 · 건수 함께 읽기 · 배치 없이 요청탭마다 건수를 바로 보이고, 요청 한 건이 어떤 조건인지 추적하기 쉽습니다.
오류 안내메타데이터 실패 · 요청 실패 · 빈 응답을 구분해 안내연결 문제와 조회 결과 없음을 사용자가 구분하도록 합니다.
SAP 표준 기능을 그대로 이어받은 부분 — 현금 포지션은 FF7A, 유동성 예측은 FF7B, 은행 명세는 FEBAN 에서 처리하고, 계정 잔액은 FS10N 으로 확인하며, 은행·계좌 마스터는 FI12 에서 유지합니다. 이 화면은 그 데이터를 읽어 기준 값과 견주는 조회·점검 관점을 더해 확장합니다. 전표를 만들거나 바꾸지 않습니다.

실행 화면

실제로 돌아가는 화면 6종을 사용 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 보고 무엇을 누르는 자리인지를 아래에 적었습니다. 숫자는 모두 같은 샘플 자료에서 나온 것이라 화면끼리 맞춰 보셔도 됩니다. 계좌 · 은행 · 환율은 검증용 가정값입니다.

처음 열었을 때 — 이번 달 계좌·일자 가용 자금이 한 줄씩 표로
처음 열었을 때 — 이번 달 계좌·일자 가용 자금이 한 줄씩 표로

2026년 09월이 채워진 채 한 번 자동 조회됩니다. 위쪽 요약 줄에서 점검한 계좌·일자 건수(140건), 일평균 가용 자금(2,710,150,470원), 충당 부족 9건과 228,795,857원, 한도에 기댄 9건, 이체가 필요한 일자·통화 8건(그중 이체해도 부족 3건), 확인 필요 10건, 정합성 대사 차이 0건을 먼저 읽습니다. 표에는 장부 잔액에서 가용 자금까지 구성 항목이 한 줄에 놓입니다.

점검 필요만 보기 — 충당이 모자라거나 한도에 기댄 계좌만
점검 필요만 보기 — 충당이 모자라거나 한도에 기댄 계좌만

조회조건에서 점검 결과를 점검 필요로 두고 조회 버튼을 누르면 해당 계좌·일자 18건만 남습니다. 충당 후 잔여가 마이너스인 줄(F01 9건)이 먼저 확인할 대상이고, 한도 제외 잔여가 마이너스인 줄(F02 9건)은 약정 한도에 기대 충당한 건입니다.

계좌·일자 상세 — 가용 자금 구성과 은행 통지 대조를 한 창에
계좌·일자 상세 — 가용 자금 구성과 은행 통지 대조를 한 창에

가용 자금 구성, 약정 한도와 유효기간, 충당 결과, 원화 환산, 은행 통지 가용 잔액과 재계산의 차이가 한 창에 나옵니다. 아래에는 같은 기준일·같은 통화의 다른 계좌가 이어져 이체로 메울 여유가 있는지 바로 견줄 수 있습니다.

일자·통화 집계 탭 — 부족액과 이체 가능 여유를 일자·통화로 묶어
일자·통화 집계 탭 — 부족액과 이체 가능 여유를 일자·통화로 묶어

일자와 통화마다 계좌별 부족액, 이체 가능 여유, 이체로 해소되는 금액, 이체해도 남는 부족이 한 줄에 놓입니다. 여유로 메워지는 부족(G01)과 그래도 남는 부족(G02)을 나눠 표시합니다.

계좌 기준 탭 — 판정의 기준이 되는 값
계좌 기준 탭 — 판정의 기준이 되는 값

계좌마다 최소 유지 잔액, 제한 자금, 약정 한도와 유효기간, 은행 통지 허용 오차가 한 줄씩 있습니다. 판정은 이 값을 기준으로 합니다.

대사 결과 탭 — 합계가 서로 맞는지 건수와 차이로
대사 결과 탭 — 합계가 서로 맞는지 건수와 차이로

가용 자금 구성, 충당 후 잔여, 일자·통화 집계, 부족액 분해, 원화 환산, 판정 건수 대사와 은행 통지 대사가 좌변·우변·검사 건수·차이 건수와 함께 나옵니다.

충당 판정 규칙

한 계좌·일자에는 점검 코드가 하나만 붙으며, 위에서부터 먼저 맞는 조건을 따릅니다.

판정 조건코드 · 결과사용자 조치
충당 후 잔여 < 0F01 · 점검 필요같은 통화 다른 계좌 이체, 한도 증액, 지급 일정 조정 검토
만료된 약정 한도가 은행 통지 가용 잔액에 포함F04 · 확인 필요한도 유효기간과 통지서 확인
통지 가용 − 재계산 가용의 차이가 허용 오차 초과F03 · 확인 필요통지서와 장부 잔액·미결제 지급 확인
한도 제외 잔여 < 0 이고 충당 후 잔여 ≥ 0F02 · 점검 필요한도 사용 가능 여부와 상환 일정 확인
위 어디에도 해당하지 않음F00 · 정상조치 없음

일자·통화 집계는 G00(부족 없음), G01(부족하지만 다른 계좌 여유로 해소 가능), G02(이체해도 부족)로 판정합니다. 결과는 “점검 필요”·“확인 필요”로만 표시하며 원인을 단정하지 않습니다.

조회조건과 결과 컬럼

조건필수전달 방식
회계연도 · 기간(월)필수$filter Gjahr eq · Monat eq
회사 · 은행 · 통화 · 계좌 유형선택비우면 해당 조건을 $filter 에서 뺍니다
기준일 시작·종료선택PosDate 를 BT 한 조건으로 전달
점검 코드 · 점검 결과선택F 코드는 계좌·일자 명세, G 코드는 일자·통화 집계에 적용
탭주요 컬럼
계좌·일자 명세기준일 · 계좌 · 은행 · 통화 · 장부 잔액 · 제한 자금 · 미결제 지급 · 최소 유지 · 한도 가용 · 가용 자금 · 당일 확정 지급 · 충당 후 잔여 · 한도 제외 잔여 · 원화 환산 · 은행 통지 가용 · 점검 결과
일자·통화 집계기준일 · 통화 · 계좌 수 · 가용 자금 · 당일 확정 지급 · 충당 후 잔여 · 계좌별 부족액 · 이체 가능 여유 · 이체로 해소 · 이체해도 부족
계좌 기준계좌 · 은행 · 계좌 유형 · 통화 · 최소 유지 · 제한 자금 · 약정 한도 · 한도 유효기간 · 통지 허용 오차
대사 결과번호 · 대사 항목 · 통화 · 좌변·우변 합계 · 검사 건수 · 차이 건수 · 최대 차이 · 대사식

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

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·점검 관점을 더해 확장합니다. 현금 포지션을 보고 은행 명세를 처리하고 계정 잔액을 확인하는 일은 모두 표준에 두고, 그 결과를 최소 유지 잔액·한도 같은 기준과 견주는 자리만 이어 붙였습니다.

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

하고 싶은 일표준으로 되는 부분이 화면이 더하는 관점
계좌별 현금 포지션 확인FF7A가용 자금을 제한 자금·최소 유지·한도까지 반영해 재계산하고 당일 지급과 견줍니다
유동성 예측FF7B당일 확정 지급을 계좌 단위로 충당하는지 판정합니다
은행 명세 처리FEBAN통지 가용 잔액을 재계산 값과 계좌·일자마다 견줍니다
계정 잔액 확인FS10N장부 잔액을 가용 자금 구성의 출발점으로 가져옵니다
충당 부족의 이체 해소 판정표준에는 계좌 간 이체 가능 여부 판정이 없어 보통 엑셀로 합니다일자·통화마다 부족액과 이체 가능 여유를 구해 해소 금액을 산출합니다

T-code 별 연계 지점

T-code이름연계
FF7A현금 포지션계좌별 현금 포지션을 이 화면의 가용 자금과 대조합니다. 두 값이 다르면 제한 자금·최소 유지 반영 여부를 먼저 봅니다.
FF7B유동성 예측당일 확정 지급과 예상 유출입을 대조합니다. 지급 예정 자료의 범위는 회사 정책으로 정합니다(확인 필요).
FEBAN은행 명세 개요은행 통지 가용 잔액을 이 화면의 은행 통지 가용과 대조합니다. 통지와 재계산이 다른 건(F03)은 원인을 확인한 뒤 은행에 문의합니다.
FS10NG/L 계정 잔액 조회은행 계정의 장부 잔액을 이 화면의 장부 잔액과 대조합니다.
FI12하우스 뱅크 유지은행·계좌 마스터를 확인·유지하는 자리입니다. 계좌 기준 탭의 은행·계좌 정보와 맞는지 봅니다.

법정 · 감사 보고에 쓰는 자료와 정정 전표는 표준에 그대로 둡니다. 따라서 운영 전환 때 기존 리포트를 없애지 않고, 한두 달 두 화면의 합계를 맞춰 본 뒤 쓰임새를 나눕니다.

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

S/4HANA 에서는 CDS 뷰 위에 분석 쿼리를 두고 Fiori 분석 앱이나 Analysis for Office 로 읽는 구성이 흔합니다. 이 화면의 서비스도 같은 CDS 뷰 위에 놓이는 것을 전제로 하며, 가용 자금 재계산과 충당 판정을 뷰에서 계산해 화면 · 내려받기 · 대사가 같은 숫자를 읽도록 합니다. 아래 CDS 구성은 그 스케치입니다.

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

자리무엇을 손대나비고
계좌 기준표계좌별 최소 유지·제한 자금·약정 한도와 유효기간 행 추가변경은 새 행 추가와 이전 행 종료로 관리
환율 기준환율 유형과 적용일(당일·전일 등)회사 정책으로 정함 — 확인 필요
허용 오차은행 통지와 재계산을 같은 금액으로 볼 범위(통화별)은행 통지 방식에 맞춰 조정
지급 예정 자료당일 확정 지급과 미결제 지급을 받는 경로표준 필드가 없어 외부 자료 입력 — 확인 필요
권한회사코드 단위 조회 권한집계 단계에 걸어 합계로도 새지 않게
확장 필드계좌 구분·담당자 등 고객 필드BAdI 나 확장 필드로 한 줄에 추가

분석 지표 정의표

지표산식·판정 기준대응 기능원천 데이터비고
가용 자금장부 − 제한 − 미결제 지급 − 최소 유지 + 한도 가용계좌·일자 명세 · 상세G/L 잔액 · 계좌 마스터 · 약정 한도 자료제한 자금·최소 유지는 회사 정책(가정값)
충당 후 잔여가용 자금 − 당일 확정 지급 → 음수이면 점검 필요계좌·일자 명세 · 요약위와 같음 · 지급 예정 자료통화가 다른 금액은 더하지 않음
이체로 해소min(부족액, 이체 가능 여유)일자·통화 집계계좌 명세 집계같은 일자·통화 안에서만 계산
은행 통지 차이통지 가용 − 재계산 가용F03 · 대사 결과은행 명세통화별 허용 오차

관련 기준서는 없으며 대상 영역은 자금(은행 계좌 가용 자금·당일 지급 충당)입니다. 이 화면은 점검 도구이며 최종 판단은 회사가 합니다.

CDS 구성 — 장부 잔액에서 서비스까지

샘플 화면은 서비스 로직이 계산하지만, 운영에서는 같은 계산을 CDS 뷰에 둡니다. 아래는 그 구성의 스케치입니다. 표준 CDS 뷰 이름은 확인된 것만 쓰고, 잔액 원천은 테이블 기준으로 적었으며 원천 필드는 도입 때 “확인 필요”로 맞춥니다. 뷰 이름은 고객 네임스페이스 규칙에 맞춰 정하면 됩니다.

뷰 레이어 구성

레이어뷰 · 테이블하는 일왜 나누나
기준계좌 기준표 · 환율 테이블판정의 기준 값과 환율기준이 바뀌어도 코드를 고치지 않으려고
원천은행 계정 장부 잔액 뷰전표 라인을 계정·통화·기준일로 합산장부와 환율 원천을 한곳에서 합치려고
큐브가용 자금·충당 판정 뷰가용 자금 · 충당 후 잔여 · 점검 코드 계산판정을 한 곳에서만 계산하려고
쿼리계좌·일자 조회 쿼리 · 일자·통화 집계 뷰화면 컬럼 · 필터 규칙 · 집계화면과 서비스가 같은 정의를 쓰려고
권한접근 제어(DCL)회사코드 권한을 집계까지 상속합계로 새지 않게
서비스서비스 정의 · 바인딩노출 목록과 OData V2 게시계약을 한 파일에 모으려고

① 계좌 기준표 — 판정의 유일한 기준

최소 유지 잔액과 제한 자금, 약정 한도와 유효기간이 어디에 저장되는지가 곧 판정의 신뢰도입니다. 회사 · 계좌를 키로 두고 한도 유효기간을 함께 둡니다.

// ─────────────────────────────────────────────────────────────
// AvailFundAcct — 계좌 기준표 (고객 테이블)
// 역할 : 계좌별 최소 유지 잔액·제한 자금·약정 한도와 유효기간을 둔다.
// 이렇게 나눈 이유 : 기준이 바뀌어도 뷰·화면 코드를 고치지 않으려고.
// ─────────────────────────────────────────────────────────────
@EndUserText.label : '가용 자금 계좌 기준'
@AbapCatalog.tableCategory : #TRANSPARENT
define table fund_acct_rule {
  key mandt      : mandt not null;
  key bukrs      : bukrs not null;
  key acct_id    : abap.char(4) not null;
  waers          : waers;
  min_keep       : abap.curr(18,2);   // 최소 유지 잔액 — 회사 정책으로 확정
  restrict_amt   : abap.curr(18,2);   // 제한 자금
  line_limit     : abap.curr(18,2);   // 약정 한도 — 외부 자료, 확인 필요
  line_from      : abap.dats;
  line_to        : abap.dats;
}

② 장부 잔액 뷰 — 은행 계정 잔액을 한 행에

은행 계정의 장부 잔액을 기준일까지 합산해 통화별로 모읍니다. 환율 유형과 적용일 기준은 회사 정책으로 정하는 항목이라 도입 때 확인합니다.

// ─────────────────────────────────────────────────────────────
// AvailBookBase — 은행 계정 장부 잔액 (전표 라인 합계)
// 역할 : 계정·통화별 잔액을 기준일까지 모은다.
// ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '은행 계정 장부 잔액'
define view entity AvailBookBase as select from acdoca
  association [0..1] to tcurr as _Rate on  _Rate.kurst = 'M'      // 환율 유형 — 확인 필요
                                       and _Rate.fcurr = acdoca.rwcur
                                       and _Rate.tcurr = acdoca.rhcur
{
  key rbukrs as Bukrs, key racct as GlAccount, key budat as PosDate, rwcur as Waers,
  @Semantics.amount.currencyCode : 'Waers' sum( wsl ) as BookAmt,
  _Rate
}
group by rbukrs, racct, budat, rwcur

③ 가용 자금 큐브 — 숫자가 만들어지는 유일한 자리

가용 자금, 충당 후 잔여, 한도 제외 잔여, 점검 코드가 여기서 결정됩니다. 화면 · 내려받기 · 대사가 모두 이 뷰의 값을 읽으므로 운영에서 가장 먼저 검증해야 하는 뷰입니다.

// ─────────────────────────────────────────────────────────────
// AvailFundCube — 가용 자금·충당 판정 (큐브)
// 역할 : 계좌·일자마다 가용 자금과 충당 후 잔여를 구하고 점검 코드를 붙인다.
// 이렇게 나눈 이유 : 판정을 뷰 한 곳에서만 계산해 화면·CSV·대사가 같은 숫자를 쓰게 한다.
// ─────────────────────────────────────────────────────────────
@Analytics.dataCategory : #CUBE
@EndUserText.label : '가용 자금 충당 판정'
define view entity AvailFundCube as select from AvailBookBase as b
  inner join fund_acct_rule as a
    on a.bukrs = b.Bukrs and a.waers = b.Waers
{
  key b.Bukrs, key a.acct_id as AcctId, key b.PosDate, b.Waers, b.BookAmt,
  a.min_keep as MinKeep, a.restrict_amt as RestrictAmt,
  // 가용 자금 = 장부 − 제한 − 미결제 지급 − 최소 유지 + 한도 가용
  cast( 0 as abap.dec(18,2) ) as AvailAmt,          // 미결제 지급·한도 사용은 외부 자료 — 확인 필요
  case when 1 = 0 then 'F01' else 'F00' end as CheckCode
}

④ 일자·통화 집계 뷰 — 부족과 여유를 한곳에서

계좌별 부족액과 이체 가능 여유를 일자·통화로 묶어 이체로 해소되는 금액을 구합니다. 화면의 집계 탭이 이 뷰를 읽습니다.

// ─────────────────────────────────────────────────────────────
// AvailFundDay — 일자·통화 집계 (Consumption)
// 역할 : 부족액 합과 이체 가능 여유 합, 이체로 해소되는 금액을 구한다.
// ─────────────────────────────────────────────────────────────
@EndUserText.label : '가용 자금 일자·통화 집계'
define view entity AvailFundDay as select from AvailFundCube
{
  key Bukrs, key PosDate, key Waers,
  sum( case when CoverAmt < 0 then 0 - CoverAmt else 0 end )  as ShortAmt,
  sum( case when OwnAmt  > 0 then OwnAmt   else 0 end )       as SurplusAmt,
  count( * ) as AcctCnt
}
group by Bukrs, PosDate, Waers

⑤ 접근 제어 — 회사코드 권한

집계 뷰까지 같은 권한을 상속해야 합계로 다른 회사의 금액이 드러나지 않습니다. 드릴다운에만 권한을 걸면 뺄셈으로 새어 나갈 수 있어 집계 단계에 겁니다.

// ─────────────────────────────────────────────────────────────
// AvailFundCube — 접근 제어 (DCL)
// 역할 : 회사코드 권한이 없는 회사의 잔액은 합계로도 보이지 않게 한다.
// ─────────────────────────────────────────────────────────────
@EndUserText.label : '가용 자금 권한'
@MappingRole : true
define role AvailFundRole {
  grant select on AvailFundCube
    where ( Bukrs ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}

⑥ 서비스 정의와 바인딩 — 화면이 읽는 계약

노출 목록이 곧 화면과의 계약입니다. 바인딩을 게시한 뒤 서비스를 활성화하고, 앱 설정의 서비스 주소만 운영 주소로 바꿉니다.

// ─────────────────────────────────────────────────────────────
// AvailFundCheck — 서비스 정의와 바인딩 (OData V2)
// 역할 : 화면이 읽는 뷰를 서비스로 노출한다.
// 이렇게 나눈 이유 : 노출 목록이 곧 계약이므로 한 파일에 모아 두고,
//   바인딩을 게시한 뒤 앱 설정의 서비스 주소만 바꿔 운영에 연결한다.
// ─────────────────────────────────────────────────────────────
@EndUserText.label : '가용 자금 충당 점검 서비스'
define service AvailFundCheck {
  expose AvailFundQuery  as AvailSet;
  expose AvailFundDay    as DaySet;
  expose AvailFundAcct   as AcctSet;
}
// Service Binding : 유형 OData V2 - UI, 게시 후 서비스 활성화

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래 여섯 가지는 코딩이 아니라 합의이며, 합의가 끝나면 기술 작업은 뷰를 만들고 서비스를 게시하는 일로 줄어듭니다.

해야 할 일무엇을 정하나정하지 않으면누가
최소 유지·제한 자금 기준 확정계좌별 최소 유지 잔액과 제한 자금 범위가용 자금이 실제보다 크게 보여 점검이 의미를 잃습니다자금팀
약정 한도 자료 경로한도·사용분·유효기간을 받는 입력 경로한도 가용이 비어 충당 판정이 한쪽으로 쏠립니다자금팀 · IT
환율 기준환율 유형 · 적용일(당일·전일 등)원화 환산이 회사 환산 기준과 어긋나 보입니다회계팀
허용 오차 기준통지와 재계산을 같은 금액으로 볼 통화별 범위반올림 차이가 확인 필요로 잡힙니다자금팀
권한 설계회사코드 · 계정 권한 범위다른 회사의 합계가 보일 수 있습니다보안 · 권한
전송 · 서비스 활성화전송 순서, 서비스 활성화(/IWFND/MAINT_SERVICE) 또는 바인딩 게시, 앱 설정의 서비스 주소 교체화면이 샘플 데이터로 남습니다IT · Basis

운영 데이터로 갈 때

계좌 수가 수백 개를 넘으면 조회조건(회사 · 기간)을 필수로 두고 계좌·일자 명세를 페이지 단위로 읽는 것이 기본입니다. 일자·통화 집계는 뷰에서 미리 묶어 응답 시간을 일정하게 유지하고, 환율은 기준일별로 한 번만 가져오도록 조인을 설계합니다.

자주 묻는 질문

숫자와 산식 · 화면과 조작 · 데이터와 표준 연계 · 도입과 운영 네 묶음으로 정리했습니다.

숫자와 산식

가용 자금은 어떻게 구합니까?

장부 잔액에서 제한 자금, 미결제 지급, 최소 유지 잔액을 빼고 유효기간 안의 약정 한도에서 사용분을 뺀 한도 가용을 더합니다. 계좌·일자마다 계산하며 통화가 다른 금액은 서로 더하지 않습니다.

충당 후 잔여와 한도 제외 잔여는 무엇이 다릅니까?

충당 후 잔여는 가용 자금에서 당일 확정 지급을 뺀 값이고, 한도 제외 잔여는 거기서 한도 가용을 다시 뺀 값입니다. 앞의 값이 음수이면 충당 부족, 뒤의 값만 음수이면 약정 한도에 기대 충당한 것입니다.

이체 가능 여유와 부족액은 어떻게 비교합니까?

같은 일자·같은 통화 안에서 계좌별 부족액(음수 충당 후 잔여의 절대값 합)과 이체 가능 여유(한도 제외 잔여가 양수인 계좌의 합)를 구하고, 둘 중 작은 값을 이체로 해소되는 금액으로 봅니다. 나머지는 이체해도 남는 부족입니다.

원화 환산은 어떤 환율을 씁니까?

샘플은 가정 환율을 쓰며 원화 계좌는 1 입니다. 실제 적용 때는 회사 정책으로 환율 유형과 적용일을 정해 환율 테이블에서 가져옵니다. 환산 금액은 원 단위로 반올림해 합산합니다.

한 줄에 점검 코드가 하나만 붙는 이유는 무엇입니까?

여러 조건에 걸리더라도 가장 먼저 할 일은 하나이기 때문입니다. 우선순위는 충당 부족(F01), 만료 한도 포함(F04), 통지 차이(F03), 한도 의존(F02) 순입니다.

대사 차이가 0인데 점검 필요가 있는 것은 모순이 아닙니까?

모순이 아닙니다. 대사식은 같은 데이터를 다른 길로 더해 합계가 일치하는지 보는 정합성 검사이고, 점검 필요는 충당이 모자라거나 한도에 기댄 건을 가려내는 업무 판정입니다. 일부러 넣은 통지 차이 예외는 대사 차이와 따로 셉니다.

화면과 조작

조회 조건은 무엇을 고를 수 있습니까?

회계연도와 기간(월)은 필수이고, 회사·은행·통화·계좌 유형·기준일 범위·점검 코드·점검 결과는 선택입니다. 전체를 고르면 그 조건은 조회에 넣지 않습니다. 점검 코드는 첫 글자(F·G)에 따라 해당 탭에만 적용됩니다.

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

가용 자금 구성, 약정 한도와 유효기간, 충당 결과, 원화 환산, 은행 통지 대조와 확인 제안이 나옵니다. 아래에는 같은 기준일·같은 통화의 다른 계좌가 이어집니다.

내려받기에는 무엇이 담깁니까?

지금 보고 있는 탭의 조회 결과가 UTF-8 CSV 로 내려옵니다. 한글이 깨지지 않도록 처음에 BOM 을 붙여 엑셀에서 바로 열립니다.

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

쓸 수 있습니다. 좁은 화면에서는 조회조건과 요약이 세로로 쌓이고 표는 가로로 스크롤됩니다. 열이 많은 계좌·일자 명세는 넓은 화면에서 읽는 편이 편합니다.

엔터 키로도 조회됩니까?

됩니다. 조건 입력칸에서 Enter 를 누르면 조회 버튼을 누른 것과 같습니다. 조회 버튼은 조회조건 영역의 오른쪽 끝, 초기화 옆에 있습니다.

데이터와 표준 연계

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

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·점검 관점을 더해 확장합니다. 현금 포지션은 FF7A, 유동성 예측은 FF7B, 은행 명세는 FEBAN, 계정 잔액은 FS10N, 하우스 뱅크는 FI12 에서 다룹니다. 이 화면은 읽기 전용입니다.

기존 리포트를 없애야 합니까?

없애지 않습니다. 법정·감사 보고에 쓰는 자료는 표준 거래에 그대로 두고, 이 화면은 지급 전에 가용 자금과 충당 여부만 따로 점검하는 용도로 함께 둡니다. 한두 달 두 화면의 합계를 맞춰 본 뒤 쓰임새를 나눕니다.

약정 한도는 어디서 가져옵니까?

표준 테이블에 약정 한도와 유효기간을 담는 곳이 없어 회사의 한도 자료를 외부에서 받아야 합니다. 샘플은 계좌 기준 탭의 한도 값을 씁니다. 원천은 도입 때 확인합니다.

은행 통지 가용 잔액은 어디서 옵니까?

은행 명세(FEBKO · FEBEP)에서 읽거나 은행 통지서를 외부 자료로 받습니다. 통지서의 가용 잔액은 표준 필드가 없는 경우가 많아 입력 경로를 먼저 정해야 합니다.

데이터 원천은 무엇입니까?

장부 잔액은 원장 전표 라인(ACDOCA)과 은행 계정(SKB1)에서, 은행·계좌는 하우스 뱅크 마스터(T012 · T012K)에서, 환율은 TCURR 에서 읽는 구성을 전제로 합니다. 원천 필드의 정확한 대응은 고객 환경에 따라 달라 도입 때 확인합니다.

도입과 운영

도입하면 어떤 효과가 있습니까?

계좌별 잔액과 지급 예정, 한도를 사람이 맞추던 일이 줄고, 지급 전에 부족한 계좌와 이체로 메울 수 있는 계좌를 함께 볼 수 있습니다. 효과의 크기는 계좌 수와 지급 규모에 따라 달라 확정된 숫자로는 말씀드리기 어렵습니다.

누가 쓰는 화면입니까?

자금 담당이 지급 전에 쓰고, 경영지원 쪽에서는 요약과 대사 결과 탭을 봅니다. 조회·점검만 하므로 전표를 만들거나 바꾸는 권한은 필요하지 않습니다.

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

회사코드 권한을 집계 단계에 걸어 남의 회사 잔액이 합계로도 드러나지 않게 합니다. 계좌번호는 앞뒤 일부만 보이는 마스킹 형식으로 내려 보냅니다. 읽기 전용이며 외부로 데이터를 보내지 않습니다.

운영 시스템에 붙이는 데 얼마나 걸립니까?

기술 작업보다 합의가 앞섭니다. 최소 유지 잔액·제한 자금 기준, 약정 한도 자료 경로, 은행 통지 입력 경로, 허용 오차를 먼저 정하면 CDS 뷰와 서비스 게시는 비교적 짧게 끝납니다. 기간은 고객 환경에 따라 달라 확정된 숫자로는 말씀드리기 어렵습니다.

점검 결과를 그대로 자금 집행 판단에 써도 됩니까?

점검 결과는 확인을 돕는 참고 자료입니다. 지급 일정 조정이나 한도 사용, 계좌 간 이체는 회사의 자금 정책과 은행 약정에 따라 담당자가 결정합니다. 감사나 회계 처리와 얽힌 항목은 회사와 감사인이 확인합니다.

샘플과 실제 데이터의 차이는 무엇입니까?

샘플은 가상 은행 4곳, 가상 계좌 7개, 가정 환율과 가정 한도로 만든 검증용 데이터입니다. 의도적 예외를 섞어 점검 화면이 무엇을 보여 주는지 확인하도록 했습니다. 실제 도입에서는 이 자리에 회사의 잔액과 지급 예정이 들어옵니다.

다른 통화가 섞이면 합계는 어떻게 됩니까?

통화가 다른 외화 금액은 더하지 않습니다. 일자·통화 집계는 통화별로 따로 계산하고, 전체 합계가 필요한 요약 KPI 는 원화 환산 금액만 합산합니다.

만료된 한도가 통지에 포함되면 어떻게 표시됩니까?

약정 한도의 유효기간이 지났는데 은행 통지 가용 잔액에 한도가 계속 들어 있으면 F04(확인 필요)로 표시합니다. 재계산은 만료 한도를 뺀 값으로 하므로 통지와 차이가 생깁니다.