자금 솔루션 · 지급 이행

자금 솔루션 지급 수단·채널 이행 다차원 분석 — 은행·수단·채널별 지급액과 계획 차이를 한 화면에서

아홉 개 축 피벗 · 칸에서 원천 지급 라인까지의 드릴스루 · 계획 대비 차이와 여섯 요인 분해 · 행에 남는 변동 사유 · 규칙 기반 해설과 하루 한 번 도는 점검 — 소개 영상과 실제 화면 33종, 그리고 CDS 코드까지

소개 영상블로그 목차 순서대로 · 자막 포함

도입 포인트 — 이 앱을 사용해야 하는 이유

월말이 가까워지면 자금 담당자는 같은 질문을 되풀이해서 받습니다. 어느 은행으로 얼마가 나갔는지, 어떤 지급 수단과 채널에 몰렸는지, 계획한 지급은 제때 이행됐는지, 그리고 그 차이는 어디서 났는지입니다. 지금은 표준 지급 화면과 은행 포털, 엑셀을 번갈아 열어 묶음마다 따로 뽑고 합계를 맞추는 데 시간을 씁니다. 은행별 표와 수단별 표의 합이 달라지면 숫자를 의심하는 회의가 먼저 열립니다.

이 앱은 지급 라인을 한 번 읽어 아홉 개 축(지급 법인·은행·지급 구분·통화·지급 수단·결제 조건 구간·지급 채널·긴급 여부, 그리고 회계기간)으로 묶는 큐브를 만들고, 보는 사람이 행과 열을 끌어다 놓으면 브라우저가 같은 큐브에서 다시 묶습니다. 계획 지급(P0)을 같은 축으로 얹어 차이를 여섯 요인으로 나누고, 칸을 누르면 그 금액을 만든 원천 지급 라인까지 내려갑니다. 관련 기준서는 IAS 7 현금흐름표(K-IFRS 제1007호)와 IFRS 7 금융상품: 공시(K-IFRS 제1107호) 영역에 걸치는 자금 관리 업무이며, 이 앱은 기준서 문단을 판단하는 도구가 아니라 지급 이행을 점검하는 조회 도구입니다.

한 줄 요약 — 은행·수단·채널별 지급 현황을 한 번 읽은 큐브 위에서 축만 바꿔 보고, 계획과의 차이를 여섯 요인으로 나눠 검산하며, 칸마다 원천 지급 라인으로 내려가 "이 숫자 맞아?"에 그 자리에서 답하는 자금 이행 분석 화면입니다.

핵심 포인트 일곱 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 축을 바꿔도 합계가 변하지 않는 피벗은행·지급 구분·통화·지급 수단·결제 조건 구간·채널·긴급 여부 등 아홉 개 축과 회계기간·분기를 끌어다 행과 열에 놓습니다. 모든 묶음이 같은 큐브 한 벌에서 나오므로 합계가 갈라질 자리가 없습니다.은행별·수단별·채널별 지급 현황을 따로 뽑아 엑셀로 맞추고, 합계가 다르면 원인을 찾는 데 시간을 씁니다.
② 칸에서 원천 지급 문서까지숫자 칸을 누르면 그 칸을 이룬 지급 라인이 열리고, 라인 합계가 칸 금액과 같은지 "표의 값과 일치"로 그 자리에서 확인됩니다.표준 화면을 따로 열고 조회 조건을 손으로 다시 넣어 숫자를 맞춰 봅니다.
③ 계획 대비 차이를 여섯 요인으로계획 초과·미달 지급, 환율, 지급 시점 이동, 계획 외 지급, 지급 이월로 총차이를 나누고, 계획 + 요인 합 − 실적이 0 인지 매번 검산합니다.차이가 났다는 사실만 보고, 이유는 담당자에게 메일로 되묻습니다.
④ 수수료와 긴급 지급을 함께 보는 지표수단별 수수료율, 수수료 포함 지급액, 긴급 지급 비중, 기말 미지급 잔액을 같은 표에서 비교합니다.은행 포털·카드사 명세·지급 런 결과를 따로 모아 수수료 부담을 추정합니다.
⑤ 변동 사유가 행에 남는다차이가 난 행에 구분과 사유를 적어 저장하면 다시 열어도 같은 행에 따라옵니다. CSV 와 해설 근거에도 함께 실립니다.같은 질문을 되풀이하고 지난 답은 메일함에서 찾습니다.
⑥ 규칙 기반 해설과 하루 한 번 점검금액과 비율은 서비스가 계산하고 해설은 그 숫자를 읽기만 합니다. 에이전트는 네 가지 규칙으로 하루 한 번 점검해 대기함에 올립니다.점검은 사람이 화면을 열 때만 일어나고, 열지 않은 날은 지나갑니다.
⑦ 표준 지급 화면과 이어지는 구조표준 지급 문서와 은행 계정 데이터를 그대로 이어받아 확장하므로, 이 화면과 표준 화면을 오가며 같은 숫자를 확인합니다.표준 화면과 별도 리포트의 숫자가 달라 대사에 시간이 듭니다.

사례로 보는 효과 — 계획 대비 +778.47 억원을 여섯 요인으로

검증용 샘플 데이터(가상의 4개 법인, 9개월, 지급 라인 3,391줄)로 보면 지급액은 40,674.03 억원이고 계획은 39,895.56 억원이라 계획 대비 +778.47 억원(+2.0%)입니다. 표준 화면은 여기까지 알려 줍니다. 이 앱은 그 778.47 억원을 여섯 요인으로 가릅니다 — 계획된 지급이 계획보다 커진 몫 +940.18 억원, 작아진 몫 −875.27 억원, 환율 −18.29 억원, 지급 시점 이동 +10.89 억원, 계획 없이 나간 지급 +1,239.10 억원, 지급되지 않고 넘어간 이월 −518.15 억원입니다. 계획 + 요인 합 − 실적은 0 으로 맞아 떨어지고, 이 검산은 범위 25개에서 모두 같았습니다. 같은 자료의 대사식 1,300건도 차이 0 이었습니다(통화별 원 단위 반올림 차이는 최대 150원, 허용 오차). 점검할 대상은 "계획 외 지급" 항목부터라는 것을 합계가 아니라 요인에서 읽을 수 있습니다.

요인(억원)금액읽는 법
계획 초과 지급+940.18계획된 라인에서 실적이 더 큰 부분
계획 미달 지급−875.27계획된 라인에서 실적이 더 작은 부분
환율−18.29월 환율과 계획 환율의 차이
지급 시점 이동+10.89계획월과 다른 달에 지급된 부분
계획 외 지급+1,239.10계획 없이 나간 지급 — 점검 필요
지급 이월−518.15계획만 있고 지급되지 않은 부분

도입하면 달라지는 것

  • 지급 현황 보고 준비 — 은행별·수단별·채널별 표를 따로 뽑아 맞추던 일이 한 화면의 축 전환으로 바뀝니다.
  • 회의의 질문 — "어느 표가 맞나"가 아니라 "계획 외 지급은 왜 늘었나"로 옮겨 갑니다.
  • 수수료와 긴급 지급 점검 — 수단별 수수료율, 긴급 지급 비중, 기말 미지급 잔액을 같은 표에서 비교합니다.
  • 기록 — 차이 사유가 행에 남아 다음 달에 같은 질문을 되풀이하지 않습니다.
  • 사람이 열지 않은 날 — 하루 한 번 도는 점검 규칙이 걸린 항목을 대기함에 올립니다.

이런 회사에 맞습니다

법인이 여러 곳이고 외화 지급(USD·EUR·JPY 등)이 섞여 있으며, 지급 수단(이체·외화 송금·전자어음·카드)과 채널이 여러 가지인 제조·유통 기업의 자금팀과 회계팀에 맞습니다. 하우스 뱅크가 여러 곳이라 은행별 집중도와 수수료 부담을 보고 싶거나, 지급 계획 대비 이행률을 월 단위로 점검하는 조직이 대상입니다. 지급 건수가 적고 은행이 한두 곳뿐이라면 표준 화면과 엑셀로도 충분할 수 있습니다.

실행 화면

