# Sequence Generator

The *Sequence Generator* Transformation object in Astera is used to add sequences of integer values to a dataflow. The sequences can start with any number and have any step, for example, 50, 55, 60, 65 etc.

The Astera Data Stack can either create a sequence instantly at the dataflow’s run-time (this is called in-memory sequence), or it can read sequence control data from a database table as your dataflow is executed.

In the case of in-memory sequences, a sequence always starts at the *Start Value* provided in the *SeqGenerator: Context Information Properties* window. In the case of database sequences, the last value used is recorded in the control database, and a new start value is used every time the sequence is invoked.&#x20;

This makes it possible to generate ever-increasing values for the sequence each time the dataflow runs. In effect, such a sequence is a chain of sequences with non-overlapping values.

### Video

{% embed url="<https://www.youtube.com/watch?v=4SREigqZIwk>" %}

### Use Case

Here, we have retrieved data from the an *Orders* table using a *Database Table Source* object. We will use the *Sequence Generator* Transformation object to generate a sequence for the *OrderNo* field in our source data. Let’s see how this works.

### How to Use the Sequence Generator

1. Drag the *Sequence Generator* Transformation object from the Transformations section in the Toolbox and drop it on to the dataflow designer.

![](/files/1zl1BkLL5MIUo1VEN8nE)

2. Map the required fields from the source object to a destination object.

{% hint style="info" %}
**Note**: We have the *Orders* table as our source from a [*Database Table Source*](/dataflows/sources/database-table-source.md). We will map the fields *OrderDate*, *RequiredDate*, *ShippedDate*, *ShipVia* and *Freight* to an [*Excel Workbook Destination*](/dataflows/destinations/excel-workbook-destination.md) object.
{% endhint %}

![](/files/hYR3SdyMg73wQr3CAk7Z)

3. To configure the properties of the *Sequence Generator* Transformation object, right-click on its header and select *Properties* from the context menu.

![](/files/SLa1xCZGogzwDsuYaHzj)

This will open the *Context Information Properties* window.

![](/files/KPZoWq5CvkLPRMeQKyF2)

4. In this window, you can choose between three different types of sequence generations and specify the *Sequence Details*.

![](/files/0bKroWN7tXVQbmCsWYNV)

A description of these three methods is given below:

* *In Memory*: The sequence will be created in memory at the dataflow run-time. The sequence always starts at the specified *Start Value* in the sequence properties.

  *Sequence Details:*

  * *Start Value* – The initial value for the sequence
  * *Step* – The increment value
* *Database Table*: The sequence control information for the database table can be managed within Astera through the *Manage Sequences* option.
  * *Connection*: Specify the connection to the database where the sequences will be stored
  * *Sequence*: Select the sequence from the list of available sequences in database.

    **Note**: To manage database sequences, go to *Menu > Tools > Sequences*.
  * *Batch Size*: Specifies the minimum number of values to be allocated to the sequence.
  * *Use Memory Sequence during preview*: Prevents the user from breaking the sequence cycle during a data preview by substituting with an in-memory sequence, which does not affect (i.e. increase) the database sequence’s current value.

![](/files/ecjOEwHYpivRlICmpBiS)

* *Sequence Object* - The sequence control information is read from a special database table coming from SQL Server or Oracle database.
  * *Connection*: Specify the connection to the database that stores your sequences.
  * *Sequence*: Select the sequence from the list of available sequences.
  * *Use Memory Sequence during previews*: Prevents the user from breaking the sequence cycle during a data preview by substituting with an in-memory sequence.

![](/files/dFDwsChJ0v1xVTKmuVrI)

{% hint style="info" %}
**Note**: In this case we will use the In-Memory sequence generator option.&#x20;
{% endhint %}

Let’s specify the Sequence Details as follows:

*Start Value*: 0

*Step*: 1

5. In the destination object, a new field will be created where the sequence generator value will be mapped.

{% hint style="info" %}
**Note**: In this case, the *OrderNo* field has been created in the *Excel Workbook Destination* object.
{% endhint %}

![](/files/iEVcZAtXShwZaj4RlUJc)

6. The *NextVal* field will be mapped to the *OrderNo* field in the destination object.

![](/files/5yrCvxE3lntwddEJKXuR)

7. You can see the output of the excel destination object in the *Data Preview* window.

![](/files/r6eS41vCURNJxJ2pkE0z)

The sequence has been generated in the new field, *OrderNo*.

This is how the *Sequence Generator* Transformation is used in Astera.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.astera.com/dataflows/transformations/sequence-generator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
