# ScriptDataSet

A data set defined in JavaScript.

### Description

Represents a data set defined in JavaScript code, providing methods for opening, fetching and closing the data set. It defines the overall properties of the scripted data set including the JavaScript methods themselves and an optional result set definition.

### See Also

`Script Data Source element`

`DataSet` scripting object

## open

Opens the data set.

### Description

Opens the external data set. Throws a JavaScript exception if the open fails. Often refers to report parameters or user-defined parameters for information about the data set. Optional.

### See Also

`beforeOpen` method

`afterOpen` method

## describe

Dynamically describes the result set definition in JavaScript.

### Return

The Describe method can return null, which tells BIRT to use the static definition instead. The script can access the static description using the design object within the script.

If the method returns a column array, then the array must satisfy the following constraints:

- The array must have at least two entries,
- The entry in position 0 (which represents the row number column) is ignored.
- The entry in position 1 must exist.
- There must be no empty positions in the array.
- Each position must contain an object of type ResultSetColumn.
- The column names must be unique within the result set definition.
- Each column definition in the array must have a one-to-one match with the corresponding column in the DataRow object returned by the fetch method.

### Description

Called before BIRT calls the `beforeOpen` method. Creates a runt-time definition of the result set columns. Returns an array of ResultSetColumn objects. Each object describes a column in the expected result set. Optional.

### See Also

`ResultSetColumn` structure

## fetch

Fetches a row from the data set.

### Return

Returns `true` if there is another row to fetch, `false` if there are no more rows. When the data set has returned the last row from the result set, subsequent calls to `fetch` should return `false`.

### Description

Fetches a row from the data set on each call, and populates the current row available in the `row` property.

### See Also

`onFetch` method

`DataRow scripting object`

## close

Called by BIRT to close the data set.

### Description

Closes the data set. Optional.

### See Also

`beforeClose` method

`afterClose` method