공정원가 완성품환산량 점검 — 평균법 환산량으로 완성품과 기말재공 원가를 나눠 보고 장부와 견주는 월마감 화면
환산량으로 나눈 원가 · 진척도 불일치 점검 · 수량 대사 · 행 상세 · 열세 가지 대사 — 소개 영상과 실제 화면 7종, 그리고 CDS 코드까지
소개 영상1분 41초9개 장면음성 안내·자막처음 화면 → 점검 필요만 보기 → 원가 요소 → 계산 단위 → 월별 추이 → 상세 → 대사
개발 배경 — 이 앱을 사용해야 하는 이유
월마감 때 제조원가 담당자가 가장 오래 붙잡는 숫자는 기말재공 원가입니다. 이달 투입한 재료비와 가공비는 이미 나와 있는데, 그 가운데 얼마가 완성품으로 넘어가고 얼마가 아직 공정 안에 남았는지는 공정마다 진척도를 어떻게 보느냐에 따라 달라집니다. 같은 투입 원가라도 기말재공이 절반쯤 만들어졌다고 보면 가공비의 절반이 남고, 막 시작했다고 보면 거의 전부가 완성품으로 갑니다.
표준 화면은 재공품 계산과 차이 계산 결과를 오더 단위로 잘 보여 줍니다. 그러나 공정·품목·월 단위로 “환산량이 얼마이고, 단가가 얼마이며, 장부가 쓴 진척도가 생산 보고와 같은가”를 한 줄에 놓고 확인할 곳만 가려 주지는 않습니다. 그래서 현업은 생산 보고서와 원가 집계를 엑셀에 붙여 환산량을 다시 계산하고, 장부 금액과 맞춰 보며 월마감을 보냅니다.
이 앱은 그 계산을 계산 단위(공정·품목·월) 한 줄에서 해 둡니다. 완성품 수량에 기말재공 수량 × 진척도를 더해 재료비와 가공비의 환산량을 따로 구하고, 기초재공 원가와 당기 투입 원가를 더한 값을 환산량으로 나눠 평균 단가를 만듭니다. 그 단가로 완성품 원가와 기말재공 원가를 나눈 뒤 장부 금액과 견주고, 진척도·수량이 어긋난 곳을 점검 필요로 표시합니다. 재공품과 제품의 원가 배분은 K-IFRS 1002 재고자산 기준서의 원가 측정 관점과 닿아 있으며, 환산량 방식의 선택과 적용은 회사 정책과 외부감사인의 확인이 필요합니다.
진척도 하나가 달라지면 기말재공 원가가 달라진다
샘플 데이터 2월 기계가공의 구동축은 기말재공이 766개입니다. 생산 보고의 가공비 진척도는 25%이고, 장부는 100%를 썼습니다. 보고 기준으로 가공비 환산량은 3,302 + 766 × 25% = 3,493.5이고 가공비 단가는 3,307.97원입니다. 장부 기준이면 기말재공에 가공비가 훨씬 많이 남아 기말재공 원가가 7,012,550원, 보고 기준으로는 5,469,968원이 됩니다. 두 값의 차이 1,542,582원이 장부 차이로 잡힙니다. 진척도만 따로 보는 보고서는 이 차이를 가려 주지 않습니다. 이 앱은 두 진척도를 나란히 놓고 달라진 계산 단위를 점검 필요(진척도 확인)로 표시합니다.
기말재공이 있는데 가공비 진척도가 0%이면 가공비가 완성품으로 몰린다
3월 절단·성형의 구동축은 기말재공이 741개인데 가공비 진척도가 0%로 입력돼 있습니다. 환산량 계산에서 기말재공이 가공비 환산량에 한 개도 들어가지 않으니, 가공비 전액이 완성품 4,925개에 배분됩니다. 입력이 빠졌을 수도, 정말 가공이 시작되지 않은 재공일 수도 있어서 화면은 단정하지 않고 점검 필요(입력 확인)로 올립니다. 이런 건은 정합성 대사의 차이와 섞이지 않도록 의도적 예외로 따로 셉니다.
수량이 맞지 않으면 환산량이 맞을 수 없다
환산량은 수량에서 출발하므로 기초재공 + 당기 투입 = 완성품 + 기말재공 + 감손이 먼저 맞아야 합니다. 2월 도장·검사의 덮개는 기초 698개와 투입 5,336개를 합친 6,034개에서 완성 5,987개와 감손 5개를 빼면 42개가 설명되지 않습니다. 6월 기계가공 덮개는 반대로 92개가 더 잡혀 있습니다. 수량이 어긋난 채 원가를 나누면 단가가 달라지므로, 화면은 수량 차이가 있는 계산 단위를 먼저 가려 확인할 곳으로 올립니다.
공정 합계와 요소 합계가 다르면 월마감 회의가 길어진다
계산 단위 표, 공정 표, 원가 요소 표, 월 표를 따로 만들면 합계가 서로 달라 “어느 숫자가 맞나” 하는 회의가 열립니다. 이 앱은 계산 단위 한 줄에서 만든 금액을 공정·월로, 다시 월과 원가 요소로 올리고 열 가지 정합성 대사식으로 매번 검산합니다. 차이 건수가 요약 카드에 늘 함께 보이므로, 숫자를 믿어도 되는지를 열어 보기 전에 알 수 있습니다.
사용 방법
- 조회조건 입력 — 회계연도(필수, 4자리)를 확인하고, 필요하면 원가 월 시작·종료, 공정, 품목, 원가 요소, 원가 확정일 시작·종료, 점검 결과를 고릅니다. 고르지 않은 조건은 걸리지 않습니다.
- 조회 버튼 또는 Enter — 조건 입력칸의 가장 오른쪽 조회 버튼을 누르거나 입력칸에서 Enter 키를 누릅니다. 화면을 열면 기본 조건으로 한 번 자동 조회됩니다.
- 요약 확인 — 총 투입 원가, 완성품 원가, 기말재공 원가, 장부 차이, 점검 필요 공정·월, 점검 필요 계산 단위, 대사 차이 건수를 위쪽 숫자로 봅니다.
- 탭 이동 — 공정 판정 → 원가 요소 → 계산 단위 → 월별 추이 → 대사 결과 순서로 넘어가며, 탭 이름 위 숫자는 조건에 맞는 건수입니다.
- 행 클릭 상세 — 표의 행을 누르면 상세 창이 열려 지표 전체와 같은 월의 계산 단위 명세를 보여 줍니다.
- CSV 내려받기 — 현재 탭의 조회 결과를 UTF-8 CSV 로 내려받습니다.
숫자를 믿을 수 있는가 — 검증 결과
먼저 대사식을 세우고, 검증용 샘플 데이터 전체에 대해 돌린 결과입니다. 아래 열 가지가 정합성 대사이고, 의도적 예외 세 가지는 따로 셉니다.
| 대사식 | 검사 건수 | 차이 건수 | 최대 차이 |
|---|---|---|---|
| 완성품 수량 + 기말재공 수량 × 진척도 = 환산량 (재료·가공) | 144 | 0 | 0 |
| 기초 + 투입 = 완성 + 기말 + 감손 + 수량 차이 (수량) | 72 | 0 | 0 |
| 재료비 + 가공비 = 총 투입 원가 (단위) | 72 | 0 | 0 |
| 완성품 원가 + 기말재공 원가 = 총 투입 원가 (단위) | 72 | 0 | 0 |
| 환산량 단가 × 환산량 = 원가 (소수 넷째 자리 반올림 오차 1원 이내) | 144 | 0 | 0.3382 |
| 전월 기말재공 = 당월 기초재공 (수량·재료비·가공비) | 60 | 0 | 0 |
| 계산 단위 합계 = 공정·월 집계 (총원가 · 완성품 · 기말재공) | 24 | 0 | 0 |
| 공정 합계 = 월 합계 (총원가 · 완성품 · 기말재공) | 6 | 0 | 0 |
| 재료비 + 가공비 요소 합계 = 월 합계 (총원가 · 완성품 · 기말재공) | 6 | 0 | 0 |
| 장부 완성품 + 장부 기말재공 = 총 투입 원가 (장부) | 72 | 0 | 0 |
정합성 대사 열 가지는 모두 차이 건수 0입니다. 환산량 단가에 환산량을 곱한 값과 원가의 최대 차이 0.3382원은 단가를 소수 넷째 자리에서 반올림한 데서 온 것으로 허용 오차 1원 안입니다. 의도적 예외는 따로 셉니다 — 장부 진척도가 보고 진척도와 다른 계산 단위 5건(장부 기말재공 차이 최대 1,542,582원), 기말재공이 있는데 가공비 진척도가 0%인 3건, 수량 차이가 있는 3건(최대 92개)입니다. 판정은 72개 계산 단위 중 점검 필요 10건, 24개 공정·월 중 점검 필요 10건이며 별도 스크립트 재계산과 모두 일치했습니다. 화면의 요약 숫자(총 투입 원가 3,645.3백만원, 완성품 원가 3,460.6백만원, 기말재공 원가 184.7백만원, 장부 차이 −3.9백만원)도 스크립트 결과와 같았습니다.
무엇으로 만들었나
| 자리 | 무엇 | 왜 그렇게 두었나 |
|---|---|---|
| 화면 컨트롤 | OpenUI5 표준 컨트롤 — 조회조건 줄, 요약 카드, 탭, 데이터 표, 상세 창 | SAP 표준 화면과 같은 모양과 조작이라 현업이 따로 배울 것이 없습니다. |
| 집계·판정 로직 | 서비스 쪽 파일 한 곳 — 계산 단위에서 환산량·단가·배분을 만들고 공정·월·요소로 올림 | 화면 코드에 계산식이 흩어지지 않게 한 곳에 모았습니다. |
| 데이터 연결 | OData V2 서비스 하나. 계산 단위·공정·원가 요소·월·대사 다섯 종류의 데이터를 조건 필터로 받음 | 조회조건이 서비스에 필터로 가기 때문에 필요한 만큼만 내려받습니다. |
| 테마 | sap_horizon | 표준 Fiori 화면과 같은 시각 언어를 씁니다. |
| 설명서 | 앱과 함께 전개되는 설명서 한 부 | 인수인계 문서를 따로 만들지 않아도 됩니다. |
| 항목 | 내용 |
|---|---|
| 업무 영역 | 관리회계(CO) — 제품원가 계산, 재공품 평가 |
| 관련 기준서·대상 영역 | K-IFRS 1002 재고자산 (재공품·제품 원가 배분) |
| SAP 표준 T-code | KKAO · KKAX · KKS1 · KKS2 · KSB1 · FAGLL03 |
| Namespace | zui5.eqvunit |
| 화면 성격 | 조회·점검 — 공정·월·품목 단위 판정, 행 클릭 상세, CSV 내려받기 |
실행 화면
실제로 돌아가는 화면 7종을 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 하는 자리인지를 아래에 적었습니다. 숫자는 모두 같은 검증용 샘플 데이터에서 나온 것이라 화면끼리 맞춰 보셔도 됩니다.
처음 열었을 때
처음 화면은 조건, 요약, 판정표 세 단으로 되어 있습니다. 조건을 넣기 전에도 기본 조건으로 한 번 조회되어 빈 화면을 보는 일이 없습니다.

