재무회계 · 매입 채무

지급 예정 예측 점검 — 미지급 매입송장의 지급일을 영업일로 옮겨 앞으로 12주의 지급 일정을 만들고 주 지급 한도를 넘는 주와 연기·조기지급 제안을 가리는 매입 채무 화면

12주 지급 일정 · 영업일 이월 · 주 지급 한도 비교 · 지급 연기와 조기지급 제안 · 7개 대사식 전수 검산 — 소개 영상과 실제 화면 6종, 그리고 CDS 코드까지 한 번에 봅니다.

소개 영상1분 25초8개 장면음성 안내·자막표지 → 처음 연 화면 → 점검 코드로 거르기 → 주별 지급 일정 → 조정 제안 → 대사 결과 → 지급 건 상세 → 정리

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

매입 채무 담당자는 매주 같은 질문을 받습니다. '다음 달 둘째 주에 나갈 돈이 한도를 넘지 않나?', '만기가 토요일인 건은 언제 나가나?', '할인 조건이 있는 건은 앞당겨 주는 편이 낫나?' 표준 보고서는 미결 항목과 지급 실행 결과를 정확히 보여 주지만, 앞으로 12주를 주 단위로 펼쳐 한도와 견주는 일은 대개 엑셀에서 손으로 합니다.

이 앱은 그 자리를 메웁니다. 미지급 송장마다 지급조건으로 만기일을 구하고 휴무일이면 다음 영업일로 옮긴 뒤, 지급 주차별로 모아 회사가 정한 주 지급 한도와 견주고, 한도를 넘는 주에는 지급 연기를, 할인 수익이 큰 건에는 조기지급을 제안합니다. 숫자는 대사식 7종이 서비스 안에서 다시 맞춰 봅니다.

한 줄 요약 — 미지급 매입송장의 지급일을 영업일로 옮겨 12주 지급 일정을 만들고 주 지급 한도를 넘는 주를 가려 지급 연기·조기지급 제안을 금액으로 보여 주며, 대사식 7종으로 숫자를 스스로 다시 맞춥니다.

핵심 포인트 여섯 가지

핵심 포인트고객이 얻는 것지금 방식이라면
① 12주 지급 일정을 송장마다 영업일로 펼친다만기일과 지급 예정일, 이월일수, 지급 주차를 건마다 구해 주차별로 모읍니다.만기만 보고 있다가 휴무 이월로 주가 바뀌는 건을 지급 직전에야 압니다.
② 주 지급 한도와 견주어 몰리는 주를 가린다주별 지급 예정액을 한도로 나눠 사용률과 초과액을 보이고 150% 초과 주를 따로 표시합니다.합계만 보고 한 주에 지급이 몰리는 것을 놓칩니다.
③ 지급 연기를 금액으로 제안한다한도를 넘는 주에서 유예가 허용되는 큰 건부터 다음 주 한도 안에서 옮기는 안을 냅니다.어느 건을 미룰지 담당자 감으로 정합니다.
④ 조기지급 할인의 수익을 연환산으로 비교한다할인율을 앞당기는 일수로 환산해 회사 기준과 견주고 앞 주 한도 여유까지 확인합니다.할인 조건이 있어도 이익인지 계산하지 않고 지나갑니다.
⑤ 차단·조건 미설정·12주 밖 건을 숨기지 않는다지급 예측에서 빠진 건은 확인 필요로 표시하고 대사 결과에 건수와 금액을 따로 남깁니다.합계에서 슬쩍 빠져 총액이 작아 보입니다.
⑥ 숫자를 스스로 다시 맞춘다건 합계와 주별 합계, 누적, 제안 전후 등 7종 대사식을 서비스가 전수로 계산해 차이를 요약에 올립니다.지급 회의 전에 엑셀을 다시 열어 손으로 맞춰 봅니다.

만기만 봐서는 지급이 몰리는 주가 보이지 않는다

회사 1000 의 10주차 지급 예정액은 3,034,680,000 원으로 한도의 202% 입니다. 12월 13일이 일요일이라 만기가 12월 14일로 옮겨지면서 큰 금액 세 건이 같은 주에 겹친 결과입니다. 만기일 목록만 정렬해서는 이 겹침이 드러나지 않습니다.

휴무 이월은 주차를 바꾼다