사용 방법

  1. 조회 조건 입력 — 기간(부터)·기간(까지)은 필수이고 기본은 2026년 01월~09월입니다. 지급 법인은 비우면 전체, 비교 기준은 지급 계획(P0)과 비교가 기본입니다.
  2. 조회 — 오른쪽 위 파란 [조회] 버튼을 누르거나 조건 칸에서 Enter 를 누릅니다. 저장한 기본 보기에 자동 조회를 켜 두면 화면을 열 때 자동으로 실행됩니다.
  3. 요약 확인 — 위쪽 지표 다섯 개와 "보는 사람" 탭(경영·재무·자금·회계)을 봅니다. 탭을 바꾸면 먼저 보여 줄 축과 설명이 달라지고 숫자는 같습니다.
  4. 탭·축 이동 — 차원 보관함의 칩을 끌어 행 축이나 열 축에 놓거나 칩을 눌러 행 축에 넣습니다. 서비스를 다시 부르지 않고 총합은 그대로입니다.
  5. 행·칸 클릭 상세 — 행을 누르면 차트와 요인분해가 그 행 기준으로 바뀌고, 금액 칸을 누르면 원천 지급 라인이 열려 "표의 값과 일치"가 표시됩니다.
  6. 내보내기 — 표 오른쪽 위 [CSV] 는 지금 보이는 표를, 원천 라인 창의 [CSV] 는 그 칸의 라인을 내려받습니다. [해설]에서 보고서(PPTX)도 받을 수 있습니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면 컨트롤OpenUI5 1.120 표준 컨트롤(TreeTable·Dialog·IconTabBar)과 직접 그린 SVG 차트외부 라이브러리를 들이지 않아 보안 심사 부담이 없고, 차트는 표와 같은 값을 읽어 어긋날 자리가 없습니다.
집계·판정 로직서비스 쪽 로직 파일(큐브 집계, 요인분해, 해설, 에이전트 판정)과 계산 모듈금액과 판정은 서비스가 계산하고 화면과 해설은 읽기만 합니다. 같은 계산 모듈을 검증용 환경도 써서 결과가 같습니다.
OData 서비스 구성OData V2 서비스 하나, 엔티티 14종(실적·계획 큐브, 차원·측정값·계산항목 정의, 기간 요약, 원천 라인, 대사 결과, 변동 사유, 저장한 보기, 에이전트 규칙·대기함·실행 이력)과 펑션 3종(요인분해·해설·에이전트 실행)큐브는 조회할 때 한 번만 읽고, 이후 축 전환·값 필터·정렬은 브라우저가 처리합니다. 사유·보기·에이전트 기록만 서비스에 씁니다.
테마sap_horizon표준 Fiori 화면과 같은 모양과 색을 써서 현업이 낯설어하지 않습니다.
앱 정보내용
기능명지급 수단·채널 이행 다차원 분석
솔루션 / 영역자금 솔루션 / 지급 이행 · 현금 흐름 관리
관련 기준서IAS 7 현금흐름표(K-IFRS 제1007호), IFRS 7 금융상품: 공시(K-IFRS 제1107호) — 문단 번호는 확인 필요
맞닿는 표준 T-codeF110, FBL1N, FB03, FS10N, FF7A
앱 유형업무 분석 앱(분석 지표 정의표 제공)
데이터OData V2, 검증용 샘플 지급 라인 3,391줄 — 법인·은행·거래처 이름은 모두 가상
SAP 표준 기능을 그대로 이어받은 부분 — 지급 문서와 은행 계정 데이터, 지급 방법 같은 표준 구조를 그대로 이어받아 확장합니다. 지급 실행과 전표 처리는 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더합니다.

처음 열었을 때 — 조회 전과 조회 직후

처음 열면 조건 줄과 비어 있는 레이아웃 보드가 보이고, 조회를 누르면 요약 지표와 표·차트가 한 번에 채워집니다. 여기까지가 서비스를 읽는 전부이고, 이후 축을 바꾸는 일은 브라우저 안에서 일어납니다.

조회 전 — 조건과 빈 보드
조회 전 — 조건과 빈 보드 — 조회를 누르기 전에는 조건 줄과 빈 표·차트 영역만 보입니다.

기간(부터)·기간(까지)는 필수이고 기본은 2026년 01월~09월입니다. 지급 법인은 비우면 전체이고, 비교 기준은 지급 계획(P0)과 비교가 기본입니다. 표 자리의 안내 문구가 [조회]를 누르라고 알려 줍니다.

조회 직후 — 한 화면에 모두
조회 직후 — 한 화면에 모두 — 요약 지표 다섯 개와 표, 차트가 함께 채워집니다.

지급액 40,674.03 억원, 최대 지급 은행 비중 33.9%, 평균 지급 수수료율 0.18%, 긴급 지급 비중 16.7%, 계획 대비 +778.47 억원(+2.0%)이 먼저 보입니다. 기본 배치는 행 축이 지급 은행과 지급 구분, 열 축이 분기입니다.

레이아웃 보드
레이아웃 보드 — 차원 보관함, 행 축, 열 축 세 칸입니다.

점선 상자가 칩을 놓을 수 있는 자리입니다. 보관함의 칩을 끌어 행 축이나 열 축에 놓고, 축의 × 로 뺍니다. 칩을 눌러도 행 축에 들어갑니다.

열 축에 지급 수단을 놓은 뒤
열 축에 지급 수단을 놓은 뒤 — 분기별 열이 지급 수단별 열로 나뉩니다.

이 과정에서 서비스 호출은 없고 총합은 그대로 40,674.03 억원입니다. 같은 칸이 어떻게 갈라지는지는 열 머리글을 보면 됩니다.

조회 조건 접기
조회 조건 접기 — 머리 영역을 접으면 표와 차트가 넓어집니다.

요약 지표는 접어도 남습니다. 좁은 노트북 화면에서 표를 크게 쓰고 싶을 때 씁니다.

경영 요약 — 보는 사람에 따라 달라지는 첫 화면

같은 데이터를 경영·재무·자금·회계 네 시선으로 읽도록 "보는 사람" 탭을 두었습니다. 탭을 바꾸면 먼저 보여 줄 축과 설명이 달라지고 숫자는 같습니다.

경영 — 규모와 집중도
경영 — 규모와 집중도 — 지급액과 최대 은행 비중, 계획 대비 차이를 먼저 봅니다.

가상 시중은행 A 가 33.9% 로 가장 크고, 계획 대비 +778.47 억원은 점검 필요 수준으로 표시됩니다. 은행 집중도 지수도 함께 적혀 있습니다.

재무 — 구분별 수수료 부담
재무 — 구분별 수수료 부담 — 지급 구분과 법인별 지급액·수수료·평균 수수료율을 봅니다.

원재료 대금이 가장 크고 평균 수수료율은 지급 구분마다 0.13~0.22% 사이로 나뉩니다. 수수료율 차이가 큰 구분을 찾는 데 쓰는 화면입니다.

자금 — 은행·통화별 미지급 잔액
자금 — 은행·통화별 미지급 잔액 — 은행과 통화별 지급액, 기말 미지급 잔액, 긴급 건 미지급 비중입니다.

기말 미지급 잔액은 마지막 기간 값만 쓰는 측정값이라 기간을 합쳐도 늘어나지 않습니다. 외화 지급은 통화별로 원화로 환산한 값입니다.

회계 — 수단별 수수료 점검
회계 — 수단별 수수료 점검 — 지급 수단과 은행별 수수료율과 긴급 비중을 봅니다.

수수료율은 수단별 가정값에서 나온 값이라, 실제 청구 내역과 다른 수단이나 은행이 있는지 점검 필요 항목을 좁히는 용도입니다.

축 전환과 범위 — 다시 조회하지 않고 다시 묶기

축 바꾸기·값 필터·표 행 수는 모두 읽어 둔 큐브 안에서 일어납니다. 총합이 바뀌지 않는다는 것이 이 구조의 약속이고, 아래 화면이 그 모습입니다.

행·열 축 조합과 표 행 수
행·열 축 조합과 표 행 수 — 행 축 두 단계, 열 축 두 단계를 놓은 모습입니다.

행에는 지급 은행과 지급 구분, 열에는 분기와 지급 수단이 놓여 있습니다. 표 행 수 12 는 한 번에 펼쳐 보일 행 상한이고, 넘으면 안내가 나옵니다.

값 필터 — 여러 값 선택
값 필터 — 여러 값 선택 — 차원 하나를 고르고 값을 여러 개 체크해 범위를 좁힙니다.

값 옆의 숫자는 그 값의 원천 라인 수입니다. 적용하면 읽어 둔 큐브 안에서 바로 걸러지고 서비스는 다시 부르지 않습니다.

좁힌 결과
좁힌 결과 — 지급 법인 두 곳만 선택한 결과입니다.

