솔루션 홈
자금

SAP 매입매출수지 Report — 계획과 실행을 같은 줄에 놓기

자금계획의 계획과 실행을 일자별로 나란히 놓고 매출 조달과 매입 유출을 해외·국내로 나눠 보는 화면입니다.

자금계획은 세우는 것보다 지켜졌는지 확인하는 일이 어렵습니다. 계획은 계획대로 있고 실행은 전표로 흩어져 있어, 둘을 맞추려면 옮겨 적어야 합니다.

게다가 계획은 매출일자 기준이고 실행은 입금일자 기준이라 날짜 축도 다릅니다. 일자를 행으로 두고 계획 4컬럼과 실행 4컬럼을 나란히 놓아 그 자리에서 대조하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 자금계획 — 계획 라인(ZTFIA0220)의 일자 · 구분코드 · 금액
  • 실행내역 — 실제 입금·지급 내역(ZTFIA0230)
  • 구분코드 — 영역별 자금구분코드 체계(ZTFIA0210)
  • 자금계획 환율 — 외화 환산 기준(ZTFIA0200)
  • 해외·국내 구분 — 구분코드에 내장된 지역 성격
항목내용
업무 영역재무회계(FI) · 자금 · 결산
Namespacezui5.tradebalance
셸 구조조회조건 영역(우측 조회) + 일자별 계획·실행 테이블 + 총계
화면 수조회 화면 1개 + 일자별 원본 라인
데이터자금계획과 실행내역
성격조회형(Read-Only) — 계획 입력은 자금계획 화면이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·일자·조회 구분으로 조회하면 일자별 계획과 실행이 나란히 나옵니다 → 계획 계·실행 계·차이·달성률을 확인하고 → 일자를 선택해 그 날의 원본 라인을 확인합니다.

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

Main.view.xml
매출 조달 — 계획과 실행
매출 조달 — 계획과 실행 — 일자를 행으로, 계획 4컬럼과 실행 4컬럼을 열로 놓습니다. 컬럼 머리글에 자금구분코드가 함께 표시되고, 계획 계·실행 계·차이·달성률이 이어집니다.
매입 유출
조회 구분 전환
조회 구분 전환 — 매입 유출을 고르면 컬럼과 구분코드가 통째로 바뀝니다. 개설일자 기준 계획과 만기일 기준 실행으로 축이 달라집니다.
일자 상세
그 날의 원본 라인
그 날의 원본 라인 — 일자를 선택하면 구분·자금구분코드·통화·금액·적용환율·원화환산·소스 테이블이 아래에 열립니다.

조작 방법

  1. 회사코드일자 범위를 넣습니다. 기본값은 현재월 1일부터 말일입니다.
  2. 조회 구분을 고릅니다. 매출 조달과 매입 유출에 따라 컬럼과 구분코드가 통째로 바뀝니다.
  3. 금액 없는 일자 표시를 켜면 거래가 없는 날도 줄을 채워 표시합니다.
  4. 조회 버튼은 조회조건 영역 오른쪽 끝에 있고, 입력필드에서 Enter 로도 조회됩니다.
  5. 달성률이 낮은 일자를 확인합니다. 계획 대비 실행이 부족한 날입니다.
  6. 일자를 선택하면 그 날의 원본 라인과 적용환율이 열립니다.
  7. 결과는 CSV 다운로드로 내려받습니다.

집계 규칙

계획과 실행을 각각 네 컬럼으로 모아 비교합니다.

계획 계 = 계획(해외) + 계획(국내) + 입금·지급 계획(해외) + 입금·지급 계획(국내)
실행 계 = 실행(해외) + 실행(국내) + 입금·지급 실행(해외) + 입금·지급 실행(국내)
차이   = 실행 계 − 계획 계
달성률 = 실행 계 ÷ 계획 계 × 100

원화환산 = 외화금액 × 자금계획 환율

날짜 기준  매출 계획은 매출일자 · 매출 실행은 입금일자
           매입 계획은 개설일자 · 매입 실행은 만기일

날짜 기준이 다른 것을 그대로 두는 이유

계획은 매출이 생기는 날에 세우고 실행은 돈이 들어오는 날에 잡힙니다. 기준을 억지로 맞추면 어느 한쪽이 실제와 달라집니다. 각자의 기준대로 두고 같은 표에 나란히 놓으면, 시차가 얼마나 벌어지는지가 그대로 보입니다.

영역별 자금구분코드

조회 구분에 따라 적용되는 코드가 통째로 바뀝니다.

영역 · 구분컬럼과 코드날짜 기준
매출 조달 · 계획매출계획(해외) 301010 · 매출계획(국내) 302010매출일자 기준
매출 조달 · 계획매출입금(해외) 301020 · 매출입금(국내) 302020매출일자 기준
매출 조달 · 실행매출실행(해외) 100000 · 매출실행(국내) 102030입금일자 기준
매출 조달 · 실행매출입금(해외) 100000 · 매출입금(국내) 102040입금일자 기준
매입 유출 · 계획매입계획 401010/402010 · 매입지급 401020/402020개설일자 기준
매입 유출 · 실행매입실행 200000/202030 · 매입지급 200000/202040만기일 기준

조회조건

