SAP 생산오더 번호, 12자리 숫자가 다 차면 어떻게 되나
SAP 생산오더 번호가 재사용되지 않는 이유, 클라이언트 단위 고유성, 번호 범위가 소진됐을 때 일어나는 일을 은행 순번 대기표 비유로 설명합니다.
안녕하세요, Rabbit입니다! 🐰
은행 창구 앞 대기표 기계를 생각해 봅니다. 25번 표를 뽑은 손님이 “다음에 올게요” 하고 떠났습니다. 그렇다고 다음 사람이 25번 표를 다시 뽑을 수 있을까요? 아닙니다. 기계는 무조건 26번을 뱉어냅니다.
SAP 생산오더 번호도 정확히 이렇게 작동합니다. 한 번 발번된 생산오더 번호는 삭제해도 절대 재사용되지 않습니다.
- 생산오더를 삭제해도 그 번호는 다시 사용할 수 없습니다. ‘삭제 플래그’만 붙을 뿐입니다.
- 번호는 회사·공장이 달라도 같은 클라이언트 안에서는 절대 중복될 수 없습니다.
- 번호 범위가 소진되면 자동으로 자릿수가 늘어나지 않으므로 사전에 관리가 필요합니다.
삭제한 번호는 왜 재사용이 안 되는가
SAP에서 생산오더를 ‘삭제’하는 것은 데이터를 완전히 지우는 것이 아닙니다. 해당 오더에 삭제 플래그(Delete Flag)라는 꼬리표를 붙여 ‘이 오더는 더 이상 사용하지 않음’이라고 표시하는 것입니다.
오더가 생성된 순간 그 번호는 시스템 이력에 기록됩니다. 이후 오더가 삭제되더라도 번호 자체의 흔적은 남아있기 때문에, 같은 번호를 새 오더에 다시 부여할 수 없습니다.
레스토랑 예약 번호로 비유하면 이렇습니다. 오늘 예약번호 1047번 손님이 취소했다고 해서 다음 예약자에게 1047번을 다시 주지 않습니다. 취소 기록은 남아있고, 다음 예약자는 1048번을 받습니다.
이 원칙은 감사(Audit) 측면에서 중요합니다. 번호가 재사용되지 않기 때문에 특정 번호의 오더가 언제, 왜 생성됐고 어떻게 처리됐는지 항상 추적할 수 있습니다. 재무 감사나 품질 이력 추적 시 이 추적 가능성이 핵심이 됩니다.
번호는 클라이언트 단위로 유일하다
생산오더 번호는 회사 코드나 플랜트(공장)가 달라도 같은 SAP 클라이언트 안에서는 절대 중복될 수 없습니다.
그 이유는 생산오더 마스터 테이블인 AUFK의 구조에 있습니다. 이 테이블에서 오더를 식별하는 유일한 키 필드는 오더 번호(AUFNR) 하나입니다. 회사 코드(BUKRS)나 플랜트(WERKS)는 조연 속성일 뿐 키가 아닙니다.
예를 들어 A 공장에서 생산오더 번호 10000001이 생성됐다면, B 공장에서는 같은 번호를 사용할 수 없습니다.
이 때문에 여러 공장을 하나의 SAP 시스템에서 운영할 때는 처음부터 공장별로 번호 범위를 분리해 배정합니다. 예를 들어 A 공장은 1000만 번대, B 공장은 2000만 번대를 쓰도록 설정하면 충돌을 방지할 수 있습니다.
그림 1. 클라이언트 단위 고유성과 공장별 번호 범위 분리
번호 범위가 소진되면 어떻게 되는가
번호 범위(Number Range)는 SAP 설정에서 미리 정해둔 구간입니다. 예를 들어 ‘10000000 ~ 99999999’로 설정되어 있다면, 이 구간 안에서만 번호가 발번됩니다.
⚠️ 주의: 99999999번 오더가 발행되고 나면 시스템은 새 번호를 만들지 못하고 오류를 냅니다. 자릿수가 자동으로 9자리로 늘어나는 일은 없습니다. 번호 범위는 시스템 관리자가 사전에 확장하거나 새 범위를 추가해야 합니다.
자릿수를 8자리에서 12자리로 확장하면 사용 가능한 번호는 약 1조 개까지 늘어납니다. 연간 100만 개의 오더를 발행한다고 해도 12자리 번호가 소진되려면 수십만 년이 걸립니다. 실무에서 번호 고갈을 걱정해야 할 상황은 거의 오지 않지만, 범위 설정 자체는 구축 초기에 신중하게 해두어야 합니다.
SE11로 오더 수량 확인하기
우리 시스템에 생산오더가 몇 개나 쌓였는지 확인하고 싶다면 T-CODE SE11을 씁니다.
SE11(ABAP Dictionary)에서 데이터베이스 테이블 AUFK를 조회하면 생산오더 마스터 정보 전체를 볼 수 있습니다. ‘엔트리 수’ 버튼을 누르면 전체 오더 수량이, 생성일(ERDAT) 필드에 날짜 범위를 지정하면 특정 기간의 오더 수량이 확인됩니다.
AUFK에서 필드명이 낯설다면 모르는 필드 위에 커서를 놓고 F1을 누르면 해당 필드의 설명이 바로 나타납니다.
오더 수량을 확인하면 번호 범위 소진까지 얼마나 여유가 있는지도 가늠할 수 있습니다. 예를 들어 8자리 범위를 쓰는데 이미 6,000만 번대에 도달했다면 관리자에게 범위 확장을 요청할 시점입니다.
SE11 사용 권한은 일반 사용자에게 없는 경우가 많습니다. 오더 수량 조회가 필요하다면 IT 담당자나 권한이 있는 동료에게 확인을 요청하거나, SAP PP T-CODE에 정리된 조회 전용 T-CODE를 활용하는 방법도 있습니다.
💡 핵심:
AUFNR은 오더 번호,AUART는 오더 유형,ERDAT는 생성일,WERKS는 플랜트입니다. 이 네 가지 필드만 알아도 AUFK에서 원하는 오더를 빠르게 찾을 수 있습니다.
번호 범위 설정 T-CODE
생산오더 번호 범위는 T-CODE OPJK에서 확인하고 관리할 수 있습니다. 오더 유형별로 어떤 번호 범위가 설정돼 있는지, 현재 어느 번호까지 사용했는지 이 화면에서 확인 가능합니다.
단, OPJK는 시스템 설정 화면이므로 일반 사용자 권한으로는 조회가 안 될 수 있습니다. 번호 범위 소진 여부가 궁금하다면 IT 담당자나 시스템 관리자에게 확인을 요청하세요. 번호 범위 확장은 반드시 운영 환경에서 작업 전 개발·품질 환경에서 먼저 테스트해야 합니다.
Rabbit의 한 끗
생산오더 번호 규칙은 처음에 당연히 재사용될 것 같다는 직관과 달리 작동합니다. 삭제해도 번호는 영구 소멸이 아니라 기록으로 남는다는 점, 회사가 달라도 같은 클라이언트에서는 중복이 불가능하다는 점을 알면 실무에서 마주치는 의문들이 자연스럽게 풀립니다.
번호 범위 관리는 일상 업무에서 직접 건드릴 일이 많지 않지만, 시스템이 갑자기 오더를 생성하지 못하는 상황이 오면 번호 범위 소진이 원인일 수 있다는 것을 기억해두면 문제 진단이 빠릅니다. 😎
더 읽어보기
