---
id: object/codeunit/307
type: object
title: Codeunit 307 "No. Series - Sequence Impl."
summary: Codeunit 307 "No. Series - Sequence Impl." in Business Foundation (Microsoft.Foundation.NoSeries). 5 public procedures, 7 event subscribers. Introduced in BC24, still in BC30, changed in BC27.
tier: official
language: en
tags:
  - codeunit
  - business foundation
versions:
  introduced: "24"
  last_changed: "27"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 8a63fbf74d3fb8238aecf7f6f9dbec7d878a5e653ec30b1dbf369d4782ee5f41
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Business%20Foundation/App/NoSeries/src/Single/NoSeriesSequenceImpl.Codeunit.al
    title: src/Business Foundation/App/NoSeries/src/Single/NoSeriesSequenceImpl.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 307
name: No. Series - Sequence Impl.
namespace: Microsoft.Foundation.NoSeries
app: Business Foundation
extends: null
first_version: "24"
last_version: "30"
present_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "27"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 23
  events: 0
  subscribers: 7
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 1
---

# Codeunit 307 "No. Series - Sequence Impl."

> Codeunit 307 "No. Series - Sequence Impl." in Business Foundation (Microsoft.Foundation.NoSeries). 5 public procedures, 7 event subscribers. Introduced in BC24, still in BC30, changed in BC27.

Business Foundation · Microsoft.Foundation.NoSeries · BC24-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Business%20Foundation/App/NoSeries/src/Single/NoSeriesSequenceImpl.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata "No. Series" = r, tabledata "No. Series Line" = rimd |

## Event subscriptions

- OnValidateNoSeriesLine subscribes to Table "No. Series Line" OnBeforeValidateEvent (Starting No.)
- OnValidateIncrementByNo subscribes to Table "No. Series Line" OnBeforeValidateEvent (Increment-by No.)
- OnValidateLastNoUsed subscribes to Table "No. Series Line" OnBeforeValidateEvent (Last No. Used)
- OnValidateImplementation subscribes to Table "No. Series Line" OnBeforeValidateEvent (Implementation)
- OnDeleteNoSeriesLine subscribes to Table "No. Series Line" OnAfterDeleteEvent
- OnModifyNoSeriesLine subscribes to Table "No. Series Line" OnBeforeModifyEvent
- OnInsertNoSeriesLine subscribes to Table "No. Series Line" OnBeforeInsertEvent

## Procedures

- `PeekNextNo(NoSeriesLine: Record "No. Series Line"; UsageDate: Date): Code[20]`
- `GetNextNo(var NoSeriesLine: Record "No. Series Line"; UsageDate: Date; HideErrorsAndWarnings: Boolean): Code[20]`: Whenever the Last Date Used Changes, the No. Series Line will be modified. The UpdateLock is only set in cases where the No. Series Line will be modified. The "Temp Current Sequence No." must be preserved in case we use UpdLock as the Find() will reset it.
- `GetLastNoUsed(NoSeriesLine: Record "No. Series Line"): Code[20]`
- `MayProduceGaps(): Boolean`
- `ExtractNoFromCode(NumberCode: Code[20]; NoSeriesCode: Code[20]): BigInteger`

Plus 11 local procedures.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 323 "No. Series - Errors Impl."](../codeunit/323.md) (2 calls: `ExtractNoFromCode → OpenNoSeriesLinesAction`, `ExtractNoFromCode → Throw`)
- [Codeunit 306 "No. Series - Stateless Impl."](../codeunit/306.md) (1 call: `GetNextNoInternal → EnsureLastNoUsedIsWithinValidRange`)
- [Page 456 "No. Series"](../page/456.md) (1 call: `OnValidateImplementation → (object)`)

## Implements

- [Interface "No. Series - Single"](../interface/no-series-single.md)

## Across versions

- Present in: BC24-30
- Changed (declaration) in: BC27

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "No. Series - Sequence Impl.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
