RUM JS Deployment for SAP

🚀 Deploy RUM JS for SAP

Deploy GermainUX RUM JS to monitor the availability, performance, user experience, and business processes of browser-based SAP applications.

RUM JS supports real-user monitoring and Session Replay for compatible SAP web interfaces, including SAP Fiori and SAPUI5 applications, when the script can execute in the required browser context.

🔍 What RUM JS monitors

RUM JS can capture:

Item

User sessions

Session Replay

Fiori and SAPUI5 navigation

Pages and logical application views

User clicks and interactions

Customer-perceived response time

Network and resource requests

Browser and JavaScript errors

Unhandled promise rejections

Browser freezes

Rage clicks and dead clicks

Business-process steps

User feedback

Heatmaps

Browser, device, and network context

Session Replay reconstructs the user experience from captured browser events. It is not a video recording.

💻 Supported SAP interfaces

RUM JS can monitor compatible browser-based interfaces such as:

Interface

SAP Fiori launchpad

SAP Fiori applications

SAPUI5 applications

SAP Web GUI

Custom SAP web applications

Browser-based SAP portals

SAP applications embedded in another monitored portal

The exact coverage depends on:

Factor

Where RUM JS is loaded

Same-origin and cross-origin boundaries

Frames and embedded applications

SAP security policies

Content Security Policy

Browser security

User consent

The ability to execute code in the application’s root context

RUM JS does not monitor native SAP GUI desktop activity. Native Windows applications require an appropriate Windows monitoring component.

🎯 Choose the deployment scope

Before installing RUM JS, determine whether you need to monitor:

Scope

One SAP application

Multiple Fiori applications

The entire Fiori launchpad

An SAP application embedded in a corporate portal

Production and non-production systems

Multiple SAP hostnames or regions

🔑 Root-context deployment

To monitor the complete Fiori launchpad and activity across its applications, RUM JS should execute in the highest accessible application context.

If the script is deployed only inside one isolated component, it may capture only that component rather than the entire user experience.

Deployment location

Expected coverage

Fiori launchpad shell or root document

Launchpad and accessible application activity

Individual SAPUI5 application

That application only

Parent portal

Parent portal and same-origin accessible content

Same-origin iframe

Potentially accessible from the parent, depending on configuration

Cross-origin iframe

Must normally be monitored separately

Browser extension

Can provide root-page deployment where direct modification is unavailable, subject to policy and browser security

Do not assume that a script inside an embedded application can access its parent shell. Browser same-origin restrictions still apply.

📋 Prerequisites

Before deployment, confirm:

Requirement

GermainUX Cloud or on-premise is available.

The SAP application URLs are known.

You have access to Germain Workspace.

The required SAP or web-server changes are approved.

The browser can reach the GermainUX environment.

Content Security Policy can be updated when required.

Privacy, consent, masking, and retention requirements are defined.

Production and non-production environments can be distinguished.

A test account and representative workflow are available.

Coordinate the deployment with SAP application owners, web administrators, security teams, and privacy teams.

⚙️ Create the SAP monitoring profile

Go to:

Germain Workspace > Settings > Wizards

Steps to create the profile:

  1. Select SAP.

  2. Enter the application name.

  3. Enter the SAP application URL.

  4. Enter or select the environment.

  5. Configure the available privacy and monitoring options.

  6. Review the wizard summary.

  7. Follow the generated installation instructions.

Use meaningful names such as:

SAP Fiori - Production
SAP Fiori - QA
SAP Procurement - Production
SAP Employee Portal - Production

Avoid using the same application and environment values for unrelated SAP systems.

📂 Reopen the installation instructions

You can return to the generated deployment instructions at any time:

  1. Go to Germain Workspace > Analytics > UX Monitoring Profiles.

  2. Select the SAP monitoring profile.

  3. Open Installation in the configuration editor.

Depending on the GermainUX version, UX Monitoring Profiles may appear under Settings > Analytics.

Use the script and configuration generated by the wizard for your GermainUX environment rather than copying a loader from an unrelated application profile.

