솔루션 홈
재고 분석

SAP 재고 회전율 점검 — 자재그룹 평균보다 느리게 도는 재고부터 가른다

평균 재고금액과 출고금액만으로 회전율을 다시 계산해, 자재그룹 안에서 유독 느리게 도는 자재를 먼저 골라냅니다

재고 회전율은 "출고금액 ÷ 평균재고금액"이라는 단순한 식이지만, 자재 수백 종을 늘어놓고 눈으로 훑어 느린 재고를 골라내기는 쉽지 않습니다. 특히 소모성자재처럼 종류는 많고 건당 금액은 작은 자재군은 평균과 비교하지 않으면 무엇이 상대적으로 느린지 가늠하기 어렵습니다.

자재별로 기초·입고·출고·기말 수량과 금액을 재구성해 회전율과 재고일수(DIO)를 산출하고, 같은 자재그룹·같은 기간의 평균 회전율과 비교해 뚜렷하게 느린 자재를 자동으로 표시하는 화면을 OpenUI5로 구현했습니다. 표준 재고 조회가 수량·금액 현황을 보여준다면, 이 화면은 그 위에 자재그룹 내 상대 비교라는 점검 관점을 더합니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 재고 수량·금액 조회 — 기간별 재고 수량·금액(MB5B)의 기초·입고·출고·기말 구조를 그대로 이어받습니다
  • 플랜트별 재고 현황 — 재고 현황 조회(MMBE)의 플랜트·자재그룹 축을 조회조건으로 씁니다
  • 재고 회전·범위 분석 — 재고관리 정보시스템(MC.9)의 회전율 분석 개념을 자재그룹 상대 비교로 확장합니다
항목내용
업무 영역구매·재고(MM) · 재고 분석
관련 기준서— (재고 관리 상시 점검 도구)
Namespacezui5.stockturn
셸 구조조회조건 영역(우측 조회) + 회전율·저회전 후보 요약 KPI + 탭 2개, 행 클릭 상세 Dialog
화면 수조회 화면 1개(탭 2개) + 상세 다이얼로그
SAP 표준 T-codeMB5B · MMBE · MC.9
데이터 연동 방식OData V2 — 화면 블록마다 엔티티셋을 조회해 바인딩
성격조회·대사·점검형 — 실제 재고 정책 판단은 회사가 수행
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

기본 조건으로 조회하면 회전율·저회전 후보 요약과 자재별 명세가 뜹니다 → 자재그룹 요약 탭에서 그룹별 합계를 확인하고 → 행을 클릭해 증감 상세와 검증식을 봅니다.

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

Main.view.xml
재고 회전율 점검 메인 화면 — 조회조건과 회전율 요약, 자재별 명세
메인화면 — 조회조건 · 조회 건수·저회전 후보·평균 회전율 요약 · 자재별 회전율 명세가 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
자재그룹 요약
자재그룹 요약 화면
자재그룹 요약 — 자재그룹·기간별 자재수·출고금액 합계·평균재고 합계·그룹 회전율을 나란히 봅니다.
증감 상세
자재별 재고 증감 상세 다이얼로그
증감 상세 — 행을 클릭하면 기초·입고·출고·기말 금액과 평균재고·회전율·재고일수, 검증식이 다이얼로그로 열립니다.

사용 방법

  1. 플랜트·자재그룹(선택)과 회계연도·시작기간·종료기간(필수)을 입력합니다. 선택 조건을 비워 두면 전체가 조회 대상입니다.
  2. 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건으로 한 번 자동 조회됩니다.
  3. 요약(KPI)에서 조회 건수·저회전 후보 건수·평균 회전율을 먼저 확인합니다.
  4. 탭을 옮겨 자재별 회전율 명세와 자재그룹 요약을 함께 봅니다.
  5. 명세에서 행을 클릭하면 증감 상세와 검증식이 다이얼로그로 열립니다.
  6. "CSV 다운로드"(UTF-8 BOM)로 현재 조회 결과를 저장합니다.