만기일이 금요일이면 같은 주에 나가지만 토요일이면 다음 주 월요일로 넘어가 다른 주의 한도를 씁니다. 이 앱은 이월일수와 지급 주차를 건마다 보여 주고, 주차가 바뀌는 건을 D02 로 가립니다.

연기할 건을 고를 때는 다음 주 사정도 봐야 한다

한도를 넘는 건을 다음 주로 미루면 다음 주가 다시 한도를 넘을 수 있습니다. 이 앱은 옮길 주의 한도를 먼저 확인하고, 지급 유예가 허용되지 않는 거래처나 할인 수익이 큰 건은 연기 대상에서 뺍니다.

예측에서 빠진 건이 조용히 사라지지 않게 한다

지급 차단, 지급조건 미설정, 12주 밖으로 넘어가는 건은 합계에서 빠지는 것이 맞지만 빠졌다는 사실이 보이지 않으면 총액이 작아 보입니다. 이 앱은 건마다 판정 코드를 남기고 대사 결과에 건수를 따로 적습니다.

사용 방법

  1. 조회조건 입력 — 회계연도와 기간(월)은 필수이고, 회사·거래처 그룹·지급일 기간·점검 코드·점검 결과는 필요할 때만 고릅니다. 비우거나 "전체"이면 그 조건은 걸리지 않습니다.
  2. 조회 — 입력 칸 맨 오른쪽 조회 버튼을 누르거나 입력 칸에서 Enter 키를 누릅니다.
  3. 요약 확인 — 위쪽 요약에서 한도 초과 주와 초과액, 제안 반영 후 남는 초과액, 확인 필요 건을 먼저 봅니다.
  4. 탭 넘기기 — 지급 예정 판정 → 주별 지급 일정 → 조정 제안 → 대사 결과 순서로 봅니다.
  5. 행 누르기 — 지급 예정 건을 누르면 판정 근거가 상세 창으로 열립니다.

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

지급 회의에서 가장 비싼 질문은 "이 금액 맞아?" 입니다. 만드는 쪽에서 먼저 대사식을 세우고 예시 데이터 전체를 돌려 보았습니다.

대사식검사 건수차이 건수최대 차이(원)
건 합계 = 주별 지급 예정액2400
만기일 = 기준일 + 지급조건 · 지급일 = 영업일 이월17300
누적 지급액2400
한도 초과액 · 사용률2400
제안 반영 후 지급액 = 지급액 ± 제안 이동2400
제안 후 지급액 합계 = 지급액 합계100
조기지급 효과 = 금액 × 할인율1800

검사 합계 423건에서 차이는 0건입니다. 의도적으로 넣은 예외 건은 지급 차단 3건, 지급조건 미설정 2건, 12주 밖 12건으로 대사 결과에 별도 항목으로 남깁니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 1.120 · sap_horizon 테마 · 네 탭 모두 sap.ui.table.Table열이 많은 표를 고정 열과 함께 가로로 넘기기 위해서입니다.
데이터 연동OData V2 · 일괄 요청 없이 조회마다 호출엔티티셋 네 개와 펑션 두 개로 서비스 계약을 단순하게 둡니다.
서비스 로직Node 서비스 한 파일(service.js)조회·단건·펑션·날짜 필터를 한 곳에서 처리합니다.
소개 영상음성 안내·자막이 있는 1분 25초화면을 열기 전에 흐름을 먼저 보여 줍니다.
앱 정보내용
업무 영역재무회계(FI) — 매입 채무·지급 예측
대상 영역지급 예정 예측 · 지급 한도 관리 (관련 기준서 없음)
SAP 표준 T-codeFBL1N · F110 · FF7A · FF7B · MRBR · SCAL · FBZP
화면 성격조회·점검 (결과 CSV 내려받기)
테마sap_horizon
SAP 표준 기능을 그대로 이어받은 부분 — 지급 예정 건은 표준 공급업체 개별 항목(FBL1N)과 같은 원천이고, 지급 실행은 자동 지급 프로그램(F110), 휴무일 기준은 공장 달력(SCAL)을 따릅니다. 이 앱은 표준이 주는 숫자를 12주와 한도라는 한 단계 위의 관점으로 읽습니다.

실행 화면

실제로 돌아가는 화면 6종을 사용 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있습니다. 숫자는 모두 같은 예시 데이터에서 나와 화면끼리 맞춰 보셔도 됩니다.

처음 연 화면

조회조건 · 요약 · 지급 예정 판정이 한 화면에 뜹니다.

