제조원가

로트별 원가 편차 점검 — 같은 품목인데 로트마다 단위원가가 다른 이유를 표준·평균·원인 후보까지 한 화면에서

로트 단위원가 · 표준 대비와 평균 대비 두 잣대 · 품목별 한도 · 원인 후보 분해 · 대사 10종 — 소개 영상과 실제 화면 8종, 그리고 CDS 코드까지

소개 영상1분 42초9개 장면음성 안내 · 자막 포함표지 → 처음 연 화면 → 조건 → 품목 비교 → 원인 분해 → 로트 상세 → 월별 추이 → 대사 → 정리

도입 포인트 — 이 앱을 사용해야 하는 이유

원가 마감 때 가장 자주 듣는 질문은 이렇습니다. 같은 제품인데 이 로트는 왜 더 비쌉니까. 표준원가는 한 품목에 값이 하나지만, 실제 원가는 로트마다 다릅니다. 수율이 떨어진 로트, 재료 단가가 오른 시기에 들어간 로트, 수량이 적어 경비가 나뉘는 몫이 커진 로트가 섞여 있기 때문입니다. 지금은 이 질문에 답하려고 생산오더 목록, 오더별 원가, 차이 계산, 입고 수량을 화면마다 열어 엑셀에서 맞춥니다.

이 앱은 그 작업을 한 화면에 모읍니다. 로트마다 재료비 · 노무비 · 제조경비를 양품수량으로 나눈 단위원가를 구하고, 그 값을 표준 단위원가와 같은 품목·같은 달의 평균 단위원가 두 잣대에 견줍니다. 품목별 한도를 넘은 로트는 ‘점검 필요’로 표시하고, 수율 · 재료비 · 노무비 · 소로트 경비 가운데 어느 쪽이 컸는지 원인 후보까지 붙입니다. 관련 기준서는 없고, 대상 영역은 제조원가 분석입니다. 표준 실행은 SAP 표준 T-code 가 그대로 담당하고, 이 화면은 로트를 비교하는 점검 관점을 더해 확장합니다.

한 줄 요약 — 표준원가와의 차이를 보여 주는 화면은 많습니다. 이 화면의 값은 ‘같은 품목의 다른 로트’까지 한 줄에 견주고, 한도를 넘은 로트의 원인 후보를 가린 뒤, 그 숫자가 서로 맞는지 대사 10종으로 매번 검산한다는 데 있습니다. 판단은 사람이 하고, 화면은 확인할 자리를 좁혀 줍니다.

표준원가만 보면 로트의 사정이 평균에 묻힌다

한 품목의 한 달 평균이 표준에 가까워도 그 안에서 로트마다 단위원가는 크게 갈릴 수 있습니다. 샘플에서 평균 단위원가가 표준에 가까운 품목·월도 최고와 최저 로트의 폭이 11%를 넘는 경우가 있습니다(구동모터 하우징 1월 폭 11.34%). 이 앱은 품목·월 평균과 폭, 변동계수를 함께 보여 주어 평균에 가려진 로트를 찾게 합니다.

달 전체가 비싸면 표준 대비 잣대만으로는 모두가 이상해 보인다

재료 단가가 오른 달에는 거의 모든 로트가 표준을 넘습니다. 그때는 ‘표준보다 비싼 로트’가 아니라 ‘다른 로트보다 유독 비싼 로트’가 확인 대상이어야 합니다. 그래서 표준 대비와 평균 대비를 나란히 두고, 둘 중 하나라도 한도를 넘으면 점검 필요로 봅니다. 한도는 품목마다 다르게 정할 수 있습니다.

원인을 가르는 첫 가설이 있어야 확인이 빨라진다

점검 필요 로트가 61건이라는 사실만으로는 어디서부터 볼지 정할 수 없습니다. 이 앱은 로트마다 원인 후보를 하나 붙이고, 후보별로 초과 원가를 모아 월별로 보여 줍니다. 샘플에서는 재료비 상승 후보의 초과 원가가 가장 크고(36.8백만원), 수율 저하(23.8백만원), 소로트 경비 분산(16.3백만원), 노무비 상승(4.2백만원) 순입니다. 후보는 규칙으로 고른 가설이며 원인을 단정하지 않습니다.

재공이 남은 로트는 해석이 달라진다

재공수량이 남은 로트는 재공 원가를 나누지 않은 채 단위원가를 구하므로, 완성 로트와 같은 눈으로 읽으면 안 됩니다. 이 앱은 그런 로트 29건을 의도적 예외로 따로 세어 차이 0건의 대사 결과와 섞이지 않게 합니다.

사용 방법

  1. 조회조건 입력 — 회계연도(필수)를 확인합니다. 전기 월 시작·종료, 품목, 플랜트, 생산 완료일, 원인 후보, 점검 결과는 선택이며 비우면 전체입니다.
  2. 조회 — 조회 버튼은 조회조건 줄의 오른쪽 끝에 있고, 입력 칸에서 Enter 키를 눌러도 조회됩니다. 앱을 열면 올해 값으로 자동 조회됩니다.
  3. 요약 확인 — 실제 총원가 · 표준원가 · 차이 · 점검 필요 로트 · 점검 필요 품목 · 점검 필요 로트 비율 · 대사 차이 건수 일곱 칸을 먼저 읽습니다.
  4. 탭 이동 — 로트 명세 → 품목 비교 → 원인 분해 → 월별 추이 → 대사 결과 순서로 둘러봅니다.
  5. 행 클릭 상세 — 로트 명세의 행을 누르면 구성 항목별 차이와 같은 품목의 다른 로트가 열립니다.
  6. CSV 내려받기 — 표 오른쪽 위 버튼으로 현재 탭의 조회 결과를 저장합니다.

숫자를 믿을 수 있는가 — 검증 결과

화면의 모든 숫자는 로트 237건에서 출발해 품목·월 36행, 월 6행으로 올라갑니다. 올라갈 때마다 합계가 맞는지 대사식으로 전수 검사했고, 아홉 개 식이 모두 차이 0건입니다. 열 번째는 재공이 남은 로트를 세는 의도적 예외입니다.