저회전 후보 판정 기준

판정 조건결과 상태사용자 조치
자재의 회전율이 같은 자재그룹·같은 기간 평균 회전율의 60% 미만확인 필요과잉재고·저속이동 여부를 담당자가 함께 점검
그 밖의 경우(그룹 평균의 60% 이상)정상조치 없음

기준값(60%)은 자재그룹 내 상대 비교를 위한 조회 로직이며, 회사 정책에 맞게 바꿔 쓸 수 있습니다.

재고 증감·회전율 산출 절차

단계내용
1단계기말수량 = 기초수량 + 입고수량 − 출고수량 (금액도 같은 구조로 검증)
2단계평균재고금액 = (기초금액 + 기말금액) ÷ 2
3단계회전율 = 출고금액 ÷ 평균재고금액
4단계재고일수(DIO, 해당 기간 30일 기준 추정) = 30 ÷ 회전율
5단계자재그룹 회전율 = 그룹 내 출고금액 합계 ÷ 그룹 내 평균재고금액 합계
6단계자재 회전율을 그룹·기간 평균과 비교해 저회전 후보를 표시

조회조건

필드필수설명
플랜트선택전체면 조건 제외
자재그룹선택전체면 조건 제외
회계연도필수4자리 연도
시작기간 / 종료기간필수두 값이 모두 있으면 구간 조건으로 조회
저회전 후보만 보기선택판정이 "확인 필요"인 자재만 표시

결과 컬럼

컬럼설명
플랜트 · 자재 · 자재그룹 · 기간식별 정보
기초수량 · 입고수량 · 출고수량 · 기말수량수량 증감
평균재고금액 · 출고금액회전율 계산의 분모·분자
회전율 · 재고일수(DIO)출고금액÷평균재고금액, 30÷회전율
판정정상 · 확인 필요

SAP 표준 기능 매핑

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 회전율 산출과 자재그룹 상대 비교라는 조회·점검 관점을 더해 확장합니다.

표준 T-code표준 기능이 화면이 더한 것
MB5B기간별 재고 수량·금액 조회같은 증감 구조에 회전율·재고일수를 더해 산출합니다
MMBE플랜트별 재고 현황 조회플랜트·자재그룹 필터의 기준 정보로 참고합니다
MC.9재고관리 정보시스템(회전·범위 분석)회전율을 자재그룹·기간 평균과 상대 비교해 저회전 후보를 가려냅니다

분석 지표 정의표

지표정의이 화면의 대응 기능원천 데이터비고
재고 회전율출고금액 ÷ 평균재고금액자재별 회전율 명세재고 이동·평가 데이터기간(월) 단위 값
재고일수(DIO)30 ÷ 회전율자재별 회전율 명세회전율에서 파생해당 기간 기준 추정치, 연환산 아님
저회전 후보 판정자재그룹·기간 평균 대비 60% 미만판정 컬럼자재별 회전율 집계확인 필요로 표시, 최종 판단은 담당자

참고 CDS 뷰

원천 테이블주요 필드쓰임
MARA / MAKTMATNR · MAKTX자재 마스터 — 자재번호·자재명
MARCMATNR · WERKS · MATKL플랜트별 자재 데이터 — 자재그룹
MARDWERKS · MATNR · LABST플랜트·저장위치별 재고 수량
MBEWMATNR · BWKEY · VERPR자재 평가 — 이동평균가
MSEG / MKPFMATNR · WERKS · MENGE · BWART자재 이동 전표 — 입고·출고 수량
define view entity ZI_StockTurnover
  as select from mard
    inner join mara on mara.matnr = mard.matnr
    inner join marc on marc.matnr = mard.matnr and marc.werks = mard.werks
    inner join mbew on mbew.matnr = mard.matnr and mbew.bwkey = mard.werks
{
  key mard.werks                        as Plant,
  key mard.matnr                        as Matnr,
      marc.matkl                        as MatGroup,
      mard.labst                        as ClosingQty,
      mard.labst * mbew.verpr           as ClosingValue
}

