SAP 구매요청 관리 — 필요한 것을 올리고 계정을 지정하기
구매요청을 작성·조회하고 계정지정과 원가 귀속처를 지정해 발주로 넘기는 화면입니다.
구매요청은 "이게 필요하다" 는 신호입니다. 그런데 신호만으로는 부족합니다. 그 비용을 어디에 달 것인지를 함께 정해야 발주로 넘어갑니다.
계정지정이 빠지면 구매팀에서 되묻게 되고 그만큼 늦어집니다. 요청 작성 단계에서 귀속처를 지정하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 요청 문서 — 요청번호(
BANFN)와 품목(BNFPO) - 요청자 — 신청자(
AFNAM)와 요청일(BEDAT) - 계정지정 — 범주(
KNTTP)와 계정(SAKTO) - 귀속처 — 코스트센터(
KOSTL) · 내부오더(AUFNR) - 구매 조직 — 구매그룹(
EKGRP)과 구매조직(EKORG)
| 항목 | 내용 |
|---|---|
| 대응 T-code | ME51N · ME53N |
| 업무 영역 | 구매(MM) · 요청 관리 |
| Namespace | mm004_purchaserequisition |
| 셸 구조 | 조회조건 영역 + 요청 헤더·품목 + 계정지정 + 첨부 |
| 화면 수 | 조회·입력 화면 1개 + 상세 |
| 데이터 | 요청 헤더·품목·계정지정 등 다중 엔티티 |
| 성격 | 입력·조회형 — 발주 전환은 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
요청 헤더를 만들고 품목을 추가한 뒤 → 계정지정과 귀속처를 정하고 → 증빙을 첨부해 제출합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 구매조직과 구매그룹을 고릅니다.
- 품목을 추가해 자재·수량·납기를 입력합니다.
- 계정지정 범주를 고릅니다. 범주에 따라 필요한 귀속처가 달라집니다.
- 코스트센터나 내부오더 등 귀속처를 지정합니다.
- 계정이 자동으로 결정되는지 확인합니다.
- 필요한 증빙을 첨부합니다.
- 제출하면 승인을 거쳐 발주로 전환됩니다.
- 취소할 요청은 삭제지시자를 설정합니다.
계정지정 규칙
범주에 따라 입력해야 할 귀속처가 달라집니다.
계정지정 범주(KNTTP)
K 코스트센터 → 코스트센터(KOSTL) 필수
F 내부오더 → 오더(AUFNR) 필수
A 자산 → 자산번호 필수
(공란) 재고 → 귀속처 없음, 재고로 입고
계정(SAKTO)은 범주와 자재그룹으로 자동 결정
삭제지시자(LOEKZ) 설정 시 요청 취소 — 발주 전환 대상 제외
범주에 따라 필드를 바꾸는 이유
모든 귀속처 필드를 늘어놓으면 대부분이 해당 없는 칸입니다. 무엇을 채워야 하는지 알기 어렵고 엉뚱한 칸에 입력하는 실수도 납니다. 범주를 고르면 그에 맞는 필드만 남으니 요청자가 구매 지식 없이도 올바르게 채웁니다.
요청 처리 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① 작성 | 품목과 계정지정 입력 | 요청 문서 |
| ② 승인 | 예산과 필요성 검토 | 승인 이력 |
| ③ 발주 전환 | 구매팀이 발주로 변환 | 구매오더 |
| ④ 입고 | 납품 확인 | 입고 전표 |
입력 항목
| 항목 | 필수 | 설명 |
|---|---|---|
구매조직 EKORG · 구매그룹 EKGRP | 필수 | 구매 주관 |
요청자 AFNAM | 필수 | 신청 담당자 |
| 자재 · 수량 · 납기 | 필수 | 품목 조건 |
계정지정 범주 KNTTP | 필수 | K 코스트센터 · F 오더 등 |
코스트센터 KOSTL | 조건부 | 범주 K 일 때 필수 |
내부오더 AUFNR | 조건부 | 범주 F 일 때 필수 |
계정 SAKTO | 자동 | 범주와 자재그룹으로 결정 |
| 첨부 | 선택 | 견적서 등 증빙 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
요청번호 BANFN · 품목 BNFPO | 요청 식별 |
요청자 AFNAM · 요청일 BEDAT | 신청 정보 |
| 자재 · 수량 · 납기 | 품목 조건 |
구매조직 EKORG · 구매그룹 EKGRP | 구매 주관 |
계정지정 범주 KNTTP | 귀속 유형 |
코스트센터 KOSTL · 오더 AUFNR | 원가 귀속처 |
계정 SAKTO | 비용 계정 |
삭제지시자 LOEKZ | 취소 여부 |
| 첨부 | 증빙 문서 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
ME51N · ME53N | 구매요청 생성·조회 | 범주별 필드 전환을 추가 |
ME57 | 요청 할당·발주 전환 | 후속 처리 |
EBAN | 구매요청 테이블 | 조회 원천 |
EBKN | 요청 계정지정 | 귀속처 정보 |
T163K | 계정지정 범주 설정 | 필수 필드 결정 |
CSKS · AUFK | 코스트센터 · 오더 마스터 | 귀속처 검증 |
도입 시 확인이 필요한 부분
계정지정 범주별 필수 필드는 설정에 정의됩니다. 화면에 고정하지 말고 설정을 읽어야 운영과 어긋나지 않습니다. 또 예산 가용성 검사가 켜져 있으면 요청 단계에서 예산 초과가 걸리므로 그 메시지 처리도 함께 봐야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCPURCHREQ'
@EndUserText.label: '구매요청 관리 (Z)'
define view Z_C_PURCHASE_REQUISITION
as select from eban as Req
left outer join ebkn as AcctAssign on Req.banfn = AcctAssign.banfn
and Req.bnfpo = AcctAssign.bnfpo
left outer join makt as MatText on Req.matnr = MatText.matnr
and MatText.spras = 'K'
{
key Req.banfn as Banfn,
key Req.bnfpo as Bnfpo,
Req.afnam as Requester,
Req.badat as RequestDate,
Req.matnr, MatText.maktx as MaterialName,
Req.menge as Quantity,
Req.lfdat as DeliveryDate,
Req.ekorg, Req.ekgrp,
Req.knttp as AcctAssignCat,
Req.loekz as DeletionIndicator,
AcctAssign.sakto as GlAccount,
AcctAssign.kostl as CostCenter,
AcctAssign.aufnr as OrderNo
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 · 헤더·품목 · 계정지정 |
| 조회조건 | sap.m.Select · sap.m.Input — 우측 끝에 조회 |
| 품목 그리드 | sap.ui.table.Table — 인라인 편집 |
| 계정지정 | 범주 선택에 따라 필드 동적 전환 |
| 첨부 | sap.m.upload.UploadSet — 증빙 파일 |
| 이벤트 | onPAI 단일 진입점, fcCode 로 분기 |
계정을 자동 결정으로 둔 이유
요청자는 대개 현업 담당자라 어느 계정을 써야 하는지 모릅니다. 직접 고르게 하면 틀리거나 물어보게 됩니다. 범주와 자재그룹으로 자동 결정하면 요청자는 무엇이 필요한지만 적으면 됩니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — ko 로케일 · sap_horizon |
view/Main.view.xml | 조회조건 · 헤더·품목 · 계정지정 |
controller/Main.controller.js | 조회 · 범주별 전환 · 검증 · 저장 |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 수량 · 일자 · 상태 포맷터 |
localdata/Heads.json · Item.json | 요청 헤더와 품목 |
localdata/VL_KNTTP.json | 계정지정 범주 |
localdata/VL_KOSTL_.json · VL_AUFNR_.json | 귀속처 목록 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 계정지정 범주별 필수 필드 검증 동작 | 통과 |
| 범주 전환 시 해당 필드만 표시 | 통과 |
| 귀속처가 마스터에 존재하는지 확인 | 통과 |
| 삭제지시자 설정 건은 발주 대상에서 제외 | 통과 |
| 자재·코스트센터 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 입력 실동작 후 캡처 | 2/2 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
계정지정 범주를 잘못 고르면요?
비용이 엉뚱한 곳에 달립니다. 발주 전에 수정할 수 있지만 입고 후에는 번거로우므로 요청 단계에서 확인하는 것이 좋습니다.
재고용 구매는 계정지정이 없나요?
범주를 비워 두면 재고로 입고되어 자산이 됩니다. 나중에 출고할 때 비용이 되므로 요청 시점에는 귀속처가 필요 없습니다.
요청을 취소하려면요?
삭제지시자를 설정합니다. 문서는 남고 발주 전환 대상에서만 빠지므로 취소 이력이 추적됩니다.
SAP 표준 기능과 어떻게 이어지나요?
요청 생성과 발주 전환은 표준 MM 이 담당합니다. 이 화면은 계정지정 범주에 따라 필요한 필드만 보여 줘, 현업 담당자가 올바르게 작성하게 하는 확장입니다.