> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RPA Bot Recorder Deployment for SAP

> Deploy the GermainUX RPA Bot Recorder to create Selenium-based synthetic scenarios for browser-accessible SAP applications.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)
[`RPA Bot Recorder`](https://docs.germainux.com/main/germain-ux-rpa-bot-recorder)

Availability
2022.1 or later

> **[Prerequisites](#prerequisites)**
>
> Conditions to meet first

> **[Build reliable SAP selectors](#build-reliable-sap-selectors)**
>
> Handle dynamic Fiori element IDs

> **[Handle authentication securely](#handle-authentication-securely)**
>
> Protect credentials in scenarios

> **[Troubleshooting](#troubleshooting)**
>
> Resolve SAP recorder issues

## Deploy the RPA Bot Recorder for SAP

Deploy the GermainUX RPA Bot Recorder to create Selenium-based synthetic scenarios for browser-accessible SAP applications.

Synthetic scenarios continuously test critical SAP journeys so GermainUX can detect availability, performance, functional, and business-process failures before they affect real users.

### Recorder versus synthetic execution

The RPA Bot Recorder is a browser extension used to **create** a Selenium scenario. It is not, by itself, the component that continuously executes the scenario.

| Component | Purpose |
| - | - |
| RPA Bot Recorder | Records and edits the initial browser scenario |
| GermainUX Engine and platform | Runs the recorded scenario on a schedule; Manages execution, collects results, analyzes failures, and triggers alerts |
| RUM JS | Captures real-user sessions; not required solely to execute a synthetic scenario |

After recording, deploy the scenario to the appropriate GermainUX synthetic execution environment.

## What synthetic SAP monitoring can detect

Synthetic scenarios can identify:

* SAP application unavailable
* Login failure
* Slow authentication
* Fiori launchpad unavailable
* Application tile missing
* Slow page or application launch

> **Show all 16**
>
> * Search failure
> * Missing or incorrect data
> * Workflow submission failure
> * Integration failure
> * JavaScript error
> * Network timeout
> * Unexpected popup or validation message
> * Business-process failure
> * Performance degradation by location
> * Regression after an SAP release

Synthetic monitoring represents controlled test activity. It does not replace real-user monitoring, which reveals the actual experiences and workflows of production users.

## Prerequisites

Before recording a scenario, confirm that:

* The target SAP application is accessible through a supported browser.
* You can install the RPA Bot Recorder extension.
* The GermainUX environment is available.
* A synthetic execution node can reach the SAP application.
* A dedicated SAP test account exists.
* Multifactor authentication requirements have been addressed securely.

> **Show all 10**
>
> * Safe and repeatable test data is available.
> * The scenario has defined success criteria.
> * The SAP application owner approves the execution frequency.
> * Privacy and credential-handling requirements are documented.

### Dedicated synthetic account

Use a dedicated account that:

* Has only the permissions required by the scenario
* Is clearly identified as synthetic
* Is excluded from real-user adoption and productivity reporting
* Is not shared with human users
* Has a documented password-rotation process
* Can operate during the scheduled monitoring period
* Does not expose production-sensitive information unnecessarily

Do not record personal credentials into a Selenium script.

## Select scenarios to monitor

Prioritize short, stable journeys that validate important SAP capabilities.

### Availability scenario

Example:

**1. Open the SAP login page**

**2. Confirm that the page loads**

**3. Sign in**

**4. Confirm that the Fiori launchpad appears**

**5. Sign out**

### Application-launch scenario

Example:

**1. Sign in**

**2. Locate a specified application tile**

**3. Open the application**

**4. Confirm that its initial view loads**

**5. Validate a stable page element**

### Search scenario

Example:

**1. Open the required SAP application**

**2. Enter an approved test search**

**3. Submit the search**

**4. Confirm that expected results appear**

**5. Validate that the result is current or correct**

### Business-process scenario

Examples include:

* Create a test purchase requisition
* Look up an approved test material
* Create or update a test sales order
* Submit an approval step
* Review an invoice
* Open an employee self-service page
* Validate inventory availability

Use non-production or reversible test operations whenever possible.

## Install the RPA Bot Recorder

Follow the general GermainUX RPA Bot Recorder installation procedure.

At a high level:

**1. Obtain the supported browser extension**

**2. Install it in the browser used to record the scenario**

**3. Approve the required extension permissions**

**4. Configure the GermainUX environment if prompted**

**5. Restart the browser when required**

**6. Confirm that the recorder opens successfully**

For enterprise-managed browsers, deploy the extension through the organization’s approved browser policy or endpoint-management platform.

The recorder is normally required only on workstations used to create or maintain scenarios. It does not need to be installed for ordinary SAP users.

## Prepare the recording environment

Before recording:

* Use the same browser family as the intended execution environment.
* Set the browser zoom to the standard value.
* Use a predictable window size.
* Disable unrelated browser extensions.
* Close unnecessary tabs.
* Clear stale authentication state when required.

> **Show all 10**
>
> * Prepare the test account.
> * Prepare reusable test data.
> * Document the expected result of each step.
> * Identify pages containing sensitive information.

Record the shortest path that validates the required business capability.

## Record the SAP scenario

**1. Open the target SAP application**

**2. Open the RPA Bot Recorder**

**3. Start recording**

**4. Perform the required SAP workflow**

**5. Pause before unnecessary navigation or exploratory actions**

**6. Add explicit validations at important steps**

**7. Stop recording**

**8. Save the scenario with a descriptive name**

Example names:

```text theme={null}
SAP PROD - Fiori Login
SAP PROD - Material Search
SAP QA - Purchase Requisition
SAP PROD - Sales Order Lookup
```

Include the application and environment in the name when scenarios from multiple SAP systems are managed together.

## Build reliable SAP selectors

SAP Fiori and SAPUI5 applications can generate dynamic element identifiers. Recorded selectors should be reviewed before production deployment.

### Prefer stable selectors

Prefer:

* Stable semantic attributes
* Accessible names
* Application-defined identifiers
* Control labels
* Stable test attributes
* Relative selectors anchored to a stable container
* SAPUI5 control properties exposed consistently

Avoid relying only on:

* Absolute XPath
* Position in the DOM
* Generated numeric identifiers
* Temporary CSS classes
* Dynamic table row positions
* Displayed text that changes by language
* Long selectors containing the complete page hierarchy

Example of a fragile selector:

```text theme={null}
/html/body/div[3]/div/div[2]/div[1]/button
```

A selector based on a stable button role, label, or application identifier is preferable.

### Dynamic SAP controls

Pay particular attention to:

* Fiori tiles
* Shell navigation
* Value-help dialogs
* Search suggestions
* Dynamic tables
* Lazy-loaded rows

> **Show all 12**
>
> * Popovers
> * Modal dialogs
> * Date pickers
> * Iframes
> * New browser windows
> * Virtualized controls

A selector that works during recording may fail during unattended execution if it depends on temporary page state.

## Configure waits and timing

Do not rely primarily on fixed delays.

Use explicit waits for conditions such as:

* Element is present
* Element is visible
* Element is enabled
* Page or application title is correct
* Loading indicator disappears
* Network-dependent result appears

> **Show all 10**
>
> * Dialog opens
> * Table contains an expected result
> * URL or route changes
> * Business confirmation appears

Use fixed waits only when no reliable application condition is available.

Configure:

* Per-step timeout
* Page-load timeout
* Scenario timeout
* Retry behavior
* Polling interval
* Failure screenshot behavior

Timeouts should accommodate normal SAP response-time variation without hiding genuine degradation.

## Add functional validations

A page loading successfully does not prove that the SAP function works.

Add validations for:

* Expected application title
* Fiori tile available
* Search result present
* Expected test record displayed
* Required field enabled
* Confirmation message displayed

> **Show all 10**
>
> * Workflow reaches the expected status
> * No user-facing application error appears
> * Returned data is current
> * Integration result is available

Keep these outcomes separate:

| Outcome | Meaning |
| - | - |
| Technical success | The browser action completed |
| Functional success | The expected SAP result appeared |
| Performance success | The step completed within its objective |
| User validation | SAP correctly prevented invalid input |
| Application failure | SAP did not operate correctly |
| Test-data failure | The scenario’s required test data was unavailable |

## Handle authentication securely

### Credentials

Store synthetic credentials in the supported GermainUX credential mechanism. Reference them at runtime rather than storing literal usernames and passwords in the recorded script.

Do not include credentials in:

* Scenario names
* URLs
* Screenshots
* Source code
* Step descriptions
* Logs
* Custom attributes

### Single sign-on

SAP authentication may involve:

* SAML
* OAuth
* Corporate identity providers
* Windows integrated authentication
* Client certificates
* SAP identity services
* Multifactor authentication

Validate the complete authentication path from the synthetic execution node.

### Multifactor authentication

Interactive MFA can prevent unattended synthetic execution. Use an organization-approved synthetic authentication approach, such as:

* Dedicated non-human account governed by compensating controls
* Test identity-provider policy
* Approved certificate-based authentication
* Supported token mechanism
* Non-production test authentication

Do not bypass MFA controls without explicit security approval.

## Manage test data

Synthetic business transactions must be repeatable.

Use one of these patterns:

* Read-only lookup
* Reusable test record
* Unique test record followed by cleanup
* Record created in a non-production environment
* Transaction automatically reversed
* Test data reset before each run

If the scenario creates or modifies data, define:

* Naming convention
* Maximum retained records
* Cleanup process
* Failure recovery
* Ownership
* Audit requirements

Avoid scenarios that create unlimited purchase requisitions, orders, users, invoices, or other production records.

## Save and review the recording

After recording:

**1. Review every command**

**2. Remove accidental actions**

**3. Replace fragile selectors**

**4. Replace fixed delays with explicit waits**

**5. Add functional validations**

**6. Replace literal credentials with secure references**

**7. Remove sensitive values**

**8. Add cleanup steps where appropriate**

**9. Run the scenario several times locally**

**10. Test it from a clean browser session**

A scenario is not ready for scheduling merely because the initial recording completed once.

## Deploy the synthetic scenario

After validation:

**1. Save or export the Selenium scenario**

**2. Add it to the GermainUX synthetic-monitoring configuration**

**3. Select the execution node**

**4. Select the browser**

**5. Configure the schedule**

**6. Configure timeouts and retries**

**7. Assign the application and environment**

**8. Configure the credential references**

**9. Configure screenshots and diagnostic capture**

**10. Configure alerts**

**11. Run an on-demand test**

**12. Enable the schedule**

### Select an execution location

The synthetic node should represent the network path being tested.

Potential locations include:

* Inside the corporate network
* A regional office
* A data center
* A cloud region
* A VPN-connected location
* An externally accessible location

Use multiple locations when you need to distinguish an SAP application failure from a regional network, VPN, DNS, or proxy problem.

## Configure the schedule

Choose a frequency based on:

* Business criticality
* User operating hours
* Expected outage-detection time
* Scenario duration
* SAP system capacity
* Test-data impact
* Authentication limits
* Licensing constraints

Examples:

| Scenario | Example frequency |
| - | - |
| Login and launchpad | Every 5–15 minutes |
| Critical read-only lookup | Every 15–30 minutes |
| Multi-step workflow | Every 30–60 minutes |
| Data-changing transaction | Less frequently, based on approved test-data controls |

Avoid running many overlapping scenarios with the same account.

## Configure synthetic KPIs

Recommended KPIs include:

| KPI | Description |
| - | - |
| Scenario Availability | Percentage of scheduled executions completed successfully |
| Scenario Duration | Total execution time |
| Step Duration | Duration of an individual action or validation |
| Scenario Failure | Scenario that cannot complete |
| Functional Validation Failure | Expected SAP state or result was not found |
| Login Duration | Time required to authenticate |
| Application Launch Duration | Time required to open the target SAP application |
| SLA Compliance | Percentage of executions meeting the configured objective |
| Execution Volume | Number of scheduled executions |

Keep synthetic KPIs separate from real-user KPIs.

## Configure alerts

Create alerts for actionable conditions such as:

* Consecutive scenario failures
* Login failure
* Fiori launchpad unavailable
* Required application missing
* Functional validation failure
* Scenario-duration degradation

> **Show all 9**
>
> * Individual step exceeding its objective
> * Failure from multiple locations
> * New application error

Use consecutive-failure or multi-location rules to reduce alerts caused by isolated transient conditions.

An alert should include:

* Scenario
* Application and environment
* Execution location
* Failed step
* Error or validation message
* Duration

> **Show all 9**
>
> * Timestamp
> * Screenshot or diagnostic link, when permitted
> * Link to the execution details

## Correlate synthetic and operational telemetry

When RUM JS and the Engine are also deployed, correlate a synthetic failure with:

* Browser requests
* JavaScript errors
* SAP API health
* SAP log events
* Integration failures
* Database health
* Host metrics
* Deployment or maintenance events

Exclude the synthetic account from real-user adoption, productivity, and conversion reporting.

## Validate production deployment

Before enabling continuous execution, confirm that:

* The scenario succeeds repeatedly from the selected node.
* Credentials are retrieved securely.
* Authentication works unattended.
* Selectors remain stable.
* Explicit waits handle normal SAP timing variation.
* Functional validations detect incorrect results.

> **Show all 12**
>
> * Screenshots exclude sensitive data.
> * Test data is cleaned up.
> * The account is identifiable as synthetic.
> * Synthetic sessions are excluded from real-user KPIs.
> * Failures trigger the intended alert.
> * Planned maintenance does not create unnecessary incidents.

## Maintenance

Review scenarios after:

* SAP upgrades
* Fiori or SAPUI5 changes
* Theme or layout changes
* Authentication changes
* Browser upgrades
* Network or proxy changes

> **Show all 9**
>
> * Business-process changes
> * Test-data changes
> * Role or permission changes

Maintain version history for each scenario and document why material changes were made.

## Troubleshooting

### Recording does not capture an action

The control may be:

* Inside an iframe
* Dynamically created
* Implemented through a custom SAPUI5 event
* Covered by another element
* Opened in a new window
* Not supported by the recorder’s automatic capture

Add or edit the corresponding Selenium step manually.

### Scenario works during recording but fails unattended

Check:

* Dynamic selectors
* Browser-window size
* Browser version
* Authentication state
* Missing explicit waits
* Execution-node network path

> **Show all 10**
>
> * Test data
> * User permissions
> * Locale and time zone
> * Popups and consent messages

### SAP element cannot be found

Replace generated IDs or absolute XPath with a stable semantic selector. Add an explicit wait for the control to become visible and enabled.

### Scenario is slow but does not fail

Configure warning and critical duration thresholds for the scenario and individual steps. Functional success does not mean performance is acceptable.

### MFA blocks execution

Use only an organization-approved synthetic authentication method. Do not place one-time codes or personal MFA credentials in the scenario.

### Duplicate test records accumulate

Add cleanup logic, reuse a controlled record, or move the scenario to a non-production environment. Disable the schedule until data management is corrected.

### Synthetic activity appears as real-user activity

Filter or classify using:

* Synthetic username
* Execution-node address
* Scenario metadata
* Browser identifier
* Dedicated application or environment attribute

## Related documentation

* [Deploy Monitoring for SAP](https://docs.germainux.com/main/deploy-monitoring-for-sap.md)
* [Engine Deployment for SAP](https://docs.germainux.com/main/engine-deployment-for-sap.md)
* [JS Profiler Deployment for SAP](https://docs.germainux.com/main/js-profiler-deployment-for-sap.md)
* [RUM JS Deployment for SAP](https://docs.germainux.com/main/rum-js-deployment-for-sap.md)
* [Configure Monitoring for SAP](https://docs.germainux.com/main/configure-monitoring-for-sap.md)
* [KPIs for SAP](https://docs.germainux.com/main/kpis-for-sap.md)
* [GermainUX RPA Bot Recorder](https://docs.germainux.com/main/germain-ux-rpa-bot-recorder.md)
* [Synthetic User Scenario Recording](https://docs.germainux.com/main/synthetic-user-scenario-recording.md)

### Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Salesforce Experience Cloud environment.

[Contact GermainUX Support](https://docs.germainux.com/main/support.md).

## Get Help

> **[Contact GermainUX Support](https://docs.germainux.com/main/support.md)**
>
> The GermainUX Team can help you set this up.

> **Can't find what you need?**
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.