Docs / Connectors / Solace Platform

Solace Platform Connector

The ASAPIO Integration Add-on facilitates the integration of supported SAP NetWeaver® systems with Solace® PubSub+®. For connectivity to SAP Advanced Event Mesh, see the SAP Advanced Event Mesh connector.

Overview

Required components of ASAPIO Integration Add-ons:

Add-on/Component NameType
ASAPIO Integration Add-on – FrameworkBase component (required)
ASAPIO Integration Add-on – Connector for Solace®Additional package

Key features:

Block Architecture:

Solace connector block architecture

Prerequisites

Pre-Requisites for Solace® PubSub+® Services

A Solace® PubSub+® broker (on-premise or in the cloud) is required.

REST-Based Connectivity

Create RFC Destinations

Note: in case you have a HA setup with 2 Solace brokers, create one destination for each.

Create a new RFC destination of type “G” (HTTP Connection to External Server).

SM59 RFC destination for the Solace messaging endpoint

Add the certificates for the created destinations to the certificate list selected in tab Logon & Security:

Certificate list for the Solace messaging RFC destination

Create RFC Destination for OAuth Authentication (Optional)

To use OAuth authentication with Solace, please configure an RFC destination specifying the OAuth endpoint:

SM59 RFC destination for Solace OAuth authentication

Add Certificates to Trust Store

STRUST certificate import for Solace

Save Secret in SAP Secure Store (Optional: Only Necessary for OAuth)

For OAuth authentication, a secret has to be stored in the system’s SAP Secure Store. This secret is the Client Secret for OAuth.

Enter the secret in the SAP Secure Store:

Solace secret stored in the SAP Secure Store

Set-Up Basic Settings

Activate BC-Set

Business Configuration sets (BC-Set) contain customizing and configuration-related table entries that are not imported with the add-on.

Configure Cloud Adapter (Optional: Only if BC-Set Is Not Activated)

Add an entry for the connector to the list of cloud adapters:

Solace REST cloud adapter configuration

Set-Up Codepages (Optional: Only if BC-Set Is Not Activated)

Specify codepages used in the integration:

Solace cloud codepages configuration

Set-Up Connection Instance

Create the connection instance customizing that ties together the RFC destination created earlier and the cloud connector type:

Solace connection instance

Note: in case you have a HA setup with 2 Solace brokers, enter the second RFC destination in field RFC Dest. (Download).

Default Values (Optional: Only Necessary for OAuth)

Solace connector default values

AMQP-Based Connectivity

With release 2510 Solace is the first connector that supports AMQP connectivity. With the new connectivity the Solace connector sends event data to an ABAP daemon, which has a constant connection and session to the broker.

Note: currently only Basic Auth is supported.

Create RFC Destinations

Create a new RFC destination of type “G” (HTTP Connection to External Server).

AMQP RFC destination for Solace

Add the certificates for the created destinations to the certificate list selected in tab Logon & Security:

AMQP RFC destination certificate list

Configure AMQP Cloud Adapter

Add an entry for the connector to the list of cloud adapters:

AMQP cloud adapter configuration

Set-Up Connection Instance

Create the connection instance customizing that ties together the RFC destination created earlier and the cloud connector type:

AMQP connection instance

Set-Up Basic Authentication

Default Values

AMQP username default value on the connection instance

Save Password in SAP Secure Store

Enter the secret in the SAP Secure Store:

AMQP password stored in the SAP Secure Store

Outbound Interface Configuration

Configuration of outbound objects is the same as for HTTP connectivity. See also Outbound Messaging.

Inbound Interface Configuration

With release January 2026 it is also possible to receive messages via AMQP protocol.

To receive messages you need to configure an inbound object:

AMQP inbound object configuration

Navigate further to Header Attributes. Add new entry and specify:

AMQP inbound header attributes

Send Example Outbound Message

Create Message Type

Example: we use the Sales Order (BUS2032) event as an example. Please choose any other suitable example if required.

For each object to be sent via ACI you have to create a message type:

WE81 message type creation

Activate Message Type

The created message type has to be activated:

BD50 message type activation

Create Outbound Object Configuration

This example uses the built-in notification event.

Outbound object configuration for the example Solace message

Set Up Target Endpoint in ‘Header Attributes’

The header attributes for each object contain some technical information for the call to the Solace broker and establish the header table for this object (i.e. the main table with information on this object). The header table can then be used to create a dynamic topic with the field mappings.