합계가 28,583.94 억원으로 줄고, 값 필터 버튼 옆에 걸린 필터 수가 표시됩니다. 조건을 지우면 40,674.03 억원으로 돌아옵니다.

차트와 너비 손잡이
차트와 너비 손잡이 — 표와 차트 사이 손잡이로 폭을 나눕니다.

막대는 표의 첫 행 축 기준으로 그려집니다. 손잡이를 끌어 표를 넓게 쓰거나 차트를 크게 키웁니다.

칸에서 원천 문서까지 — 숫자를 의심할 때 내려가는 길

금액 칸을 누르면 그 칸을 이루는 원천 지급 라인이 열립니다. 라인 합계와 칸 값이 같으면 "표의 값과 일치"가 표시되므로, 숫자를 믿을 수 있는지 그 자리에서 가립니다.

칸 → 원천 라인
칸 → 원천 라인 — 가상 시중은행 A 와 2026-3Q 칸을 눌렀습니다.

표의 값 4,734.94 억원과 원천 합계가 같아 "표의 값과 일치"가 뜨고 라인 수는 356건입니다. 지급 계획만 있고 지급되지 않은 이월 라인은 원천 목록에서 제외됩니다.

원천 라인 목록
원천 라인 목록 — 지급일·문서·법인·은행·구분·통화·외화 금액·환율·원화 금액이 한 줄씩 나옵니다.

외화 라인은 환율을 곱한 원화 값이 오른쪽에 나옵니다. 오른쪽 아래 CSV 로 이 칸의 라인만 내려받을 수 있습니다.

기간별 요약과 계산항목

행 축을 회계기간으로 바꾸면 월별 지급 흐름이 보이고, 계산항목은 측정값 두 개 이상으로 만든 비율과 합계를 같은 표에 올려 줍니다.

기간별 요약 — 월별
기간별 요약 — 월별 — 9개월 지급액이 한눈에 보입니다.

같은 큐브로 행 축만 바꾼 화면입니다. 월마다 지급액이 4,000억원 안팎에서 움직이는 모양을 막대로 확인합니다.

계산항목 — 수수료 포함 지급액
계산항목 — 수수료 포함 지급액 — 지급액과 수수료를 더한 값을 측정값으로 고릅니다.

측정값 선택에서 "수수료 포함 지급액(원)"을 고르면 표와 차트가 함께 바뀝니다. 계산항목은 서비스의 정의를 읽어 화면에서 계산합니다.

측정값을 열로 세우기
측정값을 열로 세우기 — 측정값 여러 개를 열 축 "측정값"으로 세웁니다.

지급액과 수수료, 긴급 지급 비중 등을 같은 기간 열 옆에 나란히 둡니다. 비율 항목은 합계 행에서도 분자·분모를 다시 합쳐 계산합니다.

계획 대비 차이 — 같은 표가 점검표가 된다

계획 차이 스위치를 켜면 실적·계획·차이·차이율이 열로 붙습니다. 색칠은 금액 기준과 비율 기준을 둘 다 넘을 때만 입혀, 작은 차이에 눈이 흩어지지 않게 했습니다.

차이 모드
차이 모드 — 실적·계획·차이·차이율이 열로 붙습니다.

금액 기준 3,000 백만원과 비율 기준 5% 를 모두 넘는 칸만 붉게 표시되고 기준은 화면에서 바꿀 수 있습니다. 붉은 칸은 단정이 아니라 점검 필요 신호입니다.

워터폴과 요인분해
워터폴과 요인분해 — 선택한 행의 계획에서 실적까지를 요인 막대로 보여 줍니다.

행을 누르면 그 행의 계획 지급액에서 실적 지급액까지의 요인이 워터폴로 그려지고, 아래 검산 줄이 계획 + 요인 합 − 실적 = 0 인지 적습니다. 전체 합계 기준으로는 계획 39,895.56 억원에서 실적 40,674.03 억원까지가 이어집니다.

변동 사유 기재
변동 사유 기재 — 대상 행·차이·구분·사유를 적어 저장합니다.

구분은 지급 시점·지급 금액·환율·계획 외 지급·일회성·기타 가운데서 고릅니다. 저장하면 표의 행 앞에 표시가 붙고 새로 고쳐도 남아 있습니다.

다른 행의 요인
다른 행의 요인 — 행을 바꾸면 워터폴이 그 행의 요인으로 바뀝니다.

요인 이름은 계획 초과 지급, 계획 미달 지급, 환율, 지급 시점 이동, 계획 외 지급, 지급 이월입니다. 같은 행에서 요인 막대의 크기를 비교해 무엇부터 확인할지 정합니다.

AI 분석과 보고서 — 숫자는 서비스, 문장은 초안

해설은 서비스가 계산한 숫자를 읽어 규칙으로 문장을 만든 초안입니다. 모델이 연결되지 않아도 같은 근거로 규칙 기반 해설이 나오고, 사람은 근거 표로 숫자를 확인합니다.

해설 — 규칙 기반 초안
해설 — 규칙 기반 초안 — 묶는 기준과 보는 사람을 고르면 범위 요약과 점검 필요 항목이 나옵니다.

"작성 방식: 규칙"이 표시되고, 문장은 점검 필요·확인 필요로 끝나 판단을 단정하지 않습니다. 이미 사유가 적힌 행은 해설에서 건너뜁니다.

근거 표
근거 표 — 해설에 쓴 계획·실적·차이 숫자를 원 단위로 펼칩니다.

문장의 숫자가 표의 숫자와 같은지 대조하는 자리입니다. 근거 표가 없는 문장은 해설로 쓰지 않습니다.

보고서 내려받기
보고서 내려받기 — 해설과 표·차트를 담은 보고서를 브라우저에서 만듭니다.

[보고서 PPTX] 를 누르면 "보고서를 내려받았습니다" 안내가 뜨고 파일이 내려옵니다. 외부 라이브러리나 서버 없이 브라우저가 파일을 직접 짓습니다.

AI 에이전트 — 하루 한 번 도는 점검

에이전트는 네 가지 규칙을 서비스에서 점검해 걸린 항목을 대기함에 올립니다. 하루 한 번 제한도 서버의 실행 기록이 판정하므로 화면을 여러 번 열어도 같은 날 두 번 돌지 않습니다.

규칙과 대기함
규칙과 대기함 — 규칙 네 개와 점검 결과, 대기함이 한 창에 있습니다.

"실행했습니다. 규칙 4개 중 2건이 걸렸습니다"처럼 결과가 나오고, 걸린 항목은 보는 사람(경영·재무·자금·회계)별로 대기함에 올라갑니다. 같은 날 다시 누르면 "오늘은 이미 실행했습니다"가 나옵니다.

활동 기록
활동 기록 — 실행 이력이 시각·실행자·상태·비고로 남습니다.

첫 실행은 DONE, 같은 날 두 번째는 LIMIT 로 기록됩니다. 누가 언제 점검을 돌렸는지를 사람이 아니라 서버가 남깁니다.

레이아웃 저장과 복원

자주 쓰는 배치는 이름을 붙여 저장합니다. 기본 보기와 열면 바로 조회 옵션을 켜 두면 다음에 화면을 열 때 조회된 채로 시작합니다.

현재 보기 저장
현재 보기 저장 — 보기 이름, 기본 여부, 열면 바로 조회를 정합니다.

내용 칸에 행·열·측정값 요약이 보이고, "다음에 열 때 이 보기로 시작"과 "열면 바로 조회"를 체크할 수 있습니다.

저장한 보기 관리
저장한 보기 관리 — 적용·기본으로·자동 조회·이름 바꿈·삭제를 한곳에서 합니다.

기본으로 되돌리기는 [보기 저장] 메뉴의 "기본 배치로 되돌리기"에 있습니다.

기본 보기로 조회된 채 열림
기본 보기로 조회된 채 열림 — 저장한 기본 보기로 시작하면 바로 조회된 상태입니다.

조건을 다시 넣거나 [조회]를 누르지 않아도 지급 은행·구분 행, 분기 열, 계획 차이 모드가 그대로 나타납니다.

좁은 화면과 한계

열 조합이 36개를 넘으면 안내하고, 폭이 좁으면 차트를 표 아래로 내려 휴대폰에서도 같은 리포트를 봅니다.

열 조합 상한 안내
열 조합 상한 안내 — 36개를 넘는 열 조합은 추가하지 않습니다.

"열 조합이 36개를 넘어 추가하지 않았습니다" 안내가 표 위에 나옵니다. 필터로 범위를 좁히거나 열 축을 줄이면 됩니다.