번호대사식검사 건수차이 · 예외
R01재료비 + 노무비 + 제조경비 = 로트 총원가2370
R02총원가 ÷ 양품수량 = 단위원가 (반올림 허용)2370
R03투입수량 = 양품 + 불량 + 재공2370
R04표준 단위원가 + 차이 = 실제 단위원가2370
R05재료비·노무비·제조경비 차이 합 = 단위원가 차이2370
R06로트 총원가 합계 = 품목·월 총원가360
R07품목 총원가 합계 = 월 총원가60
R08표준원가 + 차이 = 실제 총원가420
R09원인별 초과 원가 합계 = 월 초과 원가60
R10재공수량이 남은 로트 (의도적 예외)23729 (예외)

요약의 실제 총원가 5,134,269,357원과 표준원가 5,053,675,200원, 점검 필요 로트 61건(25.74%)은 별도 검증 스크립트가 데이터를 처음부터 다시 계산한 값과 같습니다. 서비스 쪽에서도 날짜 조건 · 정렬 · 건수 · 쓰기 반영 · 집계 함수 두 개(점검 필요 로트 비율 평균 25.64%, 품목 폭 최댓값 12.84%)가 기대값과 맞았고, 화면은 헤드리스 브라우저에서 콘솔 에러 없이 열렸습니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 1.120 · sap_horizon 테마 · 조회조건 + 요약 + 탭 5개 + 행 클릭 상세 창SAP 표준 화면과 같은 모양이라 현업이 따로 배우지 않습니다. 조회 버튼은 조회조건 오른쪽 끝에 둡니다.
표sap.ui.table 표 · 행 단위 스크롤로트 수가 늘어도 화면이 길어지지 않고, 컬럼 정렬을 서비스에 맡길 수 있습니다.
집계·판정서비스가 로트 → 품목·월 → 월 순서로 미리 계산화면과 CSV 가 같은 숫자를 보게 하고, 판정 규칙을 한 곳에서만 고치게 합니다.
데이터 연동OData V2 서비스 · 엔티티셋 5개 · 펑션 2개조회조건은 모두 $filter 로 전달하고, 날짜는 UTC 자정으로 바꿔 보냅니다.
테마sap_horizon표준 Fiori 화면과 색 · 글꼴이 같아 나란히 두어도 어색하지 않습니다.
항목내용
업무 영역제조원가
관련 기준서 · 대상 영역- (대상 영역: 제조원가 분석)
SAP 표준 T-codeCOOIS · CO03 · KKS1 · CK13N · MB51
Namespacezui5.lotcost
화면 성격조회 · 점검 (읽기 전용)
데이터 연동OData V2
테마sap_horizon
SAP 표준 기능을 그대로 이어받은 부분 — 로트(생산오더)의 수량과 원가, 표준 단위원가, 오더 차이 계산의 구조를 그대로 이어받았습니다. 이 화면은 같은 데이터를 로트끼리 비교하는 관점으로 한 번 더 보여 줄 뿐, 표준 거래를 대신하지 않습니다.

실행 화면

아래 8장은 실제 브라우저에서 앱을 열어 찍은 화면입니다. 숫자는 가상의 샘플 데이터이며, 사용 순서대로 배열했습니다.

처음 열었을 때

앱을 열면 조회가 자동으로 실행되어 올해 로트 전체가 나옵니다.

처음 연 화면 — 올해 237개 로트가 한 표에
처음 연 화면 — 조회조건 · 요약 일곱 칸 · 로트 명세 표가 한 화면에 뜹니다.

앱을 열면 올해 값으로 자동 조회되어 로트 237개가 한 표에 나옵니다. 위쪽 요약에서 실제 총원가 5,134.3백만원, 표준원가 5,053.7백만원, 표준 대비 +80.6백만원, 점검 필요 로트 61건과 비율 25.74%를 먼저 읽고, 표에서는 양품수량 · 수율 · 단위원가 · 표준 대비 차이율을 한 줄씩 봅니다. 기본 정렬은 전기 월 · 품목 · 로트 번호입니다.

조건으로 좁히기

품목, 전기 월, 플랜트, 생산 완료일, 원인 후보, 점검 결과로 범위를 좁힙니다.

조회조건으로 좁힌 화면 — 품목과 점검 결과
조회조건으로 좁히기 — 품목 하나와 점검 결과 '점검 필요'만 골라 조회한 모습입니다.

품목과 점검 결과를 고르고 오른쪽 끝의 조회 버튼을 누르면 조건에 맞는 로트만 남습니다(이 예에서는 4건). 입력 칸에서 Enter 키를 눌러도 조회되고, 초기화 버튼은 처음 조건으로 되돌립니다. 요약 일곱 칸도 같은 조건으로 다시 계산되므로, 표와 요약이 서로 다른 범위를 보는 일이 없습니다.

같은 품목끼리 견주고, 원인을 가른다

로트 명세 다음 두 탭은 같은 로트들을 다른 묶음으로 보여 줍니다. 품목 비교는 ‘평균에서 얼마나 퍼졌나’를, 원인 분해는 ‘초과 원가가 어느 후보에서 나왔나’를 답합니다.

품목 비교 탭 — 품목·월마다 평균 단위원가
품목 비교 — 품목과 월마다 평균 단위원가를 표준에 견주고 로트 간 폭을 봅니다.

한 품목의 한 달을 한 줄로 묶어 평균 단위원가 · 표준 단위원가 · 최고와 최저 로트 단위원가 · 최고-최저 폭 · 변동계수 · 점검 필요 로트 수를 보여 줍니다. 평균이 표준에 가까워도 폭이 크면 로트마다 사정이 다르다는 뜻이라, 평균만 보면 놓치는 품목을 여기서 찾습니다. 한 로트라도 한도를 넘으면 그 품목·월은 '점검 필요'로 표시됩니다.

원인 분해 탭 — 점검 필요 로트를 원인 후보별로
원인 분해 — 수율 저하 · 재료비 상승 · 노무비 상승 · 소로트 경비 분산 · 원가 누락 확인으로 가릅니다.

점검 필요 로트의 초과 원가를 원인 후보 다섯 가지로 나눠 월별로 보여 줍니다. 로트 수와 초과 원가, 월 안에서 차지하는 비중, 그 후보를 고른 판정 기준이 한 줄씩 나옵니다. 후보는 규칙으로 고른 것일 뿐 원인을 단정하지 않습니다. 비중이 큰 후보부터 현업이 확인할 순서를 정하는 용도입니다.

한 로트 안으로 들어가기

의심스러운 로트는 행을 눌러 구성 항목까지 내려갑니다.

