General Complex Variables
The category of General Complex Variables includes all variables that are not included in the other categories of complex variables.
The general complex variable types are listed below. Some of them are described on this topic, others in the following sub-topics.
For instructions on how to create a complex variable, see here.
Application Login Info
An Application Login Info variable is used to fetch and store encrypted application credentials from a Real-Time server.
Permissions and Credentials Required
No special permissions are required to access application credentials from the Real-Time Server, either for an automation developer working through Automation Studio or for a client running an automation solution.
However, to retrieve application credentials, the user must be assigned the required application credentials through the Automation Portal. This applies to automation developers working in Automation Studio, and clients running published automation solutions.
To use this feature as an automation developer in Automation Studio, you must be connected to the Real-Time Server where the credentials are stored.
When using the Fetch Application Credentials method, all applications for which credentials have been defined on the server will be listed.
However, when running the project through Automation Studio, the credentials will only be returned for applications for which the user was assigned credentials at the server.
The Robotic Credentials Management tab in the Automation Portal shows that user GL0 has credentials for Facebook_730 and Twitter_730 only. User GL1 has credentials for Gmail_730.
If the automation developer connects to the Real-Time Server as user GL0, then:
-
When adding the Fetch Application Credentials method to an automation solution, all applications that are listed on the Real-Time Server are listed.
-
When running a workflow that uses the Fetch Application Credentials method, credentials will only be returned for Facebook_730 and Twitter_730. Credentials will not be returned for Gmail_730 or the other applications listed.
Switching Between Real-Time Servers
When specifying which application to fetch credentials for, the applications are identified by ID, as shown below:
The mapping between applications and IDs is unique per Real-Time Server. In other words, your solution will only work as expected when connected to the same Real-Time Server that Automation Studio was connected to when populating the Fetch Application Credentials method.
So, for example, if you developed your solution to run on a development Real-Time Server, when moving over to a production Real-Time Server, you will have to modify your solution by re-selecting the application while connected to that production Real-Time Server.
Properties
Property |
Input Type |
Description |
Can Be Modified |
---|---|---|---|
Application Name |
Text |
The name of the application. |
Yes |
Password |
Text |
The password used to access the application. For security reasons, avoid using plaintext usernames and passwords. |
Yes |
User Name |
Text |
The user name used to access the application. For security reasons, avoid using plaintext usernames and passwords. |
Yes |
Methods
Retrieves an application's encrypted credentials from the Real-Time server.
You must be connected to the Real-Time server where the required credentials are stored before you can select the application for which you want to retrieve credentials.
During run-time, credentials will only be retrieved successfully if connected to the same Real-Time Server to which Automation Studio was connected during design-time when selecting which applications to retrieve credentials for, as explained above.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
application |
(menu selection) |
The application for which to fetch credentials. |
Using the Application Selection Menu
The menu of applications listed displays differently depending on which Real-Time server you are connected to.
If you have not previously selected an application in the application parameter, the menu lists all applications whose credentials are stored on the Real-Time server you are connected to.
If you previously selected an application and that application's credentials are stored on the Real-Time server you are connected to, the menu lists all applications whose credentials are stored on the Real-Time server you are connected to.
If you previously selected an application and that application's credentials are not listed on the Real-Time server you are currently connected to, the menu lists the application you selected under the relevant server name, and, below that, all applications whose credentials are stored on the Real-Time server you are currently connected to.
Returns
The method does not return a response. It populate the properties of the Application Login Info variable.
Exception
(Available from version 7.1 onwards.)
Store the details of an exception that occurs in an Exception variable.
Properties
Property |
Input Type |
Description |
Can Be Modified |
---|---|---|---|
Catching Item Display Name | Text | Display name of the component or the workflow step where the exception occurred. | Yes |
Catching Item Internal Name | Text | Internal name of the component or the workflow step where the exception occurred. |
Yes |
Description | Text | The actual exception that occurred, for example, Null Pointer | Yes |
Name | Text | General exception or Workflow exception | Yes |
Workflow | Text |
The name of the workflow in which the exception occurred. Available from 7.4. Important: This property is populated by an exception event in a workflow, and not by a built-in exception event. |
Yes |
File information
(Available from version 7.0 onwards.)
Use and manage file information by creating a File information variable which can be used to handle the date and time the file was created, last accessed, or last modified, the file name, size and version, whether the file is read-only or not, and whether the file is hidden or visible.
Properties
Note: Although all properties are writable, modifying the value of a property of a File Information variable has not effect on the file itself.
Property |
Input Type |
Description |
Can Be Modified |
---|---|---|---|
Date Accessed | DateTime | The date and time when the file was last accessed (in local time), in DateTime format | Yes |
Date Accessed (Text) | Text | The date and time when the file was last accessed (in local time), in Text format |
Yes |
Date Created | DateTime | The date and time when the file was created (in local time), in DateTime format | Yes |
Date Created (Text) | Text | The date and time when the file was created (in local time), in Text format | Yes |
Date Modified | DateTime | The date and time when the file was last modified (in local time), in DateTime format | Yes |
Date Modified (Text) | Text | The date and time when the file was last modified (in local time), in Text format | Yes |
File Name | Text | The file name | Yes |
Hidden | Boolean | Whether or not the file is hidden. True if hidden. | Yes |
Read Only | Boolean | Whether or not the file is read only. True if read only. | Yes |
Size | Text | The file size in bytes | Yes |
Version | Text | The file version | Yes |
Regular Expression Match
(Available from version 7.0 onwards.)
Use a Regular Expression Match complex variable to store the details of a single regular expression match found in a text variable.
The function Extract Text Segments by Pattern in the Regular Expressions built-in service returns a list of type Regular Expression Match. You can extract a single match from the list and store it in a Regular Expression Match variable.
A typical implementation would work as follows:
-
Create a simple text variable.
-
Load text from a file into the text variable using the Read Text From File function.
-
Create a list variable of type Regular Expression Match.
-
Extract strings that match a regular expression from the text variable using the Extract Text Segments by Pattern function and write the results to the list variable you created.
-
Create a Regular Expression Match variable.
-
For each element in the list variable:
-
Use the Get Value at Position method of the list to retrieve the nth element (i.e. the nth match), and write it to the Regular Expression Match variable you created.
-
Retrieve each piece of information on the match from the Regular Expression Match variable as needed, using the Get Value at Position function.
-
Use the information as required, for example, to populate an email to a customer.
-
Progress to the next element in the list variable.
-
See Project: Extract Text Data Using Regular Expressions for a complete sample project that demonstrates how to extract data from text using regular expressions.
Properties
Property |
Input Type |
Description |
Can Be Modified |
---|---|---|---|
Groups | List |
A list of the values of all regular expression groups found in the matching text. For example, the regular expression <firstName>(.*)<\/firstName>.*<phone>(.*)<\/phone> includes two groups - one for the first name and one for the phone number |
No |
Index | Number | The position in the source text at which the match starts. If the match starts at the beginning of the text, its Index is returned as 0. |
No |
Length | Number | The number of characters in the match. | No |
Value | Text | The full text of the match. | No |
Row
(Available from version 7.0 onwards.)
A row is a list of text elements and can be used as an alternative to a list variable of type Text.
Use a Row variable (or a list variable of type Text) to store multiple distinct text elements, for example, the values of multiple cells from a single row of an Excel file. Each element of a row variable can be written to and read from individually.
All values in a row's elements are of type Text.
To store multiple rows of data (such as from an Excel table or a table on a web site), create a list variable of complex type Row. See Process Tables.
Properties
Property |
Input Type |
Description |
Can Be Modified |
---|---|---|---|
Is Empty |
Boolean |
False if the row includes at least one element |
No |
Number of Elements |
Number |
The number of elements in the row variable |
No |
Element (n) |
Text |
The value of the nth element in the variable |
No |
Methods
Adds the specified cell to the end of Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
source |
Text |
The cell to add to the end of the Row of cells. |
Returns
Nothing.
Example
This example adds a cell with the contents of the Clipboard to the end of the Row:
Appends the cells of a specified Row to the current Row, and the output is the combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List of text |
The second list whose cells are added to the current Row of cells. |
Returns
Returns the appended Row of cells.
Example
This example appends the cells of a list of Microsoft Word fields from the active Microsoft Word document, and returns the appended Row.
Combines identical cells in the specified and current Row by comparing the actual objects, and generates a combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List of cells |
The second list of cells whose elements are combined with the current Row cells. |
Returns
Returns the Row of combined cells.
Example
This example combines the cells of a list of cells with the current Row cells and creates a combined Row.
Combines the identical cell in both the specified Rows by values or by comparing the actual contents, and generates a combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List of cells |
The Row whose cells are to be combined with the current Row. |
byVal |
Boolean |
Whether to combine the cell values of the second Row with the cell values of the current Row. |
Returns
Returns the Row of combined cells.
Example
This example combines the cells of the current Row with the contents of InventoryList, and returns a combined Row.
Combines the cells from both Rows with no repetitions, and generates a combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List |
The second Row whose cells are to be combined with the current Row. |
Returns
Returns the Row of combined cells.
Example
This example combines the equivalent cells with the current Row and outputs a combined Row.
Combines the cells from both Rows by values, with no repetitions or by comparing the actual cells, and generates a combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List |
The second Row whose cells are to be combined with the current Row. |
byVal |
Boolean |
Whether to combine the cell values of second Row with the cell values of the current Row. |
Returns
Returns the Row of combined cells.
Example
This example combines the equivalent cell values from an Inventory List with the current Row and outputs a combined Row.
Combines cells from multiple Rows, which are unique to each Row, and generates a combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List |
The second list whose unique cells to add to the current list. |
Returns
Returns a Row with the combined cells.
Example
This example combines the unique cells of an Inventory List element set with the current Row and returns the combined cells in the Row.
Combines the cells which are unique to each Row – using the NOT AND operation - by values or by comparing the actual objects, and generates a combined Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
secondList |
List |
The second Row whose unique cells will be added to the current Row. |
byVal |
Boolean |
Whether to combine the cell values of a second Row with the cell values of the current Row. |
Returns
Returns a Row with the combined elements with unique values.
Example
This example combines the unique cell values of an Inventory List cell set with the current Row and returns the combined cells in the Row.
Finds the position of the specified cell in the Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
source |
Text |
The cell whose position to find. |
Returns
Returns the position of the cell as a number.
Example
This example returns the position of cell from the current Row.
Finds the position of the specified cell in the list, by value or by comparing objects.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
source |
Text |
The cell whose position to find. |
byVal |
Boolean |
Whether to find the position of the cell by value. |
Returns
Returns the position of the cell as a number.
Example
This example returns the position of the cell in the current Row with the same value as cell 67 of the Inventory List.
Inserts the specified cell into the list at the specified position.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
source |
Text |
The cell to insert. |
indx |
Number |
The position to insert the cell. |
Returns
Nothing.
Example
This example inserts the value of the cell at position 20 in the Inventory List into position 29 in the current Row.
Filters the cells of the Row, so that all the cells are unique, and generates an output of the resulting set.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
none |
|
|
Returns
Returns the unique cells in the Row.
Example
This example returns the unique list of cells from the current Row.
Filters the cells of the Row, so that all the cells are unique, by value or by comparing actual objects, and generates an output of the resulting set.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
byVal |
Boolean |
Whether to generate an output of the resulting set by value. |
Returns
Returns the unique list of cells .
Example
This example returns the unique list of cells from the current Row.
Removes all cells from the Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
none |
|
|
Returns
Nothing.
Example
This example removes all the cells from the current Row.
Removes the specified cell from the Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
source |
text |
The cell to remove from the Row. |
Returns
Nothing.
Example
This example removes a cell from the current Row.
Removes an element at the specified position in the Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
indx |
Number |
The position of cell to remove. |
Returns
Nothing.
Example
This example removes the fifth cell in the current Row.
Removes a range of cells from the Row, starting at the first position, and ending at the last position.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
startIndx |
Number |
Starting cell to remove. |
endIndx |
Number |
Ending cell to remove. |
Returns
Nothing.
Example
This example removes the range of elements starting from cell 5 to cell 8 in the current Row.
Replaces the value at the specified cell with a new value.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
indx |
Number |
The position of the element. |
newValue |
Text |
The new value. |
Returns
Nothing.
Example
This example replaces the element located at the 8th with a converted currency value based on the value of an element in the Inventory List at position 7.
Sorts the elements of the Row according to a specified property.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
propertyName |
Text |
Name of the property. |
ascending |
Boolean |
Whether to sort the elements of the Row in ascending order. |
Returns
Nothing.
Example
This example sorts the elements of the current Row of cells according to the value listed in Inventory List in position 5.
Sorts the elements of the Row in ascending or descending order.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
ascending |
Boolean |
Whether to sort the elements in ascending order. |
Returns
Nothing.
Example
This example sorts the elements of the current Row of cells in descending order.
Extracts the value of the element at the specified position in the Row.
Parameters
Parameter |
Input Type |
Description |
---|---|---|
indx |
Number |
The position of the element. |
Returns
Returns:
- The text element value for an element with type text.
- The numerical element value for an element with type number.
Example
This example returns the value of the element at the 3th position of the current Row of cells.
Screen Element Rectangle
(Available from version 7.2 onwards.)
Create a Screen Element Rectangle variable to represent the size and location of an area of the screen, a document, or image.
Properties
Tip: Measuring Rectangle Dimensions
To measure the dimensions of a rectangle in an image:
-
Open the image in Microsoft Paint.
-
Activate the Select tool.
-
Position your cursor at the top-left corner of the rectangle.
The values to use for Left and Top are displayed at the lower-left corner of the Paint window.
-
Drag the selection rectangle over the area you want to specify.
The values to use for Widthand Height are displayed to the right of where the Left and Top values are displayed.
Timer
(Available from version 7.0 onwards.)
The Timer variable is used to generate an Elapsed event after a specified length of time. A Timer variable can be used to delay a workflow transition.
Properties
Property |
Type |
Description |
Can Be Modified |
---|---|---|---|
Interval |
Decimal |
The timer period in seconds. |
Yes |
Events
Event |
Description |
---|---|
Elapsed time |
Triggered when the defined timer interval passes. |
Key-Value Pair
(Available from 7.5 onwards)
The key-value pair is used to store data in key-value format. One text parameter is provided for each of the key and value. This type is most commonly used as a list.
Properties
Property |
Type |
Description |
Can Be Modified |
---|---|---|---|
Key |
Text |
The key of the key-value pair |
Yes |
Value | Text | The value of the key-value pair | Yes |