솔루션 홈
재고 분석

SAP 안전재고 점검 — 있어야 할 재고와 있는 재고, 둘 다 확인합니다

안전재고 대비 현재고를 자재 하나하나 대사해 두면, 결품 위험과 과잉 재고를 한 화면에서 함께 가려낼 수 있습니다

재고 회전율이나 평균재고 지표는 전체 추세를 보여주지만, "이 자재, 지금 얼마나 있어야 안전한가"라는 질문에는 바로 답하지 못합니다. 그래서 자재·플랜트별 평균 일사용량과 리드타임으로 안전재고를 산출하고, 이를 현재고와 나란히 놓고 대사하는 화면을 OpenUI5로 구현했습니다.

충족률(현재고 ÷ 안전재고)이 50% 미만이면 결품 위험이 큰 "점검 필요", 100% 미만이거나 300%를 넘으면 "확인 필요"로 자동 판정합니다. 표준 재고 조회 기능이 담당하는 현재고 조회 위에, 자재별로 계산한 안전재고 기준선을 더한 셈입니다. 실제 구동 화면 3종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 재고 현황 — 재고 현황 조회(MMBE)의 플랜트·자재별 재고수량 구조를 그대로 이어받습니다
  • 수급 목록 — 재고/요구사항 목록(MD04)의 결품 위험 판단 관점을 화면의 판정 로직으로 옮겨 왔습니다
  • 재고 분석 — 재고 분석(MC.9)의 표준 분석 관점을 안전재고 대사 관점으로 보완합니다
  • 마스터 조회 — 자재 마스터 조회(MM03)의 리드타임 필드를 안전재고 산출에 그대로 활용합니다
항목내용
업무 영역구매(MM) · 재고 분석
Namespacezui5.safetystk
셸 구조조회조건 영역(우측 조회) + 대사 요약 KPI 4종 + 탭 3개, 행 클릭 상세 Dialog
화면 수조회 화면 1개(탭 3개) + 상세 다이얼로그
SAP 표준 T-codeMMBE · MD04 · MC.9 · MM03
데이터 연동 방식OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩
성격조회·점검형 — 실제 발주·재고 조정 판단은 회사가 수행
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

기본 조건으로 조회하면 요약 KPI와 그룹별 요약이 뜹니다 → 자재별 명세 탭에서 자재 단위로 확인하고 → 행을 클릭해 상세를 봅니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

메인 화면
안전재고 점검 메인 화면 — 조회조건과 부족·과잉 후보 요약 KPI
메인 화면 — 조회조건 · 요약 KPI · 그룹별 요약이 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
자재별 명세
자재별 명세 탭 — 안전재고·현재고·충족률·판정
자재별 명세 — 자재별 안전재고·현재고·충족률·부족수량·판정을 한 건씩 봅니다. 충족률이 낮은 순으로 정렬됩니다.
자재 상세
자재별 명세 행 클릭 시 열리는 상세 다이얼로그
자재 상세 — 행을 클릭하면 평균 일사용량·리드타임 등 안전재고 산출 근거까지 다이얼로그로 펼쳐집니다.

사용 방법

  1. 화면에 들어오면 전체 조건으로 자동 조회가 1회 실행되어 그룹별 요약·자재별 명세·월별 추이가 함께 채워집니다.
  2. 조회조건 영역에서 플랜트·자재그룹·판정을 선택합니다(선택하지 않으면 전체). 자재/자재명은 검색어 입력 필드에 직접 입력합니다(선택 입력).
  3. 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 자재 검색어 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 초기화 버튼은 모든 조건을 지우고 다시 조회합니다.
  4. 상단 카드에서 조회 자재 수 · 부족·과잉 후보 · 부족분 재고금액 · 후보 비중을 먼저 확인합니다.
  5. 탭을 옮겨 그룹별 요약 → 자재별 명세 → 월별 추이 순으로 봅니다.
  6. 자재별 명세에서 행을 클릭하면 해당 자재의 산출 근거가 다이얼로그로 열립니다.
  7. 자재별 명세 탭의 CSV 내려받기(UTF-8 BOM)로 현재 조회 결과를 저장합니다.

부족·과잉 판정 기준

