SAP 품질검사 결과 현황 — 사용결정 지연을 놓치지 않는 법
검사로트는 만들어졌는데 사용결정이 며칠째 비어 있다면, 그 자재는 창고에 묶여 있는 셈입니다. 검사유형을 가로질러 지연·불합격 로트를 한 화면에서 걸러내는 조회 화면입니다.
검사로트가 생성된 뒤 사용결정이 내려지기 전까지, 해당 수량은 품질검사 재고로 묶여 자유롭게 쓸 수 없습니다. 문제는 검사유형(입고검사·공정검사·정기검사)마다 담당자와 화면이 나뉘어 있어서, "지금 사용결정이 며칠째 밀려 있는 로트가 무엇인지"를 한눈에 보기가 어렵다는 점입니다.
SAP 표준 검사로트·사용결정 데이터 구조를 그대로 이어받아, 검사유형을 가로질러 모든 로트를 한 화면에서 조회하고 사용결정 지연·불합격 다발 로트를 자동으로 걸러 보여주도록 OpenUI5 화면으로 확장했습니다. 특성별 측정값과 판정 근거까지 상세보기에서 함께 확인할 수 있습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 검사로트 개념 — 검사유형별(입고검사·공정검사·정기검사) 검사로트 구조를 그대로 사용
- 사용결정 개념 — 사용결정코드(합격/조건부합격/불합격)와 사용결정일 구조
- 특성 결과 개념 — 특성별 측정값을 규격과 비교해 합격·불합격을 기록하는 방식
- 텍스트 — 플랜트·구매처 마스터 텍스트
- 화면 — 운영에서 검사유형별로 나뉜 조회를 하나의 통합 목록으로 재구성
| 항목 | 내용 |
|---|---|
| 업무 영역 | 구매관리(MM) · 품질검사 |
| Namespace | zui5.qcresult |
| 셸 구조 | 조회조건 영역(우측 조회) + 검사로트 목록, 특성 결과 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세보기 Dialog |
| SAP 표준 T-code | QA32 · QE51N |
| 성격 | 조회·모니터링형 — 검사·사용결정 입력은 SAP 표준 화면이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
플랜트·검사유형·판정상태 등 조회조건을 지정해 조회하면 지연·불합격 위주로 로트가 뜹니다 → 행을 골라 상세보기로 특성별 결과와 산출 근거를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 플랜트·검사유형·자재·판정상태·경과일수·미결 건만 중 필요한 조건을 지정합니다. 아무것도 지정하지 않으면 기본값으로 미결·지연·불합격·조건부합격 건만 보여줍니다.
- 조회조건 입력 필드에서 Enter를 누르거나 선택값을 바꾸면 즉시 재조회됩니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
- 결과 테이블 각 행의 오른쪽 화살표(상세보기)를 누르면 특성별 결과와 산출 근거를 담은 다이얼로그가 열립니다.
- 하단 툴바의 CSV 다운로드로 현재 조회 결과를 내려받습니다. UTF-8 BOM이 붙어 엑셀에서 한글이 깨지지 않습니다.
사용결정 지연·불량다발 판정 로직
검사로트의 판정상태는 사용결정 기록 여부와 경과일수, 특성 결과를 조합해 다섯 단계로 분류합니다.
| 판정상태 | 조건 |
|---|---|
| 지연 | 사용결정 미기록 + 경과일수(오늘−검사시작일) > 검사유형별 기준일(입고검사 3일 / 공정검사 5일 / 정기검사 10일) |
| 미결 | 사용결정 미기록이지만 아직 기준일 이내 |
| 합격 | 사용결정코드 A1(무제한 사용) |
| 조건부합격 | 사용결정코드 A3(제한 사용) — 특성 일부 불합격이 있어도 조건부로 사용 가능 판정된 경우 |
| 불합격 | 사용결정코드 R1(반품) 또는 R3(폐기) |
불량률을 판정상태와 별도로 보여주는 이유
조건부합격·합격 판정을 받았더라도 특성 일부가 불합격이었을 수 있습니다. 판정상태만 보면 "문제 없음"으로 보이지만, 불량률(불합격 특성수 ÷ 전체 특성수)을 함께 두면 담당자가 재발 방지 관점에서 그 로트를 다시 살펴볼지 스스로 판단할 수 있습니다.
검사로트 처리 4단계
| 단계 | 내용 |
|---|---|
| ① 검사로트 생성 | 입고(GR)·생산 확정·정기 계획에 따라 검사대상 수량(로트수량)으로 검사로트가 생성된다 |
| ② 특성별 결과 기록 | 검사계획에 정의된 특성별로 측정값을 규격(Sollwert)과 비교해 개별 합격·불합격을 기록한다 |
| ③ 합격/불합격 판정 집계 | 특성별 결과를 집계해 로트 단위 합격·불합격 특성수와 불량률을 산출한다 |
| ④ 사용결정 확정 | 담당자가 집계 결과를 바탕으로 사용결정코드와 사용결정일을 확정하면 로트가 종결된다. 기준일을 넘겨 미기록 상태이면 지연으로 판정된다 |
조회조건
| 필드 | 설명 |
|---|---|
| 플랜트 | 검사로트가 속한 플랜트 선택 (전체 포함) |
| 검사유형 | 입고검사(GR) · 공정검사 · 정기검사 중 선택 |
| 자재(코드/명) | 자재코드 또는 자재명 부분 일치 검색 |
| 판정상태 | 미결 · 지연 · 합격 · 조건부합격 · 불합격 중 선택. 미지정 시 합격 완료 건은 기본 제외 |
| 경과일수 | 7일 이상 · 14일 이상 · 30일 이상 등 최소 경과일수 이상만 조회 |
| 미결 건만 | 체크 시 사용결정이 아직 기록되지 않은 로트만 조회 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
| 검사로트 · 자재 | 검사로트 번호와 대상 자재코드·자재명 |
| 검사유형 | 입고검사(GR) · 공정검사 · 정기검사 |
| 플랜트 | 검사가 수행되는 플랜트 |
| 로트수량 | 검사대상 수량과 단위 |
| 검사시작일 | 검사가 시작된 일자 |
| 특성결과 | 합격·불합격 특성수 (예: 합격 3/4) |
| 불량률 | 불합격 특성수 ÷ 전체 특성수 × 100 (%) |
| 사용결정 | 사용결정코드와 명칭, 미기록 시 "미결" |
| 경과일수 | 검사시작일부터 사용결정(또는 오늘)까지의 경과일수 |
| 판정상태 | 미결 · 지연 · 합격 · 조건부합격 · 불합격 (아이콘 · 색상으로 구분) |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code가 담당하고, 이 화면은 여러 검사유형의 로트를 한 화면에서 가로질러 보고 지연·불량다발 로트를 자동 판정해 우선순위를 좁혀 보여주는 조회·모니터링 관점을 더해 확장한다.
| SAP 표준 T-code | 용도 |
|---|---|
QA32 | 검사로트 변경 / 사용결정 처리 |
QE51N | 검사결과 기록(특성별 측정값 입력) |
도입 시 확인이 필요한 부분
지연 판정 기준일(입고검사 3일 · 공정검사 5일 · 정기검사 10일)은 예시 값으로, 회사별 품질 SLA 정책에 맞춰 조정해야 합니다. 사용결정코드 체계도 클라이언트 커스터마이징에 따라 달라지므로 도입 시 실제 코드값에 맞춰 매핑을 다시 정의합니다.
참고 CDS 뷰
운영 서비스로 연결할 때는 검사로트와 사용결정을 조인한 뷰로 서빙하는 구성을 제안합니다.
@AbapCatalog.sqlViewName: 'ZCQCRESULT'
@EndUserText.label: '품질검사 결과 조회용 (Z)'
define view Z_C_QC_INSPECTION_RESULT
as select from qals as Lot
left outer join qave as Ud on Lot.prueflos = Ud.prueflos
left outer join lfa1 as Vendor on Lot.lifnr = Vendor.lifnr
{
key Lot.prueflos as InspectionLot,
Lot.art as InspectionType,
Lot.werk as Plant,
Lot.matnr as Material,
Lot.losmenge as LotQuantity,
Lot.erdat as CreationDate,
Lot.lifnr as Vendor,
Vendor.name1 as VendorName,
Ud.vcode as UsageDecisionCode,
Ud.vdatum as UsageDecisionDate
// 특성별 결과 집계(합격/불합격 건수, 불량률)는 연장 뷰에서 결합
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경의 검사계획·특성 마스터 구조에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.f.DynamicPage + 조회조건 헤더 + 결과 테이블 |
| 조회조건 | sap.m.Select · sap.m.Input · sap.m.CheckBox — 오른쪽 끝에 조회 버튼, Enter 키로 재조회 |
| 결과 목록 | sap.ui.table.Table — 행 하이라이트, RowAction으로 상세보기 진입 |
| 상세보기 | sap.m.Dialog + 특성별 결과 테이블 + 산출 근거 테이블 |
| 다운로드 | CSV 내보내기(UTF-8 BOM) |
| 포맷 | 수량 · 일자 · 불량률 · 판정상태 아이콘/색상 포맷터 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment |
Component.js | 디바이스 모델 초기화 · 라우터 부트스트랩 |
manifest.json | 앱 디스크립터 — 앱 ID(zui5.qcresult) · ko 로케일 |
view/Main.view.xml | 조회조건 헤더 + 결과 테이블 + 상세 Dialog |
controller/Main.controller.js | 조회 · 상세보기 · CSV 다운로드 로직 |
model/ModelMock.js | localdata JSON 읽기(Promise 인터페이스) |
js/formatter.js | 수량 · 일자 · 불량률 · 판정상태 포맷 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
localdata/inspectlots.json | 검사로트 헤더 검증용 데이터 |
localdata/characteristics.json | 특성별 결과 검증용 데이터 |
운영 전환 시에는 ModelMock 내부만 실제 서비스 호출로 바꾸면 화면과 판정 로직은
그대로 씁니다.
검증 결과
화면 구성에 쓴 데이터는 검사로트 140건 · 특성 결과 653건입니다.
| 검증 항목 | 결과 |
|---|---|
| 로트별 특성수 = 합격 특성수 + 불합격 특성수 (전수 검증) | 통과 |
| 특성 결과 데이터의 로트별 건수·불합격 건수가 헤더 집계값과 일치 | 통과 |
| JSON/XML 전체 파싱 · 리소스 200 확인 | 통과 |
| i18n 키 누락 0건 | 통과 |
| 적용 테마 sap_horizon 확인 | 통과 |
| 조회 버튼 위치(조회조건 영역 오른쪽 끝) 확인 | 통과 |
| Enter 키 조회 동작 확인 | 통과 |
| 화면 렌더링 — 실브라우저에서 조회 → 상세보기 실동작 후 캡처 | 3/3 |
자재 · 구매처 · 측정값은 모두 검증용 데이터입니다.
자주 묻는 질문
기본 조회 시 합격 완료 건은 왜 안 보이나요?
담당자가 우선 확인해야 할 미결·지연·불합격·조건부합격 건에 집중할 수 있도록 기본값으로 숨깁니다. 합격 완료 건을 보려면 판정상태에서 합격을 직접 선택하면 됩니다.
경과일수는 어떻게 계산되나요?
사용결정이 기록된 로트는 검사시작일부터 사용결정일까지, 아직 미기록인 로트는 검사시작일부터 오늘까지의 일수로 계산합니다.
지연 판정 기준일은 검사유형마다 다른가요?
예. 입고검사는 3일, 공정검사는 5일, 정기검사는 10일을 기준으로 판정합니다. 기준일은 회사 SLA 정책에 맞춰 조정할 수 있는 값입니다.
이 화면에서 사용결정을 직접 입력할 수 있나요?
아니오. 이 화면은 조회·모니터링 전용이며, 사용결정 입력 자체는 SAP 표준 화면에서 처리합니다.