로트 상세 창 — 구성 항목별 차이와 같은 품목의 다른 로트
로트 상세 — 로트 행을 누르면 재료비 · 노무비 · 제조경비 차이와 같은 품목·달의 로트 6건이 나옵니다.

로트 명세에서 행을 누르면 상세 창이 열립니다. 재료비 · 노무비 · 제조경비를 원/개 단위로 표준과 견준 차이, 점검 코드와 점검 내용, 같은 품목 같은 달의 다른 로트가 나란히 나옵니다. 이 로트만의 문제인지 그 달 그 품목 전체의 문제인지가 여기서 갈립니다. 닫기 버튼으로 표로 돌아갑니다.

월과 합계로 다시 확인하기

마지막으로 달별 흐름과 대사 결과로 위에서 본 숫자가 맞는지 확인합니다.

월별 추이 탭 — 달마다 실제 총원가와 표준원가
월별 추이 — 월 단위 총원가 · 표준원가 · 차이 · 점검 필요 로트 비율을 봅니다.

여섯 달을 한 줄씩 보여 줍니다. 점검 필요 로트 비율이 가장 높은 달은 4월(36.84%)과 2월(35.00%)이고, 6월(17.50%)과 3월(17.07%)이 낮습니다. 비율이 20% 이상이면 그 달을 '점검 필요'로 표시하므로, 마감 회의에서는 높은 달부터 로트 명세로 내려가 보면 됩니다.

대사 결과 탭 — 대사식 10종의 검사 결과
대사 결과 — 화면 숫자가 서로 맞는지 대사식 10종의 검사 건수와 차이 건수를 보여 줍니다.

대사식 아홉 개는 모두 차이 0건입니다. 열 번째 줄은 재공수량이 남은 로트 29건을 세는 의도적 예외라서 차이 건수가 아니라 예외 건수로 따로 읽습니다. 요약의 '대사 차이 건수'는 이 탭의 차이 건수를 그대로 가져온 값입니다.

화면 뒤에서 일어나는 일

화면이 하는 일은 조회조건을 필터로 바꿔 서비스에 보내고, 돌아온 행을 표에 올리는 것까지입니다. 단위원가 · 차이율 · 평균 · 원인 후보 · 점검 결과는 모두 서비스가 계산해 두고, 화면은 요약 칸을 만들 때 행을 합산할 뿐 판정은 다시 하지 않습니다. 같은 조건으로 다섯 탭이 동시에 조회되므로 탭끼리 범위가 어긋나지 않습니다.

점검 판정 규칙

판정 조건결과 상태사용자 조치
표준 대비 차이율의 절댓값이 품목별 한도 초과점검 필요 (코드 STD)표준 단위원가 구성과 견줘 확인
평균 대비 차이율의 절댓값이 품목별 한도 초과점검 필요 (코드 SPR)같은 품목·월의 다른 로트와 비교해 확인
두 한도를 모두 초과점검 필요 (코드 BOTH)로트 상세에서 구성 항목별 차이 확인
두 한도 이내정상 (코드 OK)조치 없음
한도 초과이면서 표준 대비가 음수원인 후보: 원가 누락 확인누락된 투입·배부가 없는지 확인
수율이 표준보다 3%p 넘게 낮음원인 후보: 수율 저하불량이 늘어난 공정 확인
양품수량이 품목·월 평균의 60% 미만 · 제조경비 단위 차이 양수원인 후보: 소로트 경비 분산로트 크기와 경비 배부 기준 확인
위에 해당하지 않음원인 후보: 재료비 또는 노무비 상승 (단위 차이가 큰 쪽)재료 단가 · 사용량 또는 작업 시간 · 임률 확인
품목·월에 점검 필요 로트가 1건 이상품목·월 점검 필요품목 비교 탭에서 폭 확인
월 점검 필요 로트 비율 20% 이상월 점검 필요월별 추이 탭에서 높은 달부터 확인

샘플 237건은 정상 176건, 점검 필요 61건(표준 대비만 초과 49건, 두 한도 모두 초과 12건)입니다.

조회조건

조건필수기본값$filter 로 보내는 모양
회계연도필수올해Gjahr eq '2026'
전기 월 시작·종료선택전체Period ge '001' and Period le '003'
품목선택전체ProdCode eq 'M1004'
플랜트선택전체PlantCode eq '1200'
생산 완료일 시작·종료선택비어 있음LotDate ge datetime'…' and LotDate le datetime'…' (UTC 자정)
원인 후보선택전체DriverCode eq 'LYLD'
점검 결과선택전체CheckStatus eq 'CHECK'

‘전체’를 고르면 그 조건은 필터로 보내지 않습니다. 같은 필드에 시작과 끝을 거는 조건은 한 묶음(and)으로 보내, 범위가 풀려 전 기간이 통과하는 일이 없게 했습니다.

결과 컬럼

컬럼의미산출식
양품수량 · 수율(%)완성된 수량과 비율수율 = 양품 ÷ (양품 + 불량) × 100
로트 총원가재료비 + 노무비 + 제조경비세 항의 합
단위원가(원/개)양품 한 개당 원가로트 총원가 ÷ 양품수량, 소수 둘째 자리 반올림
표준 대비 차이율(%)표준 단위원가에서 벗어난 정도(단위원가 − 표준 단위원가) ÷ 표준 단위원가 × 100
품목·월 평균 단위원가같은 품목·달의 가중 평균총원가 합계 ÷ 양품수량 합계
평균 대비 차이율(%)평균에서 벗어난 정도(단위원가 − 평균) ÷ 평균 × 100
초과 원가(원)점검 필요 로트의 초과분표준 대비 차이(원) 중 양수
최고-최저 폭(%) · 변동계수(%)품목·월 안의 퍼짐(최고 − 최저) ÷ 평균 · 표준편차 ÷ 평균
원인 후보 · 점검 결과규칙으로 붙인 후보와 판정판정 규칙 표 참조

좁은 화면에서 달라지는 것

창이 좁아지면 조회조건과 요약 칸이 줄바꿈됩니다. 표는 가로 스크롤로 열 폭을 지킵니다.

좁은 화면(폭 900px)
좁은 화면 — 폭이 줄어도 조회조건이 줄바꿈되고 표는 가로로 스크롤됩니다.

창이 좁아지면 조회조건이 여러 줄로 나뉘고 요약 칸도 줄바꿈됩니다. 표는 칸을 줄이지 않고 가로 스크롤을 열어 숫자가 잘리지 않게 합니다. 조회 버튼은 조회조건 영역에서 벗어나지 않습니다.

