준비(셋업) 원가 점검 — 제조원가, 로트마다 든 준비시간과 소모자재를 원가로 바꿔 표준과 견주는 월마감 화면
로트별 준비시간 · 준비원가 · 표준 대비 차이 · 로트 크기와 준비원가 비중 · 작업장 원가풀 · 아홉 가지 대사식 — 소개 영상과 실제 화면 8종, 그리고 CDS 코드까지
소개 영상1분 48초10개 장면음성 안내·자막장면 흐름 요약
도입 포인트 — 이 앱을 사용해야 하는 이유
매월 제조원가를 점검할 때, 로트별 준비시간과 소모자재의 원가 기여, 그리고 표준 대비 초과 원인 파악에 어려움을 겪으십니까? 이 앱은 생산오더별 실적 준비원가를 계산하고 표준과 비교하며, 로트 크기, 작업장 원가풀 배부액까지 통합 점검하여 원가 관리의 투명성을 확보합니다.
핵심 포인트 여섯 가지
| 핵심 포인트 | 고객이 얻는 것 | 지금 방식이라면 |
|---|---|---|
| ① 로트 단위 초과 원가 점검 | 실적 준비시간이 표준의 120%를 초과했거나 준비원가 비중이 15%를 넘는 로트(샘플 47건/206건)를 판정하여, 즉각적인 원인 확인이 필요한 대상을 명확히 제시합니다. | 월별 총액만으로 로트 단위의 비효율을 파악하기 어려워 개선 기회를 놓칠 수 있습니다. |
| ② 로트 크기에 따른 비용 부담 | 로트 크기가 작아 개당 준비원가 비중이 품목별 한도를 초과하는 품목·월을 식별하여, 생산 로트 통합 및 최적화 검토의 근거를 제공합니다. | 로트 크기가 작은 품목의 높은 단위 준비원가 비중이 전체 합계에 가려져 관리되지 않습니다. |
| ③ 작업장 원가풀 정합성 검증 | 작업장 활동 원가풀 대비 미배부 차이 절대값이 3%를 초과하는 작업장·월을 점검 대상으로 알려 드려, 원가 배부의 정확성과 신뢰도를 확보합니다. | 확정 지연이나 단가 변경 시 발생하는 미배부 차이를 월 마감 시점에 수동으로 대사해야 합니다. |
| ④ 월별 원가 비중 이상 추이 | 월별 준비원가 비중이 7%를 초과하는 달과 해당 월의 점검 필요 로트 수를 함께 보여 줘, 집중 관리할 시점과 그 내부 요인을 빠르게 인지하도록 돕습니다. | 월별 준비원가 추이만으로는 어떤 달에 비효율이 집중되었는지, 그 원인이 무엇인지 즉시 알기 어렵습니다. |
| ⑤ 제조원가 정합성 자동 검증 | 준비원가 계산식, 활동원가 배부식 등 9가지 핵심 대사식을 모든 데이터에 전수 검산하여, SAP 원장 데이터의 정합성과 보고서 신뢰도를 자동 확인합니다. | 수작업으로 여러 리포트를 대조하며 원가 집계 및 배부의 정합성을 검증하는 데 많은 시간이 소요됩니다. |
| ⑥ SAP 표준 기능 연계 및 확장 | SAP 표준 작업장/라우팅 마스터 및 생산오더 실적을 활용해 원가 점검 로직을 구현하여, 기존 SAP 시스템과의 정합성을 유지하며 분석 관점을 확장합니다. | 현장의 준비 기록과 SAP 시스템의 분산된 데이터를 수동으로 통합해야 제조원가 분석이 가능합니다. |
사례로 보는 효과
6개월간 준비원가는 로트원가의 6.99%(6,326만 원)로 보이나, 모터 하우징 같은 소형 로트 품목은 여섯 달 모두 품목별 한도를 초과했습니다. 또한, 전체 206개 로트 중 47건은 점검 필요 대상으로, 이 로트들의 준비원가 비중은 11.84%로 전체 평균의 약 2배에 달하는 비효율을 보여줍니다.
도입하면 달라지는 것
- 월마감 전 제조원가 점검 시간이 단축됩니다.
- 로트 단위 비효율을 조기에 발견하고 개선합니다.
- 원가 데이터의 정합성과 신뢰성이 향상됩니다.
- 분산된 원가 데이터를 통합하여 신속하게 분석합니다.
이런 회사에 맞습니다
제조원가(준비·셋업 원가)를 월마감 전에 점검하고, 로트 단위 비효율 개선 및 원가 데이터 신뢰도 향상을 목표로 하는 제조 기업의 재무, 관리회계, 생산 관리 팀에 적합합니다.
숫자를 믿을 수 있는가 — 검증 결과
점검 도구에서 가장 비싼 질문은 “이 숫자 맞아?”입니다. 그래서 화면을 만들기 전에 대사식 아홉 개를 먼저 세우고 자료 전수에 돌렸습니다.
| 대사 | 대사식 | 검사 건수 | 차이 건수 | 최대 차이 |
|---|---|---|---|---|
| R01 | 준비원가 = 준비 활동원가 + 준비 소모자재비 | 206 | 0 | 0 |
| R02 | 준비 활동원가 = 실적 준비시간 × 활동단가 | 206 | 0 | 0 |
| R03 | 표준 준비원가 + 차이 = 실적 준비원가 | 206 | 0 | 0 |
| R04 | 로트원가 = 준비원가 + 가공원가 | 206 | 0 | 0 |
| R05 | 실적 준비시간 = 표준 준비시간 + 준비시간 차이 | 206 | 0 | 0 |
| R06 | 단위 준비원가 = 준비원가 ÷ 로트수량(반올림 ±0.005 허용) | 206 | 0 | 0.005 |
| R07 | 로트 합계 = 품목 합계 = 작업장 합계 = 월 합계(준비원가) | 6 | 0 | 0 |
| R08 | 활동 원가풀 = 로트 배부액 + 미배부 차이 | 36 | 0 | 0 |
| R09 | 작업장 배부액 = 해당 작업장 로트의 준비 활동원가 합계 | 36 | 0 | 0 |
아홉 대사식 모두 차이 건수 0건입니다(검사 1,314건). R06 의 최대 차이 0.005 는 반올림 허용 범위입니다. 이와 별도로 판정 기준에 걸리는 건을 일부러 넣었습니다. 점검 필요 로트 47건(시간 초과 20건 · 비중 초과 24건 · 둘 다 3건), 점검 필요 품목·월 18행(한도 초과 11행 · 차이율 초과 6행 · 둘 다 1행), 점검 필요 작업장·월 2행, 점검 필요 월 3행이며, 이 건들은 대사 차이가 아니라 점검 대상이라 차이 건수에 넣지 않았습니다.
실행 화면
아래 화면은 가상의 작업장 6곳(CNC 선반 · 머시닝센터 · 프레스 라인 · 조립 라인 · 사출 성형기 · 도장 라인)과 가상의 품목 8종, 가상의 단가로 만든 검증용 샘플 데이터(2026년 1~6월)를 실제로 조회한 모습입니다. 로트 206건, 품목·월 48행, 작업장·월 36행이며, 실제 고객사 값이 아닙니다.
처음 열었을 때
열면 자동으로 한 번 조회해, 조회조건 아래에 요약 지표 일곱 개와 품목별 집계 표가 한꺼번에 나옵니다.

