Skip to main content
Skip table of contents

PI E2E Synchronous


PI E2E Synchronous test type is responsible for testing SAP PI/PO synchronous scenarios. In such cases, test validation is based on a receiver system response message and optionally on the documents created in SAP Backend.
The receiver system will not be virtualized. The connection must be working. The test validation will be performed based on the response from the receiver (after mapping in SAP PI/PO).

SAP PI/PO prerequisites for synchronous scenarios

Top of the screen with Automation Object (AO) ID, description and test type.

Basic Information

Parameter name

Description

Example

Interface

SAP PI/PO interface name.

In SAP PO, the best information to see interface service name is an ICO definition. 

SI_O_PurchaseOrder - SAP PO interface name

Namespace

Namespace from ICO.

The name and namespace will allow to automatically build test cases just based on providing message GUID/number from middleware. Based on content, the interface name/namespace will be checked, and automatically configuration object proposed.

http://webshop.com

Test Case Creation

Parameter name

Description

Example

Message version before processing

A version of the message to be fetched from the SAP PI/PO persistence. Here we specify the version which contains the original message - before being processed by SAP PI/PO. If empty, Global Parameter is used.

Depending on the SAP PI version can be either:

numeric: 0
caption: EDI

Message version after processing

A version of the message to be fetched from the SAP PI/PO persistence. Here we specify the version which contains after mapping version of the message - already processed by SAP PI/PO.  If empty, Global Parameter is used. 

Depending on the SAP PI version can be either:

numeric: -1
caption: AM

Read response from PI Persistency (Direct URL TC)

Used in case Test Case is executed by sending payload to Direct HTTP URL but during creation request is saved from SAP PI/PO Persistency

Read response version from request message

Used in specific cases where required version of response message is stored by SAP PI/PO on the request message e.g. when ‘Convert XML Payload to JSON’ setting is used on the channel level.

ABAP Stack SAP PI Integration

Parameter name

Description

Example

PI: Landscape where interface exists on the ABAP stack

Name of the PI ABAP Landscape. It is required to access the ABAP stack PI messages.

PI: ABAP stack: Read input message from Java persistence

This flag needs to be checked in the case when the ABAP stack PI read a message from the JAVA adapter  

PI: ABAP stack: Read output message from Java persistence

This flag needs to be checked in the case when the ABAP stack PI sends a message to the JAVA adapter

Test Case Execution

Parameter name

Description

Example

Inject using PIT

This flag will use SAP PIT WS as a message injector (SAP PO > 7.5 SP14) for this automation object.

This flag can be set up also globally for whole environment.

HTTP RFC Destination

Alternative RFC Connection where the REST message should be sent. If this parameter is populated, then the message will be sent there alternative RFC.

SAPSYS1_RFC

Direct HTTP URL

Direct endpoint to tested interface (synchronous).
It should be provided without PI endpoint & port. 

Additionally, if the URL is dynamic (like JSON queries), it is possible to enter the variable name in {} brackets. The value will be substituted before calling the final URL

/RESTAdapter/webshop/salesOrder/
create/1/{PONUMBER}/1

Direct HTTP operation

If the direct endpoint is provided, here you can specify the HTTP operation (for synchronous REST testing)

PUT, GET, POST

PI: Reference Sender Channel Name

Name of the sender channel to be used as a reference. 

CC_SOAP_SENDER

PI: Reference Sender Channel BC

Business Component of the sender channel to be used as a reference. 

BC_SENDER

PI: Reference Sender Channel Party

Party of the sender channel to be used as a reference. 

SENDER_PARTY

Flag for Flat File interfaces

Used to mark interface input as Flat File

Flat File Line Separator

The character used for end-of-line determination in Flat File messages: for example, CLRF - Unix. The parameter is used to display the comparison report better and display the reference and new message line by line.

"Carriage Return and New line" character should be stored as CRLF

"Line Feed" should be stored as LF (Unix based files)

There is no default value, so the parameter is obligatory for CSV files

CLRF

Line Separator Escape Character

Escape character for line separator. Used to avoid line breaks in case separator is used in the file content.
Value of this parameter should be aligned with specific format used by tested interface.
Example: If line separator is set to ' and escape character is ? following split is applied:

Source:
NAD+SU+8720121000874::3++Test?'file'NAD+SU+8236459000874

Split:
NAD+SU+8720121000874::3++Test?'file'
NAD+SU+8236459000874

Flat Files Compare with payload validations applied