처음 연 화면 — 지급 예정 판정
처음 연 화면 — 지급 예정 판정 — 조회조건 · 요약 · 지급 예정 판정이 한 화면에 뜹니다.

지급 예정 175건과 12주 지급 예정액 10,979.0백만원이 요약에 보이고, 한도 초과 주는 6주, 초과액은 2,045.2백만원입니다. 제안을 반영하면 남는 초과액은 1,402.3백만원이고 조기지급 할인 기회는 8,278,812원입니다.

점검 코드로 거르기

점검 코드를 "D02 휴무 이월"로 고르면 만기일이 휴무일이라 지급 주차가 바뀔 수 있는 건만 남습니다.

점검 코드로 거르기
점검 코드로 거르기 — 점검 코드를 "D02 휴무 이월"로 고르면 만기일이 휴무일이라 지급 주차가 바뀔 수 있는 건만 남습니다.

57건이 남습니다. 이월일수와 만기일, 지급 예정일, 제안 반영 후 주차가 한 줄에 나란히 있어 어느 건이 주를 넘어가는지 바로 보입니다.

주별 지급 일정

주마다 지급 예정액을 주 지급 한도와 견주어 사용률과 초과액을 보여 줍니다.

주별 지급 일정
주별 지급 일정 — 주마다 지급 예정액을 주 지급 한도와 견주어 사용률과 초과액을 보여 줍니다.

회사 1000 의 10주차는 지급 예정액 3,034,680,000 원으로 한도 1,500,000,000 원의 202.31% 이고 초과액이 1,534,680,000 원이라 점검 필요입니다. 누적 지급액과 누적 한도도 함께 보입니다.

조정 제안

한도를 넘는 주의 건은 다음 주로 미루고 할인 수익이 큰 건은 앞 주로 당기는 제안입니다.

조정 제안
조정 제안 — 한도를 넘는 주의 건은 다음 주로 미루고 할인 수익이 큰 건은 앞 주로 당기는 제안입니다.

제안은 25건이며 지급 연기 7건, 조기지급 18건입니다. 현재 주차와 제안 주차, 현재 지급일과 제안 지급일, 효과 금액과 근거 문장이 건마다 붙습니다.

대사 결과

서비스가 계산한 대사식의 좌변·우변 합계와 검사·차이 건수입니다.

대사 결과
대사 결과 — 서비스가 계산한 대사식의 좌변·우변 합계와 검사·차이 건수입니다.

7종의 대사식은 모두 차이 0건이고, 의도적으로 넣은 예외 건(지급 차단 · 지급조건 미설정 · 12주 밖)은 별도 항목으로 건수만 기록합니다.

지급 예정 건 상세

행을 누르면 판정 근거가 한 창에 모입니다.

지급 예정 건 상세
지급 예정 건 상세 — 행을 누르면 판정 근거가 한 창에 모입니다.

기준일 · 지급조건, 만기일에서 지급 예정일로의 이월, 조기지급 할인율과 연환산 수익률, 지급 유예 허용 일수가 나오고 아래에 판정 문장과 근거가 붙습니다.

화면 뒤에서 일어나는 일

조회를 누르면 화면은 지급 예정 판정 · 주별 지급 일정 · 조정 제안 · 대사 결과 네 블록을 각각 조회조건과 함께 부르고, 요약의 한도 초과액과 한도 초과 주 수는 서비스의 함수로 받습니다. 나머지 요약은 조회 결과에서 한 곳의 계산식으로 구합니다.

판정 조건과 사용자 조치

대상코드판정 조건결과 상태사용자 조치
건D03지급 차단 표시가 있음확인 필요차단 해제 시점을 회사가 정한다
건D04지급조건이 비어 만기일을 구하지 못함확인 필요거래처 지급조건을 먼저 확인한다
건D06지급 예정일이 12주 밖정상이번 예측에는 넣지 않는다
건D01만기일이 첫 주 시작일 이전점검 필요첫 주에 지급이 몰리는 원인을 확인한다
건D02휴무 이월로 지급 주차가 바뀜점검 필요주차 변경으로 한도가 달라지는지 본다
건D05조기지급 연환산 수익률이 회사 기준보다 높음점검 필요앞당겨 지급하는 안을 검토한다
건D00위에 해당하지 않음정상조치 없음
주W04주 지급 한도를 정하지 않음확인 필요판정하지 않음
주W03지급 예정액이 한도의 150% 초과점검 필요지급 시점 조정이 필요하다
주W01지급 예정액이 한도 초과점검 필요연기 제안을 확인한다
주W02한도 안이나 차단 건이 걸려 있음확인 필요해제되면 지급액이 늘어난다
주W00지급 예정액이 한도 안정상조치 없음

