Browser Real-time Debugger for SAP (Configure)

⚙️ Configure Browser-Side JavaScript Diagnostics for SAP

Use the GermainUX JS Profiler to collect advanced browser-side diagnostic information from supported SAP web applications.

This capability helps investigate JavaScript errors, browser freezes, long-running operations, slow user interactions, and network problems affecting SAP users.

It does not debug or profile ABAP code.

📋 Prerequisites

Before enabling browser-side diagnostics:

Requirement

1

Deploy RUM JS or the appropriate GermainUX browser extension.

2

Create a UX monitoring profile for the SAP web application.

3

Confirm that standard user sessions and browser telemetry appear in GermainUX.

4

Identify the users, pages, or workflows requiring deeper diagnostics.

5

Obtain approval to deploy browser profiling to the selected users.

6

Configure the required privacy and access controls.

👥 Supported SAP interfaces

The JS Profiler can analyze browser-side activity in compatible:

Interface

SAP Fiori applications

SAPUI5 applications

SAP Web GUI

Custom SAP web applications

Browser-based SAP portals

Coverage depends on where the profiling component executes, browser support, same-origin restrictions, frames, and application security policies.

The JS Profiler does not monitor native SAP GUI desktop activity.

🔍 What the JS Profiler analyzes

The JS Profiler can collect supported information about:

Category

JavaScript execution

Function and call-stack activity

Long-running browser operations

Browser freezes

Client-side errors

Network requests

Resource activity

Browser-side SAPUI5 behavior

Third-party JavaScript

The exact detail depends on the browser, profiling method, duration, sampling configuration, and application architecture.

🚫 What it does not analyze

The JS Profiler does not directly analyze:

Excluded Item

ABAP execution

ABAP classes, methods, or function modules

SAP application-server call stacks

Database statements executed by ABAP

SAP background jobs

Native SAP GUI code

Server-side integrations

Use the GermainUX Engine to collect supported server-side logs, HTTP telemetry, database metrics, or custom SAP telemetry.

🚀 Enable JavaScript profiling

Go to:

Germain Workspace > Analytics > UX Monitoring Profiles

💡 Steps

  1. Select the SAP monitoring profile.

  2. Open the configuration editor.

  3. Select JavaScript Profiling Monitoring.

  4. Enable profiling.

  5. Select the profiling method supported by the environment.

  6. Restrict profiling to the required users or pages.

  7. Save the profile.

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

✅ Select a profiling method

🔧 JS Profiler browser extension

Use the supported GermainUX JS Profiler extension when browser-side profiling cannot be enabled directly through the application.

Deploy the extension to:

Target

Application support users

QA users

Developers

Selected users reproducing a problem

Controlled diagnostic workstations

The browser may display a notification while profiling is active. If the user dismisses that notification, profiling may stop for the current page or tab.

⚡ JavaScript Self-Profiling API

Where supported, profiling can use the browser’s JavaScript Self-Profiling API.

The monitored page must return:

Document-Policy: js-profiling

The header must be present in the page response. It cannot be granted by client-side JavaScript after the document loads.

Browser and policy support must be validated before using this method.

🎯 Target profiling

Avoid enabling continuous profiling for every SAP user unless its overhead, volume, security, and privacy implications have been reviewed.

👤 Include selected users

settings.plugins.jsProfiling.includedUsernames = [
    "sap-diagnostic-user"
];

❌ Exclude selected users

settings.plugins.jsProfiling.excludedUsernames = [
    "restricted-user"
];

An undefined or empty list means that the corresponding restriction is not applied.

Only use identifiers approved by the organization’s privacy policy.

💻 Target selected applications

Restrict profiling by:

Scope

Application

Environment

Hostname

URL

SAP application

User

Diagnostic period

Use the smallest scope that can reproduce the problem.

⚙️ Configure profiling

Available settings include:

Setting

Default

Description

functionMinStackHits

0

Minimum number of stack hits required for inclusion

maxSampleBufferSize

1000

Maximum sample capacity for the Self-Profiling API

maxProfileDuration

30

Maximum profiling duration in seconds

profileOnPageReady

true