If this checkbox is checked, Payload Validation rules are applied before files comparison and the match content is replaced by the placeholders. This can in some cases result in better flat file comparison results, especially in case of many missing lines.

Do not fail TC if DB reference not found

This flag determines if in the situation when DB validation for reference messages have not been found whether it should be treated as Error or Successful message.

Checked or 'X' - if reference document is not found test case will not be failed

Unchecked or '' - if reference document is not found test case will be failed (default setting)

Test Case Validation

Parameter name

Description

Example

PI: Validate message status

SAP PI/PO message processing status will be taken as a part of the test case result. By default, the processing status is not part of the test as such, for example, the communication channel may be deactivated not to send test messages.

This option is helpful when performing validation of receiver communication channels. It would not validate the results of processing in the channel but at least collect SAP PO status.

PI: Validate message attachments

This flag allow to check SAP PI/PO message attachments as a part of the test.

Show XML in the original order (unsorted)

This flag determines if the lines of the file in the XML Comparison Report should be displayed in the original order or should be sorted alphabetically for a specific nodes.

Checked or 'X' - payload will not be sorted on the report

Unchecked or '' - payload will be sorted alphabetically (default value)

Message Selector

Parameter name

Description

Example

PI: Message Search - Interface Name

Used to specify the Interface Name within which the Message Selector should search for the version of the message. This parameter is only to be entered if Interface Name visible in the Message Monitor main screen differs from the Interface Name used to create the object definition. 

If we only have receiver interfaces visible in the message monitor, then use the receiver name specified in the ICO of the sender interface specified in the automation object used.

PI: Message Search - Namespace

Used to specify the Interface Namespace within which the Message Selector should search for the version of the message. This parameter is only to be entered if Interface Namespace visible in the Message Monitor main screen differs from the Interface Namespace we have used to create the object definition.

The same condition as the previous parameter but then for the namespace of the receiver interface

Execution Settings

In this section there are common execution settings for all test cases.

image-20250326-214543.png

Debug Log
This feature enables additional debugging messages to be included in the test execution log. Typically, this option is disabled, as a log with debugging information can become cluttered with details unnecessary for standard test execution. However, it proves invaluable during the initial phases of working with Int4 Suite, as it provides insights into each unsuccessful run and aids in identifying and resolving connectivity and security issues.

Display Wait Popup Before Validation
In specific scenarios, there may be a need for manual intervention between the message injection by Int4 Suite and the readiness for test validation. For instance, when an XML message is injected into SAP CPI, mapped to an IDoc, and subsequently transferred to SAP S/4, the IDoc may be processed automatically by the backend. However, certain configurations could hinder this automatic processing. In such cases, the tester must log into S/4 to manually request IDoc processing. The wait popup feature facilitates this by allowing Int4 Suite to send the message and display a popup before commencing backend data validation. This gives the tester time to complete the IDoc processing, return to Int4 Suite, and confirm the popup. Only after this confirmation will Int4 Suite proceed with data validations.

Delay Between Execution and Validation
Similar to the wait popup feature, these options allow for a delay to be configured between the initiation of the test run and/or between the injection of test case data and the validation of results. If it is anticipated that backend processing or integration platform mapping may require a considerable amount of time, this section allows for the configuration of such delays. As a result, Int4 Suite will pause before attempting to validate the integration platform and/or the backend, depending on the type of test being executed.

Variables

Variables are the container for values that can be used during testing. Each variable contains two values, the one that is calculated based on the reference message/document and the one that is calculated ad-hoc during test case execution.

There are various scenarios where variable processing can be beneficial:

  • Updating document/message content before test execution

  • Capturing data from document/message content after execution

  • Matching documents based on variable content

  • Passing data between test cases

For more details on Variables and their processing, read here: Variables & Variable processing

image-20250418-083747.png

Create button allows variable creation.

Parameter name

Description

Example

Name

Variable technical name

VARIABLE_1

Description

Free text for variable description

Variable One

Type

Type of variable processing

Read & Replace

Find message

Custom

Scope

Variable scope

  • Test case - variable is processed for every test execution

  • Test run - variable is processed only once within a test run

Test Case

Private

Specifies that the variable is not accessible to child test cases

Payload Validations

Output payloads after processing by integration platform are validated against previously stored references.

The basic test execution in Int4 Suite will compare the messages (reference and current execution) and report any differences as errors, causing the test to fail. While this may be acceptable for some migration scenarios, not all message differences are errors; some discrepancies are even expected.

