# Development Transactions

{% hint style="warning" %}
**Limited Support/End of Life Capabilities**

The Classic API has been replaced by the Alemba RestFul API.  While we will continue to support the Classic API for clients that are still using it, no further development will be done.

If you need to request a hotfix or support for these features, please contact [<mark style="color:blue;">**Alemba Support**</mark>](https://alemba.help/production/Portal.aspx)
{% endhint %}

These transactions allow you to execute existing or customized queries.  It is up to the developer to ensure that the query exists, that the query is correct and that all required parameters are passed to the transaction.  See **Define Custom Parameters** for more information.

Three development transactions are provided:

* **ExecuteQueryAction**: This can be used to execute a query that does not return results.  For example an update or delete statement.  The returned class will include the number of records affected by your transaction
* **ExecuteQuery**: This is the same as ExecuteQueryAction except that it also returns a ResultSet object. See ResultSet for more information.
* **ExecuteAllocateRef**: This transaction will use the internal ASM transactions for allocating unique refs.

The ASM data schema contains constraints. It is up to the developer running these development transactions to ensure that these constraints are met.  ExecuteQuery and ExecuteQueryAction will both return with an error if they are not.

### ExecuteAllocateRef Transaction

The ExecuteAllocateRef transaction can be used to allocate a unique reference number using the SU\_NUMBER\_ALLOC table.

#### Input Parameters: AllocateRefRequest

<table data-header-hidden><thead><tr><th></th><th width="120"></th><th></th><th width="106"></th><th></th></tr></thead><tbody><tr><td>Argument</td><td>Type</td><td>Mandatory</td><td>Default</td><td>Description</td></tr><tr><td>sID</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s current Session ID</td></tr><tr><td>sLoginUserID</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s Login ID</td></tr><tr><td>sLoginPassword</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s Password</td></tr><tr><td>sDatabase</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Name of the ASM System for logging in.</td></tr><tr><td>sTableName</td><td>String</td><td>Yes</td><td>-</td><td>ASM &#x3C;version> Table Name</td></tr></tbody></table>

#### Return Values: AllocateRefResponse

### ExecuteQuery Transaction

The ExecuteQuery transaction can be used to execute a ASM query. It returns results in a ASM ResultSet.

#### Input Parameters: ExecuteQueryRequest

<table data-header-hidden><thead><tr><th></th><th width="132"></th><th></th><th width="105"></th><th></th></tr></thead><tbody><tr><td>Argument</td><td>Type</td><td>Mandatory</td><td>Default</td><td>Description</td></tr><tr><td>sID</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s current Session ID</td></tr><tr><td>sLoginUserID</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s Login ID</td></tr><tr><td>sLoginPassword</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s Password</td></tr><tr><td>sDatabase</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Name of the ASM System for logging in.</td></tr><tr><td>sQueryName</td><td>String</td><td>Yes</td><td>-</td><td>ASM query name to execute</td></tr><tr><td>aCustomParameters</td><td>Array</td><td>No</td><td>“”</td><td>See Defining Custom Parameters.</td></tr></tbody></table>

#### Return Values: ExecuteQueryTableResponse

<table data-header-hidden><thead><tr><th></th><th width="159.33333333333331"></th><th></th></tr></thead><tbody><tr><td>Argument</td><td>Type</td><td>Description</td></tr><tr><td>Ret</td><td>APIReturn</td><td>Error/Warning Number</td></tr><tr><td>sMessage</td><td>String</td><td>Error/Warning Message</td></tr><tr><td>ResultSet</td><td>DataSet</td><td>ResultSet containing attribute details</td></tr></tbody></table>

### ExecuteQueryAction Transaction

The ExecuteQueryAction transaction can be used to manually run a query found in one of the query files. Parameters passed through to the query are passed to the transaction using the custom parameters. See Define Custom Parameters for more information.

#### Input Parameters: ExecuteQueryActionRequest

<table data-header-hidden><thead><tr><th></th><th width="135"></th><th></th><th width="79"></th><th></th></tr></thead><tbody><tr><td>Argument</td><td>Type</td><td>Mandatory</td><td>Default</td><td>Description</td></tr><tr><td>sID</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s current Session ID</td></tr><tr><td>sLoginUserID</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s Login ID</td></tr><tr><td>sLoginPassword</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Analyst’s Password</td></tr><tr><td>sDatabase</td><td>String</td><td>No. See Transaction Login.</td><td>“”</td><td>Name of the ASM System for logging in.</td></tr><tr><td>sQueryName</td><td>String</td><td>Yes</td><td>-</td><td>ASM query name to execute</td></tr><tr><td>aCustomParameters</td><td>Array</td><td>No</td><td>“”</td><td>See Defining Custom Parameters.</td></tr></tbody></table>

#### Return Values: ExecuteQueryIntResponse

<table data-header-hidden><thead><tr><th></th><th width="197.33333333333331"></th><th></th></tr></thead><tbody><tr><td>Argument</td><td>Type</td><td>Description</td></tr><tr><td>nRecordsAffected</td><td>Integer</td><td>Number of records returned by the query.</td></tr><tr><td>sMessage</td><td>String</td><td>Error/Warning Message</td></tr><tr><td>Ret</td><td>APIReturn</td><td>Error/Warning Number</td></tr></tbody></table>
