라우팅 공정원가 점검 — 제조원가, 표준시간과 활동단가로 공정 가공비를 다시 계산해 원가계산 반영액과 견주고 변경 뒤 재계산이 빠진 공정을 찾는 월마감 화면
공정별 준비·기계·노무 원가 · 원가계산 반영액과의 차이율 · 변경 뒤 미재계산 · 작업장 활동단가 · 대사식 — 소개 영상과 실제 화면 8종, 그리고 CDS 코드까지
소개 영상48초9개 장면음성 안내 · 자막표지 → 처음 열었을 때 → 조건 조회 → 제품 집계 → 작업장 단가 → 월별 추이 → 점검 필요 → 행 상세 → 대사 결과
개발 배경 — 이 앱을 사용해야 하는 이유
매월 말, 원가 담당자는 같은 질문을 받습니다. “가공비가 왜 계획보다 올랐나, 단가가 바뀐 건가 시간이 바뀐 건가, 그 변경이 원가계산에 반영되기는 했나.” 라우팅에는 공정마다 표준시간이 있고 작업장에는 활동단가가 있어서 둘을 곱하면 공정 원가가 나옵니다. 그런데 원가 추정을 한 번 돌린 뒤에 단가나 시간이 바뀌면 그 변경이 반영액에 들어갔는지 화면 하나로는 알 수 없습니다.
이 앱은 그 맞춤 작업을 한 화면에 올립니다. 공정마다 준비·기계·노무 시간에 작업장 활동단가를 곱해 공정 원가를 다시 계산하고, 원가계산 반영액과의 차이·차이율을 구한 뒤, 단가·시간이 원가계산일 뒤에 바뀐 공정을 변경일로 가려냅니다. 이 영역은 특정 회계기준서가 아니라 제조원가 분석(라우팅 공정원가)이며, 표준 실행은 SAP 표준 T-code 가 담당하고 이 화면은 조회·검증 관점을 더해 확장합니다.
라우팅도 단가도 표준에 있는데 비교는 따로 해야 한다
표준 화면은 라우팅의 공정과 시간, 작업장과 원가센터의 연결, 활동 유형의 계획 단가, 원가 추정 결과를 각각 보여 줍니다. 네 화면의 숫자를 한 줄에 놓고 비교하려면 결국 엑셀에 옮겨 곱셈을 다시 해야 합니다. 이 표본에서는 213개 공정 라인이 그렇게 모입니다.
합계에서는 변경 이력이 묻힌다
6개월 합계로 보면 원가계산 반영 월액 127.8백만 원, 라우팅 계산 월액 129.8백만 원으로 차이는 +2.0백만 원, 비율로는 약 1.6% 입니다. 이 숫자만 보면 작은 차이로 읽히지만 공정 단위로 내려가면 55건이 점검 필요이고, 대부분이 2월 이후 도장·CNC 가공·용접·조립 작업장의 단가 변경에서 나옵니다. 평균 뒤에 숨은 변경을 공정 한 줄씩 드러내는 것이 이 앱의 첫 일입니다.
시간이 비었거나 단가가 빠진 공정은 조용히 0 이 된다
표준시간을 입력하지 않았거나 해당 월 활동단가가 등록되지 않으면 공정 원가가 0 에 가깝게 나오지만 어느 화면에서도 경고가 뜨지 않습니다. 이 표본에서는 포장 공정 표준시간 0 이 3건, 열처리 작업장 6월 단가 미등록이 3건 있고, 두 경우 모두 별도 판정 코드(NOTIME·NORATE)로 맨 먼저 걸립니다.
변경 뒤 재계산 여부는 날짜로 찾아야 한다
단가나 시간이 바뀐 날이 제품의 원가계산일보다 늦으면 그 변경은 반영액에 들어가지 못했을 가능성이 있습니다. 이 표본에서 그런 공정이 49건(RATE 35 · BOTH 10 · TIME 1 · OUT 3)이며, 차이율이 한도 0.5% 를 넘을 때만 점검 필요로 올려 불필요한 경고를 줄였습니다. 판정은 “점검 필요”와 “정상” 두 가지뿐이고, 재계산이 필요한지는 담당자가 확인합니다.
조회만 되는 리포트는 금방 안 열린다
숫자만 보여 주고 끝나는 리포트는 이상한 숫자를 만나는 순간 멈춥니다. 이 앱은 월 → 제품 → 작업장 → 공정 한 줄로 내려가고, 행을 누르면 계산 내역이 열리며, 조회 결과를 CSV 로 내려받을 수 있습니다.
사용 방법
- 조회조건 입력 — 회계연도(필수, 4자리)를 확인하고 필요하면 전기 월 시작·종료, 작업장, 제품, 점검 결과를 고릅니다. 비워 두면 전체입니다.
- 조회 — 입력 줄 오른쪽 끝의 조회 버튼을 누르거나 입력 칸에서 Enter 를 누릅니다. 화면을 처음 열 때 한 번 자동으로 조회됩니다.
- 요약 숫자 확인 — 위쪽 타일에서 반영 월액, 계산 월액, 월액 차이, 점검 필요 공정·제품, 변경 뒤 재계산 확인 공정, 대사 차이 건수를 봅니다.
- 탭 이동 — 공정 명세 → 제품별 집계 → 작업장 활동단가 → 월별 추이 → 대사 결과 순으로 근거에서 넓은 범위까지 오갑니다.
- 행 클릭 상세 — 표의 행을 누르면 같은 제품·월의 공정 목록이 상세 창으로 열립니다.
- 내보내기 — 현재 탭의 조회 결과를 UTF-8 CSV 로 내려받습니다.
숫자를 믿을 수 있는가 — 검증 결과
화면이 보여 주는 숫자가 서로 맞는지는 화면 안의 대사 결과 탭에서 검산합니다. 여섯 가지 식을 총 486건 검사해 차이 0건이었습니다. 이 검산은 화면과 별도로 원천 값에서 다시 계산해 화면 숫자와 대조한 결과이기도 합니다.
| 번호 | 대사식 | 검사 건수 | 차이 건수 |
|---|---|---|---|
| R01 | 공정 원가 = 준비 + 기계 + 노무 | 213 | 0 |
| R02 | 반영액 + 차이 = 계산액 | 213 | 0 |
| R03 | 제품 단위 가공비 = 공정 원가 합 | 42 | 0 |
| R04 | 작업장 활동원가 합 = 제품 월 공정원가 합 | 6 | 0 |
| R05 | 월 합계 = 제품 합계 | 6 | 0 |
| R06 | 반영 월액 + 차이 = 계산 월액 | 6 | 0 |
| 의도적 예외(점검 필요) | 건수 | 내용 |
|---|---|---|
| 표준시간이 모두 0 인 공정 | 3 | 방열 프레임 포장 공정 4~6월 — 라우팅 입력 확인 필요 |
| 활동단가 미등록 공정 | 3 | 열처리 작업장 6월 — 단가 확인 필요 |
| 변경 뒤 재계산 확인 공정 | 49 | 활동단가·표준시간·외주 단가 변경일이 원가계산일보다 늦음 |
대사 결과 탭의 E01·E02 는 위 예외 행을 별도로 보여 주며, 대사 차이 건수 0 과 섞이지 않게 구분합니다.
무엇으로 만들었나
| 자리 | 무엇 | 왜 그렇게 두었나 |
|---|---|---|
| 화면 컨트롤 | SAP Horizon 테마 · 조회조건 줄 · 요약 타일 · 탭 · 스크롤 표 · 상세 창 | 표준 Fiori 와 같은 모양이어서 화면 사용법을 따로 익힐 필요가 없습니다. |
| 집계·판정 로직 | 서비스 쪽에서 날짜 조건 조회와 펑션을 처리하고, 화면은 조회 결과를 그대로 보여 줍니다 | 판정 기준을 한 곳에 두어 화면과 서비스의 숫자가 갈라지지 않게 했습니다. |
| 데이터 연동 | OData V2 서비스 하나에 다섯 종류의 집합(공정·제품·작업장·월·대사)과 월별 차이율 펑션 하나를 둠 | 운영에서는 서비스 주소만 바꾸면 같은 화면이 실제 데이터에 붙습니다. |
| 테마 | sap_horizon | SAP 표준 화면과 같은 시각 언어를 씁니다. |
| 앱 정보 | |
|---|---|
| 업무 영역 | 관리회계 — 제조원가 분석(라우팅 공정원가) |
| 관련 기준서·대상 영역 | 관련 기준서 없음 · 대상 영역 제조원가 |
| 표준 T-code | CA03 · CR03 · KP26 · CK11N · CK13N · CK24 · KKBC_ORD |
| 화면 성격 | 조회·점검 (최종 판단은 회사와 감사인) |
실행 화면
아래 화면은 가상의 제조 회사(제품 8종 · 작업장 10곳 · 2026년 1~6월)와 가상의 단가로 만든 검증용 샘플 데이터를 실제 브라우저에서 띄운 것입니다. 실제 고객사의 라우팅·단가·원가계산 결과는 쓰지 않았습니다.
처음 열었을 때와 조건 조회
처음 열면 한 번 자동 조회되고, 조건을 바꿔 다시 조회하는 흐름입니다.