판정 조건(충족률 = 현재고 ÷ 안전재고 × 100)결과 상태사용자 조치
충족률 < 50%점검 필요결품 위험이 높은 자재로, 발주·생산계획 담당자의 우선 확인이 필요
50% ≤ 충족률 < 100%확인 필요안전재고에 못 미치는 상태로, 보충 계획을 점검
100% ≤ 충족률 ≤ 300%정상조치 없음
충족률 > 300%확인 필요과잉 재고 후보로, 발주 주기·수량 조정을 점검

위 구간·판정은 조회·점검을 돕기 위한 기준이며, 실제 발주·재고 조정 여부는 화면이 단정하지 않고 담당자와 관련 부서의 검토를 거칩니다.

안전재고 산출·대사 절차

단계내용
1단계자재·플랜트별 평균 일사용량과 리드타임(일)을 확인
2단계안전재고 = 평균 일사용량 × (리드타임 + 버퍼일)로 산출
3단계현재고와 비교해 충족률·부족수량(= max(0, 안전재고 − 현재고))을 계산
4단계충족률 구간에 따라 판정(정상 / 확인 필요 / 점검 필요)을 부여
5단계플랜트·자재그룹별로 자재수·후보건수·부족분 금액·재고금액을 집계(그룹 합계 = 명세 합계)
6단계월별로 후보건수·부족분 금액 추이를 별도 집계(당월 추이 = 현재 그룹별 요약 합계)

조회조건

필드필수설명
플랜트선택전체면 조건 제외
자재그룹선택원재료 · 포장재 · 제품 · 소모성자재 — 전체면 조건 제외
판정선택정상 · 확인 필요 · 점검 필요 — 자재별 명세에만 적용
자재/자재명선택자재코드 또는 자재명 일부로 검색 — 자재별 명세에만 적용

결과 컬럼

컬럼설명
플랜트 · 자재그룹그룹별 요약의 집계 축
자재수 · 후보 건수 · 부족분 금액 · 재고금액그룹에 속한 자재 건수와 후보 건수·금액 합계
자재 · 자재명 · 자재그룹자재별 명세의 자재 식별 정보
안전재고 · 현재고 · 충족률 · 부족수량대사 산출값
판정정상 · 확인 필요 · 점검 필요
년월 · 후보 건수 · 부족분 금액월별 추이의 플랜트별 집계

SAP 표준 기능 매핑

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 안전재고 대사 관점을 더해 확장합니다.

표준 T-code표준 기능이 화면이 더한 것
MMBE재고 현황 조회플랜트·자재별 재고수량 위에 안전재고 대비 충족률 축을 더합니다
MD04재고/요구사항 목록결품 위험 판단 관점을 자재별 판정 로직으로 재구성합니다
MC.9재고 분석표준 재고 분석 관점을 안전재고 대사 관점으로 보완합니다
MM03자재 마스터 조회리드타임 마스터 필드를 안전재고 산출에 활용합니다

분석 지표 정의표

대상 영역지표정의원천 데이터
재고 분석안전재고평균 일사용량 × (리드타임일수 + 버퍼일)소비이력, 리드타임 마스터
재고 분석충족률현재고 ÷ 안전재고 × 100재고, 안전재고 산출값
재고 분석부족수량max(0, 안전재고 − 현재고)재고, 안전재고 산출값

참고 CDS 뷰

원천 테이블주요 필드쓰임
MARA / MAKTMATNR · MATKL · MAKTX자재 마스터 — 자재·자재그룹·자재명
MARCWERKS · PLIFZ플랜트별 자재 데이터 — 리드타임
MARDWERKS · LABST플랜트별 재고 — 현재고 수량
MBEWVERPR · STPRZ자재 평가 — 단가
define view entity ZC_SafetyStockItem
  as select from marc as c
    inner join mara as m on m.matnr = c.matnr
    inner join makt as t on t.matnr = c.matnr and t.spras = 'K'
    inner join mard as d on d.matnr = c.matnr and d.werks = c.werks
    inner join mbew as w on w.matnr = c.matnr and w.bwkey = c.werks
{
  key c.werks               as Plant,
  key c.matnr               as Material,
      t.maktx               as MaterialText,
      m.matkl               as MatlGroup,
      c.plifz               as LeadTimeDays,
      sum( d.labst )        as CurrentStock,
      w.verpr               as UnitPrice
}
group by c.werks, c.matnr, t.maktx, m.matkl, c.plifz, w.verpr