맨 위 조회조건은 회계연도 · 전기 월 시작/종료 · 작업장 · 품목 · 점검 결과 여섯 칸이고 기본값은 2026년 전체입니다. 요약 지표는 준비원가 합계 63.3 · 표준 준비원가 61.4 · 준비원가 차이 +1.8(이상 백만 원) · 준비원가 비중 6.99% · 점검 필요 로트 47 · 점검 필요 품목 18 · 정합성 대사 차이 건수 0 순서입니다. 탭 이름 앞의 숫자는 조회된 건수입니다.
로트별 점검 — 한 줄이 준비 1회
두 번째 탭은 로트를 한 줄씩 보여 줍니다. 준비시간과 준비원가가 로트마다 표준과 얼마나 다른지 보는 자리입니다.

표준 준비시간과 실적 준비시간, 준비시간 차이, 활동단가, 준비 활동원가, 소모자재비, 준비원가, 표준 준비원가, 로트원가, 단위 준비원가와 비중이 한 줄에 나옵니다. 오른쪽 끝에 점검 결과와 점검 코드, 점검 내용이 붙습니다. 컬럼 제목을 눌러 정렬할 수 있고, 행을 누르면 상세 창이 열립니다.

조회조건의 점검 결과를 점검 필요로 두고 조회하면 로트 47건만 표에 남고, 요약 지표도 같은 조건으로 다시 계산되어 준비원가 비중이 11.84%로 올라갑니다. 준비시간이 표준의 120%를 넘었거나 준비원가 비중이 15%를 넘은 로트이며, 점검 내용 칸에 어느 쪽에 걸렸는지 적힙니다. 조건을 전체로 되돌리고 다시 조회하면 206건으로 돌아옵니다.
품목별 집계 — 로트 크기를 한도와 견준다
품목·월 단위로 모으면 로트가 작아서 생기는 문제가 보입니다. 품목마다 한도가 다르므로 한도와 평균 로트수량을 함께 봅니다.

품목마다 로트 수, 평균 로트수량, 표준 준비원가와 실적 준비원가, 차이율, 단위 준비원가, 준비원가 비중, 비중 한도, 기준 로트수량이 한 줄에 나옵니다. 점검 결과를 점검 필요로 두면 18행이 남고, 모터 하우징과 커넥터 케이스는 여섯 달 모두 한도를 넘었습니다. 평균 로트수량이 기준 로트수량보다 작은지 함께 보면 로트를 합칠 후보가 보입니다.
작업장별 집계와 월별 추이
작업장 탭은 원가풀과 배부액을, 월 탭은 월 단위 비중을 봅니다. 둘 다 점검 판정이 함께 나옵니다.

준비 횟수, 표준·실적 준비시간, 평균 준비시간, 활동단가, 활동 원가풀, 로트 배부액, 미배부 차이, 배부율이 나옵니다. 미배부 차이가 원가풀의 3%를 넘는 조립 라인 2월(-4.28%)과 사출 성형기 4월(+4.94%)이 점검 필요입니다. 작업장 조건을 걸면 한 작업장의 여섯 달만 볼 수 있습니다.

월 준비원가 비중은 1월 7.26%, 2월 6.93%, 3월 6.65%, 4월 7.52%, 5월 7.22%, 6월 6.39%입니다. 7%를 넘는 1월, 4월, 5월이 점검 필요이고 점검 필요 로트 수는 4월과 5월이 10건으로 가장 많습니다. 달이 정상이어도 안에 점검 필요 로트가 있을 수 있어 건수를 함께 봅니다.
대사 결과와 행 클릭 상세
숫자를 믿어도 되는지는 대사 결과 탭에서, 점검 필요의 이유는 상세 창에서 확인합니다.

아홉 대사식마다 좌변 · 우변 · 검사 건수 · 차이 건수 · 최대 차이가 나옵니다. 로트 대사식은 206건씩, 월·작업장 대사식은 6건 또는 36건씩 검사하며 차이는 모두 0건입니다. 차이 건수 칸은 0이면 정상색, 0이 아니면 경고색으로 바뀌어 그 숫자는 원천을 확인하라는 신호가 됩니다.