위쪽 일곱 숫자가 총 투입 원가 3,645.3백만원, 완성품 원가 3,460.6백만원, 기말재공 원가 184.7백만원을 먼저 말합니다. 그 옆에서 장부 차이 −3.9백만원, 점검 필요 공정·월 10건, 점검 필요 계산 단위 10건, 대사 차이 0건이 함께 읽힙니다. 아래 24행 표는 공정·월 한 줄이 하나의 판정 단위이고, 조회 버튼은 조건 입력칸 오른쪽 끝에 있습니다.

점검 결과만 걸어도 10건이 남고, 공정·월 어디서 진척도나 수량이 어긋났는지가 점검 코드와 점검 내용에 적혀 있습니다. 같은 조건에서 요약 카드는 총 투입 원가 1,444.4백만원으로 줄어 표와 숫자가 갈라지지 않습니다.
원가가 어떻게 나뉘는가 — 원가 요소와 계산 단위
공정 판정 다음에 오는 질문은 어느 요소가, 어느 품목이 그렇게 나눴느냐입니다. 원가 요소 탭에서 재료비와 가공비의 평균 단가와 배분을 보고, 계산 단위 탭에서 환산량과 진척도를 확인합니다.

1월 재료비는 환산량 62,621.6에 평균 단가 8,321.31원이고, 합계 원가 521.1백만원 가운데 95.29%가 완성품으로 배분됩니다. 가공비는 환산량 61,158.65에 단가 1,946.94원입니다. 2월 이후 요소 행에 점검 필요가 붙는 것은 그 요소에 영향을 준 계산 단위가 있어서이며, 영향 단위 수가 함께 나옵니다.

72개 계산 단위가 열립니다. 가공비 진척도와 장부 진척도 두 칸이 나란히 있어, 달라진 단위를 한눈에 찾습니다. 2월 기계가공 구동축은 25.00%와 100.00%로 갈리고 장부 차이 −1,542,582원이 따라옵니다. 원가 확정일을 넣으면 그 기간에 확정된 계산 단위만 남습니다.
흐름과 상세 — 월별 추이와 행 상세
월별 흐름에서 기말재공 비중이 달라진 시점을 찾고, 공정·월 한 행을 눌러 그 달의 구성을 확인합니다.

기말재공 비중은 1월 4.60%에서 4월 6.17%까지 올랐다가 6월 4.20%로 내려옵니다. 점검 필요 단위는 2월부터 매달 2곳씩 나오고, 수량 차이 단위는 2·4·6월에 하나씩 있습니다. 어느 달부터 확인 대상이 늘었는지 6개월 흐름으로 읽힙니다.