This configuration enables adding rules with exceptions that will allow for differences like document numbers, current time and date and others.

Parameter name

Description

Example

Description

Free text for the exception rule

Field1

Expression Type

Expression type. Available options:

  • unspecified

  • XPath

  • Flat expression

This field is optional for all interfaces where there is a single type of output. However, for interfaces that output might be both XML and flat file, it is mandatory to specify the expression type, then it would be only apply to specific file format (XML/JSON or flat file)

XPath

Expression

Path pointing to the field/node where the exception should be applied.

Available syntaxes: XPath, JSONPath, Int4 Flat File Syntax or REGEX

JSONPath and XPath are well-known and popular standards for structured data manipulation. You can find a lot of references and educational material on-line. Worth noting are the testing tools that allow You to experiment with XPath or JSONPath definitions. See here:

Please note that Int4 does not maintain these tools and can’t guarantee for their accuracy.

//ORDER/DATE/text()  (XPATH expression) or START_TAG(BGM+220+)&&END_TAG(+)&& (Flat file expression) or
$.order.date (JSONPath expression) or
REGEX(BGM\+220\+(.*)\+) (REGEX expression)

Rule

Says how the difference should be marked

  • Warning
    Marks the compared fields with yellow color as a "warning".

  • Warning when different based on variable replacement
    In case compared values are different Int4 Suite compares them with specified variable. If reference/current value pair from comparison matches variable values result is marked as "warning".

    Variable name used for checking the values has to be specified in the Processing Parameter column.

  • Warning when different based on value mapping object
    In case compared values are different Int4 Suite compares them with specified values in the Mapping Object. If reference/current value pair from comparison matches mapping values result is marked as "warning".

    Mapping Object name used for checking the values has to be specified in the Processing Parameter column.

  • Ignore
    Even if it is different in the content, it is not highlighted.

  • Change Request
    The difference will be highlighted green in the test report.

Change Request rule are active only when Test Case is run within Test Run type: Change Request Test

 

Parameter

Additional parameter for rules

 

Custom Validations

Custom Validations offer enhanced flexibility for evaluating test case results by allowing the implementation of custom logic using ASTER Scripts.

image-20250418-090503.png

Within the script, you can access test execution data using built-in Int4 Suite functions such as:

  • GET_TC_VAR – to retrieve test case variables

  • GET_VALIDATION_PAYLOADS – to access payloads used during validation

For the test case to be marked as successful, the script must return a _TRUE_ value.

Number Ranges

Int4 Suite uses own number ranges for data processing needs. Quite often, when sending test data to test systems again and again, the message can’t be exactly the same. For example, sending the same purchase order to generate sales order in S/4 could result in an error, if the system is configured to treat such situations as duplicates. Also, having a specific data field in the document might be mandatory to find another document - e.g. by generating an unique PO number for the Sales Order, we can find the newly created Sales Order in the database. The actual mechanics for such replacements of original document numbers or other values is described in the section Variables & Variable processing.

Below you will find information how to create a new number range.

The number range used to replace the source system document number should always be configured to not overwrite the original numbers. It means that documents generated by Int4 Suite should have their own subset of the original document number. Usually, it might be a subset of the upper limit of the original number range.

It is essential that automated testing with Int4 Suite doesn’t consume numbers that the source system will generate during manual testing. Additionally, if testing environment data is refreshed from the production system, more documents would be created in the testing environment. If the Int4 Suite number were configured in the same range, it would start creating duplicates.

For example, the original number range for document numbers from the source system is 560000 - 590000. It would be wise to set the Int4 Suite number range from 590000 to 600000. However, suppose the SAP backend system uses an external number range. It is essential to stay in the original range. In that case, the Int4 Suite number range may be set as 585000-590000, which gives space for 5000 testing documents. Using range from upper interval reduces the risk that the number will be overwritten.

Additionally, the good practice is to use prefixes or suffixes that will quickly separate source system documents and the ones created by Int4 Suite. It should always be used when there is no document number validation by the SAP backend.

Each Object Definition can contain an unlimited number of number ranges. This way, each variable declared in an object can use its specific number range.

Parameter name

Description

Example

Number range

Provide a name for the number range. This name would be passed as a parameter in variable processing for actions that will generate values from it.

NUM_RAN

Prefix

The alphanumeric characters to be appended at the beginning of the document number to separate original documents from source systems and the one created during Int4 Suite testing (optional).

