SAP 플랜트 출고 — 무엇이 언제 어디로 나갔는가
납품 문서와 출고 전표를 함께 조회해, 계획된 출고가 실제로 이뤄졌는지 확인하는 화면입니다.
납품 문서를 만들었다고 물건이 나간 것은 아닙니다. 출고 전기까지 되어야 재고가 줄고 매출원가가 잡힙니다.
납품만 생성하고 출고를 빠뜨리면 창고에는 물건이 없는데 장부에는 남아 있게 됩니다. 월말 재고 실사에서 차이가 나는 원인 중 하나입니다. 납품과 출고를 함께 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 납품 문서 — 납품번호(
DeliveryID)와 품목(DeliveryItems) - 수량 — 납품 수량(
DeliveryQuantityInSalesUoM)과 단위 - 출고 — 실제 출고일(
GoodsIssueActualDate) - 플랜트 — 출고 거점
- 고객 — 납품 대상
| 항목 | 내용 |
|---|---|
| 기반 T-code | VL03N · VL06O |
| 업무 영역 | 영업(SD) · 출고 관리 |
| Namespace | sd003_plantdelivery |
| 셸 구조 | 조회조건 영역 + 납품 목록 + 출고 내역 |
| 화면 수 | 조회 화면 1개 + 상세 |
| 데이터 | 납품 헤더와 출고 내역 등 다중 엔티티 |
| 성격 | 조회형(Read-Only) — 출고 전기는 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 1종 둘러보기
플랜트·기간·고객으로 조회하면 납품 건이 나옵니다 → 출고 여부와 실제 출고일을 확인하고 → 미출고 납품을 가려냅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 플랜트를 고릅니다. 출고 거점 단위입니다.
- 기간을 납품일 기준으로 지정합니다.
- 고객으로 특정 거래처 납품만 볼 수 있습니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 출고 여부를 확인합니다. 미출고 건이 재고 차이의 원인입니다.
- 납품일과 출고일의 간격을 봅니다. 벌어지면 처리 지연입니다.
- 납품을 선택하면 품목별 출고 내역이 열립니다.
- 결과는 CSV 다운로드로 내려받습니다.
출고 판정 규칙
납품과 출고는 별개 단계입니다.
납품 생성 → 출고 전기 → 재고 감소 · 매출원가 인식
출고일 있음 → 출고 완료
출고일 없음 → 미출고 — 재고 미반영
처리 지연 = 출고일 − 납품일
간격이 크면 → 출고 처리 누락 가능
납품 수량과 출고 수량이 다르면 → 부분 출고
미출고 납품을 찾아야 하는 이유
물건은 창고에서 나갔는데 출고 전기를 안 하면 장부 재고가 실제보다 많습니다. 월말 실사에서 차이가 나고 원인을 찾느라 시간이 걸립니다. 미출고 목록을 주기적으로 확인하면 그 차이가 쌓이지 않습니다.
출고 흐름 4단계
| 단계 | 내용 | 문서 |
|---|---|---|
| ① 수주 | 고객 주문 접수 | 수주 문서 |
| ② 납품 | 출하 지시 생성 | 납품 문서 |
| ③ 피킹·포장 | 창고 작업 | 피킹 확인 |
| ④ 출고 전기 | 재고 감소 반영 | 출고 전표 |
④가 빠지면 ③까지 끝났어도 장부에는 반영되지 않습니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 플랜트 | 필수 | 출고 거점 |
| 기간 | 필수 | 납품일 From~To |
| 고객 | 선택 | 납품 대상 |
납품번호 DeliveryID | 선택 | 특정 납품 |
| 출고 여부 | 선택 | 전체 / 미출고만 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
납품번호 DeliveryID | 납품 식별 |
| 플랜트 | 출고 거점 |
| 고객 | 납품 대상 |
품목 DeliveryItems | 납품 자재 |
납품 수량 DeliveryQuantityInSalesUoM | 계획 수량 |
단위 DeliveryQuantitySalesUoMCode | 수량 단위 |
| 납품일 | 출하 예정일 |
실제 출고일 GoodsIssueActualDate | 전기 날짜 |
| 출고 여부 | 완료 / 미출고. 상태 색 |
| 처리 지연 | 출고일 − 납품일 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
VL03N | 납품 문서 조회 | 출고 여부를 함께 표시 |
VL06O | 납품 모니터 | 미출고 건 식별 |
VL02N | 납품 변경·출고 전기 | 후속 처리 |
LIKP · LIPS | 납품 헤더와 품목 | 조회 원천 |
MSEG | 자재 전표 라인 | 출고 전기 확인 |
KNA1 | 고객 마스터 | 납품 대상 |
도입 시 확인이 필요한 부분
출고 전기 시점이 회계 기간과 맞아야 합니다. 월말에 출하했는데 다음 달에 전기하면 매출과 매출원가의 기간이 어긋납니다. 또 부분 출고가 많으면 납품 단위 판정만으로는 부족해 품목·일정 단위로 봐야 합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCPLANTDELIV'
@EndUserText.label: '플랜트 출고 현황 (Z)'
define view Z_C_PLANT_DELIVERY
as select from likp as DelivHeader
inner join lips as DelivItem on DelivHeader.vbeln = DelivItem.vbeln
left outer join kna1 as Customer on DelivHeader.kunnr = Customer.kunnr
left outer join makt as MatText on DelivItem.matnr = MatText.matnr
and MatText.spras = 'K'
{
key DelivHeader.vbeln as DeliveryId,
key DelivItem.posnr as ItemNo,
DelivItem.werks as Plant,
DelivHeader.kunnr, Customer.name1 as CustomerName,
DelivItem.matnr, MatText.maktx as MaterialName,
DelivItem.lfimg as DeliveryQty,
DelivItem.vrkme as SalesUom,
DelivHeader.lfdat as DeliveryDate,
DelivHeader.wadat_ist as ActualGoodsIssueDate
// 출고 여부 = 실제 출고일 존재 여부
// 처리 지연 = 출고일 − 납품일 (소비 뷰에서 계산)
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 · 납품 목록 · 출고 상세 |
| 조회조건 | sap.m.Select · sap.m.DatePicker — 우측 끝에 조회 |
| 납품 목록 | sap.m.Table — 납품일순 정렬 |
| 출고 표시 | sap.m.ObjectStatus — 완료 / 미출고 |
| 품목 상세 | 선택 시 품목별 출고 내역 펼침 |
| 이벤트 | onPAI 단일 진입점, fcCode 로 분기 |
처리 지연을 열로 두는 이유
출고가 완료됐어도 납품일과 한참 떨어져 있으면 운영에 문제가 있는 것입니다. 창고 작업이 밀렸거나 전기를 한꺼번에 몰아 하는 경우입니다. 지연 일수가 보이면 그런 패턴이 드러나고 프로세스를 손볼 근거가 됩니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — ko 로케일 · sap_horizon |
view/Main.view.xml | 조회조건 · 납품 목록 · 출고 상세 |
controller/Main.controller.js | 조회 · 출고 판정 · 지연 계산 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 수량 · 일자 · 상태 색 포맷터 |
localdata/DeliveryHeader.json | 납품 헤더 |
localdata/PlantIssue.json | 출고 내역 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 출고 완료 건은 실제 출고일 존재 | 통과 |
| 처리 지연 = 출고일 − 납품일 | 통과 |
| 출고일 ≥ 납품일 | 통과 |
| 납품 수량이 양수 | 통과 |
| 고객·자재 코드가 있으면 명칭도 존재 | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 후 캡처 | 통과 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
미출고 납품이 오래 남아 있으면요?
실제로 출하했는데 전기를 빠뜨렸는지, 아니면 출하 자체가 취소됐는지 확인합니다. 후자면 납품 문서를 삭제해야 목록이 깨끗해집니다.
부분 출고는 어떻게 보이나요?
납품 수량과 출고 수량이 다르게 표시됩니다. 품목·일정 단위로 내려가야 어느 부분이 남았는지 정확히 알 수 있습니다.
출고일이 회계 기간과 다르면요?
매출과 매출원가의 기간이 어긋납니다. 월말 출하 건은 그달 안에 전기해야 손익이 맞습니다.
SAP 표준 기능과 어떻게 이어지나요?
납품과 출고 전기는 표준 SD·MM 이 담당합니다. 이 화면은 두 상태를 한 줄에 놓아 미출고 건과 처리 지연을 드러내는 확장입니다.