자재그룹 구분은 예시 체계이며, 실제 원천 필드·이동유형 매핑은 회사 환경에 맞춰 확인이 필요합니다.

OpenUI5 구성

기능사용 컨트롤 · 구성
화면 골격sap.m.Page + 조회조건 패널 · 회전율 요약 KPI · IconTabBar 2개 탭
데이터 연동manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고, 화면은 조회 시 엔티티셋을 읽어 온 결과를 화면 전용 모델에 담아 바인딩합니다
조회조건sap.ui.model.Filter 로 조립합니다. 기간처럼 같은 프로퍼티에 두 조건(이상·이하)이 걸릴 때는 하나의 Filter 로 묶어 전달합니다. 전체를 고른 조건은 필터를 만들지 않습니다
명세 표sap.ui.table.Table — 컬럼이 많은 명세, 행 클릭(cellClick)으로 상세 다이얼로그
집계 표sap.m.Table — 자재그룹 요약 소량 집계
예외 메시지메타데이터 실패·요청 실패·빈 결과를 구분해 안내하는 전용 처리기

파일 구성

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

검증 결과

검증용 샘플 데이터(자재 26종 × 플랜트 2개 × 3개월, 168건)를 기준으로 대사식을 전수 검증했습니다.

검증 항목결과
기초 + 입고 − 출고 = 기말 (수량·금액, 168건)통과(차이 0)
평균재고금액 = (기초금액+기말금액)/2 (168건)통과(차이 0)
회전율 = 출고금액 ÷ 평균재고금액 (168건)통과(차이 0)
자재그룹 회전율 = 그룹 출고금액 합계 ÷ 그룹 평균재고 합계, 그룹 합계 = 자재별 합계 (15건)통과(차이 0)
저회전 후보 판정 재현(그룹·기간 평균의 60% 미만)통과(43건 확인 필요)
조회조건 전달 — $filter·$orderby·$top 실동작, 기간 구간(BT) 조건확인
화면 요약 합계 = 검증 스크립트 합계(조회 건수 168 · 저회전 후보 43)일치
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현0건
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지확인

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

자주 묻는 질문

이 화면은 언제, 어떤 범위에 쓰나요?

특정 기준서의 시행일과는 무관한 상시 재고 관리 도구입니다. 플랜트·자재그룹·회계기간을 선택해 해당 범위의 재고 회전율을 조회·점검할 때 씁니다.

판정이 "확인 필요"로 나오면 바로 문제가 있는 재고인가요?

아닙니다. 같은 자재그룹·같은 기간의 평균 회전율보다 뚜렷하게 낮다는 신호일 뿐입니다. 계절성이나 안전재고 정책처럼 정상적인 이유도 있을 수 있어, 이 화면은 점검을 돕는 조회 도구이고 최종 판단은 재고를 관리하는 담당 부서가 내립니다.

재고일수(DIO)는 연간 기준인가요?

아닙니다. 조회 기간(월, 30일 가정)을 기준으로 한 추정치이며 연환산 값이 아닙니다. 월별로 비교할 때 참고하는 보조 지표로 활용해 주세요.

회전율 계산에 안전재고나 발주점 같은 정책 값도 반영되나요?

아닙니다. 이 화면은 실적 수량·금액(기초·입고·출고·기말)만으로 회전율을 계산합니다. 안전재고·발주점 등 정책 값과 비교하는 것은 별도 검토가 필요합니다.

느리게 도는 재고, 눈으로 훑기 전에 한 번 걸러 보세요

수백 종의 자재를 일일이 비교하는 대신, 자재그룹 평균과 자동으로 대조해 저회전 후보만 먼저 추려 두면 재고 점검 시간을 크게 줄일 수 있습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

재고 회전율재고 분석DIO저회전재고자재그룹OpenUI5