INT4_

Low value

The first number of our range.

1

High value

The last number of our range.

999999

Current value

When the number range is used during testing, it would increment per each use.

23

Suffix

The alphanumeric characters to be appended at the end of the document number to separate original documents from source systems and the one created during Int4 Suite testing (optional).

_TEST

Add zeros

If this box is checked, zeros will be automatically appended to the beginning of the document number, such as 000500.

 

Incr. per Test Run

If this indicator is selected, the number range is incrementing once per test run. If multiple test cases with the same Automation Object exist in the test run, they will receive the same value.

 

Backend Systems

Backend systems in an Automation Object specify the SAP backend system (S/4HANA, ECC, or other ABAP-based systems) where to read a new document created by interface processing during test case execution. It also defines where the reference document was posted, serving as the source. The two documents will be compared in the test case results.

The given system line and source and target environment will be translated to the RFC destination in the runtime. Int4 Suite uses this RFC connection to execute dedicated function modules and retrieve data from the system’s database for comparison.

Find out more at Int4 Suite Internal Organization | Environments-and-System-Lines.

Depending on your testing scenario, both the current and reference system lines can be the same or different. For regression testing, they are typically the same, such as S/4HANA. The testing landscapes, however, may differ, e.g. Test and Production, where the system reads the reference from Production and the current document from Test. For migration scenarios, such as ECC to S/4HANA, the reference would usually be ECC, and the current would be S/4HANA.

Parameter name

Description

Example

Backend system line for current doc.

This parameter points out the system line where the test interface processing triggered by Int4 Suite will create test document during test case execution.

S/4HANA 

Backend system line for reference doc.

This parameter points out the system where the reference backend document is stored. The value should be a system line described in the landscape configuration.

ECC

External Links enable linking from Test Results and from Process Flow chart to business and system objects in external systems.

image-20250430-231223.png

To link to external documents, the document reference (e.g. a number) must be captured by a Variable. The Variable number may be then used in link title and URL Template to construct a link to the document view. Based on Your Configuration , System Line might be specified, to create a link in the context of a specific business system.

Possible document links:

  • Regular URL definition

  • SAP Web GUI - following the template: /sap/bc/gui/sap/its/webgui?~transaction=*VA03 VBAK-VBELN={SO};DYNP_OKCODE=ENT2

  • SAP GUI link - generated by Int4 Suite service: /sap/bc/int4/iftt/launcher/gui?~transaction=*VA03 VBAK-VBELN={SO};DYNP_OKCODE=ENT2

To generate SAP GUI/WebGUI links, the transaction code (e.g. VA03), selection screen parameters (e.g. VBAK-VBELN) and DynPro OK Code (e.g. ENT2) must be know. They are dependent on the specific SAP transaction. This information can be obtained from a functional expert or directly from SAP GUI by analyzing the fields on transaction screen.

Database Validations

This feature is available only in APITester.

Int4 Suite enables reading and comparing documents posted in SAP Backend systems (like S/4HANA, ECC or any other ABAP based systems). In such case Automation Object require selection of https://int4support.atlassian.net/wiki/x/AYCmew. DB Validation Ruleset represents a document in SAP like a sales order, an invoice or any other transactional document. The rulesets can be re-used across multiple Automation objects.

Find more how such comparision look like inTest Case Execution and Reporting | SAP-Backend-Document-Validation .

image-20241016-111656.png

Parameter name

Description

Example

Database validation ruleset

Reference database validation ruleset object name.

Database validation ruleset specify how related backend validation should be performed. Specify tables, fields and join conditions for the backend validation.

Buttons allow navigation to the chosen database validation ruleset and creation of a new database validation ruleset
Database Validation Rulesets

GENERIC_SO

Persist reference DB Data

When switched on, DB reference data will be fetched from backend system during test case creation. Otherwise, it will be dynamically fetched during test case execution.

if there is a need to refresh stored DB references in existing test cases please refer to Persist reference backend documents

Payload Matching

Some integration scenarios permit one-to-many mappings. In such cases, there might be no guarantee that the integration platform will prepare messages in the same order as the historical flow. Payload matching allows for comparing the payloads in the same order. The solution is to sort the messages before comparison.

Parameter name

Description

Example

Rule

Free text for rule name

Rule1

Expression Type

Expression type. Available options:

  • unspecified

  • XPath

  • Flat expression

This field is optional for all interfaces where there is a single type of output. However, for interfaces that output might be both XML and flat file, it is mandatory to specify the expression type.