🔧 Choose an installation method

🔗 Direct application deployment

Use direct deployment when you control the SAP web application or shell.

Potential locations include:

Location

Fiori launchpad customization

Approved SAP shell extension

Custom SAPUI5 bootstrap or application shell

Web-server template

Parent portal

Reverse-proxy response injection

The exact method depends on the SAP product and architecture. Follow SAP-supported customization practices and avoid modifying vendor-managed files that can be overwritten during an upgrade.

🏗️ SAP Fiori launchpad deployment

For broad Fiori coverage, deploy RUM JS through an approved mechanism that loads it in the launchpad shell.

Validate that:

  • The loader executes once.

  • It executes early enough to observe navigation.

  • It remains available across client-side route changes.

  • It can access the required same-origin application content.

  • It does not interfere with SAPUI5 initialization.

  • It remains installed after an SAP upgrade.

If individual Fiori applications run in inaccessible cross-origin frames, they may require separate deployment.

🧩 Individual SAPUI5 application

Use application-level deployment when:

  • Only one application is in scope.

  • The launchpad shell cannot be modified.

  • The application runs independently.

  • Component-level coverage is sufficient.

This method may not capture launchpad navigation, other applications, or parent-shell activity.

⚙️ Tag manager or reverse proxy

An approved tag manager or reverse proxy can be used when it reliably injects RUM JS into the required document.

Validate:

  • Injection occurs on every intended page.

  • Content Security Policy permits the script.

  • The script loads only once.

  • Authentication redirects are handled correctly.

  • Error and fallback pages are covered when required.

  • Caching does not serve an incorrect GermainUX configuration.

🧩 GermainUX browser extension

Use a managed GermainUX RUM browser extension when the SAP root page cannot be modified and organizational browser policies permit extension deployment.

This can be appropriate for:

  • Vendor-managed SAP pages

  • Root documents outside your control

  • Controlled employee browsers

  • Diagnostic or phased deployments

Deploy the extension through the organization’s approved browser-management platform. Restrict it to the intended SAP URLs.

🛡️ Configure Content Security Policy

The SAP application must permit the browser to load RUM JS and send monitoring data to GermainUX.

Review directives such as:

Directive

script-src

connect-src

img-src

style-src

font-src

worker-src

frame-src

Use the minimum required GermainUX origins generated for the deployment.

Do not broadly weaken Content Security Policy with unrestricted wildcards merely to make monitoring work. Test the exact policy in non-production first.

🔗 Configure application and URL matching

In the SAP UX monitoring profile, configure:

Setting

Primary hostname

Alternate hostnames

Launchpad path

SAP application paths

Load-balanced URLs

Authentication redirects

Locale-specific routes

Embedded applications

Production and non-production exclusions

🔁 Normalize dynamic URLs

Remove or normalize values that would fragment the same logical page:

Parameter

Session identifiers

User identifiers

Business-document identifiers

Transaction tokens

Locale prefixes

Cache-busting parameters

Dynamic object identifiers

Tracking parameters

Retain approved values as separate dimensions only when they are needed for analysis.

🔄 Configure SAP single-page navigation

Fiori and SAPUI5 applications frequently change views without performing a full browser page load.

Configure logical navigation so GermainUX recognizes:

  • Fiori application launch

  • Tile selection

  • Hash-route changes

  • View transitions

  • Tab changes

  • Object-page navigation

  • Dialog-based workflows

  • Navigation between embedded applications

  • Return to the launchpad

Use stable, business-oriented page names such as:

Fiori Launchpad
Purchase Requisition List
Create Purchase Requisition
Sales Order Search
Sales Order Details
Invoice Approval
Employee Profile

Avoid using raw routes containing dynamic identifiers as the displayed page name.

👥 Configure user identification

Where permitted, associate the SAP session with approved user context.

Potential attributes include:

Attribute

SAP username

User role

Department

Business unit

Location

Application role

Organization

Language

Use stable identifiers and apply privacy rules.

Do not collect:

Prohibited

Passwords

Authentication tokens

Session cookies

Security answers

Unnecessary personal information

🔒 Authentication transitions

Confirm that RUM JS:

  • Starts after authentication when appropriate

  • Maintains the intended session across redirects

  • Handles single sign-on correctly

  • Ends or updates the session at logout

  • Does not capture authentication credentials

  • Does not create duplicate sessions during silent token renewal

🎥 Configure Session Replay

Enable Session Replay in the SAP UX monitoring profile when detailed reconstruction is required.

Configure:

Replay setting

Replay enablement

Sampling

Maximum duration

Text masking

Input masking

Element exclusion

Page exclusion

Resource capture

Network capture

Consent

Retention

Review and protect SAP pages containing:

Sensitive content

Employee information

Customer information

Financial information

Health information

Procurement details

Payroll information

Authentication data

Confidential business documents

Free-text notes

Attachments

Prefer excluding an unnecessary sensitive field over capturing it and depending only on downstream access restrictions.

🐛 Configure error monitoring

Enable relevant browser error sources:

  • JavaScript exceptions

  • Unhandled promise rejections

  • Resource errors

  • Failed HTTP or fetch requests

  • Timeouts

  • Application messages

  • Browser console events

  • Custom SAP application events

Keep these classifications separate:

Classification

Meaning

User-facing application error

SAP fails to operate correctly, and the failure is visible to the user

Silent application error

SAP fails without displaying the failure to the user

User validation

SAP correctly prevents invalid user input or action

Business-process failure

The technical operation may finish, but the required business outcome is not achieved

Do not count normal SAP validation as a software failure.

📡 Configure network monitoring

Capture browser requests associated with:

Request type

OData

REST

SOAP

SAPUI5 resources

Application services

Authentication

Integrations

Third-party services

Configure:

  • URL normalization

  • Request naming

  • Success criteria

  • Timeouts

  • Error categorization

  • Header exclusion

  • Request- and response-body exclusion

  • Correlation attributes

Do not collect authorization headers, cookies, authentication tokens, or unrestricted business payloads.

📈 Configure business-process monitoring

Define critical SAP workflows, such as:

Workflow

Purchase requisition creation

Purchase-order approval

Sales-order lookup or creation

Invoice approval

Expense submission

Employee self-service

Material lookup

Inventory transfer

Vendor onboarding

Customer maintenance

For each process, define:

  • Start condition

  • Completion condition

  • Required and optional steps

  • Failure conditions

  • Abandonment timeout

  • Expected duration

  • Relevant user and business dimensions

  • Application and environment

GermainUX can then identify process duration, step delay, abandonment, repeated actions, errors, overruns, and lost productivity.

💬 Configure user feedback

Where appropriate, enable the GermainUX feedback popup to collect contextual feedback from SAP users.

Feedback can be correlated with:

  • User session

  • Current SAP application

  • Business-process step

  • Error

  • Performance

  • Browser and device

  • Session Replay

Avoid displaying feedback prompts on sensitive pages or where the popup could obstruct a critical SAP action.

💾 Deploy to non-production first

Before production deployment:

  1. Create a non-production SAP profile.

  2. Install RUM JS in the test environment.

  3. Validate login and navigation.

  4. Test representative Fiori applications.

  5. Verify pages, clicks, and requests.

  6. Trigger safe validation and error scenarios.

  7. Review Session Replay.

  8. Validate privacy masking.

  9. Measure browser overhead.

  10. Confirm that the installation survives application navigation and reload.

Promote the same reviewed configuration to production, changing only the required application, environment, and URL values.

✅ Validate the production deployment

🔎 Loader validation

Using browser developer tools, confirm that:

  • The GermainUX loader is requested.

  • It returns successfully.

  • No Content Security Policy error blocks it.

  • It loads only once.

  • The browser sends monitoring data to the intended GermainUX environment.

  • Authentication and proxy infrastructure do not block it.

▶️ Session validation

