솔루션 홈
KO88 · 관리회계

SAP 내부오더 정산현황 — 모인 비용이 제자리를 찾았는가

내부오더에 쌓인 비용이 얼마나 정산됐는지와 어느 수신처로 배분됐는지를 확인하는 화면입니다.

내부오더는 비용을 모으는 그릇입니다. 프로젝트나 설비 보수에 들어간 비용을 한곳에 담았다가 끝나면 제자리로 보냅니다.

보내지 않으면 오더에 잔액이 남고 그 비용은 어느 코스트센터에도, 어느 자산에도 반영되지 않습니다. 표준 내부오더 정산 구조를 그대로 이어받아 정산율과 수신처 배분을 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 내부오더 — 오더번호(Aufnr) · 유형(Auart) · 명칭(Ktext)
  • 귀속 — 회사코드(Bukrs)와 코스트센터(Kostl)
  • 오더 상태 — OrderStatus 로 REL · TECO 등 구분
  • 잔액 — 미정산 잔액(BalanceOpen)
  • 정산 완료 — 전액 정산 여부(IsFullySettled)
항목내용
대응 T-codeKO88 (오더 정산) · KSV5 · KOB1
업무 영역관리회계(CO-OM) · 오더 정산
Namespacezui5.ordersettle
셸 구조조회조건 영역(우측 조회·초기화) + 정산 현황, 행 선택 시 수신처 배분
화면 수조회 화면 1개 + 배분 상세
데이터오더 10건 · 정산 이력 186건
성격조회형(Read-Only) — 정산 실행은 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·오더유형·상태로 조회하면 오더별 정산 현황이 나옵니다 → 정산율과 잔액을 확인하고 → 행을 눌러 수신처별 배분을 확인합니다.

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

KO88 — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·오더유형·오더상태·코스트센터를 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
KO88 — 정산 현황
발생비용과 정산액
발생비용과 정산액 — 오더번호·유형·명칭·코스트센터·오더상태와 함께 발생비용·정산액·미정산 잔액·정산율이 이어집니다. 잔액이 남은 오더는 상태 색으로 구분됩니다.
KO88 — 수신처 배분
어디로 갔는가
어디로 갔는가 — 행을 고르면 코스트센터·자산·GL 계정 등 수신처별 배분 금액이 펼쳐집니다.

조작 방법

  1. 회사코드오더유형을 고릅니다.
  2. 오더상태로 진행 중과 기술적 완료를 나눕니다.
  3. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  4. 정산율이 100%가 아닌 오더를 확인합니다.
  5. 미정산 잔액이 남은 오더는 결산 전에 정산해야 합니다.
  6. 행을 선택하면 수신처별 배분이 열립니다.
  7. 결과는 CSV 다운로드로 내려받아 결산 체크리스트로 씁니다.

정산율 산식

모인 비용 중 얼마가 나갔는지를 봅니다.

정산율 = 정산액 ÷ 발생비용 × 100
미정산 잔액 = 발생비용 − 정산액

정산율 100%      →  전액 정산 완료
정산율 100% 미만  →  잔액 존재 — 정산 필요

오더 상태  REL   진행 중 — 계속 비용 발생
           TECO  기술적 완료 — 정산 후 종결
           CLSD  종결 — 잔액 0이어야 함

수신처를 함께 봐야 하는 이유

정산율이 100%여도 엉뚱한 곳으로 갔으면 문제입니다. 설비 투자 오더인데 자산이 아니라 코스트센터로 정산됐다면 자산화돼야 할 비용이 당기 비용이 됩니다. 수신처 배분까지 확인해야 정산이 제대로 된 것입니다.

수신처 유형 3종

수신처대상결과
코스트센터운영성 비용부서 비용으로 반영
고정자산투자성 지출자산 취득가액으로
GL 계정기타 정산지정 계정으로

오더유형에 따라 허용되는 수신처가 다릅니다. 투자성 오더는 자산으로 가야 합니다.

조회조건

필드필수설명
회사코드 Bukrs필수대상 법인
오더유형 Auart선택일반내부오더 등
오더상태 OrderStatus선택REL · TECO · CLSD
코스트센터 Kostl선택귀속 부서
정산 여부선택전액 정산 / 잔액 있음

결과 컬럼

오더 현황

컬럼의미 · 표시
오더번호 Aufnr · 명칭 Ktext내부오더
오더유형 Auart · AuartText일반내부오더 등
회사코드 Bukrs · BukrsText귀속 법인
코스트센터 Kostl · KostlText귀속 부서
오더상태 OrderStatusREL · TECO · CLSD
발생비용오더에 모인 총 비용
정산액수신처로 보낸 금액
미정산 잔액 BalanceOpen발생 − 정산. 남으면 경고
정산율정산액 ÷ 발생비용
전액 정산 IsFullySettled완료 여부

