솔루션 홈
CJ30 · CJI3 · 관리회계

SAP 프로젝트(WBS) 예산 대비 실적 — 남은 돈으로 끝낼 수 있는가

WBS 요소별 배정 예산과 실적 원가, 미결 약정을 비교해 가용 예산과 집행률을 확인하는 화면입니다.

프로젝트 예산은 한 번 정하면 늘리기 어렵습니다. 그래서 진행 중에 남은 예산으로 끝낼 수 있는지를 계속 확인해야 합니다.

실적만 보면 여유가 있어 보이지만, 발주해 둔 금액을 빼면 사정이 달라집니다. 구매요청과 발주까지 약정으로 잡아 가용 예산을 계산하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • WBS 요소 — 요소 ID(Posid)와 명칭(PosidText)
  • 프로젝트 — 상위 프로젝트(Pspid)와 명칭(PspidText)
  • 책임 — 코스트센터(Kostl)와 책임자(Verantwortlicher)
  • 예산 — 배정 예산액(BudgetAmt)
  • 기간 — 회사코드(Bukrs)와 회계연도(Gjahr)
항목내용
대응 T-codeCJ30 (예산 배정) · CJI3 · S_ALR_87013558
업무 영역프로젝트 관리(PS) · 관리회계
Namespacezui5.psbudget
셸 구조조회조건 영역(우측 조회·초기화) + WBS 예산 테이블
화면 수조회 화면 1개 + 상세
데이터WBS 요소 16건
성격조회형(Read-Only) — 예산 배정은 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·회계연도·프로젝트로 조회하면 WBS별 예산이 나옵니다 → 실적과 약정을 빼고 → 가용 예산과 집행률로 초과 위험을 확인합니다.

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

CJ30 — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·회계연도·프로젝트·WBS 를 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
CJ30 — 예산 대비 실적
WBS별 가용 예산
WBS별 가용 예산 — 프로젝트·WBS 요소·명칭·책임자와 함께 배정예산·실적원가·미결약정·가용예산·집행률이 이어집니다. 초과 WBS 는 상태 색으로 구분됩니다.
CJ30 — 초과 관리
예산초과 WBS
예산초과 WBS — 가용 예산이 음수인 요소가 강조되고, 프로젝트 단위 합계와 함께 표시됩니다.

조작 방법

  1. 회사코드회계연도를 고릅니다.
  2. 프로젝트로 대상을 좁힙니다. WBS 는 프로젝트 하위 구조입니다.
  3. 코스트센터나 책임자로 담당 WBS 만 볼 수 있습니다.
  4. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  5. 집행률이 높은 WBS 부터 확인합니다.
  6. 미결약정을 확인합니다. 구매요청과 발주가 포함됩니다.
  7. 가용예산이 음수면 이미 초과 상태입니다.
  8. 결과는 CSV 다운로드로 내려받아 프로젝트 회의 자료로 씁니다.

가용액 산식

배정액에서 확정분과 예정분을 모두 뺍니다.

가용예산 = 배정예산(BudgetAmt) − 실적원가 − 미결약정
집행률   = (실적원가 + 미결약정) ÷ 배정예산 × 100

미결약정 = 구매요청 미발주분 + 발주 미입고분

가용 > 0   →  여유 있음
가용 < 0   →  초과 — 예산 이관 또는 증액 필요

WBS 합계 = 프로젝트 예산과 대조

구매요청까지 약정에 넣는 이유

발주만 세면 구매요청 단계의 금액이 빠집니다. 프로젝트에서는 요청이 올라간 시점에 이미 쓰기로 정해진 경우가 많아, 요청을 빼고 계산하면 남은 예산이 과대하게 보입니다. 요청 단계부터 잡아야 실제 여력이 나옵니다.

WBS 예산 소진 경로

단계내용금액 이동
구매요청자재·용역 요청 등록약정 발생
구매발주공급업체에 발주약정 유지
입고·검수납품 확인약정 → 실적
송장 처리비용 확정실적 확정

조회조건

필드필수설명
회사코드 Bukrs필수대상 법인
회계연도 Gjahr필수예산 연도
프로젝트 Pspid선택상위 프로젝트
WBS 요소 Posid선택특정 요소
코스트센터 Kostl선택책임 부서
집행률선택초과 위험 건 추출

결과 컬럼

