본문으로 건너뛰기

문서 번호

견적·발주·전표 번호(INV-2026-0001 · PR-2607-001)의 형식·파싱과 원자적 발급. 같은 범위의 두 발급이 같은 번호를 받지 않는다. 기간은 한국 날짜로 가른다

npm install @duolabs-deux/unit-doc-number

직접 넣어 보기

형식
동시에 20건
저장소 시험
번호 읽기

문서 번호 형식이 맞지 않습니다

어댑터

id종류설명
postgres실제한 문장 UPSERT 로 청구. 드라이버 없이 쿼리 함수를 주입한다(pg·Prisma 모두). 문서를 넣는 트랜잭션 안에서 부르면 결번이 없다
memory가짜한 프로세스 안에서만 유효. 테스트·데모용. 여러 인스턴스에서 쓰면 번호가 겹친다

실패와 소비 앱이 할 일

종류언제할 일
invalid-input형식(접두·자리수)이 틀렸거나, 파싱할 글자가 형식과 다를 때형식은 개발 중에 고친다. 사용자가 친 번호면 입력 칸에서 알린다
upstream-down저장소 쿼리가 실패했을 때문서 저장 트랜잭션을 되돌리고 다시 시도한다
unexpected일련번호가 자리수를 넘었거나 저장소 응답을 읽지 못했을 때자리수를 늘릴지 사람이 정한다(이미 낸 번호와 정렬이 달라진다)

한도

  • 번호를 미리 보여 주지 않는다. 미리 본 번호는 저장할 때 다른 사람이 가져갈 수 있다
  • 트랜잭션 밖에서 청구하고 문서 저장이 실패하면 그 번호는 빈다
  • 다시 시작하는 단위는 해·달·없음 셋이다. 회계연도처럼 다른 경계가 필요하면 기간 글자를 소비 앱이 정해 tenant 와 함께 쓴다

명세