Skip to main content
Version: 4.0.0
License availabilityTest Data Dynamization: Int4 Shield Lite

Global Sequence

Overview

A global sequence is a named, reusable number range that hands out incrementing, formatted identifiers — the equivalent of an SAP number range object. Use one whenever a test needs a fresh, unique value on every run: an order number, a document ID, a correlation key, and so on. Because the sequence is shared, many test cases can draw from the same range, and each value is guaranteed to be handed out only once.

Global sequences exist to solve a specific replay problem. A test case is usually built from a real, recorded interaction, and replaying it as-is would send the same document number over and over — duplicating or colliding with documents that already exist in the tested system. By drawing a fresh value from a sequence on each run, a replay produces a brand-new document every time, so it neither clashes with real data nor with earlier test runs. The unique value also gives the test something to find the new document by afterwards, which is how a later validation step locates exactly the document this run created. A common practice is to size or prefix a range so its values never overlap the numbers the backend assigns on its own, keeping test documents cleanly separable from genuine ones.

Sequences are one piece of the platform's broader approach to test data: instead of hand-editing payloads, a test author manages data purely through configuration — capturing values out of one message, generating fresh ones, and writing them back into others. A sequence is the generator side of that picture: it is where the fresh, guaranteed-unique numbers come from. This page is only where you define and maintain the ranges; the actual injection into a message happens inside an automation object that asks the sequence for its next value.

Each sequence remembers the last value it gave out. The next request returns that value plus one, formatted according to a display template. For example, a sequence with the template ORDER-{{NUMBER}}-XYZ and a current value of 41 hands out ORDER-00000042-XYZ next (the digits are zero-padded to a configurable width). You can also give a sequence optional lower and upper bounds so it never produces a value outside an agreed range.

This page lists every global sequence on the platform. From here you can search the catalogue, open a sequence to view or edit its settings, create a new one, or delete one you no longer need. Sequences are consumed inside automation objects: a step in an automation object's data-handling configuration asks the named sequence for its next value and writes that value into the message being sent. You do not run a sequence from this page — this page is only where you define and maintain the ranges themselves.

Tasks

How to create a sequence

  1. Select Create New in the toolbar. (The button is disabled if you do not have permission to create sequences.)
  2. Fill in the form. Name is the unique identifier; it is automatically forced to upper case and must start with a letter and contain only letters, digits, and underscores (for example, ORDER_NO).
  3. Set the starting point in Current value — this is the last value handed out, so the first value the sequence produces is this number plus one.
  4. Adjust the Format template and Pad length if you want a particular look for the generated identifier (see Field reference).
  5. Optionally set Low value and High value to bound the range, and pick a project scope to control who can see and change the sequence.
  6. Select Save. On success you return to the list and see the confirmation Global sequence created successfully.

Field reference

FieldDescription
NameUnique identifier for the sequence. Forced to upper case; must start with a letter and contain only letters, digits, and underscores (for example, ORDER_NO). This is the name an automation object uses to reference the sequence.
DescriptionOptional free-text note (up to 255 characters) describing what the sequence is for.
Project ScopeOptional project scope that controls who can view, change, and delete the sequence. Leave it unset for an unscoped sequence.
Current valueThe last value handed out. The next request returns this number plus one. You normally set it once at creation; it then advances automatically as the sequence is used.
Low valueOptional lower bound. When set, the current value may not go below it.
High valueOptional upper bound. When set, the sequence stops handing out values once it would exceed this number.
Format templateDisplay template for the generated identifier. Must contain the {{NUMBER}} placeholder (where the counter is inserted) and be 10–128 characters, for example ORDER-{{NUMBER}}-XYZ.
Pad lengthMinimum number of digits for the counter, zero-padded on the left. With a pad length of 8, the value 42 appears as 00000042.
Increment per test runMarks that the value should advance once per test run rather than once per use. Note: this flag is stored but currently has no effect — the sequence still advances on every use. See Tips & edge cases.

The list also shows a read-only Next value preview column: the formatted value the sequence would hand out next, shown without consuming it so you can confirm the format and padding at a glance.

If the list is empty, the grid shows No global sequences found. If loading fails, it shows the specific error message returned by the platform.

Tips & edge cases

  • Each value is handed out only once. When two test runs ask for a value at the same moment, the platform serialises the requests so they never receive the same number.
  • Keep test numbers clear of real ones. The reason a test uses a sequence at all is to avoid replaying the original document number and colliding with real data. When the backend does not itself reject a reused number, give the generated identifier a recognisable prefix or suffix in the format template, or confine the range to a slice of the number space the backend will never assign on its own. That keeps the documents a test creates clearly separable from genuine business documents and lets later validation steps find exactly the document this run produced.
  • A bounded sequence can run out. If you set an upper bound, the sequence fails the moment it would hand out a value past that bound — the test step that asked for the value fails rather than wrapping around or reusing a number. Pick bounds with enough headroom, or leave the upper bound unset.
  • Bounds must be consistent. The current value must sit within the lower and upper bounds (each is only checked when set), otherwise the sequence cannot be saved.
  • A sequence cannot be deleted while an automation object uses it. If any automation object references the sequence by name, the delete is refused and the refusal lists up to five of the automation objects still using it. Remove or repoint those references first, then retry. (The check looks for the sequence's name inside automation-object settings, so it can occasionally be over-cautious about a name that merely appears as text.)
  • "Increment per test run" does nothing yet. The checkbox is shown and stored, but the sequence currently advances on every individual use regardless of this setting. Treat it as a placeholder for now.
  • Changing the current value is not tracked in history. The platform records structural changes such as the name, bounds, and template, but it deliberately does not log every change to the current value (it changes constantly as the sequence is used). The history of which numbers were consumed is therefore not available.
  • Project scope is re-checked on save and delete. If a sequence is scoped, you need the matching permission in both the current scope and any scope you move it to — you cannot move a sequence into a scope you do not have permission for.
  • Automation objects — where a sequence is actually consumed: an automation object step asks the named sequence for its next value and writes it into the message.

Prerequisites & permissions

You need the Global Sequence: Read permission to open this list and any sequence's detail page. The other activities used here:

  • Read — required to open the list and view a sequence.
  • Write — required to enable Create New and to edit an existing sequence. Also requires the test-data dynamization licence feature.
  • Delete — required to remove a sequence. Also requires the licence feature, and only succeeds when no automation object still references the sequence.

Where a sequence has a project scope, each of these permissions is checked against that scope.

About permissions. Int4 Suite controls what you can see and do through roles and permission groups assigned to your user. Each role grants permissions on a specific resource (for example, Test Case, Automation Object, System Under Test) at one of four levels: Read, Write, Delete, or Execute. Some permissions are further narrowed by project scope, so you may have access to one part of the system but not another.

If a button is disabled or a list comes back empty, missing permissions are the most likely cause. Ask an administrator to review your role assignments, or check IAM → Users if you have the User: Read permission.

Was this page helpful?Send a quick note to the documentation team.
0 / 2000 characters