수신처 배분

컬럼의미
수신처 유형코스트센터 · 자산 · GL 계정
수신처 코드 · 명칭배분 대상
배분 금액수신처별 금액
배분 비율전체 정산액 대비

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
KO88내부오더 정산정산율과 수신처 배분을 조회
KOB1오더 실제 라인발생비용 원천
KSV5배분 실행관련 배분 처리
AUFK오더 마스터오더 정보
COSS · COSPCO 원가 집계발생·정산 금액
COBRB정산 규칙수신처 정의

도입 시 확인이 필요한 부분

정산 규칙이 오더마다 지정돼 있어야 정산이 실행됩니다. 규칙이 없으면 정산이 실패하고 잔액이 그대로 남습니다. 오더를 만들 때 정산 규칙을 필수로 넣도록 하거나, 규칙 없는 오더를 이 화면에서 함께 걸러 내는 구성이 필요합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCORDSETTLE'
@EndUserText.label: '내부오더 정산 현황 (Z)'
define view Z_C_ORDER_SETTLEMENT
  as select from aufk as Order
    left outer join coss  as CostSum  on Order.objnr = CostSum.objnr
    left outer join cobrb as SettRule on Order.objnr = SettRule.objnr
{
  key Order.aufnr as Aufnr,
      Order.auart as Auart,
      Order.ktext as Ktext,
      Order.bukrs,
      Order.kostl as Kostl,
      Order.astnr as OrderStatus,
      SettRule.konty as ReceiverType,
      SettRule.kostl as ReceiverCostCenter,
      SettRule.anln1 as ReceiverAsset,
      // 발생비용과 정산액은 원가요소 유형으로 구분해 집계
      sum( CostSum.wtg001 ) as CostAmount
      // 정산율 = 정산액 ÷ 발생비용, 잔액 = 발생 − 정산
}
group by Order.aufnr, Order.auart, Order.ktext, Order.bukrs,
         Order.kostl, Order.astnr, SettRule.konty,
         SettRule.kostl, SettRule.anln1

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 정산 현황 · 배분 상세
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
현황 테이블sap.m.Table — 발생·정산·잔액 순서
정산율sap.m.ObjectStatus — 완료 / 잔액 있음
배분 상세sap.m.Dialog — 수신처별 금액과 비율

오더 상태를 함께 보여 주는 이유

진행 중인 오더에 잔액이 있는 것은 정상입니다. 아직 비용이 더 발생할 예정이기 때문입니다. 문제는 기술적 완료나 종결 상태인데 잔액이 남은 경우입니다. 상태가 함께 보이면 정말 처리해야 할 오더만 걸러집니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.ordersettle) · ko 로케일
view/Main.view.xml조회조건과 정산 현황 테이블
controller/Main.controller.js조회 · 정산율 계산 · 배분 상세 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 비율 · 상태 색 포맷터
localdata/orders.json오더 10건
localdata/settlements.json정산 이력 186건

검증 결과

검증 항목결과
미정산 잔액 = 발생비용 − 정산액 (전 오더)통과
정산율 = 정산액 ÷ 발생비용 × 100통과
수신처 배분 합계 = 정산액통과
전액 정산 표시가 잔액 0 과 정합통과
오더유형·코스트센터 코드가 있으면 명칭도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 → 배분 상세 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

진행 중인 오더에 잔액이 남아도 되나요?

정상입니다. 아직 끝나지 않은 프로젝트나 보수 작업이라 비용이 더 발생합니다. 문제는 기술적 완료나 종결 상태에서 잔액이 남는 경우입니다.

정산이 실패하는 주된 이유는?

정산 규칙이 없거나 수신처가 잘못된 경우입니다. 자산으로 정산하려는데 자산이 미생성이거나 이미 처분된 경우에도 실패합니다.

투자성 오더는 왜 자산으로 정산해야 하나요?

설비 취득에 든 비용은 자산 가액이 되어 내용연수에 걸쳐 상각돼야 합니다. 코스트센터로 정산하면 당기 비용이 되어 손익이 왜곡됩니다.

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

정산 실행과 규칙 관리는 표준 CO 가 담당합니다. 이 화면은 정산율과 잔액, 수신처 배분을 한 화면에 모아 결산 전에 처리할 오더를 찾게 하는 확장입니다.

내부오더 정산 점검, 지금 쓰는 SAP 위에서 확장해 보세요

잔액이 남은 오더와 배분처가 함께 보이면 결산 마감이 수월해집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

내부오더 정산KO88KOB1정산율수신처코스트센터자산OpenUI5