SAP SD — 고객 · 판매 오더 · 가격 · 납품 · 청구

고객 마스터와 판매 오더에서 시작해 가격 조건, 납품, 청구, 문서 흐름, 판매 분석까지 오더 투 캐시를 따라갑니다.

1. 고객과 판매 오더 — KNA1 · KNVV · VBAK · VBAP

KNA1 은 고객 마스터(고객 번호 KUNNR, 이름 NAME1, 국가 LAND1, 오더 차단 AUFSD, 삭제 표시 LOEVM)입니다. KNVV 는 고객 × 판매 영역(KUNNR + 판매 조직 VKORG + 유통 경로 VTWEG + 제품군 SPART)마다 한 행입니다. VBAK 은 판매 문서 헤더, VBAP 은 품목입니다.

SELECT A.VBELN, A.AUART, A.ERDAT, K.NAME1, A.NETWR
FROM VBAK A
JOIN KNA1 K ON K.KUNNR = A.KUNNR
WHERE A.AUART = 'OR'
  AND A.ERDAT BETWEEN '20250101' AND '20251231';
  • 문서 유형 AUART(OR 표준 오더, RE 반품)와 문서 범주 VBTYP 로 문서 종류를 구분합니다.
  • 판매 영역은 VKORG · VTWEG · SPART 세 필드의 조합입니다. 고객별 설정은 KNVV 에 있습니다.
  • 헤더 금액 VBAK.NETWR 을 품목과 조인해 합치면 품목 수만큼 중복됩니다. 헤더는 헤더대로, 품목은 VBAP.NETWR 로 집계하세요.
  • 화면으로는 VA03(오더 조회), VA05(오더 목록)입니다.

문제

  1. 판매 조직·유통 경로별 고객 수(삭제 제외) (초급)
  2. 반품 오더 품목 목록 (초급)
  3. 주문 접수를 점검해야 하는 고객 판매 영역 (초급)
  4. 2025년 국내 표준 오더 상위 5개 고객 (중급)
  5. 2025년 국내 표준 오더의 고객 그룹별 실적 (중급)
  6. 반품이 있는 고객의 표준 오더·반품 오더 비교 (중급)
  7. 판매 조직 1000 고객별 가장 최근 표준 오더와 유효 품목 현황 (고급)

2. 가격 조건 — PRCD_ELEMENTS

판매 문서의 가격 결정 결과는 조건 유형(KSCHL)별 금액으로 저장됩니다. S/4HANA 에서는 PRCD_ELEMENTS, ECC 에서는 KONV 이며 둘 다 VBAK 의 조건 문서 번호 KNUMV 로 잇습니다.

조건 유형뜻
PR00정가
K007 등고객·자재별 할인
KF00운임
MWST부가세
SELECT P.KNUMV, P.KPOSN, P.KSCHL, P.KWERT
FROM PRCD_ELEMENTS P
JOIN VBAK A ON A.KNUMV = P.KNUMV
WHERE A.VBELN = '0000000001';
  • 같은 품목(KPOSN)에 여러 조건 행이 붙습니다. 정가·할인·운임·세금을 조건 유형별로 나눠 읽어야 분해가 됩니다.
  • 할인은 음수이거나 별도 방향으로 기록될 수 있습니다. 합계를 낼 때 부호를 확인하세요.
  • 실효 할인율은 할인 금액 / 정가 입니다. 분모가 0 이 되지 않게 처리합니다.

문제

  1. 미국 법인 오더의 조건 유형별 활성 조건 요약 (초급)
  2. 12월 한국 오더의 품목별 가격 조건 분해 (중급)
  3. 고객별 2025년 할인 조건 적용 현황 (중급)
  4. 2025년 월별 운임 부과 품목 현황 (중급)
  5. 자재별 할인 상위 2위 품목과 부가세율 (고급)
  6. 고객별 4분기 정가 상위 두 수준 품목의 가격 조건 분해 (고급)
  7. 할인 적용 품목의 자재별 정가·할인·부가세·합계와 실효 할인율 (고급)

3. 납품과 출고 — LIKP · LIPS

판매 오더 다음 단계는 납품입니다. LIKP 는 납품 헤더(납품 번호 VBELN, 실제 출고일 WADAT_IST, 출하 지점 VSTEL), LIPS 는 품목(자재 MATNR, 납품 수량 LFIMG, 참조 판매 오더 VGBEL·VGPOS)입니다. 납품 일정은 VBEP 에 있습니다.

SELECT L.VBELN AS DELIVERY, L.VGBEL AS SALES_ORDER, L.MATNR, L.LFIMG
FROM LIKP H
JOIN LIPS L ON L.VBELN = H.VBELN
WHERE H.WADAT_IST IS NOT NULL;
  • 미납 잔량 = 오더 수량 − 납품 수량. 여러 납품으로 나뉘면 품목별로 합산한 뒤 비교합니다.
  • 납기 준수는 희망 납품일(VBEP)과 실제 출고일(LIKP.WADAT_IST)을 비교합니다.
  • WADAT_IST 가 NULL 이면 아직 출고되지 않은 납품입니다.
  • 문서 연결 전체는 VBFA 문서 흐름에 있지만, 한 단계만 볼 때는 LIPS 의 참조 필드로 충분합니다.

문제

  1. 출하 지점별 2025년 납기 준수율 (초급)
  2. 출하 지점·출고 상태별 2025년 납품 건수 (초급)
  3. 일부만 납품된 오더 품목의 미납 잔량 (중급)
  4. 최근 분할 출고된 오더 10건 (중급)
  5. 납품이 끝나지 않은 오더의 고객과 미납 품목 수 (중급)
  6. 고객별 미납 잔량과 미납 금액 (고급)
  7. 희망 납품일까지 다 출고하지 못한 품목 비율 (판매 사무소별) (고급)