파일 구성

앱 폴더/
├─ index.html · Component.js · manifest.json     진입점과 서비스 선언
├─ view/        Main.view.xml · DetailDialog.fragment.xml
├─ controller/  Main.controller.js · BaseController.js
├─ model/       formatter.js · ErrorHandler.js
├─ css/ · i18n/ 스타일과 문구
├─ media/       소개 영상과 포스터
└─ odata/       서비스 정의(메타데이터) · 서비스 로직 · 데이터 5종

SAP 표준 기능 확장 포인트 — 표준 T-code 와 어떻게 연계되는지

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회 · 검증 관점을 더해 확장합니다. 표준이 이미 잘하는 일은 표준에 두고, 로트를 서로 견주는 자리만 이어 붙이는 방향으로 만들었습니다.

표준으로 되는 것과 이 앱이 더하는 것

하고 싶은 일SAP 표준이 앱이 더하는 관점
생산오더 목록과 원가 훑어보기COOIS품목·월 평균과 한도에 견준 점검 결과를 한 줄에 함께 보여 줍니다
한 로트의 수량과 원가CO03같은 품목의 다른 로트를 상세 창에 나란히 둡니다
오더 차이 계산KKS1차이를 원인 후보 다섯 가지로 가르고 월별로 모읍니다
표준 단위원가 확인CK13N로트 단위원가와 구성 항목(재료·노무·경비)별로 견줍니다
입고 수량 확인MB51양품 · 불량 · 재공 수량의 합이 투입과 맞는지 대사합니다
법정 · 공시 숫자표준 마감 거래이 앱은 만들지 않습니다 — 표준에 그대로 둡니다

T-code 별 연계 지점

T-code이름연계
COOIS생산오더 정보 시스템같은 오더 선택 조건으로 로트 목록을 맞춰 봅니다. 이 앱의 로트 수가 COOIS 선택 결과와 같은지가 첫 대사 지점입니다. 이 앱 결과에서 의심스러운 로트 번호를 COOIS 로 가져가 오더 상태를 확인합니다.
CO03생산오더 조회로트 상세의 수량과 재료·노무·경비 금액을 한 로트씩 원천으로 확인합니다. 표준에서 본 값을 이 앱의 상세 창에서 다시 보면 같은 값이어야 합니다.
KKS1오더 차이 계산표준 대비 차이(원)와 오더 차이 계산 결과가 같은 기준인지 맞춰 봅니다. 차이 정산과 법정 대응은 표준에 남겨 둡니다.
CK13N원가 견적 조회표준 단위원가와 구성 항목(재료·노무·경비) 값을 확인합니다. 표준이 바뀌면 이 앱의 표준 대비 값이 함께 바뀌므로 표준 개정 시점을 같이 봅니다.
MB51자재 문서 리스트입고(양품) 수량이 로트의 양품수량과 같은지 확인합니다. 재공이 남은 로트는 이 표에서 입고가 덜 잡힌 로트로 드러납니다.

운영 전환 때 ‘기존 리포트를 없애야 하나’라는 질문에는 없애지 않는다가 답입니다. 표준 거래는 그대로 쓰고, 이 화면은 마감 전 점검 단계에 얹어 씁니다. 법정 · 감사 대응 숫자는 표준에서 만든 값을 씁니다.

S/4HANA 분석 스택과의 자리

이 앱은 소비(Consumption) 수준의 CDS 쿼리를 OData 로 게시해 읽습니다. 같은 CDS 뷰는 Fiori 분석 앱이나 Analysis for Office 에서도 그대로 읽을 수 있으므로, 이 화면과 분석 도구가 서로 다른 숫자를 만들지 않습니다. 표준에서 제공하는 원가 분석 CDS 뷰를 쓸 수 있는지는 시스템별로 확인이 필요한 부분이라, 이 글에서는 원천 테이블 기준으로 뷰를 새로 스케치했습니다.

분석 지표 정의

지표산식 · 판정 기준대응 기능원천 데이터비고
로트 단위원가로트 총원가 ÷ 양품수량(소수 둘째 자리 반올림)로트 명세 · 단위원가오더 원가 집계 · 입고 수량재공이 남은 로트는 예외 집계
표준 대비 차이율(%)(단위원가 − 표준) ÷ 표준 × 100 · 품목별 한도 초과 시 점검 필요로트 명세 · 점검 결과자재 평가의 표준가한도 4~6% (샘플)
평균 대비 차이율(%)(단위원가 − 품목·월 평균) ÷ 평균 × 100 · 한도 초과 시 점검 필요로트 명세 · 품목 비교오더 원가 집계한도 7~9% (샘플)
최고-최저 폭(%)(최고 − 최저) ÷ 평균 × 100품목 비교로트 단위원가품목·월 단위
초과 원가(원)점검 필요 로트의 표준 대비 차이 중 양수원인 분해로트 총원가 − 표준원가원인별 합계 = 월 합계
점검 필요 로트 비율(%)점검 필요 로트 ÷ 전체 로트 × 100요약 · 월별 추이로트 점검 결과월 20% 이상이면 월 점검 필요

확장 포인트 — 운영에서 실제로 손대는 자리

자리무엇을 손대나누가
품목별 한도표준 대비 · 평균 대비 한도 값(테이블)원가회계 담당
원가요소 → 구성 항목 매핑재료비 · 노무비 · 제조경비로 나누는 원가요소 묶음원가회계 · 생산관리
원인 후보 경계값수율 3%p, 평균의 60% 같은 판정 상수원가회계 · 생산관리
재공 처리 방식재공 원가를 나눌지, 의도적 예외로 둘지원가회계
확장 필드표준 로트에 회사 고유 구분을 추가할 때 사용자 정의 필드IT
권한플랜트 단위 조회 권한보안 · 권한

CDS 구성 — 원천 테이블에서 소비 쿼리까지

샘플 화면은 가상 데이터에서 읽지만, 운영에서는 아래 뷰들이 같은 모양의 데이터를 만들어 줍니다. 표준 CDS 뷰 대신 원천 테이블(생산오더 헤더·품목, CO 라인 아이템, 자재 평가)에서 출발한 스케치이며, 필드 매핑은 시스템별로 확인 필요입니다.

뷰 레이어 구성

