SAP 구매 추이 분석 점검 — 매달 얼마나, 어디서 늘었는지부터 가른다
공급업체마다 자재그룹마다 다른 구매 흐름, 전월 대비 증감률로 급등락 지점을 먼저 찾는 방법을 정리했습니다
구매금액은 공급업체마다, 같은 공급업체라도 자재그룹마다 오르내리는 폭이 다릅니다. 한 달치 수치만 보면 "많이 샀다" 정도로만 보이지만, 전월과 나란히 놓고 봐야 급하게 늘었는지, 새로 시작된 거래인지가 드러납니다.
이 화면은 공급업체×자재그룹×연월 단위로 구매금액을 집계해 전월 대비 증감률을 계산하고, 증감률이 기준치를 넘거나 전월 실적이 없던 조합에서 당월 처음 거래가 발생한 경우를 확인 필요로 가려냅니다. 공급업체 단위로 자재그룹을 합산한 요약도 함께 봐, 구매 조직이 어디서부터 확인해야 할지 빠르게 찾도록 OpenUI5 화면으로 확장했습니다. 표준 실행(발주 등록·정보레코드 관리·구매 실적 조회)은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 월별 추이·증감률 관점을 더합니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 발주 조회 — 구매오더 목록 조회(
ME2M/ME80FN)의 발주번호·발주일·공급업체·자재그룹·수량·금액을 그대로 이어받습니다 - 공급업체별 발주 — 공급업체별 발주 목록(
ME2L)의 공급업체 단위 집계 관점을 참고합니다 - 구매 실적 통계 — 구매 정보시스템(
MC$E/ME80RN)의 기간별 구매 실적 집계 개념을 이어받습니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 구매(MM) · 구매 실적 분석 |
| 관련 기준서 | - |
| Namespace | zui5.purtrend |
| 셸 구조 | 조회조건 영역(우측 조회) + 추이 요약 KPI 3종 + 탭 2개, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 2개) + 상세 다이얼로그 |
| SAP 표준 T-code | ME2M · ME80FN · ME2L · MC$E |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 실제 조치와 최종 판단은 구매 조직이 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
기본 조건으로 조회하면 요약 KPI와 추이 명세가 뜹니다 → 공급업체 요약 탭에서 자재그룹 합산 흐름을 보고 → 행을 클릭해 발주수량·평균단가·증감률 상세를 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 회계연도·시작기간·종료기간(필수)과 공급업체·자재그룹·확인 필요 항목만 보기(선택)를 입력합니다. 공급업체·자재그룹을 비워 두면(전체) 해당 조건은 조회에서 빠집니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 회계연도 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건(회계연도 2026, 007~009기)으로 한 번 자동 조회됩니다.
- 요약 KPI에서 조회 건수 · 확인 필요 건수 · 구매금액 합계를 먼저 확인합니다.
- 탭을 옮겨 공급업체x자재그룹 추이 → 공급업체 요약 순으로 봅니다.
- 추이 명세에서 행을 클릭하면 발주수량·평균단가·증감률 상세가 다이얼로그로 열립니다.
- 추이 명세 탭의 CSV 내려받기(UTF-8 BOM)로 현재 조회 결과를 저장합니다.
급등락 판정 기준
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 전월 구매금액 0원 → 당월 구매금액 발생(신규 거래) | 확인 필요 | 신규 거래처·신규 품목 여부와 정상 승인 여부를 담당자가 확인 |
| 전월 구매금액이 있고, 전월 대비 증감률의 절대값이 50% 이상 | 확인 필요 | 단가 변동·수량 급증·발주 집중 등 원인을 담당자가 확인 |
| 그 밖의 경우(증감률 절대값 50% 미만) | 정상 | 조치 없음 |
기준값(50%)은 공급업체x자재그룹 조합의 전월 대비 상대 비교를 위한 예시 기준이며, 회사의 구매 규모와 품목 특성에 맞게 조정해 씁니다. 실제 구매 타당성·단가 적정성에 대한 판단은 구매 담당 부서가 내립니다.
추이·증감률 산출 절차
| 단계 | 내용 |
|---|---|
| 1단계 | 당월 구매금액 = 공급업체x자재그룹x연월 조합의 발주 라인(발주수량×단가) 합계 |
| 2단계 | 평균단가 = 당월 구매금액 ÷ 발주수량(가중평균) |
| 3단계 | 전월대비 증감률 = (당월 − 전월) ÷ 전월 × 100, 전월이 0원이면 "신규"로 별도 표시 |
| 4단계 | 판정 = 증감률 절대값 50% 이상 또는 신규 → 확인 필요 / 그 밖에는 정상 |
| 5단계 | 공급업체 합계 = 소속 자재그룹 구매금액의 합, 공급업체 합계 증감률도 같은 방식으로 산출해 전수 대사 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 공급업체 | 선택 | 전체면 조건 제외 |
| 자재그룹 | 선택 | 전체면 조건 제외 |
| 회계연도 | 필수 | 단일 값 |
| 시작기간 · 종료기간 | 필수 | 구간(BT) 조건으로 조회 |
| 확인 필요 항목만 보기 | 선택 | 체크 시 판정 결과가 확인 필요인 행만 표시 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 공급업체 · 자재그룹 · 기간 | 조합 식별 |
| 발주건수 · 발주수량 | 해당 조합의 발주 규모 |
| 평균단가 | 당월 구매금액 ÷ 발주수량(가중평균) |
| 당월 구매금액 · 전월 구매금액 | 월별 구매금액 |
| 전월대비 증감률 · 판정 | 증감률과 확인 필요 여부 |
| (공급업체 요약) 거래 자재그룹 수 · 구매금액 합계 · 합계 증감률 | 공급업체 단위 합산 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 월별 추이·증감률 관점의 조회·점검을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
ME2M / ME80FN | 자재·구매그룹 기준 발주 현황 조회 | 발주 데이터를 공급업체x자재그룹x연월 추이로 재구성합니다 |
ME2L | 공급업체별 발주 목록 조회 | 공급업체 요약 탭의 합산 기준으로 참고합니다 |
MC$E / ME80RN | 구매 실적 통계·추이 분석 | 월별 추이·증감률 산출 개념의 표준 대응 기능 |
분석 지표 정의표
| 지표 | 정의 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| 월별 구매금액 | 발주수량 × 평균단가(공급업체x자재그룹x연월 합계) | 추이 명세 탭 | EKKO/EKPO/EKBE | 기간 단위(월) 값 |
| 전월대비 증감률 | (당월−전월)÷전월×100 | 추이 명세 · 공급업체 요약 탭 | 같은 조합의 전월 집계에서 파생 | 전월 0원이면 "신규"로 표시 |
| 급등락 후보 판정 | 증감률 절대값 50% 이상 또는 신규 거래 | 판정 컬럼 | 파생 | 확인 필요 표시, 최종 판단은 구매 담당자 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
LFA1 / LFM1 | LIFNR · NAME1 | 공급업체(벤더) 마스터 |
EKKO / EKPO | EBELN · LIFNR · MATKL · MENGE · NETPR | 구매문서 헤더·품목 — 발주일, 공급업체, 자재그룹, 수량·단가 |
EKBE | EBELN · EBELP | 구매문서 이력 — 입고·송장 등 후속 이력 |
define view entity ZI_PurchaseTrend
as select from ekpo as p
inner join ekko as h on h.ebeln = p.ebeln
left outer join lfa1 as v on v.lifnr = h.lifnr
{
key h.lifnr as Lifnr,
key p.matkl as MatGroup,
key substring( h.aedat, 1, 4 ) as Gjahr,
key substring( h.aedat, 5, 2 ) as Poper,
v.name1 as LifnrName,
sum( p.menge ) as Qty,
sum( p.menge * p.netpr ) as Amount
}
group by h.lifnr, p.matkl, h.aedat, v.name1
전월 대비 증감률은 같은 조합의 전월 집계와 비교해 화면에서 파생 계산합니다. 실제 원천 필드·조인 조건은 회사마다 확인이 필요합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 요약 KPI · IconTabBar 2개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩합니다 |
| 조회조건 | sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 전체를 고른 조건은 필터를 만들지 않습니다. 기간 구간은 BT 연산자, 정렬은 Sorter, 총건수는 인라인 카운트로 받습니다 |
| 추이 명세 | sap.ui.table.Table — 컬럼이 많은 명세, 행 클릭(cellClick)으로 상세 다이얼로그 |
| 공급업체 요약 | sap.m.Table — 자재그룹을 합산한 소량 집계 |
| 예외 메시지 | 메타데이터 실패·요청 실패·빈 결과를 구분해 안내하는 전용 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 모델 초기화, 예외 메시지 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.purtrend · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 요약 KPI · 2개 탭 |
view/DetailDialog.fragment.xml | 추이 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/formatter.js · model/ErrorHandler.js | 표시 서식 · 예외 메시지 처리 |
i18n/i18n_ko.properties | 화면 문구 |
검증 결과
검증용 샘플 데이터(발주 라인 583건, 8개 공급업체 × 6개 자재그룹)를 기준으로 대사식을 전수 검증했습니다. 점검 화면이라 전월 실적이 없던 조합에 의도적으로 신규 거래를 발생시킨 6건을 포함시켰고, 대사식 차이와 분리해 기록했습니다.
| 검증 항목 | 결과 |
|---|---|
| 발주 라인 발주수량×단가=라인금액 일치 (583건) | 통과(차이 0) |
| 추이 명세 발주수량×평균단가≈당월 구매금액(반올림 허용오차 이내) 일치 (208건) | 통과(차이 0) |
| 공급업체 요약 합계 = 자재그룹별 추이 명세 합계 (48건) | 통과(차이 0) |
| 조회 조건 전달 — 공급업체·자재그룹·기간 필터 · 증감률 내림차순 정렬 · 총건수 표시 | 확인 |
| 화면 요약 합계 = 검증 스크립트 합계(기본 조건 기준 조회 105 · 확인 필요 37 · 구매금액 합계 3,976,016,906) | 일치 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 | 0건 |
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터이며, 공급업체명도 가상의 일반 명칭입니다.
자주 묻는 질문
이 화면은 어떤 구매 데이터에 적용할 수 있나요?
공급업체·자재그룹별로 발주 실적이 있는 회계기간이면 적용할 수 있습니다. 아직 발주 실적이 없는 조합은 추이 계산 대상에서 빠집니다. 이 화면은 월별 구매금액 추이와 전월 대비 증감률을 조회·점검하는 도구이며, 단가 재협상이나 발주 정책 변경 같은 최종 조치는 구매 조직이 판단합니다.
확인 필요로 표시되면 곧 문제가 있다는 뜻인가요?
아닙니다. 이 화면의 판정은 전월 대비 증감률이 기준치를 넘었거나 신규 거래가 발생했다는 신호일 뿐입니다. 프로젝트성 대량 발주, 계절적 수요, 단가 협상 결과 등 정상적인 사유로도 증감률이 커질 수 있어 실제 원인은 구매 담당자가 확인해야 합니다. 이 화면은 점검을 돕는 조회 도구이며, 최종 판단은 구매를 관리하는 담당 부서와 필요 시 감사인이 내립니다.
증감률 50% 기준은 고정값인가요?
이 화면에서 예시로 쓴 기준값이며, 회사의 구매 규모와 품목 특성에 맞게 조정해 쓰는 것을 전제로 합니다. 기준값 자체가 적정한지는 화면 밖에서 구매 조직이 별도로 검토합니다.
공급업체 요약 탭은 명세 탭과 어떻게 다른가요?
명세 탭은 공급업체×자재그룹×연월 조합별로 세분화된 값을 보여주고, 공급업체 요약 탭은 같은 공급업체의 모든 자재그룹을 합산한 월별 금액과 증감률을 보여줍니다. 세부 원인은 명세 탭에서, 전체 흐름은 요약 탭에서 확인하는 용도입니다.