솔루션 홈
원가 배부

SAP 원가 배부결과 검증 — 배부가 빠짐없이 끝났는지 확인하기

제조부서에 쌓인 원가가 배부사이클을 거쳐 남김없이 흘러갔는지를 사이클 단계별로 확인하고, 잔액이 0이 되는지로 배부 완전성을 판정하는 원가결산 점검 화면입니다.

원가 결산에서 배부는 원가를 없애는 절차가 아니라 옮기는 절차입니다. 판관부서에 잡힌 제조성 비용이 생산본부로, 공장 간접부서의 원가가 제조직접부서로, 다시 공정으로 흘러가 마지막에는 생산오더가 받아 갑니다.

그래서 결산 담당자가 확인해야 할 것은 하나입니다. 보내야 할 곳에서 남김없이 빠져나갔는가. 보낸 쪽에 금액이 남아 있다면 배부 규칙에서 빠진 원가요소가 있거나 사이클이 덜 돌았다는 뜻입니다. SAP 표준 배부 실행 결과와 ACDOCA 데이터를 그대로 이어받아 이 확인을 사이클 단위로 하도록 OpenUI5 화면으로 확장한 것이 ZLCO06030입니다. 실제 구동 화면 6종을 함께 공개합니다.

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

  • 원천 데이터 — ACDOCA 기반 CDS 뷰를 그대로 사용해 표준 전표에서 집계
  • 배부 실행 — 평가배부 · 분배 · 간접배부 표준 실행 결과를 그대로 읽고, 실행 자체는 표준 트랜잭션이 담당
  • 사이클 식별 — 전기텍스트(BKPF-BKTXT)에 남는 배부사이클 명칭을 그대로 조회 키로 사용
  • 마스터 체계 — 코스트센터(CSKS · CSKT) · 내부오더(AUFK) · 원가요소그룹(TCKH3) 표준 구조 유지
항목내용
업무 영역관리회계(CO-OM) · 원가 배부 완전성 점검
Namespacezui5.alloc
셸 구조조회조건 영역(우측 조회) + 배부 완전성 판정 툴바 + 결과 테이블, 행 선택 시 배부명세
화면 수조회 화면 1개 + 배부 내역 상세
SAP 표준 기능 근거KSU5 · KSV5 · KSW5 · ACDOCA
성격조회형(Read-Only) — 배부 실행과 전기는 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 6종 둘러보기

결산월만 넣고 전체조회로 제조부서 전체의 발생·배부·잔액을 훑습니다 → 배부사이클을 AR101부터 AD102까지 순서대로 넣어 가며 단계별로 발신 코스트센터 잔액이 0이 되는지 확인합니다 → 파트너 컬럼과 행 상세에서 어느 부서로 얼마가 갔는지 추적하고, 결과는 CSV로 내려받습니다.

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

Main.view.xml
전체조회 — 제조부서 전체 발생·배부·잔액 현황
전체조회 — 제조부서 전체 발생·배부·잔액 현황 — 배부사이클을 비운 채 조회하면 여섯 단계가 모두 끝난 최종 스냅샷이 나옵니다. 배부원가 순액은 0이고 잔액 합계는 총 발생원가와 같아야 하며, 판관·공통연구·공장간접 부서의 잔액은 0으로 비어 있어야 합니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 두었습니다.
사이클 AR101
AR101 — 판관부서 제조비용의 생산본부 이관
AR101 — 판관부서 제조비용의 생산본부 이관 — 첫 단계 사이클을 넣어 조회한 화면입니다. 판관부서(GPD·KPD)에 잡힌 제조성 비용이 생산본부로 넘어가고, 발신 코스트센터의 잔액이 0으로 떨어진 것을 툴바 판정으로 확인합니다.
사이클 AA102
AA102 — 공장간접비의 제조직접부서 배부
AA102 — 공장간접비의 제조직접부서 배부 — 공장 간접부서에 모인 원가가 제조직접부서로 내려가는 단계입니다. 원가요소그룹별로 발생원가와 배부원가가 나뉘어 표시되고, 배부가 끝난 발신 라인은 잔액이 0으로 정리됩니다.
동적 파트너 컬럼
AA102 파트너 코스트센터별 배부금액 — 동적 컬럼
AA102 파트너 코스트센터별 배부금액 — 동적 컬럼 — 오른쪽으로 이어지는 컬럼은 고정된 것이 아니라 조회 결과에 금액이 실제로 존재하는 파트너 코스트센터만 골라 그때그때 만들어 붙인 것입니다. 어느 부서로 얼마가 갔는지를 표 한 장에서 그대로 읽을 수 있습니다.
조회 모드 R03
R03 공정→생산오더 — 공정 코스트센터 잔액
R03 공정→생산오더 — 공정 코스트센터 잔액 — 마지막 단계까지 흘러온 원가는 공정 코스트센터에 집결합니다. 이 잔액이 생산오더로 넘어갈 대상이며, 앞 단계가 모두 정상이라면 여기 합계가 총 발생원가와 맞아떨어집니다.
배부 내역 상세
행 선택 — 배부 내역 상세
행 선택 — 배부 내역 상세 — 한 줄을 고르면 그 코스트센터·원가요소의 발생원가와 배부원가, 잔액과 함께 파트너 코스트센터별 배부금액이 목록으로 펼쳐집니다. 넓은 표를 좌우로 훑지 않고도 배부 경로를 확인할 수 있습니다.

