SAP MM 구매 프로세스(P2P)의 기초

2025. 12. 26. 16:40SAP CO/CATEGORY 2: 모듈 통합 (Integration)

1. 시작하며 : CO 컨설턴트가 물류 프로세스를 알아야 할까?

CO(Controlling) 업무 담당자들이 관리회계 업무에 집중하다 보면, 실제 원가와 밀접한 연관이 있는 물류 프로세스를 잘 모르는 경우가 있습니다. 제가 그러했습니다. IV 전표(예: SAP의 MIRO)가 생성(전기)되는 순간, 자동으로 AP(Accounts Payable, 외상매입금) 전표가 발생하게 되는 줄 몰라 실수했던 경험이 있습니다.

 

SAP에서 원가는 단순히 숫자가 입력되는 것이 아니라 물류의 이동에 의해 결정됩니다. 특히 S/4HANA 환경에서 원가 관리는 물류 흐름을 얼마나 정확히 이해하느냐에 달려 있습니다.

 

예를 들어, 입고(Goods Receipt, GR) 시점은 시스템이 해당 물품의 가치를 재고 자산이나 비용으로 인식하는 순간이며, 이는 CO 모듈의 Actual Cost(실제 원가)와 관련이 있습니다.

 

이처럼 MM(자재 관리) 모듈에서 발생하는 이벤트가 FI(재무회계)를 거쳐 CO로 실시간 반영 되는 구조를 이해해야 합니다.

이번 글에서는 구매에서 지불까지의 과정(Purchase to Pay)을 알아보도록 하겠습니다.

 

[참고] 데이터의 통합: Universal Journal(ACDOCA)

S/4HANA에서는 Universal Journal(ACDOCA 테이블)을 통해 MM, FI, CO 데이터가 하나로 통합됩니다.

과거처럼 모듈 간 데이터를 이관하거나 대조하는 번거로움이 사라진 대신, MM에서 전표가 생성되는 순간 CO Object(코스트센터, 오더 등)에 즉시 반영됩니다.

 

"물류의 시작인 구매 오더(PO)부터 대금 지급까지의 흐름을 아는 것은 곧 원가 데이터의 정합성을 검증하는 것을 의미합니다."


2.  프로세스의 시작: 구매 요청(PR) 및 구매 오더(PO)

1) Purchase Requisition (PR): 내부 구매 요구

PR은 조직 내부에서 물품이나 서비스가 필요할 때 구매 부서에 요청하는 문서입니다.

  • 기본적으로 회계 전표는 발생하지 않습니다.
  • 예산 통제(Availability Control)가 활성화된 경우, PR 생성 시점에 예산을 사전 점검하거나 선점(Commitment)하는 역할을 할 수 있습니다.

2) Purchase Order (PO): 법적 구속력을 가진 외부 계약

PO는 공급업체와 맺는 공식 계약입니다. 품목, 수량, 단가, 납기일이 확정됩니다.

  • 실물 이동이 없으므로 아직 FI 전표는 발생하지 않습니다.
  • CO 관점(Commitment): 약정 관리(Commitment Management) 설정 시, PO가 승인되면 해당 금액만큼 예산이 '약정(Commitment)' 상태로 잡혀 다른 용도로 예산을 쓸 수 없게 통제됩니다.

"약정은 실제 비용(Actual cost)은 아니지만 예정된 금액으로 간주되어 예산 잔액을 차감합니다."

[참고] Account Assignment Category(계정 지정)에 따른 원가 흐름의 차이

PO Item 탭 내 Accout Assignment가 있습니다. 해당 선택 탭은 단순히 구매 부서의 선택사항이 아니라, MM(물류)에서 발생한 비용이 FI(재무)의 어느 계정으로 가고, CO(관리)의 어느 객체(Cost object)로 흐를지를 결정하는 역할을 합니다.

 

[실무에서 가장 많이 사용하는 5가지 카테고리]

Category 명칭 비용 귀속처(Cost object) 설명
(Blank) 재고 구매 없음 (창고 자산) 입고 시 비용이 발생하지 않음
자재 마스터가 반드시 있어야 하며, 출고(GI) 시점에 원가 발생
K 코스트센터 Cost center 일반적으로 소모품 구매, 등으로 사용
해당 부서의 비용 실적으로 입고 시점에 반영됨(판관비)
F 생산 오더 Pruduction Order 특정 제품 생산을 위한 외주비나 직투입 자재
결산 시 재공품(WIP) 계산의 대상이 됨
P 프로젝트 WBS Element 건설 프로젝트나 연구개발(R&D) 프로젝트 비용
PS(Project System) 모듈과 연동
A 자산 Asset Number 비품, 기계장치 등 고정자산 취득 시 사용
비용이 아닌 자산(AuC)으로 집계된 후 나중에 본자산으로 대체됨