판정 우선순위는 표의 위에서 아래입니다. 처리 순서는 ① 건마다 만기일과 지급 예정일 산출 ② 지급 주차별 합계 ③ 한도와 비교 ④ 지급 연기 제안 ⑤ 조기지급 제안 ⑥ 제안 반영 후 지급액 ⑦ 대사식 계산입니다.

조회조건

조회조건필수기본값$filter 변환
회계연도필수2026Gjahr eq '2026'
기간(월)필수10Monat eq '10'
회사선택전체Bukrs eq '1000'
거래처 그룹선택전체VendGrp eq 'RM'
지급일 시작·종료선택비어 있음PayDate ge datetime'…' and PayDate le datetime'…'
점검 코드선택전체CheckCode eq 'D02'
점검 결과선택전체CheckStatus eq 'CHECK'

결과 컬럼

컬럼의미산출식
지급 예정일실제로 나갈 날만기일 이후 첫 영업일
이월일수휴무로 밀린 일수지급 예정일 − 만기일
지급 주차 · 제안 후 주차현재 주차와 제안 반영 후 주차12주 첫 월요일 기준
한도 사용률주 한도 대비 지급 비율지급 예정액 ÷ 한도 × 100
한도 초과액한도를 넘는 금액max(0, 지급 예정액 − 한도)
조기지급 할인액앞당길 때 받는 할인금액 × 할인율
연환산 수익률할인의 연 환산 수익할인율 × 365 ÷ 앞당김 일수

좁은 화면에서 달라지는 것

좁은 화면에서는 조회조건이 여러 줄로 접히고 요약은 줄바꿈되어 이어집니다. 표는 고정 열을 둔 채 가로로 넘기며, 상세 창은 화면 폭에 맞춰 줄어듭니다.

파일 구성

앱 폴더/
├─ index.html · Component.js · manifest.json
├─ controller/   BaseController · Main.controller
├─ view/         Main.view.xml · DetailDialog.fragment.xml
├─ model/        formatter · ErrorHandler
├─ css/ · i18n/
├─ odata/        서비스 정의 · 서비스 로직 · 데이터
└─ media/        소개 영상 · 대표 이미지

SAP 표준 기능 확장 포인트

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 12주 지급 일정과 한도 점검 관점을 더해 확장합니다.

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

하고 싶은 일표준으로 되는 것이 앱이 더하는 것
미결 송장 보기공급업체 개별 항목(FBL1N)이 정확히 보여 줍니다같은 항목을 만기·지급 예정일·지급 주차로 펼칩니다
지급 실행자동 지급 프로그램(F110)이 제안·실행합니다실행 전에 12주 한도와 견줘 몰리는 주를 가립니다
앞으로의 흐름유동성 예측(FF7B)이 예정 흐름을 보여 줍니다송장 단위 지급 연기·조기지급 제안을 더합니다
차단 송장송장 차단 해제(MRBR)가 해제를 처리합니다차단 건이 걸린 주를 W02 로 미리 알립니다
영업일 기준공장 달력(SCAL)이 휴무일을 정의합니다휴무 이월로 주차가 바뀌는 건을 가립니다
지급조건 기준지급 프로그램 설정(FBZP)이 방법과 조건을 관리합니다조건이 비어 있는 건을 확인 필요로 올립니다

T-code 별 연계 지점

T-code이름연계
FBL1N공급업체 개별 항목 조회지급 예정 건의 금액이 표준 미결 항목과 같은지 맞춰 봅니다.
F110자동 지급 프로그램지급 실행 일정이 이 앱의 지급 예정일과 어긋나지 않는지 확인합니다.
FF7A현금 포지션주별 지급 예정액이 현금 포지션의 지급 관점과 같은 원천인지 대조합니다.
FF7B유동성 예측주 단위 출금 예측이 표준 유동성 예측과 맞는지 확인합니다.
MRBR차단된 송장 해제차단 건의 해제 시점이 정해지면 이 앱에서 다시 조회합니다.
SCAL공장 달력 표시휴무일 정의가 이 앱의 영업일 기준과 같은지 확인합니다.
FBZP지급 프로그램 설정지급조건과 지급 방법 기준을 확인합니다.

