솔루션 홈
ME51N · 구매

SAP 구매요청 관리 — 필요한 것을 올리고 계정을 지정하기

구매요청을 작성·조회하고 계정지정과 원가 귀속처를 지정해 발주로 넘기는 화면입니다.

구매요청은 "이게 필요하다" 는 신호입니다. 그런데 신호만으로는 부족합니다. 그 비용을 어디에 달 것인지를 함께 정해야 발주로 넘어갑니다.

계정지정이 빠지면 구매팀에서 되묻게 되고 그만큼 늦어집니다. 요청 작성 단계에서 귀속처를 지정하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.

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

  • 요청 문서 — 요청번호(BANFN)와 품목(BNFPO)
  • 요청자 — 신청자(AFNAM)와 요청일(BEDAT)
  • 계정지정 — 범주(KNTTP)와 계정(SAKTO)
  • 귀속처 — 코스트센터(KOSTL) · 내부오더(AUFNR)
  • 구매 조직 — 구매그룹(EKGRP)과 구매조직(EKORG)
항목내용
대응 T-codeME51N · ME53N
업무 영역구매(MM) · 요청 관리
Namespacemm004_purchaserequisition
셸 구조조회조건 영역 + 요청 헤더·품목 + 계정지정 + 첨부
화면 수조회·입력 화면 1개 + 상세
데이터요청 헤더·품목·계정지정 등 다중 엔티티
성격입력·조회형 — 발주 전환은 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 2종 둘러보기

요청 헤더를 만들고 품목을 추가한 뒤 → 계정지정과 귀속처를 정하고 → 증빙을 첨부해 제출합니다.

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

ME51N — Main.view.xml
요청 헤더와 품목
요청 헤더와 품목 — 요청번호·요청자·요청일과 함께 품목별 자재·수량·납기가 표시됩니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
ME51N — 계정지정
범주와 귀속처
범주와 귀속처 — 계정지정 범주를 고르면 필요한 귀속처 필드가 나타납니다. 코스트센터나 내부오더를 지정하고 계정을 확인합니다.

조작 방법

  1. 구매조직구매그룹을 고릅니다.
  2. 품목을 추가해 자재·수량·납기를 입력합니다.
  3. 계정지정 범주를 고릅니다. 범주에 따라 필요한 귀속처가 달라집니다.
  4. 코스트센터나 내부오더 등 귀속처를 지정합니다.
  5. 계정이 자동으로 결정되는지 확인합니다.
  6. 필요한 증빙을 첨부합니다.
  7. 제출하면 승인을 거쳐 발주로 전환됩니다.
  8. 취소할 요청은 삭제지시자를 설정합니다.

계정지정 규칙

범주에 따라 입력해야 할 귀속처가 달라집니다.

계정지정 범주(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.jslocaldata 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 이 담당합니다. 이 화면은 계정지정 범주에 따라 필요한 필드만 보여 줘, 현업 담당자가 올바르게 작성하게 하는 확장입니다.

구매요청 관리, 지금 쓰는 SAP 위에서 확장해 보세요

요청 단계에서 귀속처가 정해지면 되묻는 일이 사라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

구매요청ME51N계정지정코스트센터내부오더구매그룹OpenUI5