위쪽에는 회계연도·전기 월·작업장·제품·점검 결과 다섯 조회조건이 있고, 그 아래 요약 타일에서 원가계산 반영 월액 127.8백만 원, 라우팅 계산 월액 129.8백만 원, 월액 차이 +2.0백만 원, 점검 필요 공정 55건·제품 29건을 먼저 읽습니다. 표 위의 탭 6개로 근거에서 넓은 범위까지 오갑니다. 처음 열 때 한 번 자동으로 조회됩니다.

조건을 바꾸면 요약 숫자와 표가 같은 조건으로 다시 계산됩니다. 조회 버튼은 입력 줄의 가장 오른쪽에 있고 입력 칸에서 Enter 를 눌러도 같습니다. 비워 둔 조건은 필터에 넣지 않아 전체로 읽습니다.
제품·작업장·월로 넓혀 보기
공정 한 줄에서 시작해 제품, 작업장, 월 단위로 범위를 넓혀 가며 같은 숫자를 다른 축에서 읽습니다.

1월 제품은 라우팅 가공비와 반영 가공비가 같아 차이율 0.00% 로 나옵니다. 2월부터는 도장·용접·조립 작업장의 단가가 바뀐 제품에서 +1.14%, +0.43%, +2.35% 처럼 차이가 생깁니다. 제품 한도 1.0% 를 넘은 행이 점검 필요로 표시되는 기준입니다.