그래서 운영 전환 때 기존 표준 보고서를 없애지 않습니다. 이 앱은 표준이 주는 숫자를 12주와 한도라는 관점으로 읽는 자리이고, 표준 화면은 원천 확인과 지급 실행에 남습니다.

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

표준 CDS 분석 쿼리와 Fiori 분석 앱은 이미 집계된 채무를 여러 축으로 보는 데 강합니다. 이 앱은 그 옆에서 "앞으로 12주"와 "한도를 넘는 주에 무엇을 옮길까"라는 판정·제안 한 단계를 맡고, 집계는 운영에서 CDS 가 담당합니다.

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

자리손대는 내용비고
주 지급 한도주별 한도를 회사가 정해 한도 표에 적습니다가장 먼저 정할 값
조달금리 기준조기지급 할인의 연환산 수익률을 견줄 기준입니다자금팀이 정함
공장 달력휴무일과 영업일 정의를 확인합니다SCAL 과 일치
유예 허용 일수거래처 그룹별 지급 유예 일수입니다연기 제안의 조건
판정 임계값한도 150% 같은 기준을 바꿀 수 있습니다바꾸면 판정이 달라짐

분석 지표 정의표

지표산식·판정 기준대응 기능원천 데이터비고
지급 예정일만기일 이후 첫 영업일지급 예정 판정DueSet.PayDate휴무 이월
이월일수지급 예정일 − 만기일지급 예정 판정DueSet.ShiftDays0 초과면 D02 후보
주 지급 예정액해당 주 지급 건 금액 합계주별 지급 일정WeekSet.PayAmt차단·조건 미설정 제외
한도 사용률지급 예정액 ÷ 한도 × 100주별 지급 일정WeekSet.UsedRate한도 없으면 비움
한도 초과액max(0, 지급 예정액 − 한도)주별 지급 일정WeekSet.OverAmtW01·W03 근거
제안 반영 후 초과액제안 이동을 반영한 초과분주별 지급 일정WeekSet.PostOver남는 초과액
연환산 수익률할인율 × 365 ÷ 앞당김 일수지급 예정 판정DueSet.AnnRate회사 기준과 비교
조기지급 효과금액 × 할인율조정 제안PlanSet.EffectAmt조기지급만

CDS 구성

예시 화면은 지급 예정 건 175건과 주별 지급 일정 24건을 서비스 데이터로 들고 있지만, 운영에서는 미결 항목을 CDS 로 내려 주 단위로 집계합니다. 아래는 그때 만드는 객체를 레이어 순서대로 적은 것입니다. 표준 필드명은 환경마다 달라 "확인 필요"로 표시했습니다.

뷰 레이어 구성

레이어뷰하는 일왜 나누나
기준ZPYFC_WKLIMIT회사별 주 지급 한도한도는 자주 바뀌므로 코드가 아니라 표에 둡니다
기준ZI_PayCalendar영업일·휴무일지급 예정일 계산을 한 곳에 가둡니다
기본ZI_PayDueItem미결 송장 + 지급조건원천 필드 확인을 한 뷰에서 끝냅니다
계산ZI_PayDueDate만기일·지급 예정일·주차이월 규칙을 한 번만 구현합니다
집계ZI_PayWeek주별 지급 예정액과 한도 비교화면의 주별 탭이 읽습니다
쿼리ZC_PayForecastQuery조회조건과 분석 쿼리화면과 분석 도구가 같은 필터를 씁니다
권한ZI_PAYWEEK DCL회사코드 권한집계 단계에 겁니다
서비스ZUI_PayForecast서비스 정의뷰가 바뀌어도 서비스 계약은 유지합니다

① 주 지급 한도 테이블

회사별로 주 번호마다 지급 한도를 둡니다. 유효 시작일을 키에 넣어 한도를 바꿔도 지난 판정이 흔들리지 않게 합니다.

"  ZPYFC_WKLIMIT — 주 지급 한도 (투명 테이블)
"  역할 : 회사 · 주 시작일별 지급 한도
"  나눈 이유 : 한도는 자금 회의마다 바뀐다. 코드가 아니라 표에 둔다.
@EndUserText.label : 'Weekly payment limit'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zpyfc_wklimit {
  key mandt      : mandt not null;
  key bukrs      : bukrs not null;
  key week_start : abap.dats not null;     " 주 시작일(월요일)
  @Semantics.amount.currencyCode : 'zpyfc_wklimit.waers'
  limit_amt      : abap.curr(23,2);        " 주 지급 한도
  waers          : waers;
}