390px 폭 — 상단
390px 폭 — 상단 — 요약 지표가 두 줄로 쌓이고 조건·보관함이 세로로 놓입니다.

가로 스크롤 없이 같은 조건과 축 구성을 쓸 수 있습니다. 보관함 칩을 눌러 행 축에 넣는 방식이 터치에 맞습니다.

390px 폭 — 표와 차트
390px 폭 — 표와 차트 — 표가 위, 차트가 아래로 내려갑니다.

차트를 숨기지 않고 표 아래로 내려 같은 정보를 모두 봅니다. 표는 가로로 밀어 볼 수 있습니다.

화면 뒤에서 일어나는 일

여기부터는 목차에 올리지 않은 상세입니다. 화면들이 어떤 규칙으로 움직이는지를 자리별로 적었습니다. 도입 검토에서 "그래서 이건 어떻게 되느냐"로 자주 되돌아오는 대목들입니다.

피벗이 만들어지는 여섯 단계

  1. 큐브 받기 — 조회할 때 한 번 실적 큐브(와 계획 큐브)를 읽습니다.
  2. 행 묶기 — 행 축 차원을 순서대로 적용해 트리를 만듭니다.
  3. 열 만들기 — 열 축 값 조합을 뽑아 열을 세웁니다(조합이 36개를 넘으면 추가하지 않고 안내합니다).
  4. 칸 채우기 — 행 묶음 × 열 조합마다 측정값을 더합니다.
  5. 계산항목 — 수수료 포함 지급액, 평균 수수료율, 긴급 지급 비중 같은 항목은 분자와 분모를 다시 합쳐 계산합니다.
  6. 차이 열 — 계획 차이 스위치가 켜져 있으면 실적·계획·차이·차이율을 붙입니다.

축을 바꾸면 2단계부터 다시 돌고 1단계는 다시 하지 않습니다. 외화 지급액은 통화별로 환율을 곱한 원화로만 합산하며 서로 다른 통화를 그대로 더하지 않습니다.

판정 규칙과 조치

이 화면은 판정을 단정하지 않고 점검 대상을 좁혀 줍니다. 기준값은 화면에서 바꿀 수 있습니다.

규칙판정 조건결과 상태사용자 조치
차이 모드 색칠|차이| ≥ 금액 기준(기본 3,000 백만원) 그리고 |차이율| ≥ 비율 기준(기본 5%)칸이 붉게 표시됨점검 필요 — 변동 사유를 적고 근거 라인 확인
요인분해 검산계획 + 요인 합 − 실적 = 0"검산: … = 0" 표시0 이 아니면 확인 필요
원천 라인 일치칸 값 = 원천 합계"표의 값과 일치"불일치 시 차이 금액 표시 — 확인 필요
에이전트 규칙 1최근 기간 단일 은행 지급 비중 ≥ 30%대기함 등록(경고)지급 일정 분산 여지 확인
에이전트 규칙 2최근 기간 긴급 지급 비중 ≥ 18%대기함 등록긴급 지급 사유 점검
에이전트 규칙 3최근 기간 계획 이행률 ≤ 97%대기함 등록미실행·이월 지급 확인
에이전트 규칙 4|지급액 − 계획| ≥ 30 억원대기함 등록(안내)차이 원인을 요인분해로 확인
실행 제한같은 날 두 번째 에이전트 실행상태 LIMIT 기록다음 날 실행 — 서버가 이력으로 판정

산출과 대사 순서

단계처리내용
1원천 라인 수집지급 문서 라인 3,391줄 — 지급일·은행·수단·채널·통화·외화 금액·환율
2큐브 집계라인을 9개 축으로 묶어 원화 지급액·수수료·수수료 부과 기준액·기말 미지급 잔액·라인 수 저장
3큐브 ↔ 원천 대사기간×측정값 45건을 원천 합계와 비교 — 차이 0 이어야 함
4브라우저 피벗큐브를 한 번 읽어 두고 축을 바꿀 때마다 브라우저에서 다시 묶음 — 재조회 없음
5계산항목수수료 포함 지급액 = 지급액 + 수수료 · 평균 수수료율 = 수수료 × 100 ÷ 부과 기준액
6계획 대비 차이실적 − 계획. 선택 범위의 요인분해로 계획 + 요인 합 − 실적 = 0 검산
7원천 확인칸 값 = 원천 라인 합계 확인(드릴스루)

차이 요인분해 정의

요인의미
계획 초과 지급계획된 라인에서 실적이 계획보다 큰 부분
계획 미달 지급계획된 라인에서 실적이 계획보다 작은 부분
환율같은 외화 금액에 월 환율이 계획 환율과 달라 생긴 원화 차이
지급 시점 이동계획월과 다른 달에 지급된 부분(앞당김·지연)
계획 외 지급계획 없이 지급된 라인
지급 이월계획만 있고 지급되지 않은 라인

검산식은 계획 + 계획 초과 + 계획 미달 + 환율 + 시점 이동 + 계획 외 − 이월 = 실적이며 요인 금액은 부호를 포함해 더합니다. 검산 줄은 0 이어야 하고, 0 이 아니면 원천 라인과 요인 정의를 확인해야 합니다.

조회조건

조건필수 여부기본값서비스 처리
지급 법인선택전체법인 조건(여러 개는 or)
기간(부터)필수2026년 01월기간 하한
기간(까지)필수2026년 09월기간 상한
비교 기준선택지급 계획(P0)과 비교같은 조건으로 계획 큐브를 추가 조회
금액 단위선택억원화면 표시만 바뀜(서비스 호출 없음)
값 필터선택없음읽어 둔 큐브 안에서 걸러짐(서비스 호출 없음)

결과 컬럼

컬럼산출식비고
지급액(원화)당월 외화 지급액 × 지급일 월 적용 환율기간을 합치면 합산
지급 수수료(원화)지급액 × 지급 수단별 수수료율수수료율은 샘플 가정값
수수료 부과 기준액계획된 지급에 대해서만 잡는 수수료 부과 기준평균 수수료율의 분모
기말 미지급 잔액월말 외화 미지급 잔액 × 월 적용 환율기간을 합쳐도 마지막 기간 값만 사용
평균 지급 수수료율(%)수수료 × 100 ÷ 수수료 부과 기준액계산항목
긴급 지급 비중(%)긴급 지급액 × 100 ÷ 지급액계산항목
계획 대비 차이 / 차이율실적 − 계획 / 차이 ÷ 계획금액·비율 기준을 모두 넘으면 점검 필요

좁은 화면에서 달라지는 것

폭이 좁아지면 요약 지표는 두 줄로 쌓이고 조회 조건과 차원 보관함이 세로로 놓이며, 차트는 숨기지 않고 표 아래로 내려갑니다. 칩을 끌어다 놓는 대신 눌러서 행 축에 넣는 방식이 터치에 맞습니다. 표는 가로로 밀어 볼 수 있고 가로 스크롤이 페이지 전체로 번지지 않습니다.

파일 구성

paymix/
  index.html            앱 시작 (sap_horizon)
  readme.html           앱 설명서
  Component.js · manifest.json
  controller/  Main.controller.js · BaseController.js
  view/        Main.view.xml · 대화상자 조각
  model/       cube.js(피벗) · chart.js(SVG 차트) · layout.js · pptx.js · formatter.js
  css/ · i18n/
  odata/       서비스 정의(metadata) · 서비스 로직 · 계산 모듈 · 샘플 데이터
  media/       소개 영상 · 포스터 · 재생 지점 목록

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

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 아래는 표준으로 충분한 일과 이 앱이 더하는 관점을 나란히 놓은 것입니다.

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

하고 싶은 일SAP 표준표준에서 걸리는 자리이 앱이 하는 일
지급 실행(지급 런)F110실행 결과가 지급 런 단위라 은행·수단·채널별로 다시 묶어 보기 어렵습니다같은 지급 라인을 큐브로 묶어 축을 바꿔 봅니다
미지급 라인 확인FBL1N거래처 단위 조회라 은행·채널 관점이 없습니다미지급 잔액을 은행·통화·구간별로 봅니다
전표 상세FB03전표를 하나씩 엽니다칸에서 원천 라인을 합계와 함께 엽니다
은행 계정 잔액FS10N계정 잔액 중심이라 지급 수단·채널 구분이 없습니다은행별 지급액과 수수료를 같은 표에서 봅니다
현금 포지션FF7A계획과 실적을 따로 봅니다계획(P0) 대비 지급 차이를 한 표에 둡니다
차이의 원인 분해없음표준에 없고 보통 엑셀로 만듭니다여섯 요인으로 가르고 합계를 검산합니다
차이 사유 기록전표 적요전표 단위라 집계 행에는 붙일 곳이 없습니다조회 범위와 행 경로를 키로 남깁니다