조작 방법

  1. 결산월YYYYPPP 형식(예: 2026005)으로 넣습니다. 필수값이며 비어 있으면 조회를 중단하고 안내합니다.
  2. 배부사이클을 비운 채 조회하면 여섯 단계가 모두 끝난 최종 스냅샷(전체조회)이 나옵니다. 여기서 전체 그림을 먼저 잡습니다.
  3. 배부사이클에 AR101부터 차례로 넣어 가며 조회합니다. 각 사이클 실행 직후 스냅샷이 조회되고, 툴바에 배부 완전성 판정이 표시됩니다.
  4. 조회조건 입력필드에서 Enter를 눌러도 바로 조회됩니다. 사이클을 바꿔 가며 훑을 때 손이 마우스로 옮겨가지 않습니다.
  5. 잔액 0 라인 숨김 옵션으로 이미 정리된 행을 걷어내고 남은 금액만 봅니다.
  6. 행을 선택하면 배부 내역 상세가 열려 파트너 코스트센터별 배부금액을 확인할 수 있습니다.
  7. 결과는 CSV 다운로드로 내려받습니다. 동적으로 만들어진 파트너 컬럼까지 그대로 포함되고 UTF-8 BOM이 붙어 엑셀에서 한글이 깨지지 않습니다.

배부 완전성 판정

판정의 뼈대는 식 하나입니다. 발생한 원가에 배부로 오간 금액을 더하면 그 코스트센터에 남은 금액이 나옵니다.

항목산식 · 규칙
발생원가 DMBTR해당 코스트센터·원가요소에 자체적으로 발생한 원가
배부원가 DMBTR00배부 순액. 배부해 나가면 (−), 배부받으면 (+)
잔액 BALANCE발생원가 + 배부원가 — 배부 완전성 판정의 기준
사이클 실행발신 코스트센터의 현재 잔액 전액을 수신 코스트센터로 이동
사이클 정상 종료실행 직후 발신 코스트센터 잔액 = 0
전체 정합성배부원가 순액 = 0, 잔액 합계 = 총 발생원가

잔액이 0이 아니면 무엇을 의심하나

배부 규칙(세그먼트)에서 빠진 원가요소가 있거나, 수신처 기준값이 없어 배부가 중단됐거나, 사이클 순서가 어긋난 경우입니다. 어느 쪽이든 단계별 조회에서 잔액이 남은 사이클과 코스트센터·원가요소가 바로 드러나므로, 배부 규칙의 어느 줄을 봐야 하는지가 좁혀집니다.

배부사이클 6단계

원가는 조직 상단에서 현장으로 내려오는 순서대로 흐릅니다. 앞 단계가 끝나야 다음 단계의 배부 기준이 확정되므로 순서 자체가 규칙입니다.

