lr.start_sub_transaction
Starts a sub-transaction specified by its parent's name.
int lr.start_sub_transaction( String sub_transaction, String parent_transaction );
| Transaction Functions | Java Syntax |
Arguments
| Name | Comments |
|---|---|
| sub_transaction | The name of the sub-transaction |
| parent_transaction | The name of the parent transaction in which the sub-transaction is nested. |
The lr.start_sub_transaction function marks the beginning of a sub-transaction. To mark the end of the sub-transaction, use lr.end_sub_transaction. You insert these functions immediately before and after the sub-transaction actions.
Sub-transactions are used for isolating parts of a business process. For example, a sub-transaction "electrical_purchases" may be nested within the larger transaction "purchases." The transaction "purchases" is the parent transaction and "electrical_purchases" the sub-transaction.
Multiple sub-transactions can be nested within a parent transaction. A sub-transaction may also be a parent to a smaller sub–transaction.
The duration of a transaction or sub-transaction is the sum of the durations of all steps between its start and end, including the steps that are included in sub-transactions.
Each lr.start_sub_transaction statement must be matched with an lr.end_sub_transaction statement within the script or it will be interpreted as an illegal command.
Note: For information on allowed characters and maximum length for transaction names, see Transaction guidelines in the Virtual User Generator Help Center.
Return Values
This function returns 0 if it succeeds. It returns -1 if the transaction name is illegal or if there is no prior call to lr.start_transaction with a transaction of the same name.
Parameterization
All string arguments (char type) can be parameterized using standard parameterization.
Example
In the following example,lr.start_sub_transaction and lr.end_sub_transaction create a transaction that performs purchases of six electrical items. The parent transaction is purchases and the sub-transaction is electrical_purchases.
lr.start_transaction("purchases");
/* Breakdown the transaction into a smaller transaction */
lr.start_sub_transaction("electrical_purchases", "purchases");
/* call to Server API */
int status = purchase_electrical_items(6);
/* End transaction with operation result - pass or fail */
if (status == 0)
lr.end_sub_transaction("electrical_purchases", lr.PASS);
else
lr.end_sub_transaction("electrical_purchases", lr.FAIL);
lr.end_transaction("purchases", lr.AUTO);