Header attributes for the example Solace message
Header AttributeHeader Attribute Value
SOLACE_CALL_METHODPOST
SOLACE_CONT_TYPEContent type (e.g. application/json)
SOLACE_DELIV_MODEPersistent
SOLACE_OBJECT_HEADER_DB_TABLEDB table to use for dynamic topics (e.g. VBAK)
SOLACE_TOPICFixed topic (if dynamic topics should not be used)

Set Up ‘Business Object Event Linkage’

Link the configuration of the outbound object to a Business Object event:

SWE2 event linkage for the example Solace message

Test the Outbound Event Creation

In the example above, please pick any test sales order in transaction /nVA02 and force a change event, e.g. by changing the requested delivery date on header level.

Outbound Messaging

For outbound messaging, you can use and even combine the following methods:

Pre-requisite for all methods is to create a message type, which will be used throughout the configuration process.

Create a New Message Type

Create Message Type

Note: in the example below, we use the Sales Order (BUS2032) event. Please use suitable data for your use case as required.

For each object to be sent via ACI you have to create a message type:

WE81 message type creation for outbound messaging

Activate Message Type

BD50 message type activation for outbound messaging

Simple Notifications

Create Outbound Object Configuration

This example uses the built-in notification event.

Simple Notify outbound object configuration

Set Up Target Endpoint in ‘Header Attributes’

The header attributes for each object contain some technical information for the call to the Solace broker and establish the header table for this object (i.e. the main table with information on this object). The header table can then be used to create a dynamic topic with the field mappings.

Simple Notify header attributes
Header AttributeHeader Attribute Value
SOLACE_CALL_METHODPOST
SOLACE_CONT_TYPEContent type (e.g. application/json)
SOLACE_DELIV_MODEPersistent
SOLACE_OBJECT_HEADER_DB_TABLEDB table to use for dynamic topics (e.g. VBAK)
SOLACE_TOPICFixed topic (if dynamic topics should not be used)

Set-Up Dynamic Topic Inside the ‘Field Mapping’

Dynamic topic field mapping

New option with release 2504 (9.32504): conversion methods. With the new option you can specify a conversion class/method to determine the value of the topic level, e.g. to translate SAP-specific values to more commonly used terms, or to determine a new value like a region based on data that only contains plant/country info.

Dynamic topic conversion methods

The dynamic topic is visible inside the monitor with dynamic (highlighted) and static URL segments:

Monitor display with dynamic and static topic segments

Set-Up User Properties and Message Headers (from Release 2610 / 9.32610)

New option with release 2610 (9.32610): user properties and message headers. You can send custom Solace user properties and dedicated Solace message headers with every outbound message. They are configured in the Field Mapping of the outbound object, using dynamic values from the SAP source record or static default values.

The metadata stays attached to the payload that produced it. When one run creates multiple payloads, every payload is sent with its own headers, user properties and topic, both for direct sending and for messages processed through message sequencing (Outbox).

Key features:

User properties and headers are maintained in the same field mapping that is used for dynamic topics. The prefix of the target structure determines which kind of metadata is created.

Field mapping with Solace header, topic level and user property entries
Target structurePurposeOutgoing name
SOLACE_TOPIC_LEVEL_###Dynamic topic segment (existing)Appended to the destination topic
SOLACE_USER_PROPERTY_###Custom Solace user propertySolace-User-Property-<Target field>
SOLACE_HEADER_###Dedicated Solace message headerSolace-<Target field>

Configuration rules:

Values are determined with the same rules as for dynamic topics:

  1. If Source field is maintained and filled, the value from the current payload source record is used.
  2. If a conversion class and method are maintained, the converted value is used when returned.
  3. If the resulting value is empty and a Default value is maintained, the default value is used as fallback.
  4. If Source field is empty, the Default value is sent as a static user property or header.
  5. If the final value is empty, no user property or header is sent.

The conversion class and method are maintained in the same field mapping entry, as for dynamic topics. They can be used e.g. to translate SAP-specific values to more commonly used terms, or to determine a new value.

Example: Sales Order

This example uses the Sales Order (BUS2032) change event. Please use suitable data for your use case as required.

Target structureTarget fieldSource structureSource fieldDefault value
SOLACE_HEADER_001Correlation-IDZ_SD_ORDER_BIKEMATNRNoMaterial
SOLACE_USER_PROPERTY_001SourceSystemSAP
SOLACE_USER_PROPERTY_002EventTypeZ_SD_ORDER_BIKEEVENT_TYPENoEvent
SOLACE_USER_PROPERTY_003JMSXGroupIDZ_SD_ORDER_BIKESALESDOCUMENTNoSalesdocument