4. 청구 — VBRK · VBRP

청구는 VBRK(헤더: 청구 번호 VBELN, 청구 유형 FKART, 청구일 FKDAT, 고객 KUNNR, 순금액 NETWR)와 VBRP(품목: 자재 MATNR, 수량 FKIMG, 금액 NETWR, 참조 오더 AUBEL)입니다.

SELECT K.KUNNR, SUM(P.NETWR) AS BILLED
FROM VBRK K
JOIN VBRP P ON P.VBELN = K.VBELN
WHERE K.FKART IN ('F1', 'F2')
  AND K.FKDAT BETWEEN '20250101' AND '20251231'
GROUP BY K.KUNNR;
  • 청구 유형 FKART 로 송장과 반품 대변 메모를 구분합니다. 취소 문서는 FKSTO 표시가 있습니다.
  • 유효 매출을 낼 때는 취소된 청구를 빼야 합니다. 취소 문서의 원 문서 번호를 함께 보세요.
  • 미청구 납품은 LIPS 가 VBRP 로 이어지지 않은 건입니다. 청구 참조 필드(VGBEL 등)로 확인합니다.
  • 금액은 품목(VBRP.NETWR) 기준으로 합칩니다. 헤더와 품목을 함께 조인해 합치면 중복됩니다.

문제

  1. 취소된 청구 문서와 원 청구 문서 대조 (초급)
  2. 2025년 청구 유형과 취소 여부별 문서 수·금액 (초급)
  3. 2025년 고객별 원화 청구 문서 건수와 송장·반품 대변 금액 (중급)
  4. 한 번도 유효하게 청구되지 않은 표준 오더 (중급)
  5. 취소된 송장 품목의 재청구 현황 (중급)
  6. 2025년 플랜트·자재 그룹별 송장 대비 반품 대변 순매출 (중급)
  7. 2025년 월별 유효 송장 청구액과 전월 대비 증감 (고급)
  8. 자재별 2025년 유효 청구 문서 수와 송장 대비 반품률 (고급)

5. 문서 흐름 — VBFA 와 상태 필드

오더 → 납품 → 출고 → 청구처럼 문서가 이어지는 전체 연결은 VBFA 에 있습니다. 선행 문서(VBTYP_V)와 후속 문서(VBTYP_N)의 범주로 관계를 읽습니다.

SELECT F.VBELN, F.VBTYP_V, F.VBTYP_N, F.VBELN_V
FROM VBFA F
JOIN VBAK A ON A.VBELN = F.VBELN
WHERE A.VKORG = '1000';
  • 문서 범주 VBTYP: C 판매 오더, J 납품, M 청구 등입니다. 화면상의 문서 번호만 보지 말고 범주를 함께 확인하세요.
  • 헤더 처리 상태는 ECC 의 VBUK, 품목 상태는 VBUP 에 있었습니다. S/4HANA 에서는 상태 필드가 VBAK·VBAP 로 옮겨졌습니다.
  • 상태 코드(GBSTK·LFSTK·FKSTK 등)는 "완료 C", "처리 중 B" 같은 의미를 가집니다. 상태 필드와 실제 후속 문서 건수를 함께 보면 누락을 찾을 수 있습니다.
  • 한 문서에서 후속 문서가 여러 개 나올 수 있으므로 VBFA 를 조인하면 행이 늘어납니다. 집계 단위를 먼저 정하세요.

문제

  1. 문서 흐름의 선행·후속 문서 범주 조합별 규모 (초급)
  2. 납품이 끝나지 않은 오더의 상태와 실제 납품 건수 (중급)
  3. 취소된 청구 문서의 원 오더와 취소까지 걸린 일수 (중급)
  4. 미국 법인 납품 완료 오더의 출고 이력 (중급)
  5. 출하 지점별 출고 후 청구까지 걸린 평균 일수 (중급)
  6. 2025년 오더 월별 납품·청구 흐름과 청구 취소 현황 (고급)

6. 판매 분석 — 추이 · 순위 · 반품률 · 신용

판매 분석은 집계 단위를 정하는 것에서 시작합니다. 월별 추이는 날짜를 월로 바꿔 묶고, 순위는 윈도우 함수로 매깁니다.

SELECT TO_VARCHAR(FKDAT, 'YYYY-MM') AS YM, SUM(NETWR) AS SALES
FROM VBRK
WHERE FKDAT BETWEEN '20250101' AND '20251231'
GROUP BY TO_VARCHAR(FKDAT, 'YYYY-MM');
  • 반품률은 반품 문서 금액·수량을 전체(송장 + 반품)로 나눕니다. 수량 기준과 금액 기준이 다를 수 있습니다.
  • 고객 순위는 매출 합계를 낸 뒤 RANK() OVER (ORDER BY …) 로 매깁니다. 동점 처리 규칙을 정하세요.
  • 신용 노출은 미결 채권(BSID)과 신용 한도를 비교합니다. S/4HANA 신용 관리는 UKMBP_CMS_SGM 을 쓰고 KNKK 를 쓰지 않습니다.
  • 반품 대변은 음수 매출로 잡히므로, 순매출을 볼 때 부호를 확인하세요.

문제

  1. 미국 법인 2025년 송장 매출 상위 3개 고객 (초급)
  2. 반품이 발생한 고객의 반품 오더 비율 (중급)
  3. 2025년 월별 송장 매출과 전월 대비 증감 (중급)
  4. 반품이 발생한 제품별 수량 기준 반품률 (중급)
  5. 신용 한도 대비 미결 채권 사용률 순위 (고급)
  6. 2024년·2025년 상반기 고객 매출 순위 변화 (고급)
  7. 반품 대변이 있는 고객의 금액 기준 반품률 순위 (고급)