② 영업일 뷰

공장 달력에서 영업일만 뽑아 지급 예정일 계산이 한 곳을 보게 합니다.

" ZI_PayCalendar — 영업일 (공장 달력)
" 확인 필요 : 공장 달력 테이블과 필드는 고객사 설정에 따른다
@EndUserText.label: 'Business day'
define view entity ZI_PayCalendar
  as select from scal_tt_date
{
  key calendar_id as CalendarId,
  key calendar_date as CalDate,
      is_workday    as IsWorkday      // 필드 확인 필요
}
where is_workday = 'X' 

③ 미결 송장 기본 뷰

공급업체 미결 항목에 지급조건 일수와 차단 표시를 붙입니다.

" ZI_PayDueItem — 미지급 송장 (BSIK)
" 역할 : 금액 · 기준일 · 지급조건 · 지급 차단 표시
@EndUserText.label: 'Open payable item'
define view entity ZI_PayDueItem
  as select from bsik as i
    left outer join lfa1 as v on v.lifnr = i.lifnr
{
  key i.bukrs as Bukrs,
  key i.belnr as DocNo,
  key i.buzei as ItemNo,
      i.lifnr as VendorNo,
      v.name1 as VendorName,
      i.wrbtr as Amount,         // 필드 확인 필요
      i.zfbdt as BaseDate,       // 필드 확인 필요
      i.zbd1t as TermDays,       // 필드 확인 필요
      i.zlspr as BlockFlag       // 필드 확인 필요
}

④ 지급 예정일 계산 뷰

만기일에 휴무 이월을 적용해 지급 예정일과 지급 주차를 구합니다. 이월 규칙은 이 뷰 한 곳에만 둡니다.

" ZI_PayDueDate — 만기일 · 지급 예정일 · 주차
" 나눈 이유 : 휴무 이월 규칙을 한 번만 구현한다.
@EndUserText.label: 'Payment due date'
define view entity ZI_PayDueDate
  as select from ZI_PayDueItem as i
    left outer join ZI_PayCalendar as c
      on c.CalDate >= dats_add_days(i.BaseDate, i.TermDays, 0)
     and c.IsWorkday = 'X'
{
  key i.Bukrs, key i.DocNo, key i.ItemNo,
      i.Amount,
      dats_add_days(i.BaseDate, i.TermDays, 0) as DueDate,
      min(c.CalDate)                            as PayDate
}
group by i.Bukrs, i.DocNo, i.ItemNo, i.Amount, i.BaseDate, i.TermDays

⑤ 주별 집계 큐브

지급 예정일이 속한 주를 DB 에서 정해 주마다 합치고 한도와 견줍니다. 화면의 주별 탭이 이 뷰를 읽습니다.

" ZI_PayWeek — 주별 지급 예정액 vs 한도
@EndUserText.label: 'Weekly payment'
@Analytics.dataCategory: #CUBE
define view entity ZI_PayWeek
  as select from ZI_PayDueDate as d
    left outer join zpyfc_wklimit as l
      on l.bukrs = d.Bukrs
{
  key d.Bukrs,
  key l.week_start as WeekStart,
      sum(d.Amount) as PayAmt,
      l.limit_amt   as LimitAmt,
      case when sum(d.Amount) > l.limit_amt
           then sum(d.Amount) - l.limit_amt else 0 end as OverAmt
}
group by d.Bukrs, l.week_start, l.limit_amt

⑥ 분석 쿼리

화면과 표준 분석 도구가 같은 필터를 쓰게 합니다. 회사와 기간은 필수에 가깝게 두어 응답 시간을 지킵니다.

" ZC_PayForecastQuery — 조회조건 + 분석 쿼리
@EndUserText.label: 'Payment forecast query'
@Analytics.query: true
define view entity ZC_PayForecastQuery
  as projection on ZI_PayWeek
{
  key Bukrs,
  key WeekStart,
      PayAmt,
      LimitAmt,
      OverAmt
}

⑦ 권한 정의(DCL)

집계를 읽는 자리에 권한을 겁니다. 상세에만 걸면 합계와 자기 몫의 차이로 다른 법인의 지급 규모가 드러납니다.