계정·마스터 구성은 가상 데이터 기준 스케치입니다. 평균 일사용량은 소비이력을 별도 집계한 파생값입니다.

OpenUI5 구성

기능사용 컨트롤 · 구성
화면 골격sap.m.Page + 조회조건 패널 · 요약 KPI · IconTabBar 3개 탭
데이터 연동manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩합니다
조회조건sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 전체를 고른 조건은 필터를 만들지 않습니다. 정렬은 Sorter, 총건수는 인라인 카운트로 받습니다
그룹별 요약 · 자재별 명세sap.m.Table — 행 클릭(press)으로 상세 다이얼로그를 엽니다
예외 메시지메타데이터 실패·요청 실패·빈 결과를 구분해 안내하는 전용 처리기

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결
Component.js모델 초기화, 예외 메시지 처리기 연결
manifest.json앱 디스크립터 — zui5.safetystk · ko 로케일, OData 서비스와 모델 선언
view/Main.view.xml조회조건 · 요약 KPI · 3개 탭
view/DetailDialog.fragment.xml자재 상세 다이얼로그
controller/Main.controller.js조회조건 조립 · 바인딩 · 다이얼로그 · CSV
controller/BaseController.jsCSV 다운로드 공통 처리
model/formatter.js · model/ErrorHandler.js표시 서식 · 예외 메시지 처리
i18n/i18n_ko.properties화면 문구

검증 결과

검증용 샘플 데이터(자재 58건, 플랜트 2개)를 기준으로 대사식을 전수 검증했습니다. 경계 판정 동작을 확인하기 위해 현재고가 0인 결품 사례 1건과 안전재고가 미설정(0)인 사례 1건을 의도적으로 포함했습니다.

검증 항목결과
그룹별 요약 합계 = 자재별 명세 합계 (8건 — 플랜트×자재그룹)통과(차이 0)
부족수량 = max(0, 안전재고 − 현재고) (58건 전수)통과(차이 0)
월별 추이 당월 합계 = 그룹별 요약 현재 합계 (플랜트 2개)통과(차이 0)
조회 조건 전달 — 플랜트·자재그룹·판정 필터 · 충족률 오름차순 정렬 · 총건수 표시확인
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현0건
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지확인

모든 데이터는 검증용으로 구성한 가상 데이터입니다.

자주 묻는 질문

안전재고는 어떤 기준으로 산출되나요?

자재·플랜트별 평균 일사용량에 (리드타임일수 + 버퍼일)을 곱해 산출합니다. 조회 시점의 소비이력·리드타임 마스터를 기준으로 매번 다시 계산합니다.

"점검 필요"로 표시되면 바로 발주해야 하나요?

아닙니다. 이 화면은 조회·점검을 돕는 도구이며, 발주·재고 조정 등 최종 판단은 담당자와 관련 부서가 별도 절차와 기준에 따라 결정합니다.

재고 회전율 점검과는 어떻게 다른가요?

회전율은 일정 기간의 출고금액과 평균재고를 비교하는 지표이고, 이 화면은 자재 한 건 한 건의 현재고를 그 자재에 필요한 안전재고 수준과 직접 대사합니다. 회전율이 정상이어도 특정 자재만 결품 위험이나 과잉 상태인 경우를 함께 확인할 수 있습니다.

안전재고가 설정되지 않은 자재는 어떻게 표시되나요?

안전재고 값이 0(미설정)인 자재는 판정을 임의로 내리지 않고 충족률을 "확인 필요"로 표기합니다. 마스터 설정 여부를 먼저 확인하도록 안내합니다.

재고 조회, 안전재고 대사 관점을 하나 더 붙여 보세요

재고수량만으로는 놓치기 쉬운 자재별 결품 위험·과잉 후보를 안전재고 기준으로 미리 걸러 두면, 발주·재고 조정 검토를 더 일찍 시작할 수 있습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

안전재고재고 분석결품 위험구매(MM)OpenUI5