SAP 자금계획 수립 — 들어올 돈과 나갈 돈을 날짜에 놓기
일자·구분코드별로 자금계획을 입력하고, 수입과 지출의 순증감을 보면서 조정하는 화면입니다.
자금계획은 날짜별로 돈이 얼마나 들어오고 나가는지를 미리 그려 두는 일입니다. 어느 날 지출이 몰리면 그 전에 자금을 마련해야 합니다.
수입과 지출을 나눠 넣고 순증감을 보면서 조정해야 하는데, 저장해야 합계가 보이면 조정할 때마다 저장하게 됩니다. 표에서 편집하면서 요약이 즉시 갱신되도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 자금계획 — 일자 · Sequence · 구분코드 · 통화 · 금액 · 적요 구조(
ZTFIA0220) - 구분코드 — 자금 구분과 수입·지출 성격(
ZTFIA0210) - 자금계획 환율 — 외화 환산 기준(
ZTFIA0200) - 영업소 — 영업소 코드와 명칭(
TVKBT) - 통화 — 통화 마스터(
TCURT)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 자금 · 결산 |
| Namespace | zui5.cashplan |
| 셸 구조 | 조회조건 영역(우측 조회) + 편집 그리드 + 수입·지출 요약 |
| 화면 수 | 조회·편집 화면 1개 |
| 데이터 | 자금계획 라인과 구분코드·환율 |
| 성격 | 입력·편집형 — 저장은 반영 건수를 계산하는 시뮬레이션 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·기간으로 계획을 조회하고 → 표에서 금액과 구분코드를 바로 고치며 → 추가·삭제까지 마친 뒤 한 번에 저장합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 일자 범위를 넣습니다. 기본값은 당월 1일부터 익월 말일입니다.
- 구분코드나 입력자·수정자로 좁힐 수 있습니다.
- 조회 버튼은 조회조건 영역 오른쪽 끝에 있고, 입력필드에서 Enter 로도 조회됩니다.
- 표에서 일자·구분코드·통화·금액·적요·영업소를 직접 편집합니다.
- 추가로 새 라인을 만들면 같은 일자의 Sequence 다음 번호가 자동 부여됩니다.
- 금액이나 통화를 바꾸면 원화환산과 상단 요약이 즉시 갱신됩니다.
- 저장하면 추가·수정·삭제 건수를 확인한 뒤 한 번에 반영됩니다.
편집과 저장 검증
편집은 화면에서 모아 두었다가 저장 시 한 번에 반영합니다.
추가 조회 시작일 기준 새 라인 · Sequence 자동 부여
삭제 목록에서 제외 → 저장 시 실제 삭제
수정 수정자·수정일시 기록
원화환산 = 금액 × 자금계획 환율
요약 수입 합계 · 지출 합계 · 순증감
저장 검증
구분코드·금액·일자 미입력 → 저장 차단
같은 일자 Sequence 중복 → 저장 차단
미저장 변경 상태에서 재조회 → 경고 후 진행
요약을 즉시 갱신하는 이유
자금계획은 결국 수입과 지출의 균형을 맞추는 작업입니다. 금액을 고칠 때마다 순증감이 어떻게 변하는지 봐야 다음 조정을 정할 수 있습니다. 저장해야 요약이 갱신되면 조정할 때마다 저장하게 되고, 그러면 되돌리기도 어려워집니다.
구분코드 성격 4갈래
| 갈래 | 예 | 수입/지출 |
|---|---|---|
| 매출·수금 계획 | 내수·수출 매출과 수금 | 수입 |
| 매입·결제 계획 | 국내·수입 매입과 결제 | 지출 |
| 운영 자금 | 인건비 · 업무비 · 제세공과 | 지출 |
| 자금 조달 | 차입 · 자산처분 · 이자배당 | 수입 |
구분코드를 바꾸면 코드명과 수입·지출 구분이 함께 바뀝니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대상 회사코드 |
| 일자 | 필수 | 기본값 당월 1일 ~ 익월 말일 |
| 구분코드 | 선택 | 자금계획 구분코드 목록에서 선택 |
| 입력자 / 수정자 | 선택 | 등록·변경한 사용자 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
| 일자 | 계획 일자 |
| Sequence | 같은 일자 내 순번 |
| 구분코드 · 구분코드명 | 자금 구분 |
| 수입/지출 | 구분코드에 따라 결정 |
| 통화 · 금액 | 계획 금액 |
| 원화환산 금액 | 자금계획 환율 적용 |
| 적요 Text | 계획 설명 |
| Sales Office · 영업소명 | 귀속 영업소 |
| 입력자 · 수정자 | 변경 이력 |
| 라인 상태 | 신규 / 수정 / 저장됨 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
ZTFIA0220 | 자금계획 테이블 | CRUD 대상 |
ZTFIA0210 | 구분코드 테이블 | 수입·지출 구분 |
ZTFIA0200 | 자금계획 환율 | 원화환산 |
TVKBT · TCURT | 영업소 · 통화 마스터 | 명칭 표시 |
도입 시 확인이 필요한 부분
본 앱의 저장은 반영 건수를 계산해 보여 주는 시뮬레이션입니다. 실제 테이블 반영은 표준 업데이트가 담당합니다. 운영 연결 시에는 동시 편집 처리를 정해야 합니다. 여러 담당자가 같은 기간을 편집하면 나중에 저장한 쪽이 앞선 변경을 덮어씁니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCCASHPLAN'
@EndUserText.label: '자금계획 (Z)'
define view Z_C_CASH_PLAN
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
left outer join tvkbt as Office on Plan.vkbur = Office.vkbur
and Office.spras = 'K'
{
key Plan.bukrs,
key Plan.datum as PlanDate,
key Plan.seqno as SeqNo,
Plan.code,
Code.codetx as CodeText,
Code.inout as InOutFlag,
Plan.waers, Plan.amount,
Rate.kursf as PlanRate,
Plan.text as PlanText,
Plan.vkbur, Office.bezei as OfficeText,
Plan.ernam as CreatedBy,
Plan.aenam as ChangedBy
// 원화환산 = 금액 × 자금계획 환율
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 요약 · 편집 그리드 |
| 조회조건 | sap.m.DatePicker · sap.m.Select — 우측 끝에 조회 |
| 편집 그리드 | sap.ui.table.Table — 셀 인라인 편집 |
| 요약 | 수입 · 지출 · 순증감을 상단에 표시, 즉시 갱신 |
| 라인 상태 | sap.m.ObjectStatus — 신규 / 수정 / 저장됨 |
| 이벤트 | onPAI 단일 진입점, fcCode 로 분기 |
라인 상태를 표시하는 이유
여러 줄을 고치다 보면 무엇을 바꿨는지 잊습니다. 저장 전에 확인하려 해도 원래 값이 무엇이었는지 알 수 없습니다. 신규·수정 라인에 표시를 남기면 저장 직전에 변경분만 훑어볼 수 있습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.cashplan) · ko 로케일 |
view/Main.view.xml | 조회조건 · 요약 · 편집 그리드 |
controller/Main.controller.js | 조회 · 인라인 편집 · 검증 · 저장 |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 환산 · 상태 포맷터 |
localdata/cashplan.json | 자금계획 라인 |
localdata/code.json | 구분코드 |
localdata/rate.json | 자금계획 환율 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 원화환산 = 금액 × 자금계획 환율 (전 라인) | 통과 |
| 요약(수입·지출·순증감) = 라인 합계 | 통과 |
| 구분코드 변경 시 수입·지출 구분도 함께 변경 | 통과 |
| 같은 일자 Sequence 중복 시 저장 차단 | 통과 |
| 필수값 미입력 시 저장 차단 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 편집·저장 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
여러 명이 같은 기간을 편집하면 어떻게 되나요?
나중에 저장한 쪽이 덮어씁니다. 운영에서는 기간이나 구분코드별로 담당을 나누거나 잠금 처리를 두어야 충돌이 생기지 않습니다.
통화를 바꾸면 금액도 바뀌나요?
금액은 그대로이고 원화환산만 다시 계산됩니다. 자금계획 환율을 적용하므로 실제 거래 환율과는 다를 수 있습니다.
Sequence 는 왜 필요한가요?
같은 날에 여러 계획 라인이 들어가기 때문입니다. 일자만으로는 구분되지 않아 순번으로 키를 완성합니다. 추가 시 자동 부여되지만 중복되면 저장이 막힙니다.
저장하면 바로 반영되나요?
이 화면의 저장은 반영 건수를 계산해 보여 주는 시뮬레이션입니다. 실제 테이블 반영은 표준 업데이트가 담당합니다.