필드필수설명
회사코드필수대상 회사코드
일자필수기본값 현재월 1일 ~ 말일
조회 구분필수매출 조달 / 매입 유출. 컬럼과 구분코드가 함께 전환
금액 없는 일자 표시선택거래가 없는 날도 줄을 채워 표시

결과 컬럼

컬럼의미 · 표시
일자행 기준
계획 — 해외 · 국내자금구분코드별 계획 금액
계획 — 입금·지급(해외 · 국내)수금·결제 계획
계획 계계획 4컬럼 합계
실행 — 해외 · 국내실제 발생 금액
실행 — 입금·지급(해외 · 국내)실제 입금·지급
실행 계실행 4컬럼 합계
차이실행 계 − 계획 계
달성률실행 계 ÷ 계획 계
총계 라인기간 전체 합계

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
ZTFIA0220자금계획 테이블계획 컬럼 원천
ZTFIA0230실행내역 테이블실행 컬럼 원천
ZTFIA0210구분코드 테이블영역별 코드 매핑
ZTFIA0200자금계획 환율외화 원화환산

도입 시 확인이 필요한 부분

구분코드와 컬럼의 매핑이 이 화면의 핵심입니다. 코드가 추가되거나 바뀌면 컬럼 구성도 달라져야 하므로 화면에 고정하지 말고 설정으로 관리해야 합니다. 또 실행내역이 어떤 기준으로 채워지는지 (수동 입력인지 전표 연계인지)에 따라 달성률의 의미가 달라집니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCTRADEBAL'
@EndUserText.label: '매입매출수지 (Z)'
define view Z_C_TRADE_BALANCE
  as select from ztfia0220 as Plan
    left outer join ztfia0210 as Code on Plan.code  = Code.code
    left outer join ztfia0200 as Rate on Plan.waers = Rate.waers
{
  key Plan.bukrs,
  key Plan.datum as PlanDate,
  key Plan.code  as FundCode,
      Code.codetx as CodeText,
      Code.area   as AreaFlag,
      Plan.waers,
      sum( Plan.amount ) as PlanAmount,
      Rate.kursf  as PlanRate
      // 실행은 ZTFIA0230 을 같은 형태로 집계해 일자·코드로 조인
      // 차이 = 실행 계 − 계획 계, 달성률 = 실행 ÷ 계획 × 100
}
group by Plan.bukrs, Plan.datum, Plan.code, Code.codetx,
         Code.area, Plan.waers, Rate.kursf

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 수지 테이블 · 상세
조회조건sap.m.DatePicker · sap.m.SegmentedButton — 우측 끝에 조회
수지 테이블sap.ui.table.Table — 계획·실행 8컬럼 배치
달성률sap.m.ObjectStatus — 구간별 색
일자 상세선택 시 하단에 원본 라인 펼침
이벤트onPAI 단일 진입점, fcCode 로 분기

금액 없는 일자도 표시하는 이유

거래가 없는 날을 빼면 표가 짧아지지만 날짜 간격이 불규칙해집니다. 자금 흐름은 며칠씩 비는 구간이 있는지가 중요한 정보인데, 그 공백이 보이지 않습니다. 빈 줄을 채워 두면 자금이 몰린 날과 비는 날이 한눈에 드러납니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.tradebalance) · ko 로케일
view/Main.view.xml조회조건 · 수지 테이블 · 일자 상세
controller/Main.controller.js조회 · 영역별 컬럼 전환 · 집계 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 환산 · 달성률 포맷터
localdata/tradebalance.json계획과 실행 라인
localdata/code.json자금구분코드

검증 결과

검증 항목결과
계획 계 = 계획 4컬럼 합계 (전 일자)통과
실행 계 = 실행 4컬럼 합계통과
차이 = 실행 계 − 계획 계통과
원화환산 = 외화금액 × 자금계획 환율통과
조회 구분 전환 시 컬럼과 구분코드가 함께 변경통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 → 구분 전환·상세 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

계획과 실행의 날짜 기준이 다른데 비교가 되나요?

같은 날짜의 계획과 실행이 같은 거래는 아닙니다. 다만 기간 전체로 보면 계획한 만큼 실행됐는지 확인할 수 있고, 일자별 차이는 시차를 보여 줍니다.

달성률이 100%를 넘으면요?

계획보다 많이 실행된 것입니다. 매출이 예상보다 좋았거나 계획 자체가 보수적이었을 수 있습니다. 반복되면 계획 수립 기준을 조정합니다.

구분코드가 추가되면 컬럼도 늘어나나요?

영역별 4컬럼 구조는 사양서 레이아웃입니다. 코드가 추가되면 어느 컬럼에 합산할지 매핑을 정해야 하며, 설정으로 관리하면 화면 수정 없이 대응됩니다.

SAP 표준 기능과 어떻게 이어지나요?

자금계획과 실행내역은 프로젝트 테이블에서 관리됩니다. 이 화면은 원본 리포트 레이아웃을 그대로 두고 차이·달성률과 일자별 원본 라인을 더한 확장입니다.

자금수지 관리, 지금 쓰는 SAP 위에서 확장해 보세요

계획과 실행이 같은 줄에 있으면 옮겨 적는 일이 사라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

매입매출수지자금계획계획 실행달성률자금구분코드OpenUI5