레이어뷰 · 테이블하는 일왜 나누나
기준(매핑)ZLOTC_LIMIT · ZLOTC_CELEM품목별 한도, 원가요소 → 재료·노무·경비 매핑회사 기준이 바뀔 때 뷰를 건드리지 않고 값만 고치려고
기준(집계)ZI_LotCostElem오더별 원가를 구성 항목별로 합산원가 합산을 한 곳에 두어 모든 뷰가 같은 값을 쓰게
로트 큐브ZI_LotCostBase로트 한 줄: 수량 · 구성 항목 원가 · 단위원가 · 표준 대비로트가 모든 집계의 가장 낮은 단위
평균ZI_LotCostAvg품목·월 평균 단위원가와 폭평균을 로트마다 다시 계산하지 않으려고
판정ZI_LotCostJudge한도 · 원인 후보 · 점검 결과판정 규칙을 한 곳에서만 고치려고
소비 쿼리ZC_LotCostQuery화면이 읽는 모양(필터 · 정렬 · 표시 주석)화면 요구와 계산을 분리
권한ZC_LotCostQuery (접근 제어)플랜트 단위 조회 권한집계에도 권한이 걸리게
서비스ZUI_LotCost소비 쿼리를 엔티티셋으로 게시화면은 서비스 주소만 알면 됨

① 한도 테이블

품목마다 한도를 담는 매핑 테이블입니다. 한도가 달라지는 것은 화면이나 뷰가 아니라 회사 기준 때문이므로 값만 바꾸면 되게 따로 두었습니다. 운영에서는 품목군 단위로 한도를 두고 예외 품목만 따로 적는 방식도 씁니다.

" ─────────────────────────────────────────────────────────
" ① ZLOTC_LIMIT — 품목별 점검 한도 (매핑 테이블)
" 역할  : 표준 대비·평균 대비 한도를 품목마다 담는다
" 이유  : 한도가 코드에 박혀 있으면 기준이 바뀔 때마다 이송이 필요하다.
"         값은 테이블에 두고 뷰는 읽기만 한다.
" ─────────────────────────────────────────────────────────
@EndUserText.label : '로트 원가 점검 한도'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
define table zlotc_limit {
  key mandt    : mandt not null;
  key matnr    : matnr not null;
  var_limit    : abap.dec(7,2);   " 표준 대비 한도(%)
  spread_limit : abap.dec(7,2);   " 평균 대비 한도(%)
}

② 원가요소 매핑 테이블

재료비 · 노무비 · 제조경비는 원가요소를 묶어 만든 개념이라 회사마다 묶음이 다릅니다. 이 표 하나가 이 앱과 표준 원가 보고서가 같은 숫자를 만드는 열쇠이며, 도입에서 가장 먼저 합의해야 하는 항목입니다.

" ─────────────────────────────────────────────────────────
" ② ZLOTC_CELEM — 원가요소 → 구성 항목 매핑
" 역할  : 원가요소(KSTAR)를 재료비·노무비·제조경비로 묶는다
" 이유  : 회사마다 원가요소 체계가 다르다. 매핑만 바꾸면 뷰는 그대로다.
" ─────────────────────────────────────────────────────────
@EndUserText.label : '원가요소 구성 항목 매핑'
define table zlotc_celem {
  key mandt : mandt not null;
  key kstar : kstar not null;
  elem_type : abap.char(1);       " M 재료비 · L 노무비 · O 제조경비
}

③ 오더별 구성 항목 원가

CO 라인 아이템에서 실제 값(값 유형)만 골라 오더별로 합산합니다. 이 뷰가 오더 원가 합산의 유일한 자리라서, 합산 조건이 바뀌면 여기만 고칩니다.

" ─────────────────────────────────────────────────────────
" ③ ZI_LotCostElem — 오더별 구성 항목 원가
" 역할  : CO 라인 아이템(실제 값)을 오더·구성 항목별로 합산한다
" 이유  : 합산 규칙(값 유형·버전)을 이 뷰 한 곳에만 둔다.
" ─────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory: [#NONE]
define view entity ZI_LotCostElem
  as select from coep
    inner join aufk on aufk.objnr = coep.objnr
    inner join zlotc_celem as map on map.kstar = coep.kstar
{
  key aufk.aufnr                                         as LotNo,
      sum(case map.elem_type when 'M' then coep.wtgbtr else 0 end) as MatCost,
      sum(case map.elem_type when 'L' then coep.wtgbtr else 0 end) as LabCost,
      sum(case map.elem_type when 'O' then coep.wtgbtr else 0 end) as OhCost
}
where coep.wrttp = '04'            " 실제 값
  and coep.versn = '000'
group by aufk.aufnr

④ 로트 큐브

로트 한 줄을 만듭니다. 단위원가는 합계를 양품수량으로 나눈 값이며 0 나누기를 피하려고 division 함수를 씁니다. 재공수량은 투입에서 양품과 불량을 뺀 파생값입니다.

" ─────────────────────────────────────────────────────────
" ④ ZI_LotCostBase — 로트 한 줄 (큐브)
" 역할  : 수량 · 구성 항목 원가 · 단위원가 · 표준 대비를 한 줄로 만든다
" 이유  : 로트가 가장 낮은 집계 단위라, 위 모든 뷰가 이 뷰를 읽는다.
" ─────────────────────────────────────────────────────────
@Analytics.dataCategory: #CUBE
@AccessControl.authorizationCheck: #CHECK
define view entity ZI_LotCostBase
  as select from aufk
    inner join afpo on afpo.aufnr = aufk.aufnr
    inner join afko on afko.aufnr = aufk.aufnr
    inner join ZI_LotCostElem as el on el.LotNo = aufk.aufnr
    inner join mbew on mbew.matnr = afpo.matnr and mbew.bwkey = aufk.werks
{
  key aufk.aufnr                                   as LotNo,
      afpo.matnr                                   as ProdCode,
      aufk.werks                                   as PlantCode,
      afko.gltri                                   as LotDate,
      @Semantics.quantity.unitOfMeasure: 'Unit'
      afpo.wemng                                   as GoodQty,
      afpo.psmng - afpo.wemng - afpo.psamg         as WipQty,
      afpo.meins                                   as Unit,
      @Semantics.amount.currencyCode: 'Currency'
      el.MatCost + el.LabCost + el.OhCost          as TotalCost,
      aufk.waers                                   as Currency,
      cast(
        division( el.MatCost + el.LabCost + el.OhCost, afpo.wemng, 2 )
        as abap.dec(13,2) )                        as UnitCost,
      cast( mbew.stprs / mbew.peinh as abap.dec(13,2) ) as StdUnitCost
}