컬럼의미 · 표시
프로젝트 Pspid · PspidText상위 프로젝트
WBS 요소 Posid · PosidText작업 단위
회사코드 Bukrs · 회계연도 Gjahr대상 범위
코스트센터 Kostl · KostlText책임 부서
책임자 Verantwortlicher담당자
배정예산 BudgetAmt할당 금액
실적원가확정 지출
미결약정구매요청 + 발주 미입고
가용예산배정 − 실적 − 약정. 음수면 경고 색
집행률(실적 + 약정) ÷ 배정. 구간별 상태 색

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
CJ30프로젝트 예산 배정가용예산과 집행률 계산
CJI3프로젝트 실제 라인실적원가 원천
CJI5프로젝트 약정 라인미결약정 원천
S_ALR_87013558예산 대비 실적 리포트WBS 단위 정리
PRPSWBS 요소 마스터요소 정보
BPGE · BPJA예산 데이터배정 금액

도입 시 확인이 필요한 부분

예산을 WBS 어느 레벨에 배정하는지가 중요합니다. 상위에만 배정하면 하위 요소는 개별 통제가 되지 않고, 말단마다 배정하면 관리 부담이 커집니다. 또 예산 가용성 검사 설정에 따라 초과 시 전기가 막히는지가 갈립니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCPSBUDGET'
@EndUserText.label: 'WBS 예산 대비 실적 (Z)'
define view Z_C_PS_BUDGET_ACTUAL
  as select from prps as Wbs
    left outer join proj as Project on Wbs.psphi = Project.pspnr
    left outer join cskt as CCtrText on Wbs.fkstl = CCtrText.kostl
                                   and CCtrText.spras = 'K'
{
  key Wbs.pspnr,
      Wbs.posid   as Posid,
      Wbs.post1   as PosidText,
      Project.pspid as Pspid,
      Project.post1 as PspidText,
      Wbs.pbukr   as Bukrs,
      Wbs.fkstl   as Kostl,
      CCtrText.ktext as KostlText,
      Wbs.vernr   as ResponsibleNo
      // 예산은 BPJA, 실적은 COSP, 약정은 COOI 에서 각각 집계해 조인
      // 가용예산 = 배정 − 실적 − 약정, 집행률 = (실적+약정) ÷ 배정
}

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · WBS 예산 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
예산 테이블sap.ui.table.Table — 프로젝트 그룹, WBS 계층
가용 표시sap.m.ObjectNumber — 음수 경고 색
집행률sap.m.ObjectStatus — 구간별 색

책임자를 열에 두는 이유

예산이 초과되면 누구에게 물어야 하는지가 급합니다. WBS 번호만 있으면 조직도를 다시 찾아야 합니다. 책임자가 같은 줄에 있으면 확인 절차가 바로 시작됩니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.psbudget) · ko 로케일
view/Main.view.xml조회조건과 WBS 예산 테이블
controller/Main.controller.js조회 · 가용액 계산 · 집행률 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 비율 · 상태 색 포맷터
localdata/wbs.jsonWBS 요소 16건

검증 결과

검증 항목결과
가용예산 = 배정예산 − 실적원가 − 미결약정 (전 WBS)통과
집행률 = (실적 + 약정) ÷ 배정 × 100통과
WBS 합계 = 프로젝트 예산과 정합통과
실적·약정이 음수가 아님통과
WBS·코스트센터 코드가 있으면 명칭도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

예산을 초과하면 전기가 막히나요?

예산 가용성 검사 설정에 따라 다릅니다. 오류로 설정하면 막히고 경고로 설정하면 진행됩니다. 막지 않는다면 이 화면이 사실상 유일한 통제 수단입니다.

WBS 간 예산 이관이 가능한가요?

가능합니다. 같은 프로젝트 안에서 여유 있는 요소에서 부족한 요소로 옮깁니다. 프로젝트 총액은 유지되므로 승인 절차가 비교적 간단합니다.

구매요청만 있고 발주가 없으면 약정인가요?

설정에 따라 다릅니다. 요청 단계부터 잡는 것이 보수적이고 안전하지만, 취소되는 요청이 많으면 가용 예산이 실제보다 적게 보입니다.

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

예산 배정과 실적·약정 집계는 표준 PS 와 CO 가 담당합니다. 이 화면은 세 금액을 한 줄에 모아 가용액과 집행률을 계산하고 책임자까지 붙인 확장입니다.

프로젝트 예산 관리, 지금 쓰는 SAP 위에서 확장해 보세요

남은 돈으로 끝낼 수 있는지가 WBS 단위로 보입니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

프로젝트 예산WBSCJ30CJI3미결약정가용예산집행률OpenUI5