사이클흐름확인 포인트
AR101판관부서 제조비용 → 생산본부판관(GPD·KPD)에 잡힌 제조성 비용이 전액 이관됐는지
AA101공통·연구부서 → 공장공통 성격 원가가 공장별로 나뉘어 내려갔는지
AA102공장간접 → 제조직접부서공장 간접부서 잔액이 0으로 정리됐는지
AA103제조직접부서 → 공정부서 단위 원가가 공정 단위로 내려갔는지
AD101 · AD102공정 정리 단계최종적으로 공정 코스트센터에 잔액이 집결하는지

여섯 단계가 모두 끝나면 판관·공통연구·공장간접 부서의 잔액은 0이 되고, 남은 금액은 생산오더로 넘어갈 공정 코스트센터에 모입니다.

조회조건

필드필수설명
조회 모드기본값 R00R00 제조부서 전체 / R01 공통연구→공장 / R02 공장→공정 / R03 공정→생산오더
결산월 P_PERIO필수YYYYPPP 형식(예: 2026005)
배부사이클 P_BKTXT보조 필터전기텍스트 LIKE 조건. 공란이면 전체조회, AR101~AD102면 사이클별 검증
잔액 0 라인 숨김옵션이미 정리된 행을 감춰 남은 금액만 표시

R01·R02는 해당 사이클 프리셋으로 바로 넘어가고, R03은 최종 스냅샷에서 공정 코스트센터 잔액만 추려 보여 줍니다.

결과 컬럼

컬럼참조의미 · 표시
코스트센터명KOSTL_TX키 컬럼. 좌측 고정
원가요소그룹HKONTGROUP2키 컬럼. 원가 성격별 묶음
원가요소명HKONT_TX키 컬럼
잔액계산 BALANCE0이면 정상. 0이 아닌 행이 점검 대상
발생원가계산 DMBTR자체 발생분, 우측정렬
배부원가계산 DMBTR00배부 순액. (−) 나감 / (+) 받음
파트너 코스트센터별 배부금액계산 DMBTR01 ~금액이 있는 파트너만 동적으로 컬럼 생성

배부 내역 상세

영역내용
선택 라인 요약코스트센터 · 원가요소그룹 · 원가요소 · 발생원가 · 배부원가 · 잔액
파트너별 배부명세수신 코스트센터와 배부금액을 목록으로 표시
완전성 판정발신 잔액이 0인지 여부를 함께 표시

SAP 표준 기능 매핑

이 화면은 표준 배부 처리를 대체하지 않습니다. 사이클 정의와 실행, 전기는 표준 트랜잭션이 그대로 담당하고, 그 결과를 결산월·사이클 단위로 모아 완전성 판정과 파트너별 배부명세 관점을 더해 확장하는 구성입니다.

T-code표준 기능이 화면에서의 확장
KSU5평가배부(Assessment) 실행실행 직후 스냅샷을 사이클 단위로 조회해 발신 잔액 0 여부를 판정
KSV5분배(Distribution) 실행분배 결과를 같은 관점으로 묶어 단계별 흐름을 이어서 확인
KSW5간접배부(Indirect Activity Allocation) 실행배부원가 순액과 잔액 집결 위치를 함께 대조
KSB1 관점코스트센터 실제라인아이템 조회라인 나열 대신 코스트센터 × 원가요소그룹으로 집계해 완전성 중심으로 재구성

운영 데이터 소스 매핑

테이블 · 뷰역할
ACDOCA유니버설 저널 — 발생원가와 배부 전기 라인의 원천
BKPF (BKTXT)전표 헤더 전기텍스트 — 배부사이클 식별 키
CSKS · CSKT코스트센터 마스터와 명칭
AUFK내부오더·생산오더 마스터 — 최종 수신처 확인
TCKH3원가요소그룹 구성
SKAT계정(원가요소) 텍스트
항목SAP 원천비고 · 산식
결산월ACDOCA-GJAHR · POPERYYYYPPP로 결합해 파라미터로 사용
코스트센터 · 명칭ACDOCA-RCNTRCSKT-KTEXT키 컬럼
파트너 코스트센터ACDOCA-PCNTR 상당동적 컬럼의 근거
원가요소 · 명칭ACDOCA-RACCTSKAT-TXT50키 컬럼
원가요소그룹TCKH3 계층원가 성격별 묶음
배부사이클BKPF-BKTXTLIKE 조건으로 사이클 단계 지정
발생원가ACDOCA-HSL 집계배부 전기를 제외한 자체 발생분
배부원가ACDOCA-HSL 집계배부 전기분 순액
잔액계산값발생원가 + 배부원가