⑤ 품목·월 평균

같은 품목·같은 달의 가중 평균과 최고·최저를 구합니다. 평균 대비 차이율과 최고-최저 폭의 기준이 되므로 별도 뷰로 분리했습니다.

" ─────────────────────────────────────────────────────────
" ⑤ ZI_LotCostAvg — 품목·월 평균 단위원가
" 역할  : 같은 품목·같은 달 로트의 총원가 합계 ÷ 양품수량 합계
" 이유  : 단순 평균은 소로트에 휘둘린다. 가중 평균을 한 번만 계산해 둔다.
" ─────────────────────────────────────────────────────────
define view entity ZI_LotCostAvg
  as select from ZI_LotCostBase
{
  key ProdCode,
  key substring( cast( LotDate as abap.char(8) ), 1, 6 ) as YearMonth,
      division( sum( TotalCost ), sum( GoodQty ), 2 )     as AvgUnitCost,
      max( UnitCost )                                     as MaxUnit,
      min( UnitCost )                                     as MinUnit,
      count( * )                                          as LotCnt
}
group by ProdCode, substring( cast( LotDate as abap.char(8) ), 1, 6 )

⑥ 점검 판정

두 잣대와 한도로 점검 결과를 정하고 원인 후보를 붙입니다. 판정 경계가 바뀌면 이 뷰 하나만 이송하면 됩니다.

" ─────────────────────────────────────────────────────────
" ⑥ ZI_LotCostJudge — 한도와 원인 후보
" 역할  : 두 잣대와 한도로 점검 결과를, 규칙 순서로 원인 후보를 붙인다
" 이유  : 판정 규칙(3%p · 60% 같은 경계)을 이 뷰 한 곳에만 둔다.
" ─────────────────────────────────────────────────────────
define view entity ZI_LotCostJudge
  as select from ZI_LotCostBase as b
    inner join ZI_LotCostAvg  as a on a.ProdCode = b.ProdCode
    inner join zlotc_limit    as l on l.matnr    = b.ProdCode
{
  key b.LotNo,
      b.ProdCode,
      division( ( b.UnitCost - b.StdUnitCost ) * 100, b.StdUnitCost, 2 ) as VarRate,
      division( ( b.UnitCost - a.AvgUnitCost ) * 100, a.AvgUnitCost, 2 ) as SpreadRate,
      case
        when abs( division( ( b.UnitCost - b.StdUnitCost ) * 100, b.StdUnitCost, 2 ) ) > l.var_limit
          or abs( division( ( b.UnitCost - a.AvgUnitCost ) * 100, a.AvgUnitCost, 2 ) ) > l.spread_limit
        then 'CHECK' else 'OK'
      end as CheckStatus
      " 원인 후보(UNDR → LYLD → SMLT → MATP/LABR 순)는 같은 방식의 case 로 이어 붙인다
}

⑦ 소비 쿼리

화면이 실제로 읽는 모양입니다. 필수 필터와 표시 순서를 주석으로 두어 화면 요구를 계산 뷰와 분리합니다.