XPath

Expression

Path pointing to the field/node where the exception should be applied.

//ORDER/DATE/text()  (XPATH expression) or

START_TAG(BGM+220+)&&END_TAG(+)&& (Flat file expression) or

$.order.date (JSONPath expression)

REGEX(BGM\+220\+(.*)\+) (REGEX expression)

Rule Type

Rule type. Available options:

  • Exact match - value from reference and current payload has to be the same

  • Variable - value from reference and current payload is compared based on variable values and variable replacement

  • Mapping object - value from reference and current payload is compared based on mapping object value replacement

 

Parameter

Additional parameter for Rule Type like Variable or Mapping Object name

 

Group

Free text grouping field.
All rules with from the same group have to be fulfilled to match payloads.
At least one group has to be fulfilled to match payloads.
Rules within group are linked with AND operator. Groups are linked with OR operator.

 

Payload Processing

This capability is particularly useful in migration projects and the Test Driven Development approach, where the payload structures of new solution interfaces may differ but contain similar content.

Following processing methods are available:

  • XSLT Transformation

  • ASTER Script

image-20250418-085152.png

Payload processing can be applied on both Input and Output payloads.

XSLT Transformation is stored in a reference test case of type XSLT Transformation. To call XSLT Transformation during Test Case execution, Test Case number that is of type XSLT Transformation needs to be provided as an input to one of the below parameters.

Example usage of XSLT transformations can be found here XSLT transformation examples | Different-order-of-XML-nodes-in-a-new-solution.

ASTER Script for Payload Processing can read current payload using GET_CONTEXT_PAYLOAD function and should return updated payload as a result of evaluation

Parameter name

Description

Processing Type

  • Input payload - Run processing on input payload before any other execution steps

  • Input payload after variable replacement - Run processing on input payload after variables are replaced with new values

  • Reference output payload - Run processing on output reference message (output stored in Test Case as reference)

  • Current output payload - Run processing on current output message (output generated during Test Case execution)

Method

  • XSLT Transformation

  • ASTER Script

Parameter

  • Test case number for XSLT

  • Script name for ASTER

Data Scrambling

Data scrambling enables to reduce or remove GDPR, privacy and security concerns when it comes to testing. When Int4 Suite is extracting the test data from existing messages or reports testing results, the visibility and availability of sensitive data could be an issue. To avoid this issue, sensitive data can be scrambled. Scrambling can occur at test case creation time and during the test execution. Actual behaviour of the scrambling engine is configured by a set of rules.

Parameter name

Description

Example

Rule Type

Rule type. Available options:

  • Test Case Creation - in case you want to scramble data during the creation of a test case

  • Runtime - in case you want to scramble data during runtime - when the interface is executed, and additional data is loaded to test case data.

Test Case Creation

Rule

Free text to specify scrambling rule name for identification.

NAME

Method

Choose a scrambling method from a list. Available methods:

  • CONSTANT Replace value with constant
    The current value will contain the constant passed in the parameter. The constant should be provided as is without any brackets.

  • GUID Generate GUID

    Generate random value in a GUID format. 

  • RANDOM Generate a random value

    Generates a random value. The value of the parameter defines the upper limit of the range. It is also possible to generate negative numbers. For example, passing -100 in parameter will generate random numbers from -1 to -100

  • HASH create a hash based on value
    Calculates a hash based on the given value using algorithm passed in parameter (default 'SHA1').

  • MASK - replace each character with constant
    Replace each character with a constant passed in parameter. For example, passing X in the parameter will replace scrambled data with X signs.

  • CUSTOM - create custom method
    create a CUSTOM method (implementing an interface /INT4/IFTT_IF_DATA_SCRMBL_METH).

HASH

Expression Type

Expression type. Available options:

  • unspecified

  • XPath

  • Flat expression

This field is optional for all interfaces where there is a single type of output. However, for interfaces that output might be both XML and flat file, it is mandatory to specify the expression type.

XPath

Expression

Path pointing to the field/node where the exception should be applied.

//ORDER/DATE/text()  (XPATH expression) or

START_TAG(BGM+220+)&&END_TAG(+)&& (Flat file expression) or

$.order.date (JSONPath expression) or

REGEX(BGM\+220\+(.*)\+) (REGEX expression)

Parameter

Specify Additional Parameter suitable for a chosen scrambling method like X (for Mask method), SHA1 (for HASH Method)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.