작업장마다 준비·기계·노무 단가와 변경일이 월별로 보입니다. 변경일이 제품의 원가계산일보다 늦으면 그 달 공정이 원가에 덜 반영됐을 수 있다는 신호이므로, 뒤쪽 점검 컬럼과 함께 읽습니다. 열처리 작업장의 6월 단가 0 은 의도적으로 넣은 미등록 예외입니다.

여섯 달의 반영 월액과 계산 월액, 차이율, 점검 필요 공정 수가 한 줄씩 나옵니다. 단가 변경이 시작된 달부터 차이가 커지는 모양을 보면 어느 달에 재계산이 빠졌는지 가늠할 수 있습니다. 월 합계는 제품 합계와 같아야 하며 대사식이 그것을 확인합니다.
점검 필요만 모으고 근거까지 내려가기
점검 필요 공정만 걸러 낸 뒤 행을 눌러 계산 내역으로 내려갑니다.

점검 결과를 점검 필요로 고르고 조회한 화면입니다. 판정 코드가 공정마다 붙어 있어 활동단가가 바뀐 공정(RATE), 시간이 바뀐 공정(TIME), 둘 다 바뀐 공정(BOTH) 을 구분해서 볼 수 있습니다. 코드는 확인할 자리를 알려 줄 뿐 원인을 단정하지 않습니다.

행을 누르면 상세 창이 열려 그 행의 값과 같은 제품·월의 공정 목록을 보여 줍니다. 준비·기계·노무 원가가 어떻게 더해져 공정 원가가 됐는지 원 단위로 따라갈 수 있습니다. 창은 닫기 버튼이나 바깥 영역 클릭으로 닫습니다.
숫자가 서로 맞는지 — 대사 결과
화면 안에서 대사식으로 검산한 결과입니다.