Perform a representative SAP journey:

  1. Sign in.

  2. Open the Fiori launchpad.

  3. Launch an application.

  4. Navigate between views.

  5. Perform several user actions.

  6. Generate an approved validation message.

  7. Complete or abandon a test process.

  8. Sign out.

Then confirm that GermainUX contains:

  • One correctly identified session

  • Logical application and page names

  • User clicks

  • Network requests

  • Expected validation

  • Any intentional test error

  • Business-process steps

  • Session Replay, when enabled

🔐 Privacy validation

Review the captured data directly and confirm that:

  • Password fields are absent.

  • Authentication values are absent.

  • Sensitive text is masked.

  • Sensitive inputs are masked.

  • URLs do not contain protected identifiers.

  • Request and response bodies follow the configured policy.

  • Excluded pages and elements are not captured.

  • Access permissions are correct.

📊 Monitor browser overhead

After rollout, monitor:

  • Script load time

  • Browser CPU

  • Browser memory

  • Network volume

  • Event volume

  • Session Replay volume

  • Page and interaction responsiveness

If overhead or volume is higher than expected, adjust:

  • Session sampling

  • Replay sampling

  • Event collection

  • Mouse and input capture

  • Network-body capture

  • Resource collection

  • Maximum session duration

  • User or application scope

🗺️ Rollout strategy

Use a phased deployment:

  1. SAP development or QA

  2. Internal support and QA users

  3. Limited production group

  4. One business unit or region

  5. Broader production rollout

At each stage, validate:

  • Technical stability

  • Privacy

  • Data quality

  • User identification

  • Storage volume

  • Browser overhead

  • Dashboard usefulness

🚑 Troubleshooting

👀 No SAP sessions appear

Confirm that:

  • The generated RUM script is installed.

  • The SAP URL matches the profile.

  • The application name and environment are correct.

  • The browser can reach GermainUX.

  • Content Security Policy permits the loader and ingestion endpoints.

  • Consent allows collection.

  • The script executes in the intended document.

  • Ad blockers or enterprise security tools do not block it.

1️⃣ Only one Fiori application is monitored

RUM JS may be installed only inside that application. Deploy it in the launchpad shell or another approved root context when broader coverage is required.

Applications in inaccessible cross-origin frames require separate deployment.

📄 Navigation appears as one long page

Configure SAP single-page navigation and hash-route detection. A full browser page load is not required when the user changes Fiori applications or views.

🔁 Sessions are duplicated

Check whether RUM JS is loaded through multiple mechanisms:

  • Fiori shell

  • Individual SAPUI5 application

  • Tag manager

  • Reverse proxy

  • Browser extension

  • Parent portal

Retain one authoritative deployment per accessible browser context.

🎞️ Session Replay is incomplete

Review:

  • Replay sampling

  • Consent

  • Page exclusions

  • Element exclusions

  • Cross-origin frames

  • Shadow DOM or dynamically rendered controls

  • Resource access

  • Maximum session duration

  • Navigation between independent SAP origins

🏷️ SAP controls are unnamed

Configure application-specific extraction rules using stable SAPUI5 attributes, accessibility labels, control metadata, or business labels.

Avoid depending only on generated DOM identifiers.

✂️ Network requests are fragmented

Normalize dynamic paths, session identifiers, document identifiers, and query parameters. Assign business-oriented request names.

⛔ Authentication data appears in URLs

Configure immediate URL sanitization and stop production collection until the protected values are removed from stored telemetry.

🗑️ Uninstall or disable RUM JS

To stop collection:

  1. Disable the SAP UX monitoring profile or its RUM collection.

  2. Remove the loader from the SAP shell, application, proxy, tag manager, or extension policy.

  3. Clear relevant caches.

  4. Open a new browser session.

  5. Confirm that the RUM loader no longer loads.

  6. Confirm that new SAP sessions are no longer created.

Retain the configuration when a temporary suspension is preferred over permanent removal.

ℹ️ Get More Information

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

Contact GermainUX Support.

Component:RUM JS

Feature Availability: 2022.1 or later