T-code 별 연계 지점

T-code이름이어받는 데이터오가는 방법과 대사 지점표준에 남길 일
F110자동 지급 프로그램지급 런·지급 제안의 지급 방법과 은행 정보이 앱의 지급 수단·은행 축과 지급 런 결과가 같은 합계인지 대사 / 이 앱 결과 → F110 에서 해당 런 확인지급 실행과 은행 파일 생성은 표준에 둡니다
FBL1N공급업체 라인 아이템미지급 문서와 만기 정보기말 미지급 잔액 대사 / 이 앱 칸 → FBL1N 에서 거래처별 라인 확인거래처 원장 관리는 표준에 둡니다
FB03전표 조회원천 전표(지급 문서) 상세드릴스루 라인의 문서 번호 → FB03 에서 전표 상세 확인전표 수정·역분개는 표준에서 합니다
FS10NG/L 계정 잔액은행 계정 잔액은행별 지급액과 계정 변동을 맞춰 봄 / 표준 잔액 → 이 앱의 은행 축으로 다시 보기계정 잔액 마감 확인은 표준에 둡니다
FF7A현금 포지션자금 예측·계획 데이터계획(P0) 대비 지급 비교의 계획 관점 확인유동성 포지션 보고는 표준에 둡니다

운영 전환 때 "기존 리포트를 없애야 하나"에 대한 답은 아니오입니다. 표준 실행·법정·감사·세무 신고 대응은 표준 T-code 와 회사 체계에 남기고, 이 화면은 조회·검증 관점을 더해 확장합니다. 화면 이름과 필드는 시스템 버전과 설정에 따라 다를 수 있어 운영 환경에서 확인이 필요합니다.

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

S/4HANA 에는 표준 CDS 분석 쿼리와 Fiori 분석 앱, Analysis for Office 같은 분석 도구가 있습니다. 이 앱은 그것들과 경쟁하지 않고, 같은 종류의 큐브·분석 쿼리 구조(CDS 큐브와 분석 쿼리, 권한 DCL)를 따라 설계해 두었습니다. 운영에서 CDS 큐브와 분석 쿼리를 만들어 두면 표준 분석 도구가 같은 쿼리를 그대로 열 수 있고, 이 앱은 그 서비스를 화면에 얹는 역할만 합니다. 어떤 표준 Fiori 앱이 어떤 쿼리를 쓰는지는 시스템 릴리스에 따라 달라 확인 필요 항목으로 남겼습니다.

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

자리무엇을 손대나비고
지급 수단·채널 매핑지급 방법 코드와 하우스 뱅크를 수단·채널 묶음으로 옮기는 매핑 테이블새 지급 방법이 생기면 어느 묶음인지만 적어 줍니다
수수료 체계수단별 수수료율(샘플은 가정값)실제 청구 체계로 교체 — 확인 필요
확장 필드긴급 여부·결제 조건 구간·채널 구분 같은 필드표준 필드나 고객 확장 필드로 채워야 하는지 확인 필요
환율 유형과 환산 시점원화 환산에 쓰는 환율 유형과 기준일회계 정책에 맞춰 결정
권한법인·은행 범위 권한 객체집계 단계(큐브)에 거는 것이 안전
BAdI·커스텀 필드지급 라인 추가 속성이 필요할 때고객사가 손대는 지점

분석 지표 정의표

지표산식·판정 기준대응 기능원천 데이터비고
지급액(원화)당월 외화 지급액 × 지급일 월 적용 환율, 기간을 합치면 합산큐브·피벗·요약 지표지급 문서 라인(금액·통화·환율)샘플 가정 환율
지급 수수료(원화)지급액 × 수단별 수수료율수수료 열·평균 수수료율수단별 수수료율(가정값)실제 수수료 체계는 확인 필요
수수료 부과 기준액계획된 지급에 대해서만 잡는 수수료 부과 기준평균 수수료율의 분모지급 계획 라인-
기말 미지급 잔액월말 외화 미지급 잔액 × 월 적용 환율, 기간을 합쳐도 마지막 기간만 사용자금 보기·요약 지표미지급 문서 잔액집계 방식 LAST
평균 지급 수수료율(%)수수료 × 100 ÷ 수수료 부과 기준액계산항목--
긴급 지급 비중(%)긴급 지급액 × 100 ÷ 지급액요약 지표·에이전트 규칙 2긴급 여부 필드-
계획 대비 차이실적 − 계획, 금액·비율 기준을 모두 넘으면 점검 필요차이 모드·에이전트 규칙 4계획(P0)과 실적 큐브기준값은 화면에서 조정
요인분해계획 + 요인 합 − 실적 = 0워터폴·검산 줄원천 라인(라인 유형별)부호 포함

CDS 구성 — 뷰 레이어부터 권한·서비스까지

아래 객체 이름과 필드는 운영 환경에 맞춰 다듬어야 하는 스케치이며, 표준 필드 이름 중 확인하지 못한 것은 "확인 필요"로 표시했습니다. 표준 실행은 SAP 표준 T-code 가 담당하고 이 CDS 는 조회·검증 관점을 더하는 층입니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZPAY_MAP지급 방법·하우스 뱅크를 수단·채널 묶음과 수수료율로 옮기는 매핑 테이블코드에 박지 않아야 새 방법이 생겨도 개발자를 부르지 않습니다
차원ZI_PayBank하우스 뱅크 차원(이름·국내외 구분)큐브에서 join 을 한 번만 걸고 값 도움말·텍스트가 한 뷰를 보게 합니다
라인ZI_PaymentLine지급 문서 라인을 원화로 환산한 원천 뷰환산·부호 규칙을 한곳에서 정합니다
큐브(실적)ZI_PaymentCube아홉 개 축으로 지급액·수수료·미지급 잔액을 집계화면이 들고 묶던 일을 DB 로 내립니다
큐브(계획)ZI_PaymentPlanCube실적과 같은 키 모양의 계획(P0) 큐브키가 어긋나면 계획이 실적 옆에 붙지 않습니다
쿼리ZC_PaymentMixQuery축 배치와 필터를 정의한 분석 쿼리표준 분석 도구가 같은 쿼리를 그대로 엽니다
권한ZPAY_CUBE_AUTH법인·은행 범위 권한(DCL)합계로 새는 것을 막으려면 큐브에 걸어야 합니다
서비스ZUI_PaymentMix서비스 정의와 바인딩(OData V2)화면이 부르는 단일 진입점입니다

① 지급 수단·채널 매핑 테이블

지급 방법 코드와 하우스 뱅크가 어느 수단 묶음·채널·수수료율에 속하는지 정하는 테이블입니다. 이 표가 바뀌면 수단별·채널별 숫자가 바뀌므로 운영에서 가장 먼저 합의할 자리입니다. 필드와 키는 환경에 따라 달라 확인 필요입니다.

" ────────────────────────────────────────────────────────────────
"  ZPAY_MAP — 지급 방법·하우스 뱅크 → 수단·채널 묶음 매핑 (투명 테이블)
"  코드에 박지 않는 이유 : 지급 방법과 은행은 늘 늘어나고,
"  늘어날 때마다 개발자를 부르면 리포트가 금방 낡는다.
"  수수료율도 여기 둔다 — 실제 청구 체계가 바뀌면 이 표만 고친다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '지급 수단·채널 매핑'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C          " 고객 유지 — 전송(TR)으로 옮긴다
@AbapCatalog.dataMaintenance : #ALLOWED  " 유지보수 뷰를 함께 만들어 둔다
define table zpay_map {
  key mandt      : mandt not null;
  key map_type   : abap.char(1) not null;   " M=지급 방법  B=하우스 뱅크  (확인 필요)
  key src_value  : abap.char(10) not null;  " 지급 방법 코드 또는 하우스 뱅크 ID
  mode_grp       : abap.char(4);            " 수단 묶음 : 이체/외화송금/어음/카드
  chan_grp       : abap.char(4);            " 채널 묶음 : 은행 포털/EDI/수기
  @Semantics.quantity.unitOfMeasure : 'PCT'
  fee_rate       : abap.dec(7,4);           " 수수료율(%) — 샘플은 가정값
  valid_from     : abap.dats;
}