" ─────────────────────────────────────────────────────────
" ⑦ ZC_LotCostQuery — 화면이 읽는 소비 쿼리
" 역할  : 필터 · 정렬 · 표시 주석을 붙여 서비스에 내보낼 모양으로 만든다
" 이유  : 화면 요구(어떤 필드로 거르나)를 계산 뷰와 분리한다.
" ─────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@Metadata.allowExtensions: true
@UI.headerInfo: { typeName: '로트', typeNamePlural: '로트' }
define view entity ZC_LotCostQuery
  as projection on ZI_LotCostJudge
{
  @UI.lineItem: [{ position: 10 }]
  @Consumption.filter: { selectionType: #SINGLE, mandatory: true }
  key LotNo,
  @Consumption.filter.selectionType: #SINGLE
  ProdCode,
  @UI.lineItem: [{ position: 20 }]
  VarRate,
  @UI.lineItem: [{ position: 30 }]
  SpreadRate,
  @Consumption.filter.selectionType: #SINGLE
  CheckStatus
}

⑧ 접근 제어와 서비스

플랜트 단위 권한을 집계 뷰에도 겁니다. 서비스 정의는 소비 쿼리를 엔티티셋으로 게시하며, 게시 후 화면의 서비스 주소만 바꿉니다.

" ─────────────────────────────────────────────────────────
" ⑧ 접근 제어와 서비스 정의
" 역할  : 플랜트 단위 권한과 서비스 게시
" 이유  : 집계 뷰에도 권한이 걸려야 합계로 다른 플랜트가 드러나지 않는다.
" ─────────────────────────────────────────────────────────
@EndUserText.label: '로트 원가 점검 접근 제어'
@MappingRole: true
define role ZC_LotCostQuery {
  grant select on ZC_LotCostQuery
    where ( PlantCode ) = aspect pfcg_auth( M_MATE_WRK, WERKS, ACTVT = '03' );
}

@EndUserText.label: '로트 원가 점검 서비스'
define service ZUI_LotCost {
  expose ZC_LotCostQuery as LotSet;
}

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다.

해야 할 일무엇을 정하나정하지 않으면누가
원가요소 → 구성 항목 매핑재료비 · 노무비 · 제조경비로 묶는 원가요소 범위표준 원가 보고서와 숫자가 어긋나 첫 회의에서 막힙니다원가회계
품목별 한도표준 대비 · 평균 대비 한도 값점검 필요가 너무 많거나 너무 적어 화면을 신뢰하지 않게 됩니다원가회계 · 생산관리
원인 후보 경계값수율 3%p · 평균의 60% 같은 상수현장이 느끼는 원인과 후보가 자주 달라집니다생산관리
재공 처리재공 원가를 나눌지 의도적 예외로 둘지재공 로트의 단위원가가 해석 불가가 됩니다원가회계
표준 개정 시점표준 단위원가가 바뀌는 날짜와 이전 로트 처리표준 대비 차이율이 개정 전후로 끊깁니다원가회계
권한 설계플랜트 단위 조회 권한합계 화면으로 다른 플랜트 숫자가 드러납니다보안 · 권한
성능 기준조회 범위 · 필수 조건 · 응답 시간조건 없이 전체 로트를 읽어 응답이 느려집니다IT
대사 체계표준 T-code 와 맞춰 볼 항목과 주기두 화면의 숫자가 다를 때 어디부터 볼지 모릅니다원가회계 · IT
전송(TR) 순서테이블 → 집계 뷰 → 판정 뷰 → 쿼리 → 권한 → 서비스의존하는 뷰가 먼저 가지 않으면 활성화가 실패합니다IT
서비스 활성화서비스 게시 · 화면 서비스 주소 교체화면이 연결 안내 창만 띄웁니다IT

운영 데이터로 갈 때

생산오더가 연간 수십만 건이 되면 평균과 변동계수 같은 집계는 조회 때마다 계산하지 않고 마감 시점에 한 번 만들어 두는 편이 안전합니다. 조회 범위(회계연도 · 전기 월)를 필수 조건으로 두고, 오더 번호와 플랜트에 인덱스를 확인하며, 화면은 필요한 행만 가져오고 전체 건수만 따로 받는 방식을 유지합니다. 응답 시간 기준은 도입 전에 현업과 먼저 합의하시기 바랍니다.

자주 묻는 질문

도입을 검토하시는 분들이 가장 많이 묻는 25가지를 주제별로 묶었습니다.

숫자와 산식

로트 단위원가는 어떻게 계산합니까?

재료비 · 노무비 · 제조경비를 더한 로트 총원가를 양품수량으로 나눈 값이고, 소수 둘째 자리에서 반올림합니다. 투입수량이 아니라 양품수량으로 나누므로 불량이 많은 로트는 단위원가가 자연히 올라갑니다. 대사식으로 로트 237건 전부에서 총원가 ÷ 양품수량이 단위원가와 맞는지 검사하며, 반올림 때문에 생기는 최대 차이는 0.0049원입니다.

표준 대비와 평균 대비를 둘 다 보는 이유가 무엇입니까?

표준 대비는 '계획한 원가에서 얼마나 벗어났나'를, 평균 대비는 '같은 품목·같은 달의 다른 로트와 얼마나 다른가'를 말합니다. 달 전체가 표준보다 비싸면 모든 로트가 표준 대비로는 한도를 넘지만 평균 대비로는 정상으로 보입니다. 반대로 평균에서 튀는 로트는 표준 대비 한도 안에 있어도 평균 대비로 잡힙니다. 두 잣대 중 하나라도 한도를 넘으면 점검 필요입니다.

한도는 어떤 값입니까?

샘플에서는 품목별로 표준 대비 4~6%, 평균 대비 7~9%를 둡니다(예: 유압 밸브 블록은 6%와 9%, 제어 보드는 4%와 7%). 한도는 서비스 데이터에 들어 있는 값이라 화면 코드를 고치지 않고 바꿀 수 있습니다. 실제 적용 시에는 품목의 원가 변동 폭과 회사 기준에 맞춰 정해야 하며, 샘플 값은 예시입니다.

점검 필요 로트가 61건이면 문제가 61건입니까?

아닙니다. 61건은 한도를 넘었다는 뜻이지 원가가 잘못 계산되었다는 뜻이 아닙니다. 소로트 생산이라 경비가 나뉘는 몫이 커졌거나 재료 단가가 일시적으로 올랐을 수도 있습니다. 화면은 '확인 필요' 대상을 좁혀 줄 뿐이며, 판단은 현업과 회사가 합니다.

평균 단위원가는 로트 단위원가의 단순 평균입니까?

아닙니다. 같은 품목·월 로트의 총원가 합계 ÷ 양품수량 합계입니다. 단순 평균을 쓰면 양품수량이 작은 로트가 평균에 과하게 반영됩니다. 가중 평균으로 잡았기 때문에 품목 비교 탭의 평균 단위원가와 로트 상세의 비교 기준이 같은 값입니다.

표시 금액에서 백만원 단위와 원 단위가 섞여 보입니다.

요약 일곱 칸의 원가는 읽기 쉽도록 백만원 단위로 줄여 보여 주고, 표의 금액과 상세 창은 원 단위 그대로 보여 줍니다. 요약의 값은 표 값을 합산한 뒤 백만원으로 나누는 한 곳의 식으로 계산하므로, 표 합계와 요약이 어긋나지 않습니다.

원인 후보와 예외

원인 후보는 어떤 순서로 정해집니까?

점검 필요 로트에 대해 먼저 표준 대비 차이율이 음수이면 '원가 누락 확인'을, 수율이 표준보다 3%p 넘게 낮으면 '수율 저하'를, 양품수량이 같은 품목·월 평균의 60% 미만이고 제조경비 단위 차이가 양수이면 '소로트 경비 분산'을 붙입니다. 어느 것도 아니면 재료비 단위 차이와 노무비 단위 차이 중 큰 쪽(같으면 재료비)을 '재료비 상승' 또는 '노무비 상승'으로 붙입니다. 규칙 하나가 로트 하나에 후보 하나만 붙입니다.

원인 후보를 그대로 원인으로 보고해도 됩니까?

그렇게 쓰시면 안 됩니다. 후보는 같은 데이터로 규칙을 돌려 얻은 첫 가설입니다. 예를 들어 '재료비 상승'은 재료비 단위 차이가 노무비보다 컸다는 뜻이지 단가가 올랐는지 사용량이 늘었는지는 가르지 않습니다. 현업이 구매 단가와 사용량을 확인한 뒤에 원인을 정해야 합니다.

재공수량이 남은 로트는 왜 따로 셉니까?

재공이 남은 로트는 재공 원가를 나누지 않은 채 단위원가를 구하므로 양품수량에 비해 원가가 부풀어 보이거나 줄어 보일 수 있습니다. 샘플 237건 중 29건이 그렇습니다. 이 건수는 대사식의 차이로 세지 않고 대사 R10의 '의도적 예외'로 따로 기록해, 차이 0건이라는 결과와 섞이지 않게 했습니다.

표준 대비 차이가 음수인데도 점검 필요가 될 수 있습니까?

됩니다. 표준보다 크게 싸게 나온 로트는 원가가 누락되었을 가능성을 확인해야 하므로, 차이율의 절댓값이 한도를 넘으면 점검 필요가 됩니다. 이때 원인 후보는 '원가 누락 확인'이고, 초과 원가는 0으로 둡니다. 샘플에서는 5건입니다.

초과 원가는 무엇이고 왜 월별 합계와 맞춥니까?

점검 필요 로트의 표준 대비 차이(원) 중 양수만 모은 값입니다. 원인별로 합친 값이 월별 합계와 같아야 '원인 분해 탭의 숫자가 어디서 왔는지'가 막힘없이 설명됩니다. 그래서 대사 R09가 월마다 원인별 초과 원가 합계와 점검 필요 로트의 초과 원가 합계를 비교하며, 샘플 6개월 모두 차이 0입니다.

화면과 조작

조회조건은 어떤 것이 필수입니까?

회계연도 하나입니다(화면에 빨간 별표가 붙습니다). 전기 월 시작·종료, 품목, 플랜트, 생산 완료일 시작·종료, 원인 후보, 점검 결과는 비워 두면 전체입니다. 앱을 열면 올해 값으로 자동 조회되고, 날짜를 바꾸면 곧바로 다시 조회합니다.

Enter 키로도 조회됩니까?

됩니다. 회계연도 입력 칸에서 Enter 키를 누르면 조회 버튼과 같은 동작을 합니다. 실제로 전기 월 종료를 3월로 두고 Enter 를 눌러 로트 237건이 120건으로 줄어드는 것을 확인했습니다.

날짜로 거를 때 하루가 어긋나지 않습니까?

어긋나지 않게 처리했습니다. 날짜 입력값은 UTC 자정으로 바꿔 보내고, 서비스도 같은 기준으로 비교합니다. 시작일과 종료일을 같은 필드에 걸 때는 한 묶음(and)으로 보내야 하는데, 이 화면이 그렇게 보냅니다. 확인용으로 ge 158건 · le 120건 · between 41건이 기대 건수와 모두 같았습니다.

탭의 숫자는 무엇입니까?

각 탭 이름 위의 숫자는 그 탭에 지금 조회된 행 수입니다. 조회조건을 바꾸면 다섯 탭이 같은 조건으로 함께 바뀌므로, 로트 명세 탭에서 본 범위와 원인 분해 탭에서 본 범위가 다르지 않습니다.

CSV 로 내려받으면 무엇이 담깁니까?

지금 보고 있는 탭의 조회 결과가 담기며, 화면에 보이지 않는 열(표준 구성 항목, 점검 코드 등)까지 화면과 같은 한글 제목으로 모두 들어갑니다. 요약 숫자는 CSV 에 따로 넣지 않으며, 같은 값을 표에서 합산해 확인할 수 있습니다.

서비스에 연결하지 못하면 어떻게 됩니까?

화면이 빈 표로 조용히 멈추지 않고 '서비스 연결 안내' 창을 띄웁니다. 서비스 정의를 불러오지 못했다는 사실과 연결 상태를 확인하라는 안내가 나옵니다. 연결 오류와 '조건에 맞는 로트가 없음'을 사용자가 혼동하지 않게 하려는 처리입니다.

도입과 운영

누가 어떻게 쓰는 화면입니까?

원가 마감 직전의 원가회계 담당자와 생산 현장 책임자가 같은 숫자를 보고 이야기하는 용도입니다. 담당자는 점검 필요 로트를 추리고, 현장은 로트 상세에서 구성 항목별 차이를 보며 원인을 확인합니다. 법정 보고나 공시를 만드는 화면이 아니라 마감 전에 이상 로트를 걸러 내는 점검 도구입니다.

SAP 표준 T-code 와는 어떤 관계입니까?

표준 실행은 SAP 표준 T-code 가 그대로 담당합니다. 생산오더 목록은 COOIS, 한 로트의 원가는 CO03, 오더 차이 계산은 KKS1, 표준 단위원가는 CK13N, 입고 수량은 MB51 에서 확인합니다. 이 화면은 같은 데이터를 로트 비교 관점으로 한 번에 보여 주는 확장이라, 기존 리포트를 없앨 필요가 없습니다.

운영 데이터에 붙이려면 무엇이 필요합니까?

CDS 뷰 몇 개(로트 원가 집계 · 품목·월 평균 · 점검 판정 · 소비 쿼리)와 한도 테이블, 권한 정의, 서비스 게시입니다. 화면은 서비스 주소만 바뀌므로 코드를 고치지 않습니다. 이 글의 CDS 구성 절에 코드와 정할 일을 함께 적어 두었습니다.

한도와 원인 규칙을 회사 기준으로 바꿀 수 있습니까?

한도는 테이블 값이라 품목별로 바꿀 수 있습니다. 원인 후보의 규칙(수율 3%p, 평균의 60% 같은 경계)은 판정 뷰의 상수이므로 화면을 고치지 않고 뷰에서 조정합니다. 경계값은 먼저 과거 몇 달의 로트에 돌려 점검 필요 비율이 현업이 느끼는 수준과 맞는지 보고 정하시기 바랍니다.

권한은 어떻게 나눕니까?

플랜트 단위 권한을 집계 단계에서 겁니다. 로트 명세에만 걸면 품목 비교나 월별 추이의 합계로 다른 플랜트의 숫자가 새어 나갈 수 있기 때문입니다. CDS 구성 절의 접근 제어 정의가 그 예입니다.

로트가 수만 건이 되어도 쓸 수 있습니까?

조회조건으로 범위를 좁히고 필요한 만큼만 가져오는 구조(표 행 수를 한정하고 전체 건수만 따로 받는 방식)라서 로트 수 자체에는 민감하지 않습니다. 다만 샘플은 237건이므로 운영 규모에서는 집계 위치와 인덱스를 먼저 점검해야 합니다. 평균과 변동계수 같은 집계는 CDS 뷰에서 미리 계산해 두는 편이 안전합니다.

점검 도구라는 말은 정확히 무슨 뜻입니까?

이 화면은 분류 · 집계 · 대사를 도와 확인할 대상을 좁히는 조회 도구이고, 원가의 최종 판단은 회사와 감사인이 합니다. 그래서 화면은 '위반'이나 '오류' 같은 단정 표현을 쓰지 않고 '점검 필요' · '확인 필요'라고만 표시합니다.

적용 시기나 기준서와 연결되는 부분이 있습니까?

특정 기준서의 시행일에 묶인 화면이 아닙니다. 대상 영역은 제조원가 분석이고 관련 기준서는 해당 없음입니다. 도입 시기는 회사의 원가 마감 일정에 맞춰 정하면 되고, 샘플 데이터는 가상의 6개 품목 · 6개월 값입니다.