3.  물류 실현 및 원가 발생 (Goods Receipt, GR)

입고 단계(MIGO)는 물류 시스템의 수량이 재무 시스템의 가치로 변환되는 첫 번째 시점입니다.

 

회계 전표의 생성은 아래 표와 같습니다.

차변에 비용 계정이 발생하는 경우는 실물 재고가 아닌 서비스를 구입하는 경우도 있기 때문입니다.

GR/IR 계정은 물건은 받았으나(GR), 아직 송정(IR)을 처리하지 않아 지급 의무가 확정되지 않은 부채를 뜻하는 임시 계정입니다.

(차) 재고(또는 비용 계정) 1,000   |    (대) GR/IR 임시계정 1,000

 

CO 모듈 입장에서 입고 단계를 살펴보겠습니다.

Account Assignment가 설정된 경우 이 단계에서 Actual Cost(실제 원가)가 발생합니다. 즉, 전표가 Posting 되는 순간 코스트센터나 프로젝트의 실적 보고서에 수치가 반영됩니다.

 

또한, 자재 마스터의 가격 관리(Price control) 방식(Standard S, Moving Average V)에 따라 입고 시점의 원가 계산 방식이 달라집니다.

 


4. 송장 검증 및 부채 확정 (Invocie Verification, IV)

송장 검증(MIRO)을 수행하면 물류 전표와 재무 전표가 실시간으로 동시에 생성됩니다.


[MM 전표와 FI 전표의 동시성]

FI 전표의 Reference Key(AWKEY) 필드에는 MM 송장 번호가 기록되어 두 모듈 간의 추적성(Traceability)을 보장합니다.

 

"SAP는 이 두 전표를 별개로 생성하는 것이 아니라, 하나의 트랜잭션(MIRO)을 통해 실시간으로 동시에 생성하여 정합성을 보장합니다."

  • MM 송장 전표 : 물류 관점에서 PO 수량과 송장 수량을 매칭하고 구매 히스토리를 업데이트합니다.
  • FI AP 전표 : 공급업체에 대한 매입채무(Accounts Payable)를 생성합니다.

[회계 처리 - 입고가 먼저 된 경우]

입고 시 발생했던 임시 부채(GR/IR)가 차변에서 제거되면서 확정 부채(AP)로 전환됩니다.

(차) GR/IR 임시계정 1,000   |    (대) 공급업체(AP) 1,000

 

[회계 처리 - 송장 먼저 경우]

반대로 송장 후 입고가 된다면 회계 처리는 어떻게 될까요?

물건은 아직 안 왔지만, 대금을 지급하기 위해 송장을 먼저 시스템에 입력합니다.

  (차) GR/IR 임시계정 1,000   |    (대) 공급업체(AP) 1,100
          부가세(매입세액) 100

이 시점에는 아직 비용이 발생하지 않았습니다. GR/IR 계정이 차변에 생기면서 "물건을 받을 권리(자산)" 상태가 됩니다.

 

이후 입고 처리가 되면 회계 처리는 아래와 같습니다.

  (차) 재고(또는 비용)계정 1,000   |    (대) GR/IR 임시계정 1,000

이 시점에 실제 원가(Actual Cost)가 코스트센터 또는 오더에 기록됩니다. 이 전 단계에서 생성된 Gr/IR 차변 금액이 대변 전표와 만나 잔액이 0원이 됩니다

 

실무적으로는 보통 GR을 먼저 수행합니다. IV를 먼저 하려면 구매 오더(PO) Item 상세 Invoice 탭에서 [GR-Based IV] (입고 기준 송장 검증) 체크박스가 해제되어 있어야 MIRO 먼저 수행이 가능합니다.

 

PO 단가와 실제 송장 단가가 다른 경우 회계 처리는 어떻게 될까?

PO 단가와 실제 송장 단가가 다른 경우 구매 가격 차이(PPV, Purchase Price Variance)가 발생합니다.

 

CO 모듈 입장에서는 PPV가 어느 시점에 어떤 계정으로 어떤 Object에 반영되는지 아는 것이 중요합니다.

그럼 프로세스 순서에 따라 PPV 발생 로직을 알아보겠습니다.

 

[CASE 1. 입고(GR)가 먼저 된 경우]