Resulting HTTP headers sent to Solace:

Solace-Correlation-ID: P-103
Solace-User-Property-SourceSystem: SAP
Solace-User-Property-EventType: NoEvent
Solace-User-Property-JMSXGroupID: 0000112190

The field EVENT_TYPE is empty for this sales order, so the default value NoEvent is sent as fallback. SourceSystem is a static user property; all other values are taken from the source record.

The headers are visible inside the monitor (transaction /ASADEV/ACI_MONITOR) in the request trace. HTTP header names are not case-sensitive, so the trace may display them in lower case.

ACI Monitor request trace with correlation ID, user properties and fallback value

Example: Purchase Order

Target structureTarget fieldSource structureSource fieldDefault value
SOLACE_HEADER_001Correlation-IDEKKOEBELN
SOLACE_USER_PROPERTY_001JMSXGroupIDEKKOEBELN
SOLACE_USER_PROPERTY_002SourceSystemSAP
SOLACE_USER_PROPERTY_003EventTypePurchaseOrderChanged

Resulting HTTP headers sent to Solace:

Solace-Correlation-ID: 4500018123
Solace-User-Property-JMSXGroupID: 4500018123
Solace-User-Property-SourceSystem: SAP
Solace-User-Property-EventType: PurchaseOrderChanged

Topic selection

Each payload is sent to its own topic, determined in this order:

  1. Dynamic topic from the Field Mapping (SOLACE_TOPIC_LEVEL_###), if it could be determined
  2. Fixed topic from header attribute SOLACE_TOPIC, if no dynamic topic was determined

A fixed topic does not overwrite a dynamic topic.

Message sequencing

User properties, headers and the topic are fully supported with message sequencing. When sequencing is active, the values are stored for each Outbox entry and restored when the message is sent. Every payload keeps its own topic, headers and user properties, in single send and in batch send. In a batch send, the monitor shows all payloads of the run in one trace entry; each call is sent to the topic of its own payload, with the headers and user properties of that payload. See also Message Sequencing.

ACI Monitor batch send, call 1 for sales order 0000112190
ACI Monitor batch send, call 2 for sales order 0000112191 with its own topic and JMSXGroupID

Compatibility and limitations

Set Up ‘Business Object Event Linkage’

Link the configuration of the outbound object to a Business Object event:

SWE2 event linkage for Simple Notify

Test the Outbound Event Creation

In the example above, please pick any test sales order in transaction /nVA02 and force a change event, e.g. by changing the requested delivery date on header level.

Message Builder (Generic View Extractor)

Create Outbound Object Configuration

Message Builder outbound object configuration

Create Database View

For the data events also configure the DB view that is used to define the extraction:

Example: Material master view (e.g. to be used for Material Master (BUS1001) change events).

Database view for the Message Builder method

Set Up ‘Business Object Event Linkage’

Link the configuration of the outbound object to a Business Object event:

SWE2 event linkage for Message Builder

Set-Up Packed Load (Split Large Data)

Create Outbound Object Configuration

Create Database View

For the data events also configure the DB view that is used to define the extraction:

Example: Material master view.

Database view for the Packed Load method

Set-Up ‘Header Attributes’

Go to section Header Attributes of the outbound object created previously. Add New Entry and specify the header attributes and values:

Header AttributeHeader Attribute ValueExample
ACI_PACK_BDCP_COMMITFlag for change pointer creation. If set, change pointers will be generated for every entry. If this flag is set, a message type has to be maintained in the outbound object. Caution: this approx. halves performance.X
ACI_PACK_TABLEName of the table to take the key fields from. This is typically different from the DB view specified in ‘Extraction View Name’, as we only want to build packages based on the header object, and the DB view typically contains sub-objects as well.MARA
ACI_PACK_RETRY_TIMETime in seconds. This is the duration in which the framework will attempt to get a new resource from the server group.60
ACI_PACK_WHERE_CONDCondition that is applied to the table defined in ‘ACI_PACK_TABLE’.–
ACI_PACK_SIZENumber of entries to send.500
ACI_PACK_KEY_LENGTHLength of the key to use from the ACI_PACK_TABLE (e.g. MANDT + MATNR).13
Packed Load header attributes

Execute the Initial Load

Warning: depending on the amount of data, this can stress the SAP system servers immensely. Please always consult with your basis team for the correct server group to use.

Executing the Packed Load initial load
SAP to Solace PubSub+ integration architecture

Demos and Slides

Demo Videos

Solace connector demo overview

Watch demo video