대사식 R01~R06 은 모두 검사 건수 대비 차이 0건입니다. 아래의 E01·E02 는 일부러 넣은 예외 행(표준시간 0, 활동단가 미등록)이며 대사 차이 건수와 따로 셉니다. 이 구분이 있어야 대사 차이 0건이 예외를 가리지 않습니다.
화면 뒤에서 일어나는 일
조회 버튼을 누르면 화면은 조회조건을 필터로 바꿔 서비스에 요청하고, 돌아온 공정·제품·작업장·월·대사 결과를 탭마다 나눠 보여 줍니다. 요약 타일의 숫자도 같은 조건으로 따로 조회합니다. 공정 한 줄의 계산은 다음 순서입니다.
- 준비 원가(원/개) = 로트당 준비시간(h) ÷ 로트 크기 × 준비 활동단가(원/h)
- 기계 원가 = 개당 기계시간(h) × 기계 활동단가, 노무 원가 = 개당 노무시간(h) × 노무 활동단가 (각각 소수 둘째 자리 반올림)
- 공정 원가 = 준비 + 기계 + 노무. 외주 공정은 외주 단가를 그대로 씁니다.
- 차이(원/개) = 공정 원가 − 원가계산 반영액, 차이율(%) = 차이 ÷ 반영액 × 100
- 월 공정원가(원) = 공정 원가 × 월 계획수량(원 단위 반올림)
활동단가와 표준시간은 월말 기준일의 값을 쓰고, 반영액은 원가계산일 기준의 값으로 만든 금액입니다. 원가계산일 이전 달은 비교하지 않습니다. 비교 대상이 아닌 달에 차이를 만들지 않기 위해서입니다.
점검 판정 규칙
공정 라인은 아래 순서로 첫 번째 해당 조건의 코드를 답니다. 결과는 “점검 필요”와 “정상” 두 가지입니다.
| 코드 | 판정 조건 | 결과 상태 | 확인할 일 |
|---|---|---|---|
| NOTIME | 사내 공정인데 준비·기계·노무 시간이 모두 0 | 점검 필요 | 라우팅 공정의 표준시간 입력 확인 |
| NORATE | 해당 월 작업장 활동단가가 0(미등록) | 점검 필요 | 활동단가 계획과 작업장·원가센터 연결 확인 |
| BOTH | 차이율 절대값 0.5% 초과, 단가(또는 외주 단가)와 시간이 모두 원가계산일 뒤에 바뀜 | 점검 필요 | 원가 재계산 여부와 변경 이력 확인 |
| TIME | 차이율 절대값 0.5% 초과, 표준시간 변경일이 원가계산일보다 늦음 | 점검 필요 | 라우팅 변경 뒤 재계산 여부 확인 |
| OUT | 차이율 절대값 0.5% 초과, 외주 단가 변경일이 원가계산일보다 늦음 | 점검 필요 | 외주 단가 변경과 재계산 여부 확인 |
| RATE | 차이율 절대값 0.5% 초과, 활동단가 변경일이 원가계산일보다 늦음 | 점검 필요 | 활동단가 변경 뒤 재계산 여부 확인 |
| DIFF | 차이율 절대값 0.5% 초과인데 변경 이력으로 설명되지 않음 | 점검 필요 | 원가계산 입력 조건 확인 필요 |
| - | 위 조건에 해당하지 않음 | 정상 | 조치 없음 |
제품 집계는 점검 필요 공정이 있거나 제품 단위 차이율 절대값이 한도 1.0% 를 넘으면, 작업장 집계는 해당 월 단가가 미등록이거나 단가 변경 뒤 반영되지 않은 공정이 있으면, 월 집계는 그 달에 점검 필요 공정이 있으면 점검 필요가 됩니다. 허용 한도 0.5%·1.0% 는 회사 기준에 맞춰 바꾸는 값이며, 이 판정은 확인할 자리를 알려 주는 것이지 회계 처리를 단정하지 않습니다.
조회조건
| 조회조건 | 필수 여부 | 기본값 | 필터 대상 | 적용 탭 |
|---|---|---|---|---|
| 회계연도 | 필수 | 2026 | Gjahr eq | 전 탭 |
| 전기 월 시작·종료 | 선택 | 전체 | Period ge/le | 대사 결과를 뺀 전 탭 |
| 작업장 | 선택 | 전체 | WorkCtr eq | 공정 명세 · 작업장 활동단가 |
| 제품 | 선택 | 전체 | ProdCode eq | 공정 명세 · 제품별 집계 |
| 점검 결과 | 선택 | 전체 | CheckStatus eq | 대사 결과를 뺀 전 탭 |
결과 컬럼
| 컬럼 | 의미 | 산출식 |
|---|---|---|
| 공정 원가(원/개) | 시간 × 활동단가로 다시 계산한 공정 가공비 | 준비 + 기계 + 노무 |
| 반영액(원/개) | 원가계산에 반영된 공정별 활동비 | 원가 추정 결과 |
| 차이·차이율 | 재계산 값과 반영액의 차이 | 공정 원가 − 반영액, 차이 ÷ 반영액 × 100 |
| 월 공정원가(원) | 공정 원가에 월 계획수량을 곱한 월액 | 공정 원가 × 계획수량 |
| 활동단가 변경일 | 작업장 단가가 마지막으로 바뀐 날 | 변경 이력 |
| 점검 결과·코드 | 정상 또는 점검 필요와 판정 코드 | 판정 규칙 표 |
좁은 화면에서 달라지는 것
휴대폰 폭에서는 조회조건 필드가 한 줄씩 쌓이고 요약 타일이 두 열로 접히며, 표는 가로로 스크롤됩니다. 탭과 상세 창은 같은 방식으로 동작합니다.
파일 구성
index.html 앱 시작 페이지
Component.js · manifest.json 앱 구성과 서비스 모델 선언
controller/ 화면 동작(조회 · 필터 · 상세 · CSV)
view/ 메인 화면 · 상세 창
model/ 서식 · 오류 처리
odata/ OData V2 서비스(메타데이터 · 데이터 · 계산)
i18n/ 화면 문구
css/ 보조 스타일
SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 연계되는지
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 라우팅을 고치거나 원가 추정을 실행하는 일은 모두 표준에서 합니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | SAP 표준 | 표준 화면에서 아쉬운 자리 | 이 앱이 더하는 관점 |
|---|---|---|---|
| 라우팅 공정 순서·표준시간 | CA03 | 공정마다 열어 봐야 하고 원가 금액이 없습니다 | 공정 원가(원/개)를 한 줄에 둡니다 |
| 작업장과 원가센터 연결 | CR03 | 월별 단가와 연결해 보지 못합니다 | 작업장 × 월 활동단가를 둡니다 |
| 활동 유형 계획 단가 | KP26 | 변경일과 원가계산일 비교가 없습니다 | 단가 변경일을 공정 점검에 씁니다 |
| 원가 추정 실행 | CK11N | 실행 뒤 바뀐 조건을 알려 주지 않습니다 | 변경 뒤 미재계산 공정을 모읍니다 |
| 원가 추정 표시 | CK13N | 반영액과 재계산 값의 차이율이 없습니다 | 차이·차이율을 둡니다 |
| 가격 갱신 | CK24 | 확정 시점 이후의 변경을 찾지 못합니다 | 원가계산일 뒤 변경을 판정합니다 |
| 오더 원가 분석 | KKBC_ORD | 표준 공정 원가와 계획 기준의 비교가 없습니다 | 제품·월 단위 비교를 곁들입니다 |
T-code 별 연계 지점
| T-code | 이름 | 연계 |
|---|---|---|
| CA03 | 라우팅 표시 | 공정 순서·작업장·표준시간·로트 기준을 확인합니다. 이 앱의 준비·기계·노무 시간이 같은 필드를 이어받으므로 공정 한 줄의 시간을 CA03 와 맞춰 봅니다. |
| CR03 | 작업장 표시 | 작업장과 원가센터·활동 유형 연결을 확인합니다. 미등록(NORATE) 공정은 여기서 연결을 먼저 봅니다. |
| KP26 | 활동 유형/가격 계획 변경 | 작업장 활동 유형별 계획 단가의 원천입니다. 단가 변경일은 이 계획 변경 이력에서 가져옵니다(원천은 확인 필요). |
| CK11N | 자재 원가 추정 생성 | 반영액의 출처가 되는 표준원가 추정 실행입니다. 변경 뒤 재계산 판정이 나온 공정은 이 화면에서 다시 실행할지 판단합니다. |
| CK13N | 자재 원가 추정 표시 | 공정 단위 활동비 반영액을 확인합니다. 이 앱의 반영액과 맞춰 보는 대사 지점입니다. |
| CK24 | 가격 갱신 | 표준원가 확정 시점을 확인합니다. 원가계산일 이후 변경만 비교하는 기준이 됩니다. |
| KKBC_ORD | 오더 원가 분석 | 생산오더 단위 표준·실제 가공비 비교입니다. 이 앱은 제품·월 단위로 먼저 범위를 좁힌 뒤 오더로 내려가도록 돕습니다. |
이 앱에서 이상한 값을 만나면 해당 공정의 제품·작업장을 들고 위 T-code 로 원천을 확인하고, 표준 화면의 값을 확인했다면 이 앱의 같은 제품·월 행에서 다시 읽습니다. 법정·감사 대응에 쓰는 보고서는 표준에 그대로 두고 이 화면은 월마감 전 점검에 곁들이는 것이어서, 운영 전환 때 기존 리포트를 없앨 필요는 없습니다.
S/4HANA 분석 스택과의 자리
표준 CDS 분석 쿼리·Fiori 분석 앱·Analysis for Office 는 합계와 추이를 보는 데 알맞고, 이 앱은 공정 한 줄의 재계산과 변경일 판정이라는 좁은 일에 집중합니다. 같은 CDS 뷰 위에 올릴 수 있도록 뷰 레이어를 나눠 두었습니다. 실제로 쓸 수 있는 표준 분석 뷰의 이름은 환경마다 달라 확인 필요로 남깁니다.
확장 포인트 — 운영에서 실제로 손대는 자리
| 자리 | 무엇을 손대나 | 비고 |
|---|---|---|
| 활동단가 원천 | 활동 유형 계획 단가를 읽는 뷰 | 원천 테이블 확인 필요 |
| 변경 이력 원천 | 단가·시간·외주 단가 변경일 | 변경 문서 사용 여부 확인 필요 |
| 허용 한도 | 공정 0.5%·제품 1.0% 한도 값 | 회사 기준으로 변경 |
| 원가계산일 | 제품별 원가 추정 일자 | 원가 추정 헤더에서 읽음(확인 필요) |
| 계획수량 | 월 계획수량 원천 | 생산 계획 연계 확인 필요 |
| 권한 | 플랜트·원가센터 단위 조회 권한 | DCL 로 설계 |
분석 지표 정의표
| 지표 | 산식·판정 기준 | 화면 위치 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| 준비·기계·노무 원가 | 시간 × 활동단가 (준비는 로트 크기로 나눔) | 공정 명세 | PLPO · CRHD · 활동 단가 테이블 | 단가 테이블은 확인 필요 |
| 공정 원가 | 준비 + 기계 + 노무 (외주는 외주 단가) | 공정 명세 | PLPO · 활동 단가 | 외주 단가 출처는 확인 필요 |
| 원가계산 반영액 | 원가 추정의 공정별 활동비 금액 | 공정 명세 | KEKO · CKIS | 품목 구성 방식은 확인 필요 |
| 차이·차이율 | 공정 원가 − 반영액, 차이 ÷ 반영액 | 공정 명세 · 제품별 집계 | 산출 | 허용 한도는 회사 기준 |
| 월 공정원가 | 공정 원가 × 월 계획수량 | 전 탭 | 산출 · 계획수량 | 계획수량 출처는 확인 필요 |
| 월 활동원가 | 작업장·월에 쓰인 공정의 월 공정원가 합계 | 작업장 활동단가 | 산출 | 작업장 합계 = 제품 합계 대사 |
| 변경 뒤 미재계산 | 변경일 > 원가계산일 이면서 차이율 한도 초과 | 공정 명세 · 작업장 활동단가 | 변경 이력(확인 필요) | 점검 필요로 표시 |
CDS 구성
이 화면이 운영 데이터에 붙을 때 필요한 CDS·DDIC 구성을 스케치로 공개합니다. 실제 필드와 테이블은 시스템 버전·고객사 설정에 따라 다를 수 있어 확인하지 못한 부분은 “확인 필요”로 적었습니다.
뷰 레이어 구성
| 레이어 | 뷰·객체 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 기준 | ZRC_ACTRATE (테이블) | 작업장·활동 유형별 월 활동단가와 변경일 | 단가 원천이 환경마다 달라 한 곳에서 매핑합니다 |
| 차원 | ZI_RouteOperation | 라우팅 공정·작업장·표준시간 | 시간 정의를 한 번만 둡니다 |
| 차원 | ZI_CostEstOperAmt | 원가 추정의 공정별 활동비와 원가계산일 | 반영액 원천을 분리합니다 |
| 큐브 | ZI_RouteOperCostCube | 시간 × 단가 재계산, 차이·판정 코드 | 계산을 한 곳에서 하고 화면은 읽기만 합니다 |
| 쿼리 | ZC_RouteOperCostQuery | 조회조건·화면 컬럼·필터 정의 | 화면 요구가 바뀌어도 큐브는 그대로입니다 |
| 권한 | ZR_RouteOperCostDcl | 플랜트·원가센터 단위 접근 제한 | 원가는 조직별로 보이는 범위가 다릅니다 |
| 서비스 | ZUI_RouteOperCost | OData V2 서비스 정의·바인딩 | 화면의 서비스 주소가 됩니다 |
① 활동단가 기준 테이블
작업장·활동 유형·월별 단가와 변경일을 담는 매핑 테이블입니다. 표준 계획 단가 테이블을 직접 읽을 수 있다면 뷰로 대체해도 됩니다. 이 테이블이 비어 있으면 모든 공정이 NORATE 로 걸리므로 운영에서 가장 먼저 채우는 자리입니다.
@EndUserText.label : '활동단가 기준 (스케치)'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
define table zrc_actrate {
key client : abap.clnt not null;
key werks : werks_d not null;
key arbpl : arbpl not null;
key spmon : spmon not null;
setup_rate : abap.curr(11,0);
mach_rate : abap.curr(11,0);
labor_rate : abap.curr(11,0);
chg_date : abap.dats;
}
② 라우팅 공정 차원
라우팅 헤더·공정·자재 할당과 작업장을 묶어 공정 한 줄의 표준시간을 돌려줍니다. 시간 단위 환산이 여기서 결정되므로 이후 모든 금액이 이 정의에 의존합니다. 단위 환산 방식은 확인 필요입니다.
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '라우팅 공정 (스케치)'
@ObjectModel.usageType: { sizeCategory: #XL, serviceQuality: #X, dataClass: #MASTER }
define view entity ZI_RouteOperation
as select from plpo
inner join plas on plas.plnty = plpo.plnty and plas.plnnr = plpo.plnnr
and plas.plnkn = plpo.plnkn
inner join plko on plko.plnty = plas.plnty and plko.plnnr = plas.plnnr
and plko.plnal = plas.plnal
inner join crhd on crhd.objid = plpo.arbid and crhd.objty = 'A'
{
key plas.plnnr as RoutingGroup,
key plas.plnal as GroupCounter,
key plpo.vornr as OperNo,
crhd.werks as Plant,
crhd.arbpl as WorkCtr,
plko.losvn as LotSizeFrom,
plpo.vgw01 as SetupStd, // 준비 표준값 (단위 환산 확인 필요)
plpo.vgw02 as MachineStd,
plpo.vgw03 as LaborStd
}
③ 원가 추정 반영액 차원
원가 추정 헤더와 품목에서 공정별 활동비와 원가계산일을 읽습니다. 반영액이 어느 품목 유형에 들어가는지는 고객사 원가 구조에 따라 다르므로 확인 필요로 두었습니다.
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '원가 추정 공정별 활동비 (스케치)'
define view entity ZI_CostEstOperAmt
as select from keko
inner join ckis on ckis.kalnr = keko.kalnr and ckis.bzobj = keko.bzobj
{
key keko.matnr as Material,
key keko.werks as Plant,
key ckis.posnr as ItemNo,
keko.kadat as CostingDate, // 원가계산일 (확인 필요)
ckis.wrtfw_kpf as ActivityAmount // 공정별 활동비 (필드 확인 필요)
}
④ 큐브 — 시간 × 단가 재계산과 판정
준비·기계·노무 원가를 계산하고 반영액과의 차이, 판정 코드를 정하는 핵심 뷰입니다. 한도 0.5% 와 코드 우선순위가 여기에 있습니다. 판정은 확인할 자리를 알려 줄 뿐 회계 처리를 정하지 않습니다.
@AccessControl.authorizationCheck: #CHECK
@Analytics.dataCategory: #CUBE
@EndUserText.label: '라우팅 공정원가 큐브 (스케치)'
define view entity ZI_RouteOperCostCube
as select from ZI_RouteOperation as op
left outer join zrc_actrate as rt
on rt.werks = op.Plant and rt.arbpl = op.WorkCtr
left outer join ZI_CostEstOperAmt as ce
on ce.Plant = op.Plant
{
key op.RoutingGroup, key op.OperNo, key op.WorkCtr,
cast( op.SetupStd / op.LotSizeFrom * rt.setup_rate as abap.dec(13,2) ) as SetupCost,
cast( op.MachineStd * rt.mach_rate as abap.dec(13,2) ) as MachCost,
cast( op.LaborStd * rt.labor_rate as abap.dec(13,2) ) as LaborCost,
ce.ActivityAmount as RunAmt,
case
when op.SetupStd + op.MachineStd + op.LaborStd = 0 then 'NOTIME'
when rt.mach_rate = 0 then 'NORATE'
when rt.chg_date > ce.CostingDate then 'RATE'
else ''
end as CheckCode
}
⑤ 분석 쿼리 — 화면에 내보내는 모양
조회조건과 컬럼 이름을 화면 요구에 맞춰 정의합니다. 큐브의 계산은 건드리지 않고 필터와 표시 순서만 다룹니다.
@AccessControl.authorizationCheck: #CHECK
@Analytics.query: true
@EndUserText.label: '라우팅 공정원가 쿼리 (스케치)'
define view entity ZC_RouteOperCostQuery
as select from ZI_RouteOperCostCube
{
@AnalyticsDetails.query.axis: #ROWS
key RoutingGroup,
@AnalyticsDetails.query.axis: #ROWS
key OperNo,
@Consumption.filter: { selectionType: #SINGLE, multipleSelections: false }
WorkCtr,
@AnalyticsDetails.query.axis: #COLUMNS
SetupCost, MachCost, LaborCost, RunAmt, CheckCode
}
⑥ 권한 객체 (DCL)
플랜트 단위로 읽을 수 있는 범위를 제한합니다. 원가센터 단위까지 나누려면 차원 뷰에 원가센터를 노출하는 확장이 필요합니다.
@EndUserText.label: '라우팅 공정원가 권한 (스케치)'
@MappingRole: true
define role ZR_RouteOperCostDcl {
grant select on ZI_RouteOperCostCube
where ( Plant ) = aspect pfcg_auth( c_anlage_x, werks, actvt = '03' );
}
⑦ 서비스 정의
쿼리를 OData V2 서비스로 내보냅니다. 서비스 바인딩을 게시한 뒤 앱의 서비스 주소를 이 서비스로 바꾸면 화면이 운영 데이터에 붙습니다.
@EndUserText.label: '라우팅 공정원가 서비스 (스케치)'
define service ZUI_RouteOperCost {
expose ZC_RouteOperCostQuery as OperationCost;
}
// 서비스 바인딩: OData V2 - UI, 게시 후 서비스 활성화 확인(/IWFND/MAINT_SERVICE)
⑧ 월 집계 뷰
제품 × 월 집계와 월 합계는 큐브 위의 집계 뷰로 둡니다. 합계를 큐브에서 한 번 더 계산하지 않고 같은 뷰를 합산해 대사식이 항상 맞도록 합니다.
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '월 집계 (스케치)'
define view entity ZI_RouteCostMonth
as select from ZI_RouteOperCostCube
{
key Period,
sum( cast( SetupCost + MachCost + LaborCost as abap.dec(15,2) ) ) as RouteCost,
sum( RunAmt ) as RunCost
}
group by Period
운영 시점에 해야 할 일
개발보다 정하는 일이 많습니다.
| 해야 할 일 | 무엇을 정하나 | 정하지 않으면 | 누가 |
|---|---|---|---|
| 활동단가 원천 확정 | 계획 단가 테이블을 직접 읽을지, 기준 테이블에 옮길지 | 모든 공정이 단가 미등록으로 판정됨 | 원가회계 |
| 변경 이력 원천 | 단가·시간 변경일을 어느 이력에서 가져올지 | 변경 뒤 재계산 판정이 불가능함 | 원가회계·IT |
| 허용 한도 | 공정 0.5%·제품 1.0% 가 맞는지 | 건수가 실제보다 많거나 적게 나옴 | 원가회계 |
| 원가계산일 기준 | 원가 추정 일자의 정의 | 반영액 비교 기준일이 어긋남 | 원가회계 |
| 계획수량 원천 | 월 계획수량을 어디서 가져올지 | 월액이 실제와 어긋남 | 생산관리 |
| 외주 단가 처리 | 외주 공정의 단가 원천 | 외주 공정이 0 으로 계산됨 | 구매·원가회계 |
| 권한 설계 | 플랜트·원가센터 단위 조회 범위 | 필요 없는 사람에게도 원가가 보임 | IT 보안 |
| 전송(TR) 순서 | 테이블 → 차원 → 큐브 → 쿼리 → 권한 → 서비스 순서 | 활성화 오류로 서비스가 열리지 않음 | IT |
| 서비스 활성화와 주소 교체 | 서비스를 게시하고 앱의 서비스 주소를 바꿈 | 화면이 샘플 데이터에 계속 붙어 있음 | IT |
운영 데이터로 갈 때
공정 라인이 수십만 건이면 큐브에서 집계 단위를 제품·월까지 먼저 줄이고 공정 단위는 필터를 걸어 내려가도록 하는 편이 안전합니다. 회계연도를 필수 조회조건으로 두고, 원가 추정 헤더와 라우팅 헤더의 키에 맞는 인덱스를 확인하며, 응답 시간 기준은 회사가 정합니다. 이 표본은 213건이어서 성능 문제가 드러나지 않으므로 운영 데이터 기준 측정이 따로 필요합니다.
자주 묻는 질문
도입을 검토할 때 자주 나오는 질문을 주제별로 모았습니다.
숫자와 산식
이 화면은 무엇을 점검하나요?
공정마다 준비·기계·노무 표준시간과 작업장 활동단가로 가공비를 다시 계산해 원가계산 반영액과 견주고, 단가나 시간이 원가계산 뒤에 바뀌었는데 재계산이 빠진 공정을 보여 줍니다. 원인을 단정하지 않고 확인할 자리만 알려 줍니다.
공정 원가는 어떻게 계산하나요?
준비 원가는 로트당 준비시간을 로트 크기로 나눠 준비 활동단가를 곱하고, 기계·노무 원가는 개당 시간에 각 활동단가를 곱합니다. 세 값을 더하면 공정 원가이고 외주 공정은 외주 단가를 그대로 씁니다.
차이와 차이율은 무엇인가요?
차이는 공정 원가에서 원가계산 반영액을 뺀 값이고, 차이율은 그 차이를 반영액으로 나눠 100 을 곱한 값입니다. 공정은 0.5%, 제품은 1.0% 를 넘으면 점검 필요 후보가 됩니다. 한도는 회사 기준에 맞춰 바꾸는 값입니다.
단가는 어느 시점의 값을 쓰나요?
활동단가와 표준시간은 월말 기준일의 값을 쓰고, 반영액은 원가계산일 기준의 값으로 만든 금액입니다. 이 시점 차이가 변경 뒤 재계산 판정의 근거가 됩니다.
원가계산일 이전 달은 왜 비교하지 않나요?
원가계산이 아직 없던 달에는 반영액이 없어 차이를 만들면 가짜 차이가 생깁니다. 그래서 월말이 원가계산일보다 앞선 달은 비교 대상에서 뺍니다.
대사식은 무엇을 검산하나요?
공정 원가 = 준비 + 기계 + 노무, 반영액 + 차이 = 계산액, 제품 가공비 = 공정 원가 합, 작업장 활동원가 합 = 제품 월 공정원가 합, 월 합계 = 제품 합계, 반영 월액 + 차이 = 계산 월액의 여섯 가지입니다. 이 표본에서 486건을 검사해 차이가 0건이었습니다.
화면과 조작
처음 열면 무엇이 보이나요?
회계연도 2026 으로 한 번 자동 조회되어 요약 타일과 공정 명세 탭이 채워집니다. 조건을 바꾸려면 조회 버튼을 누르거나 입력 칸에서 Enter 를 누릅니다.
탭은 어떤 순서로 보면 좋은가요?
공정 명세 → 제품별 집계 → 작업장 활동단가 → 월별 추이 → 대사 결과 순서로, 근거에서 넓은 범위로 올라갑니다. 점검 필요 공정이 어느 제품·월에 몰렸는지 보려면 점검 결과 필터부터 걸면 빠릅니다.
행을 누르면 무엇이 열리나요?
같은 제품·월의 공정 목록이 상세 창으로 열려 준비·기계·노무 원가가 어떻게 더해졌는지 따라갈 수 있습니다. 바깥 영역을 누르면 닫힙니다.
조회 결과를 내려받을 수 있나요?
현재 탭의 조회 결과를 UTF-8 CSV 로 내려받을 수 있습니다. 필터를 건 상태라면 그 조건의 결과만 담깁니다.
조회조건을 비우면 어떻게 되나요?
비운 조건은 필터에 넣지 않아 전체를 읽습니다. 회계연도만 필수입니다.
휴대폰에서도 쓸 수 있나요?
좁은 폭에서는 조회조건이 한 줄씩 쌓이고 표는 가로로 스크롤됩니다. 탭·상세 창 동작은 같습니다.
분석과 대사
점검 필요는 무엇을 뜻하나요?
그 공정에서 확인할 일이 있다는 표시일 뿐 오류를 확정한 것이 아닙니다. 코드(NOTIME·NORATE·BOTH·TIME·OUT·RATE·DIFF)가 어느 쪽을 확인할지 알려 줍니다.
RATE 와 TIME, BOTH 는 어떻게 다른가요?
RATE 는 활동단가, TIME 은 표준시간이 원가계산일 뒤에 바뀐 경우이고 BOTH 는 둘 다 바뀐 경우입니다. 외주 단가가 바뀌면 OUT 입니다. 모두 차이율이 한도를 넘을 때만 붙습니다.
DIFF 코드는 언제 붙나요?
차이율이 한도를 넘는데 단가·시간 변경으로 설명되지 않을 때입니다. 입력 조건이나 원가 추정 설정을 확인할 자리라는 뜻이며 원인을 알려 주지는 않습니다.
의도적 예외 행은 무엇인가요?
표준시간이 0 인 공정과 활동단가가 미등록인 공정을 일부러 넣어 판정이 잡아내는지 보는 행입니다. 대사 차이 건수와는 따로 세어 대사 0건이 예외를 가리지 않게 합니다.
점검 필요가 많으면 어떻게 읽나요?
한도를 넘은 공정이 많다는 뜻이지 모두 오류라는 뜻은 아닙니다. 단가 변경이 큰 작업장에서 한꺼번에 나오는 경우가 많으므로 작업장 활동단가 탭에서 변경일부터 보는 편이 빠릅니다.
도입과 운영
누가 쓰면 좋은가요?
월마감 전에 가공비 반영 상태를 확인하는 원가 담당자와 단가·시간을 바꾸는 생산기술·원가회계 담당자입니다. 확인 요청을 주고받을 때 같은 숫자를 보게 됩니다.
표준 T-code 를 없애도 되나요?
아닙니다. 라우팅 표시(CA03), 작업장 표시(CR03), 원가 추정 생성·표시(CK11N·CK13N) 등은 표준에서 계속 씁니다. 이 화면은 조회·점검 관점을 더하는 확장입니다.
운영 데이터에 연결하려면 무엇이 필요한가요?
활동단가·변경 이력·원가계산일의 원천을 정하고 CDS 뷰와 서비스를 만든 뒤, 앱의 서비스 주소를 바꿉니다. 원천 정의는 회사마다 달라 소요 기간은 확인 필요입니다.
권한은 어떻게 나누나요?
큐브 위에 권한 객체를 걸어 플랜트 단위로 읽기를 제한합니다. 원가센터 단위까지 나누려면 뷰에 원가센터를 노출하는 확장이 필요합니다.
대용량 데이터에서도 되나요?
이 표본은 213건이어서 성능을 말할 수 없습니다. 운영 데이터에서는 회계연도를 필수로 두고 제품·월 단위로 먼저 집계한 뒤 공정으로 내려가도록 설계합니다.
계정이나 원가 구조가 바뀌면 어떻게 하나요?
기준 테이블과 매핑 뷰만 고치면 화면 코드는 그대로입니다. 반영액이 들어가는 품목 구성이 바뀌면 원가 추정 차원 뷰를 점검해야 합니다.
이 화면의 결과를 최종 판단으로 써도 되나요?
아닙니다. 점검 도구이며 회계 처리와 최종 판단은 회사와 감사인이 합니다. 점검 필요가 나온 공정은 표준 화면에서 원천을 확인한 뒤 판단하시기 바랍니다.
샘플 데이터는 실제 값인가요?
아닙니다. 가상의 제조 회사와 가상의 단가로 만든 검증용 데이터이며 실제 고객사의 값은 쓰지 않았습니다.