입고 처리가 먼저 된 경우 송장 시점에 가격차이가 확정됩니다.

PO 단가 1,000원/ 송장(Invoice) 단가 1,200원 (수량 1개)로 가정해 보겠습니다.

 

1) 입고 시 (MIGO)시스템은 PO 단가를 기준으로 원가를 먼저 인식합니다.

  (차) 재고계정 1,000   |    (대) GR/IR 임시계정 1,000

 

2) 송장 검증 시 (MIRO)

실제 세금계산서 금액인 1,200원과 입고 시 임시 부채인 1,000원의 차이를 조정합니다.

  (차) GR/IR 임시계정    1,000     |    (대) 공급업체(AP) 1,200
  (차)구매가격차이(PRD)  200     

 

[CASE 2. 송장(IV)이 먼저인 경우]

이 경우 가격차이는 입고(GR)를 잡는 시점에 확정됩니다.

 

1) 송장 검증 시 (MIRO)

물건은 안 왔지만 1,200원짜리 계산서를 먼저 처리합니다.

아직 원가는 발생하지 않습니다(GR/IR은 자산 성격)

  (차) GR/IR 임시계정 1,200   |    (대) 공급업체(AP) 1,200

 

2) 입고 시 (MIGO)

실제 입고를 잡으며 PO의 1,000원과 이미 처리된 송장 1,200원을 비교합니다.

  (차) 재고계정    1,000             |     (대) GR/?IR 임시계정 1,200
  (차)구매가격차이(PRD)  200     

 

 

또한 PPV는 다음과 같은 경로로 손익에 영향을 미칩니다.

 

직접 비용 계상 건(Account Assignment = K, P)은 해당 Cost center/Project의 실적에 즉시 반영됩니다.

 

반면 재고 자산 계상 건(Account Assignemnt 없음)은  자재 마스터의 '가격 결정(Price Control)' 필드에 따라 결정됩니다.

 

  1. 재고가 표준원가(Standard price)인 경우
    • 발생한 차액(200원)은 월중에 재고 자산으로 가지 않고, '구매가격차이 비용' 계정으로 비용 발생합니다. 해당 비용은 월말 결산 시 재고와 매출원가로 다시 뿌려주어 실제 원가(Actual Costing)를 완성합니다.
  2. 재고가 이동평균가(Moving Average Price)인 경우
    • 발생한 차액(200원)은 재고 자산 가액에 합산됩니다. (단, 창고에 재고 수량이 남았을 때만 가능) 비용이 즉시 발생하는 것이 아니라, 나중에 이 물건을 출고(GI)하거나 판매할 때 원가에 반영됩니다.

 

[GR과 IV 순서에 따른 GR/IR 계정 성격 비교표]

구분 입고(GR) 우선 시 송장(IV) 우선 시
선행 단계 전표 (차) 비용/재고
(대) GR/IR
(차) GR/IR
(대) Vendor
GR/IR 계정 성격 부채 (미착부채) 자산 (선급금)
재무제표 표시 유동부채 유동자산 또는 선급비용
후행 단계 전표 (차) GR/IR
(대) Vendor
(차) 비용/재고
(대) GR/IR
최종 결과 GR/IR 잔액 = 0 GR/IR 잔액 = 0

5. 프로세스의 종료 : 대금 지급(Payment)

대금 지급(Payment)은 구매 프로세스의 마지막 단계로, 재무 부서에서 공급업체에 실제 현금을 송금하는 과정입니다.

대금 지급 시 발생하는 표준 회계 전표는 다음과 같습니다.

  (차) AP 계정    (매입채무 제거)   |     (대) 은행 계좌 (현금/보통예금 감소)  

이로써 송장 검증 시 생성되었던 매입채무가 제거되고, 해당 구매 건에 대한 모든 채권/채무 관계가 종료됩니다.

 

대금 지급 자체는 CO 모듈에 직접적인 영향을 미치지 않습니다. 원가는 이미 입고(GR) 시점에 계상되었기 때문입니다.


월말 결산 시 CO 모듈 담당자 또한 GR/IR 잔액이 남았는지 확인 후 결산을 진행합니다. 결산이 끝나면 주요 자재별 PPV 발생 현황을 분석합니다. 구매 단가 변동이 원가 구조에 영향을 미치기 때문입니다.

 

이번 포스팅에서는 구매 프로세스(P2P)에 대해서 알아보았는데요, 물류 프로세스는 원가에 영향을 미치는 핵심 프로세스입니다. MM-FI 통합 흐름을 이해하는데 도움이 되었으면 좋겠습니다.