도입 시 확인이 필요한 부분

배부사이클 명칭 체계와 전기텍스트 사용 규칙은 회사마다 다릅니다. 사이클 식별을 BKTXT가 아니라 배부 실행 로그(T811 계열)나 별도 필드로 잡는 경우도 있어, 실제 도입 때는 배부 사이클 정의와 전기 관행을 함께 확인해 조회 키를 정합니다. 코스트센터 체계(판관·공통연구·공장·공정)와 원가요소그룹 구성도 프로젝트 표준에 맞춰 조정합니다.

참고 CDS 뷰

운영 서비스로 연결할 때는 유니버설 저널에서 코스트센터 × 원가요소그룹 단위로 발생분과 배부분을 나누어 집계하는 뷰로 서빙하는 구성을 제안합니다.

@AbapCatalog.sqlViewName: 'ZCALLOCRES'
@EndUserText.label: '원가 배부결과 검증 (Z)'
define view Z_C_ALLOCATION_RESULT
  as select from acdoca as Line
    inner join      bkpf as Header    on  Line.rbukrs = Header.bukrs
                                      and Line.belnr  = Header.belnr
                                      and Line.gjahr  = Header.gjahr
    left outer join cskt as CCtrText  on  Line.rcntr  = CCtrText.kostl
                                      and CCtrText.spras = 'K'
    left outer join skat as AcctText  on  Line.racct  = AcctText.saknr
                                      and AcctText.spras = 'K'
{
  key Line.rbukrs                as Bukrs,
  key Line.gjahr                 as Gjahr,
  key Line.poper                 as Poper,
  key Line.rcntr                 as Kostl,
  key Line.racct                 as Hkont,
      CCtrText.ktext             as KostlTx,
      AcctText.txt50             as HkontTx,
      Header.bktxt               as AllocCycle,
      Line.pcntr                 as PartnerKostl,
      // 발생분과 배부분은 전기텍스트(배부사이클) 유무로 갈라 집계
      sum( case when Header.bktxt = '' then Line.hsl else 0 end ) as Dmbtr,
      sum( case when Header.bktxt <> '' then Line.hsl else 0 end ) as Dmbtr00
}
group by Line.rbukrs, Line.gjahr, Line.poper, Line.rcntr, Line.racct,
         CCtrText.ktext, AcctText.txt50, Header.bktxt, Line.pcntr

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경의 배부 전기 관행과 원가요소그룹 체계에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 결과 테이블
조회조건sap.m.Select · sap.m.Input · sap.m.CheckBox — 우측 끝에 조회 버튼
결과 테이블sap.ui.table.Table — 행이 많아 그리드형 테이블 사용, 키 컬럼 고정
동적 컬럼조회 결과의 파트너 코스트센터를 훑어 Column을 런타임 생성
완전성 판정sap.m.ObjectStatus · sap.m.MessageStrip — 툴바에 사이클 판정 표시
배부 내역 상세sap.m.Dialog + 목록 — 파트너별 배부금액

파트너 컬럼을 미리 만들지 않은 이유

수신 코스트센터는 사이클마다 다르고 결산월마다 달라집니다. 가능한 모든 파트너를 컬럼으로 깔아 두면 대부분이 빈 칸으로 남아 정작 봐야 할 숫자가 묻힙니다. 그래서 조회 결과에 금액이 실제로 존재하는 파트너만 골라 그때그때 컬럼을 만들어 붙이고, CSV 다운로드에도 같은 구성 그대로 담습니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.alloc) · 라우팅 · ko 로케일 · sap_horizon 테마
Component.js선택조건 모델 · 결과 모델 초기화
view/Main.view.xml선택화면과 결과 테이블(고정 컬럼)
controller/Main.controller.js조회 · 파트너 컬럼 동적 생성 · 배부 완전성 검증 · CSV
model/ModelMock.jslocaldata JSON 읽기 — 사이클·모드 필터 포함
model/formatter.js금액 · 잔액 · 상태 · 결산월 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/alloc.json배부 시뮬레이션 데이터

