SAP 생산계획 달성률 점검 — 계획은 세웠는데, 실제로 얼마나 채웠는지부터 본다
플랜트·작업센터·자재별로 생산계획 대비 실적수량을 대사해, 달성률이 기준에 못 미치는 조합부터 먼저 보여줍니다
생산계획 수량을 세워도, 실제 생산오더에서 얼마나 확정됐는지는 따로 봐야 압니다. 플랜트·작업센터·자재·기간 조합마다 계획수량과 생산오더 확정 실적수량을 나란히 모아 달성률(실적수량÷계획수량×100)을 계산하고, 기준치(95%)에 못 미치는 조합부터 먼저 보이도록 정렬했습니다. 계획수량이 0인데 실적이 잡힌 조합은 “확인필요”로 따로 표시해, 계획 미등록 같은 예외 상황도 놓치지 않도록 했습니다.
화면에 들어오면 최근 3개월 전체 조합을 기준으로 자동 조회되며, 조회 결과 위에는 조회 건수·미달성 건수·평균 달성률·최저 달성률을 모은 KPI 타일이 함께 뜹니다. 결과 행을 클릭하면 그 조합에 속한 생산오더별 확정 실적 상세를 팝업으로 바로 확인할 수 있습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 생산오더별 계획·확정 수량 조회 — 생산오더 정보시스템(
COOIS)의 오더 조회 구조를 그대로 이어받습니다 - 플랜트·기간별 생산 실적 집계 — PP-IS 표준분석(생산)(
MCP7)의 집계 관점을 이어받습니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 생산(PP) · 생산 분석 |
| 관련 기준서 | -(대상 영역: 생산 분석 — 생산계획 달성률) |
| Namespace | zui5.prodach |
| 셸 구조 | 조회조건 영역(우측 조회) + KPI 4종 + 결과 테이블, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | COOIS, MCP7 |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·점검형 — 최종 판단은 현업이 수행 |
| UI 테마 | sap_horizon 단일 적용 |
| 요약 | 내용 |
|---|---|
| 무엇을 보나 | 플랜트·작업센터·자재·기간별 계획수량·실적수량·차이수량·달성률 |
| 어떤 기준으로 | 달성률 95% 기준, 계획수량 0 여부 |
| 무엇을 가려내나 | 달성률 미달(미달성), 계획수량 0(확인필요) |
| 상세 확인 | 행 클릭 시 생산오더별 확정 실적 상세를 별도 팝업으로 확인 |
실제 화면 3종 둘러보기
기본 조건으로 조회하면 조합별 달성률 표가 뜹니다 → 자재를 입력하고 Enter 로 좁혀 보고 → 행을 클릭해 생산오더별 확정 실적 상세를 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 화면에 들어오면 서비스 정의가 로드되는 즉시 기본 조건(최근 3개월, 전체)으로 자동 조회가 1회 실행됩니다.
- 조회조건 영역에서 플랜트 · 작업센터 · 기간(부터~까지) · 판정(모두 선택)을 고르고, 자재(선택)는 코드나 자재명 일부를 입력합니다.
- 조회 버튼은 조회조건 입력 필드 영역의 오른쪽에 있습니다. 자재 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 초기화 버튼은 같은 줄 왼쪽에 있습니다.
- KPI 4종(조회 건수 · 미달성 건수 · 평균 달성률 · 최저 달성률)으로 전체 상태를 먼저 봅니다.
- 결과 표는 달성률이 낮은 순으로 정렬되어, 확인이 필요한 조합이 위쪽에 표시됩니다.
- 행을 클릭하면 해당 조합의 생산오더별 확정 실적 상세가 팝업으로 열립니다.
- 결과 표 오른쪽 위 CSV 내려받기(UTF-8 BOM)로 현재 조회 결과를 저장합니다.
달성률 판정 로직
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 계획수량 = 0 (계획 없이 실적이 발생) | 확인필요 | 계획 담당자에게 계획 미등록 사유 확인 |
| 달성률(실적수량÷계획수량×100) < 95% | 미달성 | 작업센터·자재 담당자에게 생산 지연 사유 확인 |
| 달성률 ≥ 95% | 달성 | 별도 조치 불필요 |
판정 기준(95%)은 화면 상 고정값이며, 실제 운영 시에는 현업 기준에 맞춰 조정될 수 있습니다.
계획-실적 대사 절차
| 단계 | 내용 |
|---|---|
| 1단계 | 플랜트·작업센터·자재·기간별로 계획수량을 집계 |
| 2단계 | 같은 조합의 생산오더 확정수량(오더별 실적)을 합산해 실적수량을 산출 |
| 3단계 | 차이수량 = 실적수량 − 계획수량 |
| 4단계 | 달성률 = 실적수량 ÷ 계획수량 × 100 (계획수량 0 은 별도 확인 대상) |
| 5단계 | 달성률을 기준치(95%)와 비교해 판정 상태 부여 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 플랜트 / 작업센터 | 선택(기본 전체) | 미선택 시 전체 대상 |
| 자재 | 선택 | 자재코드 또는 자재명 일부(부분일치) |
| 기간(부터~까지) | 선택(기본 최근 3개월) | 집계 기간 범위(YYYY.MM) |
| 판정 | 선택(기본 전체) | 전체 또는 미달성만 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 플랜트 / 작업센터 / 자재 / 자재명 / 기간 | 집계 기준 축 |
| 계획수량 / 실적수량 / 차이수량 | 수량 대사 값(단위: EA) |
| 달성률(%) | 실적수량÷계획수량×100, 소수 둘째 자리 |
| 판정 | 달성 / 미달성 / 확인필요(계획수량 0) |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 달성률 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
COOIS | 생산오더 정보시스템 — 오더별 계획/확정 수량 조회 | 플랜트·작업센터·자재·기간 조합으로 재집계해 달성률과 판정을 더합니다 |
MCP7 | PP-IS 표준분석(생산) — 생산 실적 집계 조회 | 계획수량과 짝지어 달성률 미달·확인필요 조합을 가려냅니다 |
분석 지표 정의표
| 지표 | 정의(산출식) | 대응 기능 | 원천 데이터 |
|---|---|---|---|
| 계획수량 | 기간·작업센터·자재별 생산계획 수량 합계 | 조회 결과 표 | 생산계획(계획오더) 마스터 |
| 실적수량 | 같은 조합의 생산오더 확정수량 합계 | 조회 결과 표, 상세 다이얼로그 | 생산오더 확정 실적 |
| 달성률 | 실적수량÷계획수량×100 | 조회 결과 표, KPI | 상동 계산값 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
AUFK | AUFNR · WERKS | 오더 마스터 — 플랜트 |
AFPO | AUFNR · MATNR · GSMNG | 오더 품목 — 자재, 계획수량 |
AFRU | AUFNR · LMNGA · BUDAT | 오더 확정 — 확정수량, 확정일 |
MAKT | MATNR · MAKTX | 자재 텍스트 |
define view I_ProdPlanAchv
as select from aufk as Order
association [1..1] to afpo as _Item on _Item.aufnr = Order.aufnr
association [0..*] to afru as _Confirm on _Confirm.aufnr = Order.aufnr
{
key Order.werks as Plant,
key _Item.arbpl as WorkCenter,
key _Item.matnr as Material,
_Item.gsmng as PlanQty,
sum(_Confirm.lmnga) as ActualQty
}
group by Order.werks, _Item.arbpl, _Item.matnr, _Item.gsmng
위 CDS 스케치는 이 화면의 원천 구조를 설명하기 위해 새로 작성한 예시입니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · KPI 4종 · 결과 테이블 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 결과 테이블은 해당 엔티티셋에 직접 바인딩합니다 |
| 조회조건 | sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 전체를 고른 조건은 필터를 만들지 않습니다. 정렬은 sap.ui.model.Sorter |
| 조회 결과 | sap.ui.table.Table — cellClick 으로 상세를 엽니다 |
| KPI 집계 | Function Import 를 별도 호출해 요약 타일에 반영합니다 |
| 상세 다이얼로그 | sap.m.Table |
| 예외 메시지 | 메타데이터 실패·요청 실패·빈 결과를 구분해 안내하는 전용 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 모델 초기화, 예외 메시지 처리기 연결 |
manifest.json | 앱 디스크립터 — ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · KPI · 결과 테이블 |
view/DetailDialog.fragment.xml | 오더별 확정 실적 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · KPI · 다이얼로그 · CSV |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/formatter.js · model/ErrorHandler.js | 표시 서식·판정 상태 · 예외 메시지 처리 |
i18n/i18n_ko.properties | 화면 문구 |
검증 결과
검증용 샘플 데이터(가상 3개 플랜트 · 6개 작업센터 · 8개 자재 · 3개 기간 조합 87건 · 생산오더 상세 265건)를 기준으로 대사식을 전수 검증했습니다.
| 검증 항목 | 결과 |
|---|---|
| 생산오더 확정수량 합계 = 조합별 실적수량 (87건) | 통과(차이 0) |
| 계획수량 0 예외 처리(확인필요 판정) | 2건 — 모두 “확인필요”로 판정, 예외 외 차이 0건 |
| 화면 KPI(조회 건수·미달성 건수·평균/최저 달성률) = 검증 스크립트 결과 | 일치 |
| 조회조건 전달 — 플랜트·작업센터·자재·기간·판정 필터 · 정렬 · 총건수 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 | 0건 |
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다. 생산계획 관련 최종 판단은 현업이 수행합니다.
자주 묻는 질문
이 화면은 언제부터, 어떤 범위에 적용할 수 있나요?
별도 법령·시행일 제약은 없으며, 생산계획 수량과 생산오더 확정 실적 데이터가 있는 플랜트·작업센터라면 바로 사용할 수 있습니다.
달성률 기준(95%)은 바꿀 수 있나요?
화면은 고정 기준값을 사용합니다. 운영 환경에 맞춰 기준을 조정하려면 별도 설정 반영이 필요합니다.
계획수량이 0으로 표시되는 건은 오류인가요?
오류로 단정하지 않고 “확인필요”로 표시합니다. 생산계획이 사전 등록되지 않은 상태에서 긴급 생산이 발생하는 등 다양한 사유가 있을 수 있어, 계획 담당자 확인이 먼저 필요합니다.
이 화면의 판정 결과를 그대로 생산관리 보고에 반영해도 되나요?
이 화면은 조회·점검을 돕는 도구입니다. 최종 판단과 후속 조치는 생산관리·계획 담당자가 수행합니다.