② 하우스 뱅크 차원 뷰

은행 하나당 한 행입니다. 은행 이름과 국내외 구분이 여기서 결정되며, 큐브와 값 도움말이 이 뷰 하나를 보게 합니다. 하우스 뱅크 마스터(T012) 기반이며 필드명은 확인 필요입니다.

" ────────────────────────────────────────────────────────────────
"  ZI_PayBank — 하우스 뱅크 차원
"  은행 하나당 한 행. 은행명과 국내/해외 구분이 여기서 정해진다.
"  차원 뷰를 따로 두는 이유 : 큐브에서 join 을 한 번만 걸고,
"  값 도움말·텍스트가 이 뷰 하나를 보게 하기 위해서다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #NOT_REQUIRED
@EndUserText.label                   : '하우스 뱅크 차원'
@Analytics.dataCategory              : #DIMENSION
@ObjectModel.representativeKey       : 'HouseBank'
define view entity ZI_PayBank
  as select from t012 as Bank          " 하우스 뱅크 마스터 (필드는 확인 필요)
{
  key Bank.bukrs       as CompanyCode,
  key Bank.hbkid       as HouseBank,
      Bank.banks       as BankCountry,
      Bank.bankl       as BankKey,
      case when Bank.banks = 'KR' then 'D' else 'F' end as DomesticFlag
}

③ 지급 라인 뷰

지급 문서 라인을 원화로 환산해 한 줄씩 보여 주는 원천 뷰입니다. 환산 시점과 부호 규칙이 여기서 정해지므로, 표준 지급 화면과 숫자를 맞출 때 가장 먼저 확인할 자리입니다. 지급 런 테이블의 필드는 릴리스에 따라 다르므로 확인 필요입니다.

" ────────────────────────────────────────────────────────────────
"  ZI_PaymentLine — 지급 라인 (원화 환산)
"  라인 하나당 한 행. 외화 금액에 환율을 곱한 원화 금액을 여기서 만든다.
"  환산을 한곳에서 하는 이유 : 큐브와 원천 라인 화면이
"  같은 환산 결과를 읽어야 칸 금액과 라인 합계가 맞는다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK
@EndUserText.label                   : '지급 문서 라인'
define view entity ZI_PaymentLine
  as select from bseg as Item
  inner join     bkpf as Head
    on  Head.bukrs = Item.bukrs
    and Head.belnr = Item.belnr
    and Head.gjahr = Item.gjahr
  association [0..1] to zpay_map as _ModeMap
    on  _ModeMap.map_type  = 'M'
    and _ModeMap.src_value = Item.zlsch          " 지급 방법 (확인 필요)
{
  key Item.bukrs                                   as CompanyCode,
  key Item.belnr                                   as DocNo,
  key Item.gjahr                                   as FiscalYear,
  key Item.buzei                                   as ItemNo,
      Head.budat                                   as PostingDate,
      substring( Head.budat, 1, 6 )                as PostingMonth,
      Item.hbkid                                   as HouseBank,
      Item.zlsch                                   as PayMethod,
      Item.waers                                   as Currency,
      @Semantics.amount.currencyCode : 'Currency'
      Item.wrbtr                                   as ForeignAmount,
      @Semantics.amount.currencyCode : 'Currency'
      Item.dmbtr                                   as LocalAmount,
      _ModeMap.mode_grp                            as ModeGroup,
      _ModeMap.chan_grp                            as ChannelGroup,
      _ModeMap.fee_rate                            as FeeRate
}

④ 실적 큐브

차원 조합마다 한 행을 만들고 지급 라인을 DB 에서 더해 올립니다. 화면이 들고 묶던 일을 여기로 내리는 것이 운영 전환의 핵심입니다. 기말 미지급 잔액은 기간을 합쳐도 마지막 기간만 쓰는 측정값이라 집계 방식을 따로 정합니다.

" ────────────────────────────────────────────────────────────────
"  ZI_PaymentCube — 지급 실적 큐브
"  아홉 개 축(기간·법인·은행·구분·통화·수단·결제 구간·채널·긴급)마다 한 행.
"  기말 미지급 잔액은 기간을 합치면 마지막 기간 값만 쓴다(LAST).
"  통화 환산은 여기서 끝내 두고, 화면은 합산만 한다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK      " ← DCL 을 반드시 붙인다
@EndUserText.label                   : '지급 실적 다차원 큐브'
@Analytics.dataCategory              : #CUBE
define view entity ZI_PaymentCube
  as select from ZI_PaymentLine as Ln
  association [0..1] to ZI_PayBank as _Bank
    on  _Bank.CompanyCode = Ln.CompanyCode
    and _Bank.HouseBank   = Ln.HouseBank
{
  key Ln.PostingMonth,
  key Ln.CompanyCode,
  key Ln.HouseBank,
  key Ln.Currency,
  key Ln.ModeGroup,
  key Ln.ChannelGroup,
      @Semantics.amount.currencyCode : 'KRW'
      @DefaultAggregation : #SUM
      sum( Ln.LocalAmount )                          as PaidKrw,
      @Semantics.amount.currencyCode : 'KRW'
      @DefaultAggregation : #SUM
      sum( cast( Ln.LocalAmount * Ln.FeeRate / 100 as abap.curr(15,0) ) )
                                                     as FeeKrw,
      count( * )                                     as LineCount,
      _Bank
}
group by Ln.PostingMonth, Ln.CompanyCode, Ln.HouseBank,
         Ln.Currency, Ln.ModeGroup, Ln.ChannelGroup

⑤ 계획 큐브

실적과 같은 키 모양으로 맞추는 것이 전부입니다. 키가 어긋나면 계획이 실적 옆에 붙지 않고 따로 뜹니다. 계획 원천 테이블은 환경마다 달라 확인 필요이며, 아래는 자금 계획 데이터를 읽는 개념 스케치입니다.

" ────────────────────────────────────────────────────────────────
"  ZI_PaymentPlanCube — 지급 계획(P0) 큐브
"  실적 큐브와 같은 키 모양으로 맞춘다. 키가 어긋나면 계획이 따로 뜬다.
"
"  ※ 계획 원천(자금 계획 테이블 또는 지급 계획 데이터)은
"     릴리스와 설정에 따라 다르다 — 확인 필요.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #CHECK
@EndUserText.label                   : '지급 계획 다차원 큐브'
@Analytics.dataCategory              : #CUBE
define view entity ZI_PaymentPlanCube
  as select from zpay_plan as Pln       " 지급 계획 원천 (확인 필요)
{
  key Pln.plan_month     as PostingMonth,
  key Pln.bukrs          as CompanyCode,
  key Pln.hbkid          as HouseBank,
  key Pln.waers          as Currency,
  key Pln.mode_grp       as ModeGroup,
  key Pln.chan_grp       as ChannelGroup,
      @Semantics.amount.currencyCode : 'KRW'
      @DefaultAggregation : #SUM
      sum( Pln.plan_krw )  as PlanPaidKrw
}
where Pln.version = 'P0'
group by Pln.plan_month, Pln.bukrs, Pln.hbkid,
         Pln.waers, Pln.mode_grp, Pln.chan_grp

⑥ 분석 쿼리

이 뷰를 만들어 두면 표준 분석 도구가 같은 쿼리를 그대로 엽니다. 행·열 축의 기본 배치와 필터가 여기서 정해지며, 앱 없이도 축을 바꿔 볼 수 있습니다.

" ────────────────────────────────────────────────────────────────
"  ZC_PaymentMixQuery — 분석 쿼리
"  이 뷰를 만들어 두면 표준 분석 도구가 같은 쿼리를 그대로 띄운다.
"  앱이 없어도 축은 바꿀 수 있다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck    : #NOT_REQUIRED   " 큐브에서 이미 검사했다
@EndUserText.label                   : '지급 수단·채널 이행 분석'
@Analytics.query                     : true
@Metadata.ignorePropagatedAnnotations: true
define view entity ZC_PaymentMixQuery
  as select from ZI_PaymentCube
{
      @AnalyticsDetails.query.axis : #ROWS
      @AnalyticsDetails.query.displayHierarchy : #OFF
  key HouseBank,
      @AnalyticsDetails.query.axis : #ROWS
  key ModeGroup,
      @AnalyticsDetails.query.axis : #COLUMNS
  key PostingMonth,
      @Consumption.filter.selectionType : #RANGE
  key CompanyCode,
      @AnalyticsDetails.query.axis : #COLUMNS
      PaidKrw,
      @AnalyticsDetails.query.axis : #COLUMNS
      FeeKrw
}