배부 규칙이나 사이클 구성이 바뀌어도 컨트롤러와 포맷터 두 파일만 손보면 됩니다.

검증 결과

화면 구성에 쓴 데이터는 배부사이클 6단계를 순차 시뮬레이션해 각 사이클 직후 스냅샷과 최종 스냅샷을 만든 것입니다.

데이터규모구성
배부 스냅샷540행사이클 × 코스트센터 × 원가요소. 발생원가 · 배부원가 · 잔액 · 파트너 배부금액 포함
전체조회 스냅샷186행여섯 단계 종료 후 최종 상태
총 발생원가5,244,100,000원전체조회 잔액 합계와 일치
검증 항목결과
잔액 = 발생원가 + 배부원가 (전 행)통과
사이클별 발신 코스트센터 잔액 = 0 (배부 완전성)통과
사이클별 파트너 이동 총액 = 0 (발신 = 수신)통과
전체조회 배부원가 순액 = 0 · 잔액 합계 = 총 발생원가통과
전체조회 판관 · 공통연구 · 공장간접 부서 잔액 = 0통과
전체조회 공정 코스트센터에 잔액 집결통과
행 키(사이클 + 코스트센터 + 원가요소) 중복 없음통과
화면 렌더링 — 실브라우저 조회 → 사이클 전환 → 상세 실동작 후 캡처6/6

코스트센터·원가요소·금액은 모두 검증용 데이터이며, 코스트센터 체계(판관 GPD·KPD, 공통·연구, 생산본부·생산1~3부, 공장 팀, 공정)는 프로젝트 표준을 따랐습니다.

자주 묻는 질문

배부 완전성을 왜 잔액으로 판정하나요?

배부는 원가를 없애는 절차가 아니라 옮기는 절차이기 때문입니다. 발신 코스트센터에 있던 금액이 수신 쪽으로 전부 넘어갔다면 발신 쪽에는 아무것도 남지 않아야 합니다. 그래서 잔액 = 발생원가 + 배부원가 라는 식이 0으로 떨어지는지가 그 사이클이 제대로 끝났는지를 말해 주는 가장 단순하고 확실한 신호가 됩니다.

사이클을 하나씩 넣어 보는 이유가 있나요?

여섯 단계를 한꺼번에 돌린 최종 결과만 보면 어느 단계에서 금액이 남았는지 알 수 없습니다. AR101부터 AD102까지 순서대로 넣어 가며 조회하면 각 사이클 실행 직후의 스냅샷이 나오고, 잔액이 0으로 떨어지지 않는 단계를 바로 짚어낼 수 있습니다.

파트너 컬럼이 조회할 때마다 달라지는데 정상인가요?

정상입니다. 사이클마다 금액이 오가는 수신 코스트센터가 다르기 때문에, 조회 결과에 금액이 실제로 존재하는 파트너만 골라 컬럼으로 만들어 붙입니다. 빈 컬럼이 늘어서지 않아 넓은 배부 결과도 한 화면에서 읽힙니다.

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

배부 실행 자체는 KSU5·KSV5·KSW5 같은 표준 트랜잭션이 그대로 담당하고, 실행 결과는 ACDOCA에 그대로 남습니다. 이 화면은 그 결과를 결산월과 전기텍스트(배부사이클) 단위로 모아 발생·배부·잔액을 한 줄로 세우고, 배부 완전성 판정과 파트너별 배부명세를 얹어 확장한 조회 전용 화면입니다.

원가 배부 마감 점검, 지금 쓰는 SAP 위에서 확장해 보세요

배부를 돌리고 나서 어디에 얼마가 남았는지를 사이클 단위로 확인할 수 있으면, 원가 마감을 닫기 전에 정리할 건이 먼저 보입니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

원가 배부배부 완전성KSU5ACDOCA코스트센터원가요소그룹OpenUI5