" ZI_PAYWEEK — 회사코드 권한
@EndUserText.label: 'Payment week access'
@MappingRole: true
define role ZI_PAYWEEK {
  grant select on ZI_PayWeek
    where ( Bukrs ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
}

⑧ 서비스 정의

화면이 부르는 서비스를 한 곳에 묶습니다. 화면은 서비스 주소만 알면 되고 뷰 구조가 바뀌어도 서비스 계약은 유지됩니다.

" ZUI_PayForecast — 서비스 정의
@EndUserText.label: 'Payment forecast service'
define service ZUI_PayForecast {
  expose ZC_PayForecastQuery as WeekSet;
  expose ZI_PayDueDate       as DueSet;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다.

해야 할 일무엇을 정하나정하지 않으면누가
주 지급 한도 확정회사별 주 단위 한도판정이 담당자마다 달라집니다자금팀
조달금리 기준조기지급 할인 비교 기준할인 제안이 흔들립니다자금팀
공장 달력 확인휴무일 정의지급 예정일이 어긋납니다경영지원
지급 유예 기준거래처 그룹별 유예 일수연기 제안이 계약과 충돌합니다매입팀
권한 설계회사코드 권한 객체다른 법인의 규모가 보입니다보안
대사 체계대사식과 허용 차이숫자를 믿지 못합니다자금팀 · 감사

운영 데이터로 갈 때

미결 항목이 수천만 건이면 주 버킷 집계를 화면이 아니라 DB 에서 해야 합니다. 기간 파라미터와 회사코드를 필수로 두고, 기준일과 회사코드의 인덱스를 확인하며, 주별 집계는 월 단위로 읽어 응답 시간을 3초 안에 두는 것을 기준으로 삼는 편이 안전합니다.

자주 묻는 질문

도입 검토에서 나올 질문을 네 묶음으로 정리했습니다.

숫자와 산식

지급 예정일은 어떻게 정해집니까?

기준일에 지급조건 일수를 더해 만기일을 구하고, 만기일이 주말이나 회사 휴무일이면 다음 영업일로 옮겨 지급 예정일로 봅니다. 옮긴 일수는 이월일수로 따로 보여 줍니다. 이미 지난 만기는 첫 주의 첫 영업일로 모읍니다.

지급 주차는 어떻게 셉니까?

12주 예측의 첫 월요일을 1주차로 두고 지급 예정일이 속한 주를 구합니다. 12주를 넘는 건은 이번 예측에 넣지 않고 판정 코드 D06 으로 남깁니다.

한도 사용률과 한도 초과액은 무엇입니까?

한도 사용률은 주별 지급 예정액을 주 지급 한도로 나눈 값이고, 한도 초과액은 지급 예정액에서 한도를 뺀 값이 양수일 때의 금액입니다. 한도를 정하지 않은 주는 사용률을 비우고 판정하지 않습니다.

지급 차단 건은 왜 합계에서 빠집니까?

차단된 건은 해제되기 전에는 나가지 않으므로 지급 예정액에 넣지 않습니다. 대신 같은 주에 차단 건이 걸려 있으면 W02 로 알려 해제될 때 지급액이 늘어난다는 것을 먼저 보게 합니다.

지급 연기 제안은 어떤 건을 고릅니까?

한도를 넘는 주에서 지급 유예가 7일 이상 허용되는 건을 큰 금액부터 고릅니다. 옮길 다음 주도 한도를 넘지 않을 때만 제안하고, 조기지급 할인 수익이 큰 건은 연기 대상에서 뺍니다.

조기지급 제안은 어떤 기준입니까?

할인율에 365 를 곱해 앞당기는 일수로 나눈 연환산 수익률이 회사 기준보다 높고, 앞 주에 한도 여유가 있을 때 앞 주로 당기는 안을 냅니다. 효과 금액은 금액에 할인율을 곱한 값입니다.

대사식은 몇 가지를 검산합니까?

건 합계와 주별 합계, 지급일 영업일 이월, 만기 주 합계와 지급 주 합계, 누적 지급액, 제안 반영 전후 지급액, 조기지급 할인액, 한도 초과분 해소까지 7종입니다. 예시 데이터 423건에서 차이는 0건입니다.

화면과 조작

조회 버튼은 어디에 있습니까?

조회조건 영역 입력 칸의 맨 오른쪽입니다. 화면 아래 바에 두지 않았고, 입력 칸에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 처음 열면 한 번 자동으로 조회합니다.

지급일 기간은 어떻게 걸립니까?

시작일과 종료일을 모두 넣으면 하나의 구간 조건으로 서비스에 전달됩니다. 지급 예정 판정 탭에서는 지급 예정일에, 주별 탭에서는 주 시작일에, 조정 제안 탭에서는 제안 지급일에 적용됩니다.

점검 코드는 건과 주 어느 쪽에 걸립니까?

D 로 시작하는 코드는 지급 예정 판정에, W 로 시작하는 코드는 주별 지급 일정에 걸립니다. 한 선택 목록에 두 종류를 함께 두고 고른 코드에 맞는 탭만 거릅니다.

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

지급 예정 건의 거래처와 금액, 기준일·지급조건, 만기일에서 지급 예정일로의 이월, 제안 반영 후 주차, 조기지급 할인 내역, 판정 문장과 근거가 상세 창 하나에 모입니다.

CSV 는 어떤 데이터가 내려옵니까?

지금 보는 탭의 조회 결과가 UTF-8 CSV 로 내려옵니다. 조회조건을 바꾸고 다시 조회하면 바뀐 결과가 내려옵니다. 금액은 표시 형식이 아닌 원 값입니다.

판정과 활용

판정이 "점검 필요"이면 문제가 있다는 뜻입니까?

아닙니다. 점검 필요는 한도를 넘는 주나 만기가 이미 지난 건처럼 다시 볼 대상을 가리는 표시일 뿐입니다. 이 화면은 점검 도구이며 실제 지급 결정과 집행은 회사가 합니다.

지급조건이 비어 있으면 어떻게 됩니까?

만기일을 구하지 못하므로 지급 예측에서 빼고 D04 확인 필요로 표시합니다. 합계에 0 원으로 들어가는 일은 없고, 지급조건을 정한 뒤 다시 조회하면 반영됩니다.

주 지급 한도가 없는 주는 어떻게 다룹니까?

한도가 없으면 초과를 판정할 수 없으므로 W04 확인 필요로 두고 연기·조기지급 제안의 목적지로도 쓰지 않습니다. 한도를 정하는 일은 회사의 몫입니다.

한도의 150% 를 넘는 주는 왜 따로 봅니까?

조금 넘은 주는 연기 한두 건으로 풀리지만 한도의 1.5배를 넘는 주는 지급 시점을 크게 조정해야 하기 때문입니다. W03 으로 구분해 먼저 보게 합니다.

두 회사의 지급을 합쳐 볼 수 있습니까?

회사별 한도가 다르므로 판정은 회사 × 주 단위로 합니다. 위쪽 요약은 조회된 전체의 지급 예정액과 한도 초과액을 보여 줘 회사 간 규모를 한눈에 비교할 수 있습니다.

도입과 운영

어떤 사용자에게 효과가 큽니까?

매주 지급 일정을 엑셀로 펼쳐 한도와 맞춰 보던 자금팀과 매입 채무 담당자입니다. 휴무 이월과 한도 초과를 화면이 먼저 가려 주므로 지급 회의 준비 시간이 줄어듭니다.

표준 T-code 를 대체합니까?

대체하지 않습니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 12주 지급 일정과 한도 점검 관점을 더해 확장합니다. 전기와 법정 대응은 표준에 남습니다.

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

공급업체 미결 항목의 금액·기준일·지급조건·지급 차단 표시, 공급업체 마스터, 공장 달력의 영업일, 그리고 회사가 정하는 주 지급 한도입니다. 어떤 필드를 쓸지는 고객사 설정에 따라 확인이 필요합니다.

운영 연결에는 무엇이 필요합니까?

주 지급 한도 표와 CDS 뷰를 만들어 이송하고 서비스 바인딩을 게시한 뒤 앱 manifest 의 서비스 주소만 바꾸면 됩니다. 화면 코드는 그대로입니다.

권한은 어떻게 막습니까?

회사코드 표준 권한 객체를 집계 뷰에 겁니다. 상세에만 걸면 합계와 자기 몫의 차이로 다른 법인의 지급 규모가 드러나므로 집계 단계에 둡니다.

화면의 숫자는 실제 회사 자료입니까?

아닙니다. 가상 회사 두 곳과 가상 거래처로 만든 예시 데이터이며 실제 고객사의 송장과 금액을 쓰지 않았습니다.