2월 기계가공 한 행을 누르면 기초 1,796개, 투입 14,540개, 완성 14,631개, 기말 1,667개, 감손 38개와 총 투입 원가 139.8백만원이 한 번에 열립니다. 장부 차이 −1,542,582원과 차이율 1.21%가 함께 보이고, 아래 품목별 계산 단위에서 어느 품목이 원인 후보인지 이어서 확인합니다.
숫자를 믿어도 되는가 — 대사 결과
마지막 탭은 화면이 스스로 하는 검산입니다. 합계가 맞는지와 의도적 예외를 구분해 보여 줍니다.

환산량 계산, 수량 대사, 재료비 + 가공비 = 총 투입 원가, 전월 기말 = 당월 기초 같은 식을 화면이 매번 다시 계산해 차이 0을 보입니다. 장부 진척도 불일치 5건, 진척도 0% 입력 3건, 수량 차이 3건은 오류와 섞이지 않게 의도적 예외로 따로 세웁니다.
화면 뒤에서 일어나는 일
화면은 조회조건을 필터로 만들어 서비스에 보내고, 서비스가 계산 단위 한 줄에서 만든 값을 공정·월·요소·월 단위로 올려 돌려줍니다. 계산 순서는 다음과 같습니다.
- 환산량 — 완성품 수량 + 기말재공 수량 × 진척도(%) ÷ 100. 재료비와 가공비를 따로 계산합니다. 평균법이며 감손 수량은 환산량에 넣지 않고 수량 대사에만 씁니다.
- 환산량 단가 — (기초재공 원가 + 당기 투입 원가) ÷ 환산량. 재료비와 가공비 각각 소수 넷째 자리에서 반올림합니다.
- 원가 배분 — 완성품 원가 = 완성품 수량 × 단가, 기말재공 원가 = 기말재공 환산량 × 단가. 두 값의 합이 총 투입 원가와 맞는지 대사합니다.
- 수량 대사 — 기초 + 투입 = 완성 + 기말 + 감손 + 수량 차이. 전월 기말재공이 당월 기초재공으로 넘어갔는지도 봅니다.
- 집계 대사 — 계산 단위 합계 = 공정·월, 공정 합계 = 월, 재료비·가공비 요소 합계 = 월.
- 장부 비교 — 장부 완성품·기말재공 원가와 환산량 기준 금액의 차이를 장부 차이(원)와 차이율(%)로 보여 줍니다. 차이율은 완성품 원가 대비입니다.
판정 규칙 — 확인 대상을 가린다
계산 단위 한 줄마다 아래 조건을 확인하고 하나라도 걸리면 점검 필요로 표시합니다. 공정·월, 원가 요소, 월 단위는 아래 단위 판정을 모아 보여 줍니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 장부가 쓴 가공비 진척도가 생산 보고 진척도와 다름 | 점검 필요(진척도 확인) | 계산 단위 탭에서 두 진척도를 견주고 환산량과 기말재공 원가 차이를 확인합니다. |
| 기말재공 수량이 있는데 가공비 진척도가 0%로 입력됨 | 점검 필요(입력 확인) | 진척도 입력이 빠졌는지 생산 보고를 확인합니다. 의도적 예외로 따로 집계합니다. |
| 기초 + 투입 − 완성 − 기말 − 감손이 0이 아님 (수량 차이) | 점검 필요(수량 확인) | 투입·완성 실적에서 수량이 어디서 어긋났는지 확인합니다. 의도적 예외로 따로 집계합니다. |
| 위 조건에 모두 해당 없음 | 정상 | 조건에 걸리지 않았습니다. |
조회조건
| 조건 | 필수 | 기본값 | $filter 로 가는 방식 |
|---|---|---|---|
| 회계연도 | 필수 | 2026 | Gjahr eq |
| 원가 월 시작 · 종료 | 선택 | 전체 | Period ge · le |
| 공정 | 선택 | 전체 | ProcCode eq (전체면 조건 없음) |
| 품목 | 선택 | 전체 | ItemCode eq (계산 단위) |
| 원가 요소 | 선택 | 전체 | ElemCode eq (원가 요소) |
| 원가 확정일 시작 · 종료 | 선택 | 비어 있음 | CloseDate ge · le (계산 단위) |
| 점검 결과 | 선택 | 전체 | CheckStatus eq |
결과 컬럼
| 컬럼 | 의미 | 산출식 |
|---|---|---|
| 재료비 · 가공비 환산량 | 완성품과 기말재공을 완성품 기준 수량으로 바꾼 값 | OutQty + EndQty × Pct ÷ 100 |
| 환산량 단가 | 기초와 당기 원가를 환산량으로 나눈 평균 단가 | (기초 원가 + 당기 원가) ÷ Eu |
| 완성품 원가 · 기말재공 원가 | 단가로 배분한 금액 | OutQty × 단가 · 기말 환산량 × 단가 |
| 보고 진척도 · 장부 진척도 | 생산 보고 가공비 진척도와 장부가 쓴 값 | ConvPct · BookConvPct |
| 장부 차이 · 차이율 | 장부 완성품 원가와 계산 값의 차이 | BookOutCost − OutCost · |DiffAmt| ÷ OutCost × 100 |
| 점검 결과 · 내용 | 진척도·수량 조건에 견준 판정과 걸린 조건 | 판정 규칙 표 |
좁은 화면에서 달라지는 것
휴대폰 폭(390px)에서는 조회조건이 줄을 바꿔 쌓이고 조회·초기화 버튼은 조건 아래 줄에 놓입니다. 요약 숫자도 두 칸씩 접혀 아래로 이어지며, 화면이 가로로 넘치지 않습니다. 표는 열이 많아 좁은 화면에서는 가로로 밀어 보도록 두었습니다.
파일 구성
index.html · Component.js · manifest.json · readme.html
controller/ BaseController.js · Main.controller.js
view/ Main.view.xml · DetailDialog.fragment.xml
model/ formatter.js · ErrorHandler.js
css/ · i18n/ (i18n_ko.properties)
odata/ 서비스 선언(metadata.xml) · 서비스 구현(service.js) · 엔티티별 응답 데이터
SAP 표준 기능 확장 포인트
이 앱은 SAP 표준을 대체하지 않습니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·점검 관점을 더해 확장합니다. 표준이 이미 잘하는 일은 표준에 맡기고, 표준 결과 위에서 공정·품목·월 단위로 확인할 곳만 가려 주는 자리를 이어 붙입니다. 아래 대응은 회사의 원가계산 구성에 따라 달라질 수 있어 확인 필요입니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | 표준으로 충분한 것 | 이 앱이 더하는 관점 |
|---|---|---|
| 기말재공 원가 계산 | KKAO · KKAX 재공품 계산(개별·집합) | 계산 결과를 공정·품목·월 한 줄로 놓고 환산량과 단가를 함께 보여 줍니다. |
| 차이 계산과 정산 확인 | KKS1 · KKS2 차이 계산(개별·집합) | 장부 진척도와 생산 보고 진척도가 달라진 계산 단위를 먼저 가립니다. |
| 원가 요소별 항목 확인 | KSB1 원가 요소별 개별 항목 | 재료비·가공비를 요소 단위로 올려 평균 단가와 배분을 보여 줍니다. |
| 계정 금액 확인 | FAGLL03 G/L 계정 개별 항목 | 재공품·제품 계정 금액과 공정 집계의 합계를 맞춰 봅니다. |
| 진척도·수량 일관성 점검 | 표준에는 없습니다. 보통 엑셀로 만듭니다 | 진척도 불일치, 0% 입력, 수량 차이를 판정 규칙으로 표시합니다. |
| 합계 대사 | 사람이 표준 결과와 직접 맞춥니다 | 열 가지 정합성 대사식을 화면이 매번 계산합니다. |
T-code 별 연계 지점
| T-code | 이름 | 연계 지점 |
|---|---|---|
| KKAO | 재공품 계산 (오더·원가 수집기, 개별 처리) | 이 앱이 이어받는 것은 기말재공 원가를 구하는 개념입니다. 같은 기간·같은 공정의 기말재공 원가를 KKAO 결과와 맞춰 보는 것이 월마감 대사 지점입니다. 이 앱의 계산 단위 행에서 진척도가 달라진 곳을 확인한 뒤 KKAO 로 넘어가 원천 계산을 보고, 표준 값이 의심스러우면 이 앱의 공정·월 행으로 돌아와 다시 봅니다. 회사의 재공품 계산 방식(환산량 사용 여부)은 확인 필요입니다. 법정·감사 대응은 표준에 남겨 둡니다. |
| KKAX | 재공품 계산 (집합 처리) | 월 단위 일괄 계산 결과와 이 앱의 공정·월 집계를 대조합니다. 일괄 처리에서 빠진 오더가 있으면 이 앱의 계산 단위 건수와 어긋나므로 건수부터 맞춥니다. |
| KKS1 | 차이 계산 (개별 처리) | 이 앱의 장부 차이와 표준 차이 계산 결과가 같은 방향인지 확인합니다. 방향이 다르면 진척도나 수량 입력을 먼저 의심해 볼 수 있습니다. |
| KKS2 | 차이 계산 (집합 처리) | 공정·월 단위 차이를 표준 일괄 결과와 대조합니다. 차이 범주 구분 방식은 회사 구성에 따라 달라 확인 필요입니다. |
| KSB1 | 원가 요소별 개별 항목 | 재료비·가공비 요소별 금액의 원천 항목을 확인합니다. 원가 요소 탭의 월별 투입 원가가 KSB1 합계와 같은지 맞춥니다. |
| FAGLL03 | G/L 계정 개별 항목 표시 | 재공품·제품 계정 금액이 공정 집계의 완성품·기말재공 합계와 같은지 대조합니다. 계정 범위는 확인 필요입니다. |
운영 전환 때 “기존 리포트를 없애야 하나” 하는 질문이 따라옵니다. 답은 없애지 않는다입니다. 표준 재공품·차이 계산 결과는 법정·감사 대응과 원천 확인에 그대로 쓰고, 이 화면은 월마감 전에 점검 대상을 가리는 데 씁니다. 두 결과가 같은 기간에서 같은지 맞춰 보는 것이 전환의 첫 단계입니다.
S/4HANA 분석 스택과의 자리
표준 CDS 분석 쿼리나 Fiori 분석 앱, Analysis for Office 는 임의의 축으로 파고드는 탐색에 강합니다. 이 앱은 그 자리를 대신하지 않고, 월마감에서 매번 같은 판정 규칙과 같은 대사식으로 확인할 곳을 가려 주는 점검 화면의 자리에 둡니다. 같은 CDS 뷰를 분석 스택과 공유하면 두 화면의 숫자가 갈라지지 않습니다.
확장 포인트 — 운영에서 실제로 손대는 자리
| 자리 | 무엇을 손대나 | 어떻게 |
|---|---|---|
| 공정·품목 매핑 | 생산 오더가 어느 공정·품목에 속하는지 | 매핑 테이블에 오더 유형·작업장·공정·품목·유효 기간을 둡니다. |
| 진척도 원천 | 가공비·재료비 진척도를 어디서 가져오나 | 생산 실적 확인값이나 별도 입력 테이블을 지정합니다. 보고 진척도와 장부 진척도를 구분해 받습니다. |
| 원가 요소 분류 | 재료비와 가공비로 나누는 원가 요소 범위 | 원가 요소 그룹을 매핑 테이블로 정합니다. |
| 허용 차이율 | 장부 차이율 옆에 둘 참고 기준 | 테이블 한 곳에서 값을 정합니다. |
| 확장 필드 | 제품군·플랜트 같은 추가 축 | CDS 뷰에 필드를 더하고 서비스에 노출합니다. |
| 권한 | 공정·플랜트 단위 조회 범위 | 권한 객체 값으로 집계 단계에서 제한합니다. |
분석 지표 정의표
| 지표 | 산식·판정 기준 | 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| 완성품환산량 | 완성품 수량 + 기말재공 수량 × 진척도 ÷ 100 | 계산 단위 · 원가 요소 | 생산 실적 수량, 진척도 | 평균법, 재료비·가공비 별도 |
| 환산량 단가 | (기초 원가 + 당기 원가) ÷ 환산량 | 계산 단위 · 원가 요소 | 원가 집계 금액 | 소수 넷째 자리 반올림 |
| 기말재공 비중 | 기말재공 원가 ÷ 총 투입 원가 × 100 | 공정 판정 · 월별 추이 | 배분 결과 | 급변하면 진척도 확인 필요 |
| 장부 차이율(참고) | |장부 차이| ÷ 완성품 원가 × 100 | 공정 판정 · 월별 추이 | 장부 금액 | 허용 차이율은 가상 기준값 |
| 수량 차이 | 기초 + 투입 − 완성 − 기말 − 감손 | 계산 단위 · 공정 판정 | 생산 실적 수량 | 0이 아니면 점검 필요 |
CDS 구성
화면이 읽는 데이터는 결국 CDS 뷰에서 나옵니다. 아래는 이 화면의 서비스를 S/4HANA 위에서 구성할 때의 뼈대입니다. 코드는 구조를 보이는 스케치이며, 원천 필드와 계정 범위는 회사 설정에 맞춰 확인이 필요한 곳을 주석에 적었습니다.
뷰 레이어 구성
| 레이어 | 뷰·객체 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 기준(매핑) | ZEQVU_PRCMAP · ZEQVU_PROG · ZEQVU_TOL | 오더→공정·품목 매핑, 월별 진척도, 허용 차이율을 둔다 | 공정 구분과 진척도는 정책·입력이라 코드 밖에서 고쳐야 한다 |
| 기본 | ZI_EqvUnitQty · ZI_EqvUnitCost | 생산 실적 수량과 원가 요소별 금액을 계산 단위로 읽는다 | 수량과 금액의 정의를 한 번만 정해 모든 집계의 바닥으로 쓴다 |
| 큐브 | ZI_EqvUnitCube | 환산량·단가·배분 금액을 계산하고 공정·월로 집계 가능하게 한다 | 합산 가능한 금액과 비율을 구분한다 |
| 소비(쿼리) | ZC_EqvUnitQuery | 판정 코드를 만들고 장부와 견준다 | 판정 기준이 화면 코드에 흩어지지 않게 한다 |
| 권한 | ZC_EqvUnitQuery(DCL) | 공정·플랜트 단위 조회 범위를 제한한다 | 집계 단계에서 걸어야 새 나가지 않는다 |
| 서비스 | ZUI_EqvUnit | 쿼리를 OData V2 로 노출한다 | 주소 한 줄로 개발·운영 전환 |
① 공정·품목 매핑 테이블 — 공정 구분은 코드가 아니라 데이터로
공정과 품목 구분이 가장 먼저 흔들립니다. 작업장 개편이나 오더 유형 변경이 있을 때 구분을 뷰의 case 문에 박아 두면 매번 이송이 필요합니다. 유효 기간을 둔 매핑표로 빼 두면 지난 달 숫자가 옛 구분으로 그대로 읽힙니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZEQVU_PRCMAP (공정·품목 매핑 테이블)
" 역할 : 오더 유형과 작업장이 어느 공정·품목에 속하는지를 한 곳에서 정한다.
" 이유 : 공정 구분을 CDS 안에 case 문으로 박아 두면 구분이 바뀔 때마다 뷰를 고쳐 이송해야 한다.
" 표로 빼 두면 현업이 행만 고치면 된다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '공정·품목 매핑'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zeqvu_prcmap {
key client : abap.clnt not null;
key auart : aufart not null;
key arbpl : arbpl not null;
key valid_from : abap.dats not null;
valid_to : abap.dats;
proccode : abap.char(3);
procname : abap.char(12);
itemcode : abap.char(3);
itemname : abap.char(12);
}
② 진척도 테이블 — 보고 진척도와 장부 진척도를 따로 받는다
이 앱의 점검은 두 진척도가 같은지에서 출발합니다. 생산 보고가 말하는 진척도와 장부가 원가 계산에 쓴 진척도를 한 줄에 별도 칸으로 받아야 어긋난 곳을 가릴 수 있습니다. 재료비 투입률도 같은 줄에 둡니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZEQVU_PROG (월별 진척도)
" 역할 : 계산 단위마다 재료비 투입률, 가공비 진척도(보고), 가공비 진척도(장부)를 둔다.
" 이유 : 두 진척도가 한 칸에 섞이면 불일치를 판정할 수 없다. 입력 출처와 입력자도 함께 남긴다.
" 확인 필요 : 진척도 원천(생산 실적 확인값 또는 별도 입력)은 회사 구성에 따라 정한다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label : '월별 진척도'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table zeqvu_prog {
key client : abap.clnt not null;
key gjahr : gjahr not null;
key period : abap.numc(3) not null;
key proccode : abap.char(3) not null;
key itemcode : abap.char(3) not null;
mat_pct : abap.dec(7,2); " 재료비 투입률 (%)
conv_pct_rpt : abap.dec(7,2); " 가공비 진척도 — 생산 보고 (%)
conv_pct_book : abap.dec(7,2); " 가공비 진척도 — 장부가 쓴 값 (%)
changed_by : abap.char(12);
changed_at : timestampl;
}
" 허용 차이율 — 장부 차이율 옆에 참고로 보여 주는 값 (판정에는 쓰지 않는다)
@EndUserText.label : '허용 차이율'
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table zeqvu_tol {
key client : abap.clnt not null;
key gjahr : gjahr not null;
tol_rate : abap.dec(7,2);
}
③ 기본 뷰 — 계산 단위별 수량
기초재공, 당기 투입, 완성품, 기말재공, 감손 수량을 계산 단위 한 줄로 읽습니다. 수량 대사식(기초 + 투입 − 완성 − 기말 − 감손)의 결과를 수량 차이로 이 뷰에서 확정하므로, 운영에서 가장 먼저 검증해야 하는 뷰입니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZI_EqvUnitQty (기본 뷰 — 계산 단위별 수량)
" 역할 : 생산 실적 수량을 공정·품목·월 한 줄로 읽고 수량 차이를 계산한다.
" 이유 : 이후 모든 환산량 계산의 바닥이므로 수량 정의를 여기서 한 번만 정한다.
" 확인 필요 : 실적 수량의 원천 필드(확인 수량·불량 수량·재공 수량)는 회사 설정에 맞춰 확인한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '공정원가 — 계산 단위 수량'
define view entity ZI_EqvUnitQty
as select from aufk
inner join afko on afko.aufnr = aufk.aufnr
inner join zeqvu_prcmap as pm
on pm.auart = aufk.auart
and pm.valid_from <= afko.gstrp
and ( pm.valid_to >= afko.gstrp or pm.valid_to = '00000000' )
{
key aufk.aufnr as OrderNo,
pm.proccode as ProcCode,
pm.itemcode as ItemCode,
cast( substring( afko.gstrp, 1, 4 ) as abap.numc( 4 ) ) as Gjahr,
cast( substring( afko.gstrp, 5, 2 ) as abap.numc( 3 ) ) as Period,
/* 기초재공·당기 투입·완성·기말·감손 수량 — 실적 집계에서 파생 (확인 필요) */
cast( 0 as abap.quan( 13, 0 ) ) as BegQty,
cast( 0 as abap.quan( 13, 0 ) ) as InQty,
cast( 0 as abap.quan( 13, 0 ) ) as OutQty,
cast( 0 as abap.quan( 13, 0 ) ) as EndQty,
cast( 0 as abap.quan( 13, 0 ) ) as LossQty,
/* 수량 차이 = 기초 + 투입 - 완성 - 기말 - 감손 */
cast( 0 as abap.quan( 13, 0 ) ) as GapQty
}
where aufk.loekz = '' /* 삭제 표시 오더 제외 */
④ 기본 뷰 — 원가 요소별 금액
재료비와 가공비는 원가 요소가 다릅니다. 이 뷰는 저널 항목에서 월별 기초재공 원가와 당기 투입 원가를 요소 그룹(재료·가공)으로 나눠 읽습니다. 환산량 단가의 분자가 되는 금액이 여기서 정해집니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZI_EqvUnitCost (기본 뷰 — 원가 요소별 금액)
" 역할 : 저널 항목을 원가 요소 그룹(재료비·가공비)으로 나눠 기초·당기 금액을 읽는다.
" 이유 : 환산량 단가의 분자가 되는 금액의 정의를 한 곳에 모은다.
" 확인 필요 : 원가 요소 범위와 기초재공 원가의 원천(전월 재공품 평가 결과)은 회사 설정에 맞춰 확인한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '공정원가 — 요소별 금액'
define view entity ZI_EqvUnitCost
as select from acdoca as j
inner join zeqvu_prcmap as pm
on pm.arbpl = j.arbpl
{
key j.rbukrs as CompanyCode,
key j.gjahr as Gjahr,
key j.poper as Period,
key pm.proccode as ProcCode,
key pm.itemcode as ItemCode,
/* 요소 그룹: 재료비 / 가공비 — 계정 범위는 확인 필요 */
case when j.racct between '0050000000' and '0050999999' then 'MAT'
else 'CONV' end as ElemGroup,
j.rhcur as Currency,
@Semantics.amount.currencyCode: 'Currency'
sum( j.hsl ) as InCost
}
group by j.rbukrs, j.gjahr, j.poper, pm.proccode, pm.itemcode,
j.racct, j.rhcur
⑤ 큐브 — 환산량·단가·배분
환산량과 단가, 완성품·기말재공 배분 금액을 계산하는 뷰입니다. 합산할 수 있는 금액(원가, 환산량)과 합산하면 안 되는 비율(진척도, 단가)을 구분해 두어야 공정·월로 올릴 때 숫자가 어긋나지 않습니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZI_EqvUnitCube (큐브 — 환산량·단가·배분)
" 역할 : 평균법 환산량과 단가를 계산해 완성품과 기말재공에 원가를 나눈다.
" 이유 : 단가는 합산하지 않고 환산량과 원가를 합산한 뒤 나눠야 공정·월 집계가 맞는다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Analytics.dataCategory: #CUBE
@EndUserText.label: '공정원가 — 환산량 큐브'
define view entity ZI_EqvUnitCube
as select from ZI_EqvUnitQty as q
inner join zeqvu_prog as pg
on pg.gjahr = q.Gjahr and pg.period = q.Period
and pg.proccode = q.ProcCode and pg.itemcode = q.ItemCode
association [0..*] to ZI_EqvUnitCost as _Cost
on _Cost.Gjahr = $projection.Gjahr and _Cost.Period = $projection.Period
and _Cost.ProcCode = $projection.ProcCode and _Cost.ItemCode = $projection.ItemCode
{
key q.ProcCode, key q.ItemCode, key q.Gjahr, key q.Period,
@DefaultAggregation: #SUM
q.OutQty, q.EndQty, q.GapQty,
/* 가공비 환산량 = 완성품 + 기말재공 × 진척도(보고) / 100 */
@DefaultAggregation: #SUM
cast( q.OutQty + q.EndQty * pg.conv_pct_rpt / 100 as abap.dec( 15, 2 ) ) as ConvEu,
/* 재료비 환산량 = 완성품 + 기말재공 × 재료비 투입률 / 100 */
@DefaultAggregation: #SUM
cast( q.OutQty + q.EndQty * pg.mat_pct / 100 as abap.dec( 15, 2 ) ) as MatEu,
pg.conv_pct_rpt as ConvPctRpt,
pg.conv_pct_book as ConvPctBook,
_Cost
}
⑥ 소비 쿼리 — 판정 코드와 장부 비교
화면이 읽는 판정이 이 쿼리에서 만들어집니다. 진척도 불일치, 0% 입력, 수량 차이 세 조건을 판정 코드로 만들고, 장부 금액과의 차이를 함께 돌려줍니다. 판정 기준을 이 쿼리 한 곳에 두면 화면 코드를 고치지 않고 기준을 조정할 수 있습니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZC_EqvUnitQuery (소비 쿼리 — 계산 단위 판정)
" 역할 : 판정 코드(E1 진척도 불일치 · E2 0% 입력 · E3 수량 차이)와 장부 차이를 만든다.
" 이유 : 판정 기준을 한 곳에 두어 화면과 대사 결과가 같은 기준을 쓰게 한다.
" ─────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@Analytics.query: true
@EndUserText.label: '공정원가 — 계산 단위 점검'
define view entity ZC_EqvUnitQuery
as select from ZI_EqvUnitCube
{
@AnalyticsDetails.query.axis: #ROWS
@Consumption.filter: { selectionType: #SINGLE, mandatory: true }
key Gjahr,
@AnalyticsDetails.query.axis: #ROWS
@Consumption.filter.selectionType: #INTERVAL
key Period,
@AnalyticsDetails.query.axis: #ROWS
key ProcCode,
@AnalyticsDetails.query.axis: #ROWS
key ItemCode,
ConvEu, MatEu, GapQty,
ConvPctRpt, ConvPctBook,
/* 판정 코드 — 하나라도 걸리면 점검 필요 */
case when ConvPctRpt <> ConvPctBook then 'E1' else '' end as ChkE1,
case when EndQty > 0 and ConvPctRpt = 0 then 'E2' else '' end as ChkE2,
case when GapQty <> 0 then 'E3' else '' end as ChkE3,
case when ConvPctRpt <> ConvPctBook
or ( EndQty > 0 and ConvPctRpt = 0 )
or GapQty <> 0
then 'CHECK' else 'OK' end as CheckStatus
}
⑦ 권한 — 집계 단계에서 공정 범위를 제한한다
권한은 화면에서 숨기는 것으로 끝나지 않습니다. 쿼리 안에서 조회 범위를 제한해야 전사 합계로 남의 공정 숫자를 역산하는 일이 막힙니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZC_EqvUnitQuery (DCL — 공정 단위 권한)
" 역할 : 권한 객체의 공정 값에 해당하는 계산 단위만 읽게 한다.
" 이유 : 집계 단계에서 걸지 않으면 합계로 다른 공정 숫자가 드러난다.
" 확인 필요 : 권한 객체와 필드는 회사 권한 설계에 맞춰 정한다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label: '공정원가 점검 권한'
@MappingRole: true
define role ZC_EqvUnitQuery {
grant select on ZC_EqvUnitQuery
where ( ProcCode ) = aspect pfcg_auth( ZEQVUPROC, ZPROC, ACTVT = '03' );
}
⑧ 서비스 정의와 바인딩 — OData V2 로 노출
마지막으로 쿼리를 서비스로 노출합니다. 화면의 서비스 주소는 이 바인딩이 게시하는 주소이며, 개발과 운영 사이 전환은 화면의 서비스 주소 한 줄을 바꾸는 것으로 끝납니다.
" ─────────────────────────────────────────────────────────────
" 객체 : ZUI_EqvUnit (서비스 정의 · 바인딩)
" 역할 : 계산 단위·공정·원가 요소·월·대사 쿼리를 하나의 서비스로 묶어 노출한다.
" 이유 : 화면은 서비스 주소만 알면 되고, 뷰 구성이 바뀌어도 화면은 그대로다.
" 확인 필요 : 공정·월·요소·월 단위 쿼리와 대사 쿼리는 같은 방식으로 추가한다.
" ─────────────────────────────────────────────────────────────
@EndUserText.label: '공정원가 완성품환산량 서비스'
define service ZUI_EqvUnit {
expose ZC_EqvUnitQuery as UnitSet;
/* ProcSet · ElemSet · MonthSet · ReconSet 는 같은 방식으로 expose */
}
/* 바인딩 : 유형 OData V2 - UI, 게시 후 서비스 주소를 화면의 데이터 소스 선언에 적는다. */
운영 시점에 해야 할 일
개발보다 정하는 일이 많습니다. 아래는 코딩이 아니라 합의입니다.
| 해야 할 일 | 무엇을 정하나 | 정하지 않으면 | 누가 |
|---|---|---|---|
| 공정·품목 매핑 | 오더 유형·작업장이 어느 공정·품목인지, 유효 기간 | 숫자가 표준 결과와 어긋나 첫 회의에서 막힙니다 | 관리회계 · 생산관리 |
| 진척도 원천 | 보고 진척도와 장부 진척도를 어디서 받는지 | 점검의 출발점이 없어 불일치를 가릴 수 없습니다 | 생산관리 · 원가팀 |
| 원가 요소 분류 | 재료비·가공비로 나눌 계정 범위 | 환산량 단가가 요소별로 갈라져 맞지 않습니다 | 관리회계 |
| 기초재공 원가의 원천 | 전월 기말재공 평가 결과를 어떻게 받는지 | 전월 기말 = 당월 기초 대사가 깨집니다 | 관리회계 |
| 권한 설계 | 공정·플랜트 단위 조회 범위 | 전사 합계와 자기 몫의 차이로 남의 숫자가 보입니다 | 보안 · 권한 |
| 성능 기준 | 응답 시간 목표와 필수 파라미터 | 전체 기간 조회가 느려져 화면을 외면하게 됩니다 | IT · 관리회계 |
| 표준과의 대사 항목 | 어떤 숫자를 어떤 T-code 결과와 맞출지 | 표준 결과와 같은지 확인할 근거가 없습니다 | 관리회계 |
| 전송과 서비스 활성화 | 이송 순서, 서비스 게시, 서비스 주소 교체 | 개발 서비스가 운영에 남거나 주소가 어긋납니다 | IT · 베이시스 |
운영 데이터로 갈 때
실제 운영에서는 계산 단위가 수십만 건까지 늘 수 있습니다. 집계는 가능한 한 데이터베이스 안(큐브·쿼리 단계)에서 끝내고 화면에는 공정·월 단위로 올린 값만 가져오게 합니다. 회계연도를 필수 파라미터로 두고 원가 월 구간을 함께 걸게 하며, 계산 단위 상세는 공정·월을 고른 뒤에만 읽습니다. 저널 항목을 읽는 뷰는 회사코드·회계연도·기간 순으로 조건이 걸리도록 인덱스와 접근 경로를 점검하고, 응답 시간 목표(예: 공정·월 24행 조회 3초 안)를 성능 기준으로 합의해 둡니다. 실제 기준치는 데이터 규모를 본 뒤 확인 필요입니다.
자주 묻는 질문
숫자와 산식, 화면과 조작, 데이터와 표준 연계, 도입과 운영 네 묶음으로 정리했습니다.
숫자와 산식
완성품환산량이란 무엇입니까?
기말재공처럼 아직 덜 만들어진 수량을 완성품 몇 개에 해당하는지로 바꾼 수량입니다. 이 화면은 완성품 수량에 기말재공 수량 × 진척도를 더해 구합니다. 재료비와 가공비는 투입 시점이 달라 진척도가 다를 수 있어 각각 따로 계산합니다. 예를 들어 기말재공 766개의 가공비 진척도가 25%이면 가공비 환산량에는 191.5개가 더해집니다.
평균법은 어떻게 단가를 구합니까?
기초재공 원가와 당기 투입 원가를 합친 값을 환산량으로 나눕니다. 기초재공이 이달 완성되든 아니든 한 덩어리로 섞어 평균 단가를 만드는 방식입니다. 이 화면은 재료비와 가공비 각각 소수 넷째 자리까지 단가를 구해 완성품과 기말재공에 같은 단가로 배분합니다. 선입선출법 같은 다른 방식을 쓰는 회사는 산식을 회사 방식에 맞춰 확인해야 합니다.
감손 수량은 환산량에 들어갑니까?
이 화면은 감손 수량을 환산량에 넣지 않고 수량 대사에만 씁니다. 기초 + 투입 = 완성 + 기말 + 감손 + 수량 차이로 수량이 맞는지만 확인합니다. 정상 감손과 비정상 감손을 어떻게 나눠 원가에 반영할지는 회사 정책에 따라 달라 확인 필요이며, 이 화면은 그 판단을 대신하지 않습니다.
장부 차이는 어떻게 계산합니까?
장부 완성품 원가에서 환산량 기준 완성품 원가를 뺀 값입니다. 차이율은 그 절댓값을 완성품 원가로 나눈 것이고, 옆에 허용 차이율 0.50%를 참고로 함께 보여 줍니다. 샘플 데이터 2월 기계가공은 장부 차이 −1,542,582원, 차이율 1.21%입니다. 허용 차이율은 이 화면의 가상 기준값이며 점검 필요 판정은 진척도와 수량 조건으로 합니다.
점검 필요가 나오면 문제가 있다는 뜻입니까?
아닙니다. 판정 조건에 걸렸으니 확인해 보라는 표시일 뿐 원인이나 책임을 단정하지 않습니다. 진척도 차이는 장부 입력 시점의 차이일 수도 있고, 수량 차이는 실적 반영이 늦은 것일 수도 있습니다. 이 화면은 점검 도구이며 최종 판단은 회사와 외부감사인이 합니다.
기말재공이 있는데 가공비 진척도가 0%이면 왜 점검 필요입니까?
기말재공이 가공비 환산량에 한 개도 들어가지 않아 가공비 전액이 완성품으로 가기 때문입니다. 입력 누락일 수도, 실제로 가공을 시작하지 않은 재공일 수도 있어 화면은 단정하지 않고 확인 필요로 표시합니다. 샘플 데이터에는 3월 절단·성형 구동축 등 3건이 있고, 의도적 예외로 따로 셉니다.
대사 결과의 의도적 예외는 무엇입니까?
정합성 대사와 별개로 확인 필요 예시로 일부러 넣은 세 가지입니다. 장부 진척도가 보고 진척도와 다른 계산 단위 5건, 기말재공이 있는데 가공비 진척도가 0%인 3건, 수량 차이가 있는 3건입니다. 이 건들은 계산이 틀린 것이 아니라 확인할 대상이므로 정합성 대사의 차이 건수에 섞지 않고 따로 집계합니다.
화면과 조작
조회조건은 어떻게 걸립니까?
회계연도만 필수이고 나머지는 고르지 않으면 걸리지 않습니다. 원가 월 시작·종료, 공정, 품목, 원가 요소, 원가 확정일 시작·종료, 점검 결과를 조합할 수 있고, 조건은 필터로 서비스에 전달되어 필요한 만큼만 내려받습니다. 같은 조건이 다섯 탭에 함께 걸립니다.
조회 버튼은 어디에 있습니까?
조회조건 입력칸의 가장 오른쪽에 있고 초기화 버튼이 같은 줄에 있습니다. 입력칸에서 Enter 를 눌러도 조회됩니다. 화면을 처음 열면 기본 조건으로 한 번 자동 조회되므로 빈 화면에서 시작하지 않습니다.
탭 이름 위의 숫자는 무엇입니까?
현재 조건에 맞는 건수입니다. 공정 판정 24, 원가 요소 12, 계산 단위 72, 월별 추이 6, 대사 결과 13처럼 보이고, 점검 결과를 점검 필요로 좁히면 해당 탭의 건수가 함께 줄어 어느 탭을 먼저 볼지 알려 줍니다.
행을 누르면 무엇이 열립니까?
표의 행을 누르면 상세 창이 열립니다. 공정·월 행에서는 수량, 원가, 장부 차이 등 지표 전체와 같은 월의 계산 단위 명세가 나오고, 계산 단위·원가 요소·월 행에서도 같은 방식으로 지표 전체와 연관 명세를 봅니다. 닫기 버튼으로 표로 돌아옵니다.
조회 결과를 내려받을 수 있습니까?
현재 탭의 조회 결과를 UTF-8 CSV 로 내려받을 수 있습니다. 조건을 걸어 좁힌 결과가 그대로 내려가며, 한글이 깨지지 않도록 UTF-8 로 저장됩니다. 숫자는 화면에 보이는 열 구성을 따릅니다.
휴대폰 같은 좁은 화면에서도 쓸 수 있습니까?
쓸 수 있습니다. 조회조건이 줄을 바꿔 쌓이고 요약 숫자도 접혀 아래로 이어지며 화면이 가로로 넘치지 않습니다. 표는 열이 많아 가로로 밀어 보는 방식이어서, 열을 비교하는 작업은 넓은 화면에서 하기를 권합니다.
데이터와 표준 연계
표준 T-code 와는 어떻게 오갑니까?
기말재공 원가는 KKAO · KKAX 결과와, 차이는 KKS1 · KKS2 와, 요소별 금액은 KSB1 · FAGLL03 과 맞춰 보면 됩니다. 이 앱의 계산 단위 행에서 확인할 곳을 찾고 표준 화면으로 원천을 확인하며, 표준 값이 의심스러우면 이 앱의 해당 공정·월 행에서 다시 봅니다. 표준 화면의 숫자는 그대로 두고 점검 관점만 더합니다.
데이터는 어디서 옵니까?
서비스가 돌려주는 계산 단위·공정·원가 요소·월·대사 다섯 종류의 데이터입니다. 운영에서는 생산 실적 수량과 저널 항목의 요소별 금액을 CDS 뷰가 모아 만들고, 진척도는 확인값이나 별도 테이블에서 받습니다. 지금 화면의 숫자는 모두 가상 공정과 가상 품목으로 만든 검증용 샘플 데이터입니다.
샘플 데이터와 실제 데이터의 형식 차이는 없습니까?
화면은 서비스가 돌려주는 엔티티 형식에만 의존하므로 같은 형식이면 샘플이든 운영이든 똑같이 동작합니다. 날짜는 서비스 표준 날짜 형식으로, 금액과 비율은 십진수 문자열로 주고받습니다. 운영 연결 뒤에는 대사 결과 탭이 표준 화면과의 차이를 가장 먼저 알려 줍니다.
정합성은 어떻게 확인합니까?
열 가지 정합성 대사식을 화면이 매번 계산합니다. 환산량 계산, 수량 대사, 재료비 + 가공비 = 총 투입 원가, 완성품 + 기말재공 = 총 투입 원가, 단가 × 환산량 = 원가, 전월 기말 = 당월 기초, 계산 단위·공정·요소 합계의 일치, 장부 합계가 그 식입니다. 샘플 데이터에서는 모두 차이 0이었고, 요약 카드의 대사 차이 건수로 바로 알 수 있습니다.
계정 체계나 매핑이 바뀌면 어떻게 합니까?
공정·품목 매핑과 원가 요소 분류는 코드가 아니라 테이블에 있어서 행을 고치면 됩니다. 유효 기간이 있어 과거 월은 옛 구분으로 그대로 읽히고, 새 구분은 새 월부터 적용됩니다. 구분이 바뀐 직후에는 표준 화면과의 대사 항목을 한 번 더 맞춰 보기를 권합니다.
적용 시기나 의무 범위가 정해져 있습니까?
재공품과 제품의 원가 배분은 K-IFRS 1002 재고자산 기준서의 원가 측정 관점과 닿아 있으나, 이 화면은 기준서가 정한 보고서가 아니라 관리회계 관점의 점검 도구입니다. 환산량 계산 방식은 회사가 정한 원가계산 정책을 따르므로 적용 범위는 정해진 바가 없고, 구체적 해석과 적용은 회사와 외부감사인이 확인해야 합니다.
도입과 운영
누가 어떤 효과를 기대할 수 있습니까?
월마감 때 기말재공 원가를 맞추는 원가 담당자와 이를 검토하는 관리회계 팀장이 주 대상입니다. 엑셀로 환산량을 다시 계산하고 장부와 맞춰 보던 일을 한 화면에서 하고, 확인할 계산 단위만 먼저 열어 볼 수 있습니다. 효과의 크기는 회사의 공정 수와 마감 방식에 따라 달라 숫자로 단정하지 않습니다.
운영 데이터에 연결하려면 무엇이 필요합니까?
공정·품목 매핑, 진척도 원천, 원가 요소 분류에 합의하고, CDS 뷰와 서비스를 만들어 이송한 뒤 화면의 서비스 주소를 바꾸면 됩니다. 소요는 합의에 걸리는 시간이 대부분이며 기술 작업은 뷰와 서비스를 올리는 일입니다. 구체적 일정은 회사 구성을 본 뒤 확인 필요입니다.
권한과 보안은 어떻게 합니까?
공정·플랜트 단위 조회 범위를 CDS 권한(DCL)으로 집계 단계에서 제한합니다. 화면에서만 숨기면 전사 합계로 다른 공정 숫자를 역산할 수 있어서 쿼리 단계에서 거는 것이 원칙입니다. 이 화면은 외부 라이브러리로 데이터를 보내지 않고 표준 컨트롤만 사용합니다.
데이터가 많아지면 느려지지 않습니까?
집계를 데이터베이스 안에서 끝내고 화면에는 공정·월 단위로 올린 값만 가져오게 하는 것이 기본입니다. 회계연도를 필수로 두고 원가 월 구간을 함께 걸며, 계산 단위 상세는 공정·월을 고른 뒤에만 읽습니다. 실제 응답 시간 기준은 데이터 규모를 본 뒤 정해야 합니다.
유지보수는 어디에 손이 갑니까?
매달 손이 가는 곳은 진척도 입력과 공정·품목 매핑 두 곳입니다. 새 공정이나 품목이 생기면 매핑표에 한 줄을 더하는 것으로 끝나고, 허용 차이율은 정책이 바뀔 때 값만 고치면 됩니다. 화면 로직은 서비스 데이터를 그대로 보여 주므로 평소에는 손댈 일이 거의 없습니다.
이 화면이 최종 판단을 대신합니까?
아닙니다. 진척도와 수량 조건에 견주어 확인 대상을 가려 줄 뿐 원가계산 방법이나 진척도 판단이 옳은지를 평가하지 않습니다. 점검 필요로 표시된 건의 사유를 확인하고 조치를 정하는 것은 회사와 담당자, 외부감사인의 몫입니다.