Starts profiling on the first page-ready event

sampleIntervalMillis

20

Target interval between samples

useSelfProfilingAPI

false

Checks the Self-Profiling API before the extension

includedUsernames

Undefined

Profiles only the listed users

excludedUsernames

Undefined

Excludes the listed users

Example:

settings.plugins.jsProfiling.maxProfileDuration = 30;
settings.plugins.jsProfiling.sampleIntervalMillis = 20;
settings.plugins.jsProfiling.maxSampleBufferSize = 1000;
settings.plugins.jsProfiling.profileOnPageReady = true;
settings.plugins.jsProfiling.useSelfProfilingAPI = true;
settings.plugins.jsProfiling.includedUsernames = [
    "sap-diagnostic-user"
];

Apply these settings before starting RUM JS:

germainApm.start(settings);

Longer profiling durations, shorter sampling intervals, and broader user coverage can increase browser overhead and data volume.

🔁 Reproduce an SAP browser problem

  1. Enable profiling for the selected diagnostic user.

  2. Start a new browser session.

  3. Open the monitored SAP application.

  4. Perform only the actions required to reproduce the issue.

  5. Record the approximate reproduction time.

  6. Close the diagnostic session or disable profiling.

  7. Open the corresponding session in GermainUX.

  8. Review the browser and JavaScript telemetry.

Analyze:

Item

Long-running JavaScript activity

Function and call-stack samples

Browser blocking

Network wait time

Failed requests

JavaScript errors

Browser freezes

Resource loading

The action immediately preceding the problem

Profiling samples can help identify expensive browser-side functions. They should not be described as guaranteed line-by-line execution tracing.

🔗 Correlate with other telemetry

Where compatible identifiers and data are available, correlate browser diagnostics with:

Telemetry

RUM user actions

Page and logical-view transitions

Network requests

HTTP endpoint monitoring

SAP-related log events

Supported database telemetry

Synthetic-scenario failures

This correlation must be configured and validated. It does not provide automatic browser-to-ABAP distributed tracing.

🔒 Privacy and security

Configure:

Control

User targeting

Page exclusions

URL sanitization

Request-header exclusion

Request- and response-body exclusion

Sensitive-data masking

Data retention

Role-based access

Do not collect:

Data Type

Passwords

Authentication tokens

Session cookies

Authorization headers

Sensitive business data

Personal information that is not required for diagnostics

Browser profiling must not be used to bypass SAP, browser, or organizational security controls.

✅ Validate the configuration

Confirm that:

Validation

Profiling is enabled only for intended users.

The extension or Self-Profiling API starts successfully.

The SAP URL matches the monitoring profile.

Profiling data appears in GermainUX.

The data is associated with the correct user session.

The reproduction period is included.

Browser overhead remains acceptable.

Sensitive data is not captured.

Profiling stops when disabled.

🛑 Disable profiling

When the investigation is complete:

  1. Open the SAP UX monitoring profile.

  2. Select JavaScript Profiling Monitoring.

  3. Disable profiling or remove the included users.

  4. Save the profile.

  5. Remove the extension or response header if it is no longer required.

  6. Confirm that new profiling data is no longer collected.

🔧 Troubleshooting

❔ No profiler data appears

Verify:

Check

Profiling is enabled.

The user is included and not excluded.

The SAP URL matches the profile.

RUM JS loads successfully.

The extension is installed and active.

The browser supports the selected profiling method.

The Document-Policy header is present when using self-profiling.

The browser can reach GermainUX.

Privacy and consent rules permit collection.

⛔ The browser reports a policy violation

Confirm that the document response includes:

Document-Policy: js-profiling

If the header cannot be added, use the supported JS Profiler extension instead.

🐢 Profiling increases browser overhead

Reduce:

Setting

Profiling duration

Number of targeted users

Number of targeted pages

Sample-buffer size

Profiling frequency

You can also increase the sampling interval.

ℹ️ ABAP information does not appear

This is expected. The JS Profiler collects browser-side JavaScript and network telemetry only.

ℹ️ Get More Information

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

Contact GermainUX Support.

Feature Availability: 2022.1 or later