# SAP User Actions

## Introduction

* User actions in SAP refer to functional commands that enable users to interact with and manipulate the features and functionalities of a desktop SAP application. These actions are typically scripted in VBScript to automate tasks and interactions between users and the SAP application.
* **Qyrus** offers a comprehensive selection of SAP action types categorized based on their specific nature. Each user action includes both mandatory and optional input parameters, with **mandatory inputs indicated by an asterisk (\*)**.

## Table of Contents

* [Application Actions](#application-actions)
* [User Access Actions](#user-access-actions)
* [Mouse Events](#mouse-events)
* [Keyboard Events](#keyboard-events)
* [Verifiers](#verifiers)
* [Functions](#functions)
* [Conditional](#conditional)
* [Data Handlers](#data-handlers)
* [Delay](#delay)
* [Window Actions](#window-actions)
* [AI](#ai-actions)
* [Others](#other-actions)

## Application Actions

<details>

<summary>1. Start</summary>

This action starts the specified .exe and attaches its execution to the designated SAP application.

**Inputs:**

* Application Path\* – Path to the .exe for the SAP application.
* Start Delay – Wait time for application start.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-dfc17b92a69bd88a5fc11916f06e720a9e0033f8%2FStartSAP.png?alt=media" alt="Start Action" data-size="original">

</details>

<details>

<summary>2. Kill EXE</summary>

This action terminates the specified .exe.

**Inputs:**

* EXE Path\* – Path to the .exe to be terminated.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-41175466ff770384108371cf94af584a5cdda069%2FKillSAP.png?alt=media" alt="Kill EXE Action" data-size="original">

</details>

## User Access Actions

<details>

<summary>1. Login To SAP</summary>

This action performs a login operation on the specified SAP system using user credentials.

**Inputs:**

* Client\*
* Language
* Password\*
* SAP System Name\*
* UserName\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-fcaf7767562f0f9929be34d226df290a547320a9%2FLoginSAP.png?alt=media" alt="Login To SAP Action" data-size="original">

</details>

<details>

<summary>2. Logout From SAP</summary>

This action performs a logout operation on the SAP system which is active.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-630dd93a55978515b30348acd7ad3297646bf42d%2FLogoutSAP.png?alt=media" alt="Logout From SAP Action" data-size="original">

</details>

## Mouse Events

<details>

<summary>1. Click</summary>

This action simulates a mouse click on the specified element.

**Inputs:**

* Locator Type\*
* Locator Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-c9e5cf2cfce918c5a4f905268b3f4574e0163d4e%2FClickSAP.png?alt=media" alt="Click Action" data-size="original">

</details>

<details>

<summary>2. Click By Coordinates</summary>

This action simulates a mouse click at the specified coordinates (x, y).

**Inputs:**

* Coordinates Value\* - (x, y)

*Example:* Coordinates Value - (540, 625)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-56b0e1512104ceafe2a6a93efcaad7410afa65fc%2FClickByCoordinatesSAP.png?alt=media" alt="Click By Coordinates Action" data-size="original">

</details>

<details>

<summary>3. Double Click</summary>

This action performs a double click on the specified element.

**Inputs:**

* Locator Type\*
* Locator Value\*

*Example:* Locator Type: "id" Locator Value: "wnd\[1]/tbar\[0]/btn\[12]"

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-69a64ccd8c49facf3469d4f3d43b5a9b11c309d6%2FDoubleClickSAP.png?alt=media" alt="Double Click Action" data-size="original">

</details>

<details>

<summary>4. Double Click By Coordinates</summary>

This action performs a double click at the specified coordinates (x, y).

**Inputs:**

* Coordinates Value\* - (x, y)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-7b25cb4f83d537727c189c0bbaadb1665e8bf391%2FDoubleClickByCoordinatesSAP.png?alt=media" alt="Double Click By Coordinates Action" data-size="original">

</details>

<details>

<summary>5. Right Click By Coordinates</summary>

This action performs a right click at the specified coordinates (x, y).

**Inputs:**

* Coordinates Value\* - (x, y)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-5b45ae7ba9137ed4e3458f66fc0c850cdf4f8add%2FRightClickByCoordinatesSAP.png?alt=media" alt="Right Click By Coordinates Action" data-size="original">

</details>

## Keyboard Events

<details>

<summary>1. Set</summary>

This action sets a value for a control like an edit (text box) for the specified element.

**Inputs:**

* Data Value\*
* Locator Type\*
* Locator Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-c1a97ff1828c5ca51f27fda0c27a5a8d1684bce5%2FSetSAP.png?alt=media" alt="Set Action" data-size="original">

</details>

<details>

<summary>2. Set By Coordinates</summary>

This action sets a value for a control like an edit (text box) at the specified coordinates (x, y).

**Inputs:**

* Coordinates Value\* - (x, y)
* Data Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-1f3c7c7f6a36fd1c7f38f278292ff884d6afd255%2FSetByCoordinatesSAP.png?alt=media" alt="Set By Coordinates Action" data-size="original">

</details>

<details>

<summary>3. Send Keys</summary>

This action simulates keyboard input by sending actual keyboard keys as they are.

**Inputs:**

* Keys\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b1076ae7b758dae2cc31a7975537b57eaf243a0f%2FSendKeysSAP.png?alt=media" alt="Send Keys Action" data-size="original">

</details>

<details>

<summary>4. Send Virtual Keys</summary>

This action simulates key presses in the application by sending virtual key codes directly.

**Inputs:**

* Locator Type\* - Specifies how to locate the element.
* Locator Value\* - Value or expression for locating the element.
* Virtual Keys\* - Specifies the virtual key code(s) to send to the application.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-9ffa8c3bae043d7943465e6606bef9429ed89c46%2FSendVirtualKeysSAP.png?alt=media" alt="Send Virtual Keys Action" data-size="original">

</details>

<details>

<summary>5. Clear</summary>

This action clears the specified element.

**Inputs:**

* Locator Type\*
* Locator Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-ba84fbacc5ca76e0fa99826860489d525caece41%2FClearSAP.png?alt=media" alt="Clear Action" data-size="original">

</details>

## Verifiers

<details>

<summary>1. Verify Text</summary>

This action verifies whether the text of the specified element matches the specified data value.

**Inputs:**

* Locator Type\*
* Locator Value\*
* Data Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-da6ea50796205867d01cfec4fb75e24a90bcdf3e%2FVerifyTextSAP.png?alt=media" alt="Verify Text Action" data-size="original">

</details>

<details>

<summary>2. Contains</summary>

This action verifies whether the specified element contains the text specified in the data field.

**Inputs:**

* Locator Type\*
* Locator Value\*
* Data Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-bedbc1ffda07f3a9c8494d7c23071c610a6eda96%2FContainsSAP.png?alt=media" alt="Contains Action" data-size="original">

</details>

<details>

<summary>3. Is Blank</summary>

This action verifies whether the specified element's text is blank or not.

**Inputs:**

* Locator Type\*
* Locator Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-9e9e4b3b4af4832d9917f0ba3adbd453fbd47782%2FIsBlankSAP.png?alt=media" alt="Is Blank Action" data-size="original">

</details>

<details>

<summary>4. VerifyComboboxItem</summary>

This action verifies the selected item from the ComboBox and compares it to the expected value.

**Inputs:**

* Locator Type\* - Specifies how to locate the ComboBox.
* Locator Value\* - Value or expression for locating the ComboBox.
* Property\* - Specifies the attribute or characteristic of the ComboBox to verify.
* Property Value\* - The expected value to compare with the actual value.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-ab2a539f0db28bcc6aad9ffd5b8994d90a75f845%2FVerifyComboboxItemSAP.png?alt=media" alt="Verify ComboBox Item Action" data-size="original">

</details>

<details>

<summary>5. Verify Greater Than</summary>

This action checks whether the specified element's value is greater than provided in the data field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type\*
* Locator Value\*
* Data Value\*
* Value Type\*
* Format For Locator’s Value
* Format For Data

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-6a6999896c3abcdb3dcf0abd2b33b9f4c18c4738%2FVerifyGreaterThanSAP.png?alt=media" alt="VerifyGreaterThan" data-size="original">

</details>

<details>

<summary>6. Verify Less Than</summary>

This action checks whether the specified element's value is less than provided in the data field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type\*
* Locator Value\*
* Data Value\*
* Value Type\*
* Format For Locator’s Value
* Format For Data

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b3098fe67b106c70e6d88ef6c4c305ef042611fb%2FVerifyLessThanSAP.png?alt=media" alt="VerifyLessThan" data-size="original">

</details>

<details>

<summary>7. Verify Not Null</summary>

This action checks whether the specified element's value is not null.

**Inputs:**

* Locator Type\*
* Locator Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-a79926c6f64d350dbf2f83fe51185953ec122a07%2FVerifyNotNullSAP.png?alt=media" alt="VerifyNotNull" data-size="original">

</details>

## Functions:

<details>

<summary>1.Execute Test Case</summary>

This action allows users to invoke entire test script as test step within another script, promoting reusability.

**Inputs:**

* Script Name\*
* Data

Note: If this user action is parameterized, the 'Data' field will be changed into 'Data Column', which is a mandatory field.

You can find extensive information on how to use this user action effectively in the complete guide provided at this [***link***](https://docs.qyrus.com/desktop-testing/advanced-feature/execute-test-case) .

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-9cd14f0edee216da6358f030e8c414ef5d13b463%2Fexecute-test-case.png?alt=media" alt="Execute Test Case" data-size="original">

</details>

## Conditional

<details>

<summary>1. Start If</summary>

This action signifies the beginning of an if condition, and subsequent tests related to this action type will be considered as steps within the if condition block. These steps will only be executed if the condition is satisfied. It exclusively supports verifiers.

**Inputs:**

* Verifier
* Data Value\*
* Locator Type\*
* Locator Value\*
* Property\*
* Property Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-a20421a4e9de2e73bce51f830db09a80a0722e43%2FStartIfSAP1.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-ef418ac449297d8fdd710584e43a57b8301b3fef%2FStartIfSAP2.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b5be6df5ee38bbc4758b3ab38de3920d0f052e50%2FStartIfSAP3.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-a0df1bba41f36e9173daeaaf9ebe1a5c08500530%2FStartIfSAP4.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-9b660e27d600ad0217e5bf23a3a67e0fa6f46e97%2FStartIfSAP5.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-c90d35f74a44f3cc86e823d0865b206983e9a6a8%2FStartIfSAP6.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-84905180c34310fe90b5f027e629f1c93a993241%2FStartIfSAP7.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-248ff534dc3e6a57e93ff93b35e123053ee40d68%2FStartIfSAP8.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-2a6128289bb21e18cf2d2f753c622498126d32c3%2FStartIfSAP9.png?alt=media" alt="Start If Action" data-size="original"><img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-c1f0b69f5bdbeb6c34e9cadce1eb107606e79d93%2FStartIfSAP10.png?alt=media" alt="Start If Action" data-size="original">

</details>

<details>

<summary>2. End If</summary>

This action denotes the end of the immediate above if condition.

Nested conditional statements can be used with if conditions to form complex logical tests.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b596336784acc385697360aef62e1499ef6f61db%2FEndIfSAP.png?alt=media" alt="End If Action" data-size="original">

</details>

## Data Handlers

<details>

<summary>1. Create Variable</summary>

The "Create Variable" action captures text from a specified element and stores it in a variable with a user-defined name. This variable (data column) can then be used in subsequent data handler actions.

**Inputs:**

* Variable Name\*
* Locator Type and its Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-78fcc71bfc29a4cab095551df9e5af7620339de0%2FCreateVariableSAP.png?alt=media" alt="Create Variable" data-size="original">

</details>

<details>

<summary>2. Variable From Message</summary>

The "Variable From Message" action captures a variable or value from a displayed message and stores it in a user-defined variable.

**Inputs:**

* Variable Name\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-2259670120dfc70ac25fe608d82be01c7303bb02%2FVariableFromMessageSAP.png?alt=media" alt="Variable From Message" data-size="original">

</details>

<details>

<summary>3. Dynamic Verify Text</summary>

The "Dynamic Verify Text" action uses text captured dynamically by the "Create Variable" action and compares it to the text of a specified element.

**Inputs:**

* Locator Type and its Value\*
* Select Variable\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-efe0d0ba1e8e4d01573413d5857f86209cdd8675%2FDynamicVerifyTextSAP.png?alt=media" alt="Dynamic Verify Text" data-size="original">

</details>

<details>

<summary>4. Dynamic Contains</summary>

The "Dynamic Contains" action checks if the text captured by the "Create Variable" action is contained within the text of a specified element.

**Inputs:**

* Locator Type and its Value\*
* Select Variable\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-68854449cc3c7a7b27cd33a0f28892127251b97b%2FDynamicContainsSAP.png?alt=media" alt="Dynamic Contains" data-size="original">

</details>

<details>

<summary>5. Dynamic Set</summary>

In the "Dynamic Set" action, you can set a text value for a specified element using a variable (value from the Select Variable field) created earlier in the "Create Variable" action.

**Inputs:**

* Locator Type and its Value\*
* Select Variable\* (Choose a variable created earlier)

*Example:* Locator Type: "id" Locator Value: "wnd\[0]" Selected Variable: Var1 This action will locate the element with the ID 'wnd\[0]' in the user interface and set its content to the value stored in the variable Var1.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-8da0a09355f471046d037ef0a07cc9a536955e63%2FDynamicSetSAP.png?alt=media" alt="Dynamic Set" data-size="original">

</details>

<details>

<summary>6. Extract Words</summary>

The "Extract Words" action retrieves characters from the text stored in the Select Variable field using designated start and end indices provided within the data.

**Inputs:**

* Data\* (New data to assign to the variable)
* Select Variable\* (Choose the variable to update with the new data)

*Example:* Var1: HelloWorld Data: 0|8 Updated value of Var1: HelloWor (Starting from the 0th index till the 8th index)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-58fcf7326560cbe160f01982f3e040d2aed8ebfb%2FExtractWords.png?alt=media" alt="Extract Words" data-size="original">

</details>

<details>

<summary>7. Remove Words</summary>

The "Remove Words" action removes specified words from the text stored in the Select Variable field.

**Inputs:**

* Data\* (Words to remove)
* Select Variable\* (Choose the variable to update with the new data)

*Example:* Var1: Test Test1 Test2 Data: Test Test1 Updated value of Var1: Test2 (Words provided in Data are removed)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-d160e42d2547ad7da5116232fef8efc8d9d0eeb8%2FRemoveWords.png?alt=media" alt="Remove Words" data-size="original">

</details>

<details>

<summary>8. Modify Dynamic Value</summary>

The "Modify Dynamic Value" action dynamically updates the value of a Select Variable field with the text provided in the Data field.

**Inputs:**

* Data\* (New data to assign to the variable)
* Select Variable\* (Choose the variable to update with the new data)

*Example:* Var1: Test Data: Var1+" Test1" Updated value of Var1: Test Test1 (Words provided in Data are appended)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-335fc4f128f76cd0ad300516e4ab5ecc3d6f72eb%2FModifyDynamicValueSAP.png?alt=media" alt="Modify Dynamic Value" data-size="original">

</details>

<details>

<summary>9. Dynamic Verify Greater Than</summary>

This action checks whether the specified element's value is greater than value in variable. This action uses the dynamically captured text from the 'Create Variable' user action in the 'Select Variable' field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type\*
* Locator Value\*
* Select Variable\*
* Value Type\*
* Format For Locator’s Value
* Format For Variable’s Value

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-adce7889adf0efe94eb84860998f89a2a186fc1c%2FDynamicVerifyGreaterThanSAP.png?alt=media" alt="DynamicVerifyGreaterThan" data-size="original">

</details>

<details>

<summary>10. Dynamic Verify Less Than</summary>

This action checks whether the specified element's value is less than value in variable. This action uses the dynamically captured text from the 'Create Variable' user action in the 'Select Variable' field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type\*
* Locator Value\*
* Select Variable\*
* Value Type\*
* Format For Locator’s Value
* Format For Variable’s Value

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-5db003c973ce55de160b988fb68684bc1a95fa40%2FDynamicVerifyLessThanSAP.png?alt=media" alt="DynamicVerifyLessThan" data-size="original">

</details>

<details>

<summary>11. Execute Query</summary>

Executes a database query and stores the resulting response in a designated variable. Applicable when a database connection is pre-configured.

**Inputs:**

* **Query**\* - SQL query to be executed against the configured database.
* **Data Column**\* - Name of the variable to store query results.
* **Key Extractor**\* - Specific column to be extracted from the query results.

**Prerequisites:**

* Database configuration must be set up before using this user action.

**Non-Parameterization Flow:**

* Create database configuration in project setup.
* Select 'Execute Query' user action.
* Enter SQL query in Query field.
* Specify Data Column for storing results.
* Define Key Extractor for extracting specific column data.
* Select database configuration before test run.

**Example:**

```sql
SELECT * FROM newdata WHERE id = 2
```

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-554c8ed4e3d0135a704182b35dd561e72785dadd%2FExecuteQuery.png?alt=media" alt="Execute Query - Non Paramerized" data-size="original">

**Parameterization Flow:**

1. **Initial Configuration**
   * When parameterization is activated, the **Query** field is hidden.
   * Two fields remain visible:
     * **Data Column** (to store results)
     * **Key Extractor** (to extract specific column data).

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-06d35efb81bf96d2b19759003d0c02895b3592b6%2Fexecute-query-parameterization.png?alt=media" alt="Execute Query - Paramerized" data-size="original">

2. **Parameter File Setup**
   * Navigate to the **Parameter File**.
   * Click **Create Table** to generate a TDM test table.
3. **Test Case Creation**
   * The TDM table includes a default column named **Test Case** (e.g., TC1, TC2).
   * Data Column field added as second column (e.g., **Variable**) to store SQL queries.
4. **Query Parameterization**
   * Populate the **Variable** column with your SQL queries.

*Example table structure:*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-1ebb6c6b27d939e5c67e3c27aa0c3b439b171133%2Ftdm-test-data-table.png?alt=media" alt="Execute Query - Test Data Table" data-size="original">

Avoid mixing queries that select different columns on TDM table: If TC1 extracts `firstname` and TC2 extracts `lastname`, execution may terminate unexpectedly.

Always specify single column in the Key Extractor field.

Integration: Can be combined with "Dynamic Set" to reuse retrieved data in test scenarios.

</details>

## Delay

<details>

<summary>1. Wait</summary>

The "Wait" action pauses script execution for a specified amount of time in seconds.

**Inputs:**

* Wait Time (seconds)\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-8ef887fc479ea50cc3649f0d93535c1d87026205%2FWaitSAP.png?alt=media" alt="Wait" data-size="original">

</details>

<details>

<summary>2. Wait For Element</summary>

The "Wait For Element" action waits for a specified period of time until the specified element becomes visible in the window.

**Inputs:**

* Locator Type and its Value\*
* Timeout (seconds)\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b198ba7340fe6099cd8fb822a6bac2e973ce98dc%2FWaitForElementSAP.png?alt=media" alt="Wait For Element" data-size="original">

</details>

## Window Actions

Window-based actions to control the current window being used in the test.

<details>

<summary>1. Maximize</summary>

The "Maximize" action maximizes the current window.

**Inputs:**

* Locator Type and its Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-3de4b06cb0923f899f80f285c9824babdba2cf13%2FMaximizeSAP.png?alt=media" alt="Maximize" data-size="original">

</details>

<details>

<summary>2. Close</summary>

The "Close" action closes the current window.

**Inputs:**

* Locator Type and its Value\*

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-0131496d9db859a684d84f989139cd1f7e1518f7%2FCloseSAP.png?alt=media" alt="Close" data-size="original">

</details>

## AI Actions

Introducing Qyrus's groundbreaking feature: "AI Actions." Now, effortlessly execute actions by providing a screenshot. With this cutting-edge capability, tasks like UI testing, data validation, and value setting become a breeze. AI Actions allow you to interact with complex controls that might not have an ID or Name.

To use this feature, follow these simple steps:

1. Capture a screenshot of the element you want to interact with.
2. Crop the screenshot to include only the relevant part of the element.
3. In cases of identical visuals, enable the "Multiple Elements" option.
4. Specify the index value based on the element's position from top-left to bottom-right.

The captured element is the cropped screenshot of the target UI element.

<details>

<summary>1. Click By Image</summary>

The "Click By Image" action performs a click action on the captured element (image uploaded by the user).

**Inputs:**

* Image of Control\*
* Index (If multiple elements)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-7bb329d29e2f8a10b5644e0bebff3603eede9ba8%2FClickByImageSAP.png?alt=media" alt="Click By Image" data-size="original">

</details>

<details>

<summary>2. Set By Image</summary>

The "Set By Image" action sets a value (which can be text) in the text box of the captured element.

**Inputs:**

* Image of Control\*
* Data Value\*
* Index (If multiple elements)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b048722a0f915dbc98a7ef92e9acaa2abc2dd29a%2FSetByImageSAP.png?alt=media" alt="Set By Image" data-size="original">

</details>

<details>

<summary>3. Verify Visibility By Image</summary>

The "Verify Visibility By Image" action verifies the visibility of the element on the current screen.

**Inputs:**

* Image of Control\*
* Index (If multiple elements)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-0108ee8c50a9fd9c809088627555928b63436683%2FVerifyVisibilityByImageSAP.png?alt=media" alt="Verify Visibility By Image" data-size="original">

</details>

<details>

<summary>4. Hover By Image</summary>

The "Hover By Image" action performs a hover action on the captured element (image uploaded by the user).

**Inputs:**

* Image of Control\*
* Index (If multiple elements)

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-093b51427c99b88d8bad95782b8fd9aa6d4b1277%2FHoverByImageSAP.png?alt=media" alt="Hover By Image" data-size="original">

</details>

With Qyrus's "AI Actions," you can now interact with UI elements using visual recognition, making your automation tasks more powerful and versatile than ever before. Say goodbye to the limitations of traditional automation methods and embrace the future of AI-driven actions.

## Other Actions

Explore a wide range of SAP actions to enhance your automation capabilities. These actions allow you to interact with various elements and controls within SAP systems. Whether you need to select items, navigate complex hierarchies, set properties, or execute methods, we've got you covered.

<details>

<summary>1. Select Combobox Item</summary>

Capture text from a specified Combobox control.

**Inputs:**

* Locator type and its Value\* - Specify how to identify or locate the Combobox control.
* Property\* - Choose which property of the Combobox you want to interact with (e.g., "Index," "Value," or "Key").
* Property Value\* - Enter the value to capture from the Combobox control.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-b43841dbfe8b934ceb7de661a1707c09bf712637%2FSelectComboboxItemSAP.png?alt=media" alt="Select Combobox Item" data-size="original">

</details>

<details>

<summary>2. Go To Tcode</summary>

Navigate to a specific SAP transaction code for a desired task.

**Inputs:**

* Tcode\* - Specify the SAP transaction code (Tcode) you want to navigate to. Each Tcode represents a specific task or function within SAP.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-18e7fcff3746e62dec693a8e7312db0988805aab%2FGoToTcodeSAP.png?alt=media" alt="Go To Tcode" data-size="original">

</details>

<details>

<summary>3. Connect SAP System</summary>

Establish a connection to an SAP system instance for interaction.

**Inputs:**

* Data Value\* - Enter the necessary data to establish the connection.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-9ee809897ad72b27d2dbb322b3a8a33fdffc297f%2FConnectSAPSystemSAP.png?alt=media" alt="Connect SAP System" data-size="original">

</details>

<details>

<summary>4. Selected Rows</summary>

Refer to the rows that are currently selected in an SAP table or grid.

**Inputs:**

* Locator type and its Value\* - Identify the table or grid.
* Rows\* - Specify the number of rows you want to interact with.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-6be27d4d6910b240b1d464523e7d40c5eb45519a%2FSelectedRowsSAP.png?alt=media" alt="Selected Rows" data-size="original">

</details>

<details>

<summary>5. Selected Node</summary>

Retrieve information about the currently selected node in a tree-like structure.

**Inputs:**

* Locator type and its Value\* - Identify the tree structure.
* Node\* - Specify the node or item you want to retrieve information about.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-336928e9fa882960b77dd10faa6ec5a6eb3a924b%2FSelectedNodeSAP.png?alt=media" alt="Selected Node" data-size="original">

</details>

<details>

<summary>6. Make Top Node</summary>

Ensure a specific node in a tree control is visible at the top.

**Inputs:**

* Locator type and its Value\* - Identify the tree control.
* Node\* - Specify the target node.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-2f21dde4174f3066a472f28fc2facc1faf72c413%2FMakeTopNodeSAP.png?alt=media" alt="Make Top Node" data-size="original">

</details>

<details>

<summary>7. Double Click Node</summary>

Simulate a double-click action on a node in a tree structure to expand or open it.

**Inputs:**

* Locator type and its Value\* - Identify the tree structure.
* Node\* - Specify the target node.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-a161d5cd47d3573da59dc7d2c28ee9e12b729aed%2FDoubleClickNodeSAP.png?alt=media" alt="Double Click Node" data-size="original">

</details>

<details>

<summary>8. Select</summary>

Select a specific element or item within SAP, such as buttons, checkboxes, input fields, or list items.

**Inputs:**

* Locator type and its Value\* - Identify the element you want to select.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-5ecf1912a111ea00443faf6160df9b11b2fee97b%2FSelectSAP.png?alt=media" alt="Select" data-size="original">

</details>

<details>

<summary>9. Set Current Cell Row</summary>

Set the active or current cell in a specific row, ideal for data entry or extraction in tables or grids.

**Inputs:**

* Locator Type\* - Specify how to locate the table or grid.
* Locator Value\* - Identify the table or grid.
* Row Number\* - Indicate the row where you want to set the current cell.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-10b8b024becc9572db6e75f0011a895108843941%2FSetCurrentCellRowSAP.png?alt=media" alt="Set Current Cell Row" data-size="original">

</details>

<details>

<summary>10. Context Menu</summary>

Open or interact with the context menu for a particular element.

**Inputs:**

* Locator Type\* - Specify how to locate the element.
* Locator Value\* - Identify the element with a context menu.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-7bf962a36cb5123fafb531156ad0c63873de485b%2FContextMenuSAP.png?alt=media" alt="Context Menu" data-size="original">

</details>

<details>

<summary>11. Set Focus</summary>

Set focus to a specific GUI element, making it active and ready to receive user input.

**Inputs:**

* Locator Type\* - Specify how to locate the element.
* Locator Value\* - Identify the element to set focus on.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-9f7a2134ad4a90a24f06ed883827a9275e3585b7%2FSetFocusSAP.png?alt=media" alt="Set Focus" data-size="original">

</details>

<details>

<summary>12. Select Interval</summary>

In table or grid controls, select a range of rows to perform batch actions.

**Inputs:**

* Data Column\* - Specify the data column.
* Locator Type\* - Identify the table or grid.
* Locator Value\* - Specify the table or grid element.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-348d76256eb6748a1685eeb669bbb6d78da58dde%2FSelectIntervalSAP.png?alt=media" alt="Select Interval" data-size="original">

</details>

<details>

<summary>13. Check Checkbox</summary>

Mark a checkbox as selected or checked.

**Inputs:**

* Locator Type\* - Specify how to locate the checkbox.
* Locator Value\* - Identify the checkbox element.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-405d55b99e30d1dcc7c249d9b87889fb2d4adb12%2FCheckCheckboxSAP.png?alt=media" alt="Check Checkbox" data-size="original">

</details>

<details>

<summary>14. Uncheck Checkbox</summary>

Clear a checkbox (uncheck it).

**Inputs:**

* Locator Type\* - Specify how to locate the checkbox.
* Locator Value\* - Identify the checkbox element.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-a0f1ab9bba58e99fe711924dbae8474fd39d4e34%2FUncheckCheckboxSAP.png?alt=media" alt="Uncheck Checkbox" data-size="original">

</details>

<details>

<summary>15. Select Row By Index</summary>

Choose a specific row within a table or grid control based on its numerical index.

**Inputs:**

* Index\* - Specify the index of the row you want to select.
* Locator Type\* - Identify the table or grid.
* Locator Value\* - Specify the table or grid element.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-84155ce4455ce0afb5f4820ebc839b10b0800c0d%2FSelectRowByIndexSAP.png?alt=media" alt="Select Row By Index" data-size="original">

</details>

<details>

<summary>16. Set Element Property</summary>

Dynamically modify properties of a specified element.

**Inputs:**

* Locator Type\* - Specify how to locate the element.
* Locator Value\* - Identify the element.
* Property\* - Choose the property to modify.
* Property Value\* - Enter the new value for the property.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-c6310c78ce28f48a2bac42c240821fef8bd203d0%2FSetElementPropertySAP.png?alt=media" alt="Set Element Property" data-size="original">

</details>

<details>

<summary>17. Invoke Element Method</summary>

Execute a specific method associated with a specified element.

**Inputs:**

* Locator Type\* - Specify how to locate the element.
* Locator Value\* - Identify the element.
* Argument Value - Provide any required arguments.
* Method\* - Select the method to execute.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-8f21b4f1cf3d8c80f48d27c46c72984ace8824e2%2FInvokeElementMethodSAP.png?alt=media" alt="Invoke Element Method" data-size="original">

</details>

<details>

<summary>18. Expand Node</summary>

Open and expand a node within a tree structure to reveal its subnodes or contents.

**Inputs:**

* Locator Type\* - Specify how to locate the tree structure.
* Locator Value\* - Identify the tree structure element.
* Node\* - Specify the target node to expand.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-51bb90136c817a6cdb49bb7763573a3aa3ba2f76%2FExpandNodeSAP.png?alt=media" alt="Expand Node" data-size="original">

</details>

<details>

<summary>19. Collapse Node</summary>

Collapse or close a node in a tree structure, hiding its subnodes or contents.

**Inputs:**

* Locator Type\* - Specify how to locate the tree structure.
* Locator Value\* - Identify the tree structure element.
* Node\* - Specify the target node to collapse.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-d47a3708f8d1a0de669613467b61ca348ccbe9a1%2FCollapseNodeSAP.png?alt=media" alt="Collapse Node" data-size="original">

</details>

<details>

<summary>20. Deselect Row By Index</summary>

Remove the selection from a specific row within a table or grid control based on its index.

**Inputs:**

* Locator Type\* - Specify how to locate the table or grid.
* Locator Value\* - Identify the table or grid element.
* Index\* - Specify the index of the row to deselect.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-45dd17757680b7acdc4a7f6e365aabc5b4159f77%2FDeselectRowByIndexSAP.png?alt=media" alt="Deselect Row By Index" data-size="original">

</details>

<details>

<summary>21. Selection Index</summary>

Retrieve the indices of currently selected items or rows.

**Inputs:**

* Locator Type\* - Specify how to locate the table or grid.
* Locator Value\* - Identify the table or grid element.
* Indexes\* - Obtain the indices of selected items or rows.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-e5e02d4466c0186fcab8e52940d2f0f54ff1db5c%2FSelectionIndexSAP.png?alt=media" alt="Selection Index" data-size="original">

</details>

<details>

<summary>22. Vertical Scroll Position</summary>

Determine or adjust the vertical scroll position in a control.

**Inputs:**

* Locator Type\* - Specify how to locate the control.
* Locator Value\* - Identify the control.
* Position\* - Set the desired vertical scroll position.

<img src="https://4207139903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjbOt9KtYfZmokTYzgSHc%2Fuploads%2Fgit-blob-e1f23d1f83010261eb7f64342d1fbfa5f9ee3d71%2FVerticalScrollPositionSAP.png?alt=media" alt="Vertical Scroll Position" data-size="original">

</details>

> With these SAP actions at your disposal, you can streamline your automation efforts and tackle a wide range of tasks within SAP systems. Automate with precision and efficiency, saving valuable time and resources.