⑦ 권한 (DCL)

집계 화면에서 권한을 드릴스루에만 걸면, 권한 없는 사람이 전사 합계와 자기 몫의 차이를 빼서 남의 법인·은행 숫자를 알아냅니다. 그래서 큐브를 읽는 자리에 겁니다. 권한 객체 이름은 환경 확인 필요입니다.

" ────────────────────────────────────────────────────────────────
"  ZPAY_CUBE_AUTH — 권한 (DCL)
"  권한을 드릴스루에만 걸면 합계의 뺄셈으로 남의 숫자가 샌다.
"  그래서 큐브를 읽는 자리에 건다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '지급 큐브 권한'
@MappingRole       : true
define role ZPAY_CUBE_AUTH {
  grant select on ZI_PaymentCube
    where ( CompanyCode ) = aspect pfcg_auth ( F_BKPF_BUK, BUKRS, ACTVT = '03' );
  grant select on ZI_PaymentPlanCube
    where ( CompanyCode ) = aspect pfcg_auth ( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}

⑧ 서비스 정의

분석 쿼리를 OData 로 여는 서비스 정의입니다. 바인딩을 만들어 게시하면 화면이 이 서비스 하나만 부릅니다. 샘플의 서비스 주소를 운영 주소로 바꾸는 자리는 앱 설정의 서비스 주소 한 곳입니다.

" ────────────────────────────────────────────────────────────────
"  ZUI_PaymentMix — 서비스 정의
"  화면이 부르는 단일 진입점. 바인딩(OData V2 - UI)을 만들어 게시한다.
"  큐브·계획·차원은 여기서 엔티티로 열고, 쓰기가 필요한 변동 사유·
"  저장한 보기·에이전트 기록은 별도 RAP 객체로 둔다(개념 — 확인 필요).
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '지급 수단·채널 이행 서비스'
define service ZUI_PaymentMix {
  expose ZC_PaymentMixQuery  as PaymentMix;
  expose ZI_PaymentCube      as CubeSet;
  expose ZI_PaymentPlanCube  as PlanSet;
  expose ZI_PayBank          as BankSet;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다. 아래 표의 왼쪽은 대부분 코딩이 아니라 합의입니다.

해야 할 일무엇을 정하나정하지 않으면누가
지급 수단·채널 매핑지급 방법·하우스 뱅크를 어느 수단·채널 묶음으로 볼지은행·수단 분류가 기존 보고서와 어긋나 첫 회의에서 막힙니다자금팀
수수료 체계(수단별 요율)실제 청구 체계에 맞는 수수료율과 부과 기준수수료율이 가정값 그대로 남아 수수료 비교가 의미를 잃습니다자금팀 · 회계팀
환율 유형과 환산 시점외화 지급을 원화로 바꿀 환율 유형과 기준일외화 지급의 원화 환산이 표준 보고서와 달라집니다회계팀
계획 원천(지급 계획 버전)계획(P0)을 어느 테이블·버전에서 가져올지계획 대비 차이의 기준이 사람마다 달라집니다자금팀 · 기획팀
권한 기준(법인·은행)누가 어느 법인·은행 숫자를 보는지전사 합계와 자기 몫의 차이로 남의 숫자가 드러납니다보안 · 권한
배치 주기(에이전트)점검을 몇 시에 돌릴지, 대기함을 누가 받을지사람이 화면을 열 때만 점검이 돕니다Basis · 자금팀
부호 규칙·차원 범위환급·역분개 부호 처리, 쓸 차원 범위나중에 늘리려면 뷰를 고쳐 다시 이송해야 합니다자금팀 · 현업
대사 체계표준 T-code 와 맞출 항목(지급 런 합계·미지급 잔액·은행 잔액)숫자가 다를 때 어디부터 볼지 정해져 있지 않습니다회계팀
성능 기준한 번 읽을 라인 수 상한과 응답 시간 목표대용량에서 첫 조회가 느려집니다Basis
전송(TR) 순서·서비스 활성화테이블 → 뷰 → DCL → 서비스 순서, 서비스 게시와 앱 설정의 서비스 주소 교체순서가 어긋나면 활성화 오류가 납니다Basis · 개발

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

검증용 샘플 데이터(지급 라인 3,391줄)로 대사식을 전수로 돌린 결과입니다. 도입 포인트의 사례와 같은 숫자입니다.

대사식검사 건수차이
큐브 총합 ↔ 원천 총합(측정값 4개)4건0건
기간×측정값 대사(서비스 제공)45건0건
9개 축 배치 7종 — 피벗 합계·그룹별 합계1,152건0건
칸 금액 ↔ 원천 드릴 합계(칸 15개 × 4)60건0건
다중 선택 필터 합계8건0건
계획 큐브 합계 ↔ 원천 계획 필드2건0건
요인분해 검산 줄 — 범위 25개25건0건
통화별 외화 × 환율 ↔ 원화 지급액4건0건

총 검사 1,300건(45 + 1,230 + 25), 차이 0건입니다. 통화별 외화 × 환율 대사에서 라인별 원 단위 반올림 차이가 최대 150원 있었고(총 지급액 4조 원대) 허용 오차로 보았습니다. 의도적 예외는 대사 차이와 따로 셉니다.

구분건수설명
계획 외 지급136줄의도적 예외 — 계획에 없는 지급을 점검 대상으로 보여 줍니다
지급 이월42줄의도적 예외 — 계획만 있고 지급되지 않은 줄(원천 드릴에서는 제외)
시점 이동210줄(105쌍)의도적 예외 — 계획월과 지급월이 다른 짝

운영 데이터로 갈 때 — 지급 라인이 수천만 건이면

운영 지급 라인은 수천만 건이 될 수 있습니다. 샘플은 라인을 모두 읽어 브라우저에서 묶지만 운영에서는 그렇게 하지 않습니다. 집계는 큐브(DB)에서 끝내고 화면은 큐브 행만 읽습니다(아홉 개 축 조합이 수만 행 이하가 되도록 차원 범위를 정합니다). 기간은 조회 조건에서 필수로 받고, 법인·은행 조건이 없으면 안내합니다. 원천 라인은 칸을 눌렀을 때만 페이지 단위로 읽습니다. 인덱스는 전기일·법인·하우스 뱅크 순으로 두는 것이 출발점이며, 응답 시간 기준(예: 첫 조회 수 초 이내)은 도입 시 정해야 하고 현재는 확인 필요입니다.

자주 묻는 질문

도입을 검토할 때 자주 받는 질문 27개를 네 묶음으로 정리했습니다.

숫자와 산식

지급액과 수수료, 미지급 잔액, 차이는 어떻게 계산하나요? 어디서 계산하나요?

지급액은 어떻게 계산됩니까?

지급 라인의 외화 금액에 지급일 월의 환율을 곱한 원화 금액을 더합니다. 외화는 통화별로 원화로 바꾼 뒤에만 합산하고, 서로 다른 통화의 금액을 그대로 더하지 않습니다. 계산은 서비스가 하고 화면과 해설은 그 값을 읽기만 합니다. 같은 계산 모듈을 검증용 환경도 쓰기 때문에 두 환경의 결과가 같습니다.

기말 미지급 잔액은 기간을 합치면 왜 늘지 않습니까?

월말 시점의 잔액이라 더하면 의미가 없기 때문입니다. 이 측정값은 기간을 합쳐도 마지막 기간의 값만 씁니다(집계 방식 LAST). 그래서 분기나 연으로 묶어도 잔액이 부풀지 않습니다.

계획 대비 차이 +778.47 억원은 문제가 있다는 뜻입니까?

아닙니다. 이 화면은 판단을 단정하지 않고 점검 대상을 좁혀 줍니다. 금액 기준과 비율 기준을 둘 다 넘는 칸이 붉게 표시되지만 그것은 점검 필요 신호입니다. 원인은 요인분해에서 어느 요인이 큰지 보고, 근거 지급 라인을 확인해야 합니다.

요인분해의 검산 줄은 무엇입니까?

계획 + 계획 초과 + 계획 미달 + 환율 + 시점 이동 + 계획 외 − 이월이 실적과 같은지 매번 계산해 보여 줍니다. 요인 금액은 부호를 포함해 더하고 결과는 0 이어야 합니다. 0 이 아니면 원천 라인과 요인 정의를 확인해야 합니다. 샘플 자료에서는 범위 25개 모두 0 이었습니다.

샘플의 환율과 수수료율은 실제 값입니까?

아닙니다. 환율과 수수료율은 샘플 가정값입니다. 운영에서는 회사의 환율 유형과 실제 수수료 체계로 바꿔야 하며, 그 기준은 확인이 필요합니다. 법인과 은행, 문서 이름도 모두 가상입니다.

통화별 반올림 차이 150원은 무엇입니까?

외화 라인마다 원 단위로 반올림하는 과정에서 생기는 차이로, 총 지급액이 4조 원대인 자료에서 최대 150원이었습니다. 대사 차이 0건의 판정에서는 허용 오차로 보고 별도로 적었습니다.

화면과 조작

조회 조건과 축 전환, 드릴스루, 저장한 보기에 대한 질문입니다.

축을 바꿀 때 서비스를 다시 부릅니까?

아닙니다. 조회할 때 큐브를 한 번 읽어 두고 축 전환·값 필터·표 행 수·정렬은 읽어 둔 큐브에서 브라우저가 처리합니다. 그래서 총합이 바뀌지 않고 응답도 빠릅니다. 기간이나 법인 조건을 바꿀 때만 다시 조회합니다.

열 조합이 36개를 넘으면 어떻게 됩니까?

추가하지 않고 "열 조합이 36개를 넘어 추가하지 않았습니다" 안내가 나옵니다. 표가 가로로 너무 길어지는 것을 막기 위한 상한입니다. 값 필터로 범위를 좁히거나 열 축을 줄이면 됩니다.

칸을 누르면 무엇이 열립니까?

그 칸을 이룬 원천 지급 라인 목록이 열립니다. 라인 합계가 칸 값과 같으면 "표의 값과 일치"가 표시되고, 다르면 차이 금액이 표시되어 확인이 필요합니다. 계획만 있고 지급되지 않은 이월 라인은 원천 목록에서 제외됩니다.

보기를 저장하면 무엇이 저장됩니까?

행·열 축, 측정값, 계획 차이 모드 같은 배치가 이름과 함께 서비스에 저장됩니다. 기본 보기와 열면 바로 조회 옵션을 켜 두면 다음에 화면을 열 때 조회된 상태로 시작합니다. 기본 배치로 되돌리기는 [보기 저장] 메뉴에 있습니다.

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

폭이 좁아지면 요약 지표가 쌓이고 차트가 표 아래로 내려가며, 칩을 눌러 행 축에 넣는 방식으로 같은 리포트를 봅니다. 다만 칸이 많은 표는 가로로 밀어 보아야 하므로, 넓은 표 비교는 데스크톱이 편합니다.

CSV 로 무엇을 내려받을 수 있습니까?

표 오른쪽 위 [CSV] 는 지금 보이는 표를, 원천 라인 창의 [CSV] 는 그 칸의 지급 라인을 내려받습니다. 변동 사유가 있는 행은 사유도 함께 담깁니다.

분석 기능

해설, 변동 사유, 에이전트에 대한 질문입니다.

해설은 AI 가 숫자를 만듭니까?

아닙니다. 금액과 비율은 서비스가 계산해 근거로 넘기고, 해설은 그 숫자를 읽어 문장으로 만든 초안입니다. 이 앱의 샘플은 규칙 기반 해설을 쓰며 모델이 연결되지 않아도 같은 근거로 해설이 나옵니다. 사람은 근거 표로 숫자를 확인합니다.

변동 사유는 어떻게 남습니까?

차이가 난 행에서 구분(지급 시점·지급 금액·환율·계획 외 지급·일회성·기타)과 사유를 적어 저장하면, 조회 범위와 행 경로를 키로 서비스에 남습니다. 축을 바꿔도 같은 행이면 따라오고 다음 달에도 남습니다. CSV 와 해설 근거에도 함께 실립니다.

에이전트는 무엇을 점검합니까?

네 가지 규칙입니다 — 단일 은행 지급 비중, 긴급 지급 비중, 계획 이행률, 계획 대비 지급 차이. 걸린 항목은 보는 사람별로 대기함에 올라가고 활동 기록에 실행 이력이 남습니다. 임계값은 서비스에 저장된 규칙 값이며 운영에서 정합니다.

에이전트가 하루에 두 번 돌 수 있습니까?

돌지 않습니다. 같은 날 두 번째 실행은 상태 LIMIT 로 기록되고 "오늘은 이미 실행했습니다"가 표시됩니다. 하루 한 번 제한은 화면이 아니라 서버의 실행 기록이 판정하므로 화면을 여러 번 열어도 같습니다.

보고서 PPTX 는 어떻게 만들어집니까?

해설과 표·차트를 담은 파일을 브라우저가 직접 만듭니다. 외부 라이브러리나 서버 전송이 없고 파일은 내려받는 순간에만 생깁니다. 보고서의 숫자는 화면의 숫자와 같습니다.

요인분해가 안 나뉘는 자리도 있습니까?

있습니다. 계획이 없는 행은 "계획 외 지급"으로, 지급되지 않은 계획은 "이월"로 세웁니다. 억지로 다른 요인으로 나누지 않고 별도 요인으로 보여 주는 것이 원칙입니다.

도입과 운영

도입 효과, 표준과의 관계, 권한, 성능, 책임에 대한 질문입니다.

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

은행·수단·채널별 지급 현황을 따로 뽑아 맞추던 일이 한 화면의 축 전환으로 바뀌고, 계획 대비 차이를 요인으로 설명할 수 있습니다. 효과 크기는 회사마다 달라 이 글은 시간 절감률 같은 수치를 약속하지 않습니다. 현재 SAP 환경에서 어떻게 적용되는지 함께 확인해 드립니다.

누가 쓰는 화면입니까?

자금팀(지급 계획과 이행 점검)과 회계팀(수수료·환율·미지급 잔액 점검)이 주 사용자입니다. 경영진은 "보는 사람" 탭으로 요약을 봅니다. 권한은 법인·은행 범위로 나눌 수 있습니다.

언제부터 적용할 수 있습니까?

샘플 데이터로 동작을 확인하는 단계의 화면이며, 운영 적용 시점과 범위는 확인된 사실이 아직 없습니다. 운영 연결 시에는 원천 테이블 매핑과 서비스 연결이 먼저 필요합니다.

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

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 지급 런은 F110, 미지급 라인은 FBL1N, 전표는 FB03, 계정 잔액은 FS10N, 현금 포지션은 FF7A 와 오가며 같은 숫자를 맞춰 봅니다. 기존 리포트를 없앨 필요는 없습니다.

운영 데이터와 연결하는 절차와 시간은 어떻게 됩니까?

매핑 테이블 합의, CDS 뷰와 DCL 작성, 서비스 게시, 앱 설정의 서비스 주소 교체, 표준 화면과의 대사 순서입니다. 소요는 환경과 합의 속도에 달려 있어 확인 필요이며, 개발보다 정하는 일이 많습니다.

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

법인·은행 범위 권한을 큐브를 읽는 자리(DCL)에 겁니다. 드릴스루에만 걸면 합계의 뺄셈으로 남의 숫자가 샐 수 있어서입니다. 화면은 표준 컨트롤과 직접 그린 차트만 쓰고 해설은 규칙 기반이라 외부로 데이터가 나가지 않습니다.

지급 라인이 수천만 건이면 어떻게 됩니까?

샘플은 라인을 읽어 브라우저에서 묶지만 운영에서는 집계를 큐브(DB)에서 끝내고 큐브 행만 읽습니다. 기간 조건을 필수로 받고 원천 라인은 칸을 눌렀을 때만 페이지 단위로 읽습니다. 응답 시간 기준은 도입 때 정해야 합니다.

은행이나 지급 방법이 새로 생기거나 계정 체계가 바뀌면요?

매핑 테이블에 새 코드가 어느 묶음인지만 적으면 됩니다. 화면이나 뷰를 고칠 필요가 없고, 변경은 전송으로 옮깁니다. 묶음을 바꾸면 과거 숫자의 묶음도 바뀌므로 변경 시점의 합의가 필요합니다.

이 화면의 결과를 회계 판단에 그대로 써도 됩니까?

아닙니다. 이 화면은 분류·집계·대사를 돕는 조회·점검 도구입니다. 점검 필요·확인 필요 항목을 좁혀 줄 뿐 최종 판단은 회사와 감사인이 하고, 세무 신고는 회사와 세무 대리인이 합니다. 관련 기준서(IAS 7, IFRS 7)의 요구사항 해석도 마찬가지입니다.