상세 창은 위에서부터 로트와 품목, 표준·실적 준비시간, 활동단가, 준비 활동원가와 소모자재비, 표준 대비 차이, 점검 내용 순서입니다. 점검 필요 로트는 어떤 조건(L1~L3)에 걸렸는지와 확인할 일이 함께 적히고, 같은 품목의 다른 로트도 같이 볼 수 있습니다. 품목·작업장·월 행을 눌러도 같은 모양의 창이 열립니다.
화면 뒤에서 일어나는 일
조회 버튼을 누르면 화면은 조회조건을 필터로 바꿔 서비스에 요청하고, 받은 결과를 탭마다 다른 표에 바인딩합니다. 품목 탭 · 로트 탭 · 작업장 탭 · 월 탭 · 대사 탭이 각자 자기 데이터 묶음을 읽고, 행을 누르면 상세 창이 해당 로트나 월의 묶음을 따로 불러옵니다. 계산은 모두 서비스가 하고 화면은 값을 읽어 보여 주기만 합니다.
| 처리 단계 | 하는 일 | 산출식 또는 기준 |
|---|---|---|
| ① 시간을 원가로 | 실적 준비시간에 활동단가를 곱하고 소모자재비를 더합니다 | 준비 활동원가 = 실적 준비시간 × 활동단가, 준비원가 = 준비 활동원가 + 소모자재비 |
| ② 표준과 견주기 | 표준 준비시간으로 표준 준비원가를 만들어 차이를 봅니다 | 준비시간 차이 = 실적 − 표준, 표준 준비원가 + 차이 = 실적 준비원가 |
| ③ 로트 크기 보기 | 개당 준비원가와 로트원가 중 비중을 봅니다 | 단위 준비원가 = 준비원가 ÷ 로트수량, 준비원가 비중 = 준비원가 ÷ 로트원가 × 100 |
| ④ 원가풀과 맞추기 | 작업장 활동 원가풀과 로트 배부액을 맞춥니다 | 활동 원가풀 = 로트 배부액 + 미배부 차이 |
| ⑤ 집계 검산 | 로트 · 품목 · 작업장 · 월 합계가 서로 맞는지 봅니다 | R07 ~ R09 |
| ⑥ 판정 | 아래 표의 조건으로 점검 필요를 가립니다 | 로트 L1~L3, 품목 P1~P3, 작업장 W1, 월 M1 |
| 대상 | 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|---|
| 로트 | 실적 준비시간이 표준의 120% 초과 | 점검 필요 (L1) | 준비 작업 내역과 설비 상태, 작업 지시 변경 여부 확인 |
| 로트 | 로트 준비원가 비중 > 15% | 점검 필요 (L2) | 로트 크기가 작지 않은지, 합쳐 생산할 수 있는지 확인 |
| 로트 | L1 과 L2 가 함께 해당 | 점검 필요 (L3) | 시간 초과와 로트 크기를 함께 확인 |
| 품목 · 월 | 준비원가 비중이 품목별 한도 초과 | 점검 필요 (P1) | 평균 로트수량이 기준 로트수량보다 작은지, 로트 크기 기준 확인 |
| 품목 · 월 | 표준 대비 준비원가 차이율 > 12% | 점검 필요 (P2) | 준비시간 차이가 큰 로트를 로트별 점검 탭에서 확인 |
| 품목 · 월 | P1 과 P2 가 함께 해당 | 점검 필요 (P3) | 로트 크기와 준비시간을 함께 확인 |
| 작업장 · 월 | 활동 원가풀 대비 미배부 차이 절대값 > 3% | 점검 필요 (W1) | 원가풀 전기 내역과 로트 확정 시간 확인 |
| 월 | 월 준비원가 비중 > 7% | 점검 필요 (M1) | 해당 월의 점검 필요 로트와 품목 확인 |
| 전체 | 위 조건에 해당 없음 | 정상 | — |
화면의 요약 지표 준비원가 비중은 로트원가 가중(준비원가 합계 ÷ 로트원가 합계)이고, 월별 비중의 단순 평균은 별도 조회용 함수가 돌려줍니다. 이 자료에서 그 평균은 6.995%이며, 두 값은 용도가 다르므로 화면에서는 가중 값만 지표로 씁니다.
조회조건
| 조회조건 | $filter 전송 형태 | 필수 · 기본값 | 적용 탭 |
|---|---|---|---|
| 회계연도 | Gjahr eq '2026' | 필수 · 기본 2026 | 모든 탭 |
| 전기 월 시작 · 종료 | Period ge … and Period le … (둘 다 있으면 범위 한 쌍) | 선택 | 모든 탭 |
| 작업장 | WorkCtr eq 'C110' | 선택 · 전체면 조건 생략 | 품목별 · 로트별 · 작업장별 |
| 품목 | ProdCode eq 'FG101' | 선택 · 전체면 조건 생략 | 품목별 · 로트별 |
| 점검 결과 | CheckStatus eq 'CHECK' | 선택 · 전체면 조건 생략 | 품목별 · 로트별 · 작업장별 · 월별 |
결과 컬럼
| 컬럼 | 의미 | 산출식 |
|---|---|---|
| 준비 활동원가 | 준비시간을 원가로 바꾼 값 | 실적 준비시간 × 활동단가 |
| 준비 소모자재비 | 준비에 쓴 소모자재 금액 | 원천 확인 필요 |
| 준비원가 | 로트에서 준비에 든 원가 | 준비 활동원가 + 소모자재비 |
| 표준 준비원가 | 표준 준비시간으로 본 원가 | 표준 준비시간 × 활동단가 + 소모자재비 |
| 단위 준비원가 | 개당 준비원가 | 준비원가 ÷ 로트수량 |
| 준비원가 비중 | 로트원가 중 준비원가 비율 | 준비원가 ÷ 로트원가 × 100 |
| 미배부 차이 | 원가풀에서 로트로 배부되지 않은 금액 | 활동 원가풀 − 로트 배부액 |
| 점검 결과 · 코드 · 내용 | 판정 상태와 걸린 조건 | 위 판정 규칙표 |
좁은 화면에서 달라지는 것
조회조건은 줄바꿈되어 위아래로 배치되고, 결과 표는 가로로 스크롤됩니다. 상세 창은 화면 폭에 맞춰 줄어듭니다. 요약 지표는 한 줄에 들어가지 않으면 다음 줄로 내려갑니다.
파일 구성
setupcost/
index.html · Component.js · manifest.json
controller/ (BaseController · Main) view/ (Main · DetailDialog) model/ (formatter · ErrorHandler)
css/ · i18n/
odata/ 서비스 선언 · 서비스 로직 · 엔티티셋별 데이터
media/ 소개 영상
SAP 표준 기능 확장 포인트
원가를 집계하고 전기하는 일은 SAP 표준 T-code가 담당하고, 이 화면은 그 결과를 조회 · 검증하는 관점을 더해 확장합니다. 표준 화면을 없애는 것이 아니라, 표준 화면 사이를 오가며 하던 대조를 한 화면으로 모읍니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | 표준 화면으로 되는 범위 | 이 앱이 더하는 관점 |
|---|---|---|
| 로트(생산오더)의 공정과 확정 내역 확인 | CO03에서 생산오더의 공정과 확정 내역을 봅니다 | 확정 준비시간과 표준을 로트 한 줄에 나란히 두고 표준을 넘은 로트를 점검 필요로 올립니다 |
| 오더별 원가 구성과 차이 확인 | KKBC_ORD에서 오더 원가를 선택해 분석합니다 | 준비원가를 따로 떼어 비중과 단위 준비원가로 보여 줍니다 |
| 활동 원가풀을 이루는 전표 확인 | KSB1에서 코스트센터 개별 항목을 봅니다 | 작업장 · 월 단위로 원가풀과 로트 배부액, 미배부 차이를 한 줄에 둡니다 |
| 활동유형 단가 확인 | KP26에서 활동유형 계획 단가를 봅니다 | 로트에 적용된 단가와 준비 활동원가를 같이 보여 줍니다 |
| 활동 수량 배부 내역 확인 | KB21N에서 활동 배부 입력과 내역을 봅니다 | 배부 결과가 로트 합계와 맞는지 대사식으로 확인합니다 |
| 작업장 용량과 코스트센터 연결 확인 | CR03에서 작업장 마스터를 열어 봅니다 | 작업장 차원을 한 번만 읽어 모든 탭에 같은 이름을 씁니다 |
| 표준 준비시간 기준 확인 | CA03에서 라우팅과 공정의 표준 값을 봅니다 | 표준 준비시간으로 표준 준비원가를 만들어 실적과 견줍니다 |
| 준비시간을 원가로 바꿔 표준과 견주고 로트 크기 영향 보기 | 없음 — 준비원가를 로트 크기와 한도에 견주는 표준 보고서가 없어 보통 엑셀로 만듭니다 | 준비원가 · 단위 준비원가 · 비중 · 기준 로트수량을 나란히 둡니다 |
T-code 별 연계 지점
| T-code | 이름 | 연계 |
|---|---|---|
| CO03 | 생산오더 표시 | 이어받는 것 오더의 공정 · 확정 내역. 대사 지점 실적 준비시간으로 쓴 확정 시간 합계. 오가는 법 시간 초과(L1)가 걸린 로트는 CO03에서 확정 내역을 열어 준비 구분과 입력 시각을 확인합니다. 표준에 남길 일 오더 변경과 확정 정정. |
| KKBC_ORD | 오더별 원가 분석 | 이어받는 것 오더 원가 구성. 대사 지점 로트 준비원가와 오더 원가 중 준비 몫. 오가는 법 비중 초과(L2) 로트는 오더 원가 분석에서 전체 구성을 확인합니다. 표준에 남길 일 오더 정산과 차이 처리. |
| KSB1 | 코스트센터 개별 항목 | 이어받는 것 활동 원가풀을 이루는 전표 라인. 대사 지점 작업장 원가풀 합계와 연결된 코스트센터 개별 항목 합계. 오가는 법 미배부 차이(W1)가 걸린 작업장 · 월은 KSB1에서 해당 코스트센터 전표를 열어 증가 항목을 찾습니다. 표준에 남길 일 전표 상세 조회와 증빙 확인. |
| KP26 | 활동유형 계획 단가 변경 | 이어받는 것 활동유형별 계획 단가. 대사 지점 로트에 적용된 활동단가. 오가는 법 단가가 달라 보이면 KP26에서 유효 기간과 단가를 확인합니다. 표준에 남길 일 단가 계획과 변경. |
| KB21N | 활동 배부 입력 | 이어받는 것 활동 수량 배부 내역. 대사 지점 로트 배부액과 배부된 활동 수량. 오가는 법 배부액이 작업장 원가풀과 다르면 KB21N에서 배부 내역을 확인합니다. 표준에 남길 일 배부 입력과 정정. |
| CR03 | 작업장 표시 | 이어받는 것 작업장의 용량 · 코스트센터 · 활동유형 할당. 대사 지점 화면의 작업장과 코스트센터가 마스터와 같은지. 오가는 법 활동단가가 이상한 작업장은 CR03에서 활동유형 할당을 확인합니다. 표준에 남길 일 작업장 마스터 유지. |
| CA03 | 라우팅 표시 | 이어받는 것 공정의 표준 준비시간. 대사 지점 화면의 표준 준비시간이 라우팅 값과 같은지. 오가는 법 표준 대비 차이가 큰 품목은 CA03에서 표준 값이 현실과 맞는지 먼저 봅니다. 표준에 남길 일 라우팅 유지와 표준 값 개정. |
S/4HANA 분석 스택과의 자리
S/4HANA에서는 CDS 뷰 위에 분석 쿼리를 만들고, Fiori 분석 앱이나 Analysis for Office로 읽는 구성이 일반적입니다. 이 앱은 그 구성과 경쟁하지 않고 같은 CDS 뷰를 OData 서비스로 노출하는 자리에 놓입니다. 분석 쿼리는 임의로 축을 바꿔 보는 데 좋고, 이 화면은 정해진 판정 기준으로 표준에서 벗어난 로트 · 품목만 골라 보여 주는 데 맞춰 둔 것입니다. 같은 시간 · 원가 뷰를 공유하므로 두 화면의 숫자는 갈라지지 않습니다.
확장 포인트 — 운영에서 실제로 손대는 자리
| 자리 | 고객사가 정하는 것 | 손대는 방법 |
|---|---|---|
| 활동단가 기준 | 작업장별 활동유형과 단가, 유효기간 | 기준 테이블 한 곳에 행을 추가합니다. 화면 코드는 바꾸지 않습니다 |
| 준비시간 확정 구분 | 확정 단계에서 준비와 가공을 어떻게 나눌지 | 로트 뷰의 준비 시간 산출 자리 한 곳에서 정합니다 (확인 필요) |
| 준비 소모자재 원천 | 준비용 소모자재를 어떤 예약 · 소비로 볼지 | 로트 뷰의 소모자재 산출 자리만 바꿉니다 (확인 필요) |
| 품목별 비중 한도 | 품목 특성별 준비원가 비중 한도 | 기준표 값을 바꿉니다. 코드에 박지 않았습니다 |
| 판정 기준 값 | 시간 초과 120%, 비중 15%, 차이율 12%, 미배부 3%, 월 비중 7% | 기준표 값을 바꿉니다 |
| 권한 | 누가 어느 플랜트 · 작업장을 볼 수 있는지 | CDS 접근 제어(DCL)에서 표준 권한 객체로 겁니다 |
| 데이터 | 원천 테이블 (예시, 확인 필요) | 비고 |
|---|---|---|
| 오더 마스터 · 헤더 | AUFK · AFKO | 로트 번호와 품목, 로트수량 |
| 오더 확정 | AFRU | 준비 구분 확정 시간은 확정 방식에 따라 다름 |
| 라우팅 공정 | PLPO · MAPL | 표준 준비시간 |
| 작업장 헤더 · 코스트센터 할당 | CRHD · CRCO | |
| 활동 원가풀 | COSS · COSP | 원가풀 집계 방식은 고객사 확인 |
| 준비용 소모자재 | RESB 등 | 원천 확인 필요 |
분석 지표 정의표
이 화면은 회계 기준서의 요구사항을 점검하는 도구가 아니라 제조원가 지표를 점검하는 도구이므로, 요구사항 매핑표 대신 지표 정의표를 둡니다.
| 기준서 · 대상 영역 | 지표 | 대응 기능 | 산출식 | 비고 |
|---|---|---|---|---|
| - · 제조원가 | 준비원가 | 로트별 점검 탭 | 준비 활동원가 + 소모자재비 | 원천 확인 필요 |
| - · 제조원가 | 준비원가 차이 | 로트 · 품목 탭 | 준비원가 − 표준 준비원가 | 음수는 표준보다 적음 |
| - · 제조원가 | 단위 준비원가 | 로트 · 품목 탭 | 준비원가 ÷ 로트수량 | 로트가 작을수록 커짐 |
| - · 제조원가 | 준비원가 비중 | 모든 탭 | 준비원가 ÷ 로트원가 × 100 | 점검 기준은 로트 15%, 월 7%, 품목은 한도 |
| - · 제조원가 | 미배부 차이 | 작업장별 집계 탭 | 활동 원가풀 − 로트 배부액 | 원가풀의 3% 초과 시 점검 필요 |
CDS 구성
아래는 이 화면이 읽는 값을 S/4HANA의 CDS 뷰로 세울 때의 구성 예시입니다. 객체 이름과 필드는 이 글에서 새로 지은 것이고, 표준 테이블(CRHD · CRCO · AFKO · AFRU)과 표준 필드 이름만 실재하는 것을 썼습니다. 준비 구분 확정과 준비용 소모자재의 원천은 회사마다 달라 확인 필요입니다.
뷰 레이어 구성
| 레이어 | 뷰 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 기준 | 활동단가 기준 테이블 | 작업장별 활동단가 · 유효시작일 · 점검 기준을 들고 있습니다 | 단가와 점검 기준을 코드가 아니라 데이터로 고칩니다 |
| 기초 | 작업장 차원 뷰 · 로트 뷰 | 작업장 마스터를 한 번만 조인하고, 확정 시간과 소모자재를 로트 한 줄 단위로 모읍니다 | 원천이 달라도 한 모양으로 맞춰 위쪽 뷰가 원천을 모르게 합니다 |
| 큐브 | 준비원가 큐브 | 준비 활동원가와 준비원가를 계산합니다 | 계산을 한 곳에 두어 화면 · CSV · 분석 쿼리가 같은 숫자를 씁니다 |
| 소비 | 준비원가 점검 쿼리 | UI 주석과 필터 정의를 붙여 서비스로 내보냅니다 | 화면 전용 필드를 큐브에서 떼어 둡니다 |
| 권한 | 접근 제어(DCL) | 플랜트 권한을 겁니다 | 집계 단계에서 걸어야 합계로 새지 않습니다 |
| 서비스 | 서비스 정의 · 바인딩 | OData V2로 게시합니다 | 화면이 부르는 주소가 서비스 한 곳으로 모입니다 |
① 활동단가 기준 테이블 — 작업장별 활동단가와 점검 기준
활동단가와 점검 기준은 작업장마다, 기간마다 다르므로 코드가 아니라 기준 테이블에 둡니다. 이 테이블이 비어 있으면 준비 활동원가가 0 으로 집계되므로 운영에서 가장 먼저 채워야 하는 자리입니다.
" ───────────────────────────────────────────────
" 준비원가 활동단가 기준 — 작업장 · 유효시작일 단위
" 단가와 점검 기준을 코드에 두지 않고 기간별로 관리하기 위해 나눈다
" ───────────────────────────────────────────────
@EndUserText.label : '준비원가 활동단가 기준'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
define table zsetup_rate {
key client : abap.clnt not null;
key werks : werks_d not null;
key arbpl : arbpl not null;
key valid_from : datum not null;
act_rate : abap.curr(11,0);
waers : waers;
tol_hours_pct : abap.dec(5,2); " 준비시간 허용 초과율(%)
share_lim_pct : abap.dec(5,2); " 로트 준비원가 비중 점검 기준(%)
}
② 차원 뷰 — 작업장
작업장 이름과 코스트센터를 한 곳에서만 읽게 합니다. 작업장 체계가 바뀌어도 이 뷰만 고치면 모든 탭이 같이 따라옵니다.
" ───────────────────────────────────────────────
" ZI_SetupWorkCenter — 작업장 차원
" 작업장 마스터(CRHD)와 코스트센터 할당(CRCO)을 한 번만 조인한다
" 위쪽 뷰가 작업장 이름과 코스트센터를 각자 읽지 않게 하려는 것이다
" ───────────────────────────────────────────────
@AccessControl.authorizationCheck : #NOT_REQUIRED
@EndUserText.label : '준비원가 — 작업장 차원'
@ObjectModel.representativeKey : 'WorkCenter'
define view entity ZI_SetupWorkCenter
as select from crhd as wc
inner join crco as co on co.objty = wc.objty and co.objid = wc.objid
{
key wc.werks as Plant,
key wc.arbpl as WorkCenter,
wc.verwe as Category,
co.kostl as CostCenter,
co.lstar as ActivityType
}
③ 로트 뷰 — 준비시간과 소모자재를 로트 한 줄로
이 글에서 가장 회사마다 달라지는 자리입니다. 오더 확정에서 준비를 어떻게 구분하는지, 준비용 소모자재를 어떤 소비로 볼지가 여기서 정해지며, 두 값 모두 확인 필요로 남겼습니다.
" ───────────────────────────────────────────────
" ZI_SetupLot — 로트(생산오더) 단위 준비시간과 소모자재
" 원천: 오더 헤더(AFKO) · 오더 확정(AFRU) · 예약(RESB)
" 준비 구분 확정 시간과 준비용 소모자재의 구분 방식은 회사마다 달라 확인 필요
" ───────────────────────────────────────────────
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '준비원가 — 로트'
define view entity ZI_SetupLot
as select from afko as hd
inner join aufk as ak on ak.aufnr = hd.aufnr
{
key hd.aufnr as OrderNo,
ak.werks as Plant,
hd.plnbez as Material,
hd.gamng as LotQty,
" 준비 구분 확정 시간(AFRU) 합계 — 확인 필요
cast(0 as abap.dec(9,1)) as ActHours,
" 준비용 소모자재 소비 금액(RESB 등) — 확인 필요
cast(0 as abap.curr(15,0)) as SetupMat
}
④ 큐브 뷰 — 시간 → 원가 계산을 한 곳에서
시간에 단가를 곱하는 계산은 이 뷰에서만 합니다. 화면과 CSV, 분석 쿼리가 같은 큐브를 쓰기 때문에 숫자가 갈라지지 않습니다.
" ───────────────────────────────────────────────
" ZI_SetupCostCube — 로트 · 월 큐브
" 이 뷰에서만 시간 → 원가 계산을 한다 (식을 한 곳에 모으기 위해)
" ───────────────────────────────────────────────
@Analytics.dataCategory : #CUBE
@EndUserText.label : '준비원가 큐브'
define view entity ZI_SetupCostCube
as select from ZI_SetupLot as lt
association [0..1] to zsetup_rate as _Rate
on _Rate.werks = lt.Plant
{
key lt.OrderNo,
key lt.Plant,
@Aggregation.default : #SUM
lt.ActHours,
@Semantics.amount.currencyCode : 'Currency'
cast(lt.ActHours * _Rate.act_rate as abap.curr(15,0)) as SetupLabor,
@Semantics.amount.currencyCode : 'Currency'
cast(lt.ActHours * _Rate.act_rate + lt.SetupMat as abap.curr(15,0)) as SetupCost,
_Rate.waers as Currency,
lt.LotQty
}
⑤ 쿼리 뷰 — 화면이 바라보는 점검 쿼리
플랜트는 필수 필터로 두어 한 번에 전체 플랜트를 읽지 못하게 합니다. 화면에서 쓰는 열과 정렬 위치도 여기서 정합니다.
" ───────────────────────────────────────────────
" ZC_SetupCostQuery — 점검 쿼리
" ───────────────────────────────────────────────
@Analytics.query : true
@EndUserText.label : '준비(셋업) 원가 점검'
@UI.headerInfo : { typeName : '로트', typeNamePlural : '로트' }
define view entity ZC_SetupCostQuery
as select from ZI_SetupCostCube
{
@Consumption.filter : { selectionType : #SINGLE, mandatory : true }
key Plant,
@UI.lineItem : [{ position : 10 }]
key OrderNo,
@UI.lineItem : [{ position : 20, criticality : 'CheckCrit' }]
ActHours,
@UI.lineItem : [{ position : 30 }]
SetupCost,
@AnalyticsDetails.query.axis : #COLUMNS
LotQty
}
⑥ 권한 — 플랜트 단위 접근 제어
준비원가는 활동단가와 로트 원가가 함께 드러나므로 플랜트 단위로 접근을 나눕니다. 권한 오브젝트와 값은 회사의 권한 설계에 맞춰 정합니다.
" ───────────────────────────────────────────────
" 플랜트 단위 접근 제어
" ───────────────────────────────────────────────
@EndUserText.label : '준비원가 — 플랜트 권한'
@MappingRole : true
define role ZC_SETUPCOSTQUERY {
grant select on ZC_SetupCostQuery
where ( Plant ) = aspect pfcg_auth( C_AFKO_WRK, WERKS, ACTVT = '03' );
}
⑦ 서비스 정의와 바인딩
화면은 서비스 정의에 올린 쿼리만 바라봅니다. 운영에서는 이 서비스를 게시하고 manifest 의 서비스 주소만 교체합니다. 서비스 활성화는 서비스 바인딩에서 게시합니다.
" ───────────────────────────────────────────────
" 서비스 정의 — 점검 쿼리와 작업장 차원 노출
" ───────────────────────────────────────────────
@EndUserText.label : '준비(셋업) 원가 점검 서비스'
define service ZUI_SetupCost {
expose ZC_SetupCostQuery as LotSet;
expose ZI_SetupWorkCenter as WorkCenterSet;
}
운영 시점에 해야 할 일
아래 아홉 가지는 코딩이 아니라 합의입니다. 개발보다 정하는 일이 많고, 합의가 끝나기 전에는 화면이 올라가도 숫자가 믿을 만해지지 않습니다.
| 할 일 | 무엇을 정하나 | 정하지 않으면 | 누가 |
|---|---|---|---|
| 활동단가 기준 | 작업장별 활동유형과 단가, 유효기간 | 준비 활동원가가 0 으로 집계되어 점검 결과가 의미를 잃음 | 원가회계 담당 |
| 준비시간 확정 구분 | 확정 단계에서 준비와 가공을 나누는 방식 | 준비시간이 가공시간과 섞여 표준과 비교가 안 됨 | 생산관리 |
| 준비 소모자재 원천 | 준비용 소모자재를 잡는 예약 · 소비 기준 | 소모자재비가 빠지거나 이중으로 잡힘 | 원가회계 · 자재 공동 |
| 품목별 비중 한도 | 품목 특성별 준비원가 비중 한도 | 모든 품목이 같은 기준으로 판정되어 점검 필요 건수가 왜곡됨 | 생산 · 원가 공동 |
| 표준 준비시간 | 라우팅의 표준 준비시간 갱신 주기 | 표준이 낡아 점검 필요가 대량으로 걸림 | 생산기술 |
| 권한 설계 | 플랜트 · 작업장 단위 조회 권한 | 타 플랜트의 단가와 로트 원가가 보임 | 보안 담당 |
| 대사 체계 | 표준 코스트센터 보고서와 맞출 항목 · 주기 | 월마감에서 두 화면 숫자가 다를 때 설명할 근거가 없음 | 원가회계 담당 |
| 전송 순서 | 기준 테이블 → 차원 → 로트 → 큐브 → 쿼리 → 권한 → 서비스 | 의존 객체가 없어 활성화가 실패함 | IT |
| 서비스 게시 | 서비스 바인딩 게시와 manifest 서비스 주소 교체 | 화면이 개발용 서비스를 계속 바라봄 | IT |
운영 데이터로 갈 때
운영에서는 로트가 월 수천 건, 연 수만 건이 될 수 있습니다. 화면이 전체를 받아 계산하지 않도록 조회 조건을 서비스로 보내 필요한 만큼만 받게 만들었고, 집계는 큐브 뷰에서 합니다. 회계연도와 플랜트를 사실상 필수로 쓰고, 기간 조건을 함께 걸어 읽는 범위를 줄이는 것이 좋습니다. 응답 시간 기준은 회사의 데이터 규모에 맞춰 정하고, 원천 테이블의 인덱스 상태는 확인 필요입니다.
자주 묻는 질문
도입 상담과 데모에서 자주 받는 질문을 네 묶음으로 정리했습니다.
숫자와 산식
이 화면은 무엇을 점검하나요?
로트마다 설비를 바꾸는 데 든 시간과 소모자재를 원가로 바꾸어 표준과 견줘 보는 화면입니다. 준비시간이 표준을 크게 넘은 로트, 로트가 작아 준비원가 비중이 커진 로트와 품목, 작업장 활동 원가풀과 로트 배부액이 어긋난 달을 점검 필요로 표시합니다. 원인을 단정하지는 않고 확인할 후보만 알려 줍니다.
준비원가는 어떻게 계산하나요?
실적 준비시간에 작업장 활동단가를 곱해 준비 활동원가를 만들고, 여기에 준비 소모자재비를 더합니다. 이 자료의 206개 로트 합계는 준비 활동원가 4,661만 원과 소모자재비 1,665만 원을 합친 6,326만 원입니다. 이 관계가 대사식 R01, R02 이며 대사 결과 탭에서 매번 전수로 검산됩니다.
준비원가 비중은 무엇이고 왜 보나요?
준비원가를 로트원가(준비원가와 가공원가의 합)로 나눈 비율입니다. 같은 준비원가라도 로트가 작으면 개당 부담이 커지므로, 비중이 크게 나오면 로트 크기를 살펴보라는 신호가 됩니다. 이 자료의 전체 비중은 6.99%이고, 점검 필요로 걸린 로트만 모으면 11.84%입니다.
표준 준비원가는 어디서 오나요?
라우팅에 적힌 표준 준비시간에 같은 활동단가를 곱하고 같은 소모자재비를 더한 값입니다. 화면은 이 값을 칸으로 보여 주고 실적 준비원가와의 차이를 같이 보여 줍니다. 표준 준비시간 자체는 회사가 정하는 값이며 이 화면이 대신 정해 주지 않습니다(원천 확인 필요).
준비원가 차이가 플러스면 문제인가요?
표준보다 준비에 더 들었다는 뜻일 뿐 곧바로 문제는 아닙니다. 이 자료의 합계 차이는 +1.8백만 원으로 표준 61.4백만 원 대비 크지 않습니다. 합계는 로트마다의 플러스와 마이너스가 상쇄되므로 판단은 로트와 품목 행에서 하시는 것이 좋습니다.
샘플 화면의 숫자는 실제 회사 값인가요?
아닙니다. 가상의 작업장 6곳과 가상의 품목 8종, 가상의 단가로 만든 검증용 샘플 데이터이며 실제 고객사의 값이 아닙니다. 산식과 판정이 의도대로 맞는지 보여 주기 위한 용도입니다.
화면과 조작
조회 조건은 무엇이 있나요?
회계연도(필수), 전기 월 시작·종료, 작업장, 품목, 점검 결과입니다. 선택 항목을 전체로 두면 해당 조건을 서비스에 보내지 않고 모든 값을 조회합니다. 조회 버튼은 조회 조건 오른쪽 끝에 있고, 회계연도 입력 칸에서 Enter 키를 눌러도 조회됩니다.
행을 누르면 무엇이 열리나요?
로트 행을 누르면 그 로트의 준비 활동원가, 소모자재비, 표준 대비 차이, 점검 내용과 같은 품목의 다른 로트가 한 창에 열립니다. 품목·작업장·월 행을 눌러도 같은 모양의 창이 열려 해당 월의 로트 명세를 볼 수 있습니다.
CSV 로 내려받을 수 있나요?
네. 현재 열려 있는 탭의 조회 결과를 UTF-8 CSV 로 내려받습니다. 엑셀에서 한글이 깨지지 않도록 처리되어 있고, 파일 이름은 기능명과 탭 이름으로 붙습니다. 이 자료의 로트별 점검 탭은 206건이 내려옵니다.
서비스에 연결되지 않으면 어떻게 되나요?
빈 화면이나 콘솔 메시지로 두지 않고, 서비스 정의를 불러오지 못했는지, 요청이 실패했는지를 구분해 안내 창을 띄웁니다. 조회는 성공했지만 결과가 없으면 조건에 맞는 로트가 없다는 안내가 나옵니다.
좁은 화면에서도 쓸 수 있나요?
표는 가로로 스크롤되고, 조회 조건은 줄바꿈되어 배치됩니다. 데스크톱 화면을 기준으로 설계했으며 태블릿에서도 사용할 수 있습니다.
회계연도를 바꾸면 어떻게 되나요?
조회할 때마다 회계연도 조건이 서비스로 전달되어 해당 연도의 데이터만 읽습니다. 샘플에는 2026년 자료만 있어서 다른 연도를 넣으면 결과 없음 안내가 나옵니다.
점검 기능
점검 필요는 어떤 기준으로 표시되나요?
로트에는 실적 준비시간이 표준의 120%를 넘는 경우, 준비원가 비중이 15%를 넘는 경우, 둘 다에 해당하는 경우 세 가지를 씁니다. 품목·월에는 비중이 품목별 한도를 넘는 경우와 표준 대비 준비원가 차이율이 12%를 넘는 경우, 작업장·월에는 활동 원가풀 대비 미배부 차이가 3%를 넘는 경우, 월에는 준비원가 비중이 7%를 넘는 경우를 씁니다.
점검 필요가 나오면 곧바로 문제가 있다는 뜻인가요?
아닙니다. 확인해 볼 만한 후보를 골라낸 것입니다. 신제품 시험 생산이나 설비 교체 직후처럼 정당한 사유가 있을 수 있고, 최종 판단은 회사가 합니다.
대사 결과 탭은 무엇을 보여 주나요?
아홉 가지 정합성 식의 검사 건수, 차이 건수, 최대 차이를 보여 줍니다. 차이 건수가 0 이어야 시간과 원가의 계산이 서로 맞는 것입니다. 0 이 아니면 해당 행의 대사식을 보고 어느 단계에서 어긋나는지 따라가시면 됩니다.
작업장 원가풀과 로트 배부액이 다르면 무엇을 보나요?
작업장별 집계 탭의 미배부 차이를 봅니다. 활동 원가풀은 로트 배부액과 미배부 차이의 합이어야 하고, 차이가 원가풀의 3%를 넘으면 점검 필요로 표시합니다. 이 자료에서는 조립 라인 2월과 사출 성형기 4월이 여기에 걸리며, 코스트센터 전기 내역과 확정 시간을 먼저 확인하시기를 권합니다.
로트 크기는 어떻게 점검하나요?
품목별 집계 탭에 평균 로트수량과 기준 로트수량을 나란히 둡니다. 기준 로트수량은 품목별 비중 한도를 지키려면 필요한 로트 크기이고, 평균이 이보다 작으면 로트를 합쳐 생산할 수 있는지 검토해 볼 만합니다. 이 자료에서는 모터 하우징과 커넥터 케이스가 여섯 달 모두 한도를 넘었습니다.
월별 추이는 어떻게 읽나요?
월마다 준비원가 비중과 점검 필요 로트 수를 보여 줍니다. 비중이 7%를 넘는 달은 점검 필요로 표시되며, 이 자료에서는 1월, 4월, 5월입니다. 특정 월이 튀면 그 달 행을 눌러 로트 명세를 열고 어느 작업장과 품목에서 늘었는지 따라갑니다.
도입과 운영
SAP 표준 화면과 무엇이 다른가요?
표준 화면은 오더 원가, 코스트센터 개별 항목, 작업장 마스터를 각각 보여 줍니다. 이 화면은 같은 데이터를 로트 한 줄로 모아 준비시간을 원가로 바꾸고 표준, 로트 크기, 원가풀과의 관계까지 함께 보여 주는 조회·점검 관점을 더합니다. 표준 실행은 SAP 표준 T-code 가 담당합니다.
기존 표준 보고서를 없애야 하나요?
아닙니다. 표준 보고서는 감사와 법정 대응의 근거로 남겨 두고, 이 화면은 월마감 전에 준비원가가 이상한 로트와 품목을 먼저 골라내는 용도로 씁니다. 두 화면의 숫자를 맞춰 보는 지점은 활동 원가풀과 코스트센터 전기 내역입니다.
운영 데이터로 연결하려면 무엇이 필요한가요?
활동단가 기준 테이블, 준비시간 확정 구분, 준비용 소모자재 원천, 권한 설계, 서비스 게시가 필요합니다. 화면의 manifest 에 선언된 서비스 주소만 운영 서비스로 바꾸면 화면 코드는 그대로 쓸 수 있습니다. 소요 기간은 준비 구분 확정이 얼마나 정리되어 있는지에 크게 좌우되며 일반화해서 말하기는 어렵습니다(확인 필요).
준비시간 확정이 따로 구분되어 있지 않으면 쓸 수 없나요?
준비시간을 가공시간과 나누어 확정하는 일이 선행되어야 합니다. 구분이 없다면 이 화면은 준비 활동원가를 만들 수 없으므로, 먼저 확정 단계에서 준비를 구분하는 절차부터 정하셔야 합니다. 구분 방식은 회사마다 달라 확인 필요입니다.
권한은 어떻게 나누나요?
플랜트 단위로 조회 권한을 나누는 것을 기본으로 합니다. 활동단가와 로트 원가가 함께 드러나므로 필요한 사람에게만 열어 두는 것이 좋습니다. 권한 오브젝트와 값은 회사 권한 설계에 맞춰 정합니다.
대용량 데이터에서도 빠른가요?
운영 데이터에서는 로트가 월 수천 건이 될 수 있어, 화면이 전체를 받아 계산하지 않고 조회 조건을 서비스에 보내 필요한 만큼만 받도록 만들었습니다. 회계연도와 기간을 필수에 가깝게 쓰고, 큐브 뷰에서 집계하도록 두는 것이 좋습니다.
작업장이나 품목 체계가 바뀌면 어떻게 하나요?
작업장과 활동단가는 기준 테이블과 차원 뷰에서 읽으므로 코드를 고치지 않고 기준만 바꾸면 됩니다. 이름이 바뀐 작업장은 차원 뷰에서 한 번에 반영되고, 품목 한도 같은 판정 기준 값은 기준표에서 바꿉니다.
이 화면의 결과를 감사 자료로 써도 되나요?
이 화면은 점검 도구이며 최종 판단은 회사와 감사인이 합니다. 화면의 점검 필요는 확인할 후보를 알려 주는 것이지 원가 처리를 정해 주는 것이 아닙니다. 감사 대응은 표준 보고서와 원장을 근거로 하시기 바랍니다.
적용 시기나 대상 범위에 정해진 것이 있나요?
이 화면은 특정 기준서 요구사항을 점검하는 것이 아니라 제조원가 영역의 내부 관리 점검 도구이므로 정해진 적용 시기는 없습니다. 도입 범위는 회사가 정합니다.
여러 플랜트를 한 번에 볼 수 있나요?
샘플은 한 플랜트를 가정했습니다. 운영에서는 플랜트를 조회 조건으로 추가하고 큐브 뷰의 키에 플랜트가 이미 들어 있으므로 서비스 쪽 변경은 크지 않습니다(확인 필요).