Home

Connectors > Solace® PubSub+

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
page

Overview

ASAPIO integration Add-on facilitates the integration of supported SAP NetWeaver® systems with Solace® PubSub+®. For connectivity to SAP Advanced Event Mesh, please click here.

Add-on/component name Type
ASAPIO Integration Add-on – Framework Base component (required)
ASAPIO Integration Add-on – Connector for Solace® Additional package

Key features:

  1. Supports a wide range of SAP NetWeaver based systems, including SAP ERP, S/4HANA, BW, HCM and many more
  2. Out-of-the-box connectivity to Solace® PubSub+® brokers
  3. REST-based outbound and inbound communication
  4. Supported communication direction: Outbound/Inbound, Push
  5. Support for HA Broker Setups
  6. Support for dynamic topics
  7. Switch between event-driven (single events) or batch mode (job-driven) calls
  8. Lightweight + fast
  9. Certified by SAP
  10. Batch mode allows multi-threading with multiple SAP work processes

Block Architecture:

Pre-requisites

Pre-requisites for Solace® PubSub+® services

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

Steps required to establish connectivity

To establish connectivity with the Solace PubSub+ broker, please proceed with the following activities and refer to the specific chapter.

  1. Create RFC destinations to Solace PubSub+ in SAP system settings
  2. Set-up basic configuration to lay the foundation of using the Solace® PubSub+® connector
  3. Set-up connection instance to Solace PubSub+ in ASAPIO Integration Add-on
  4. Endpoint configuration to define the topic data is sent to
  5. See article example outbound message for a simple example to test the connectivity

Create RFC destinations

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

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

  • Transaction: SM59
  • Create new destination of type “G”
  • Specify Target Host and Service No.(Port): endpoint for the Solace Messaging VPN
  • Credentials or certificates for authentication can be specified on tab Logon & Security:

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

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

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Add Certificates to Trust Store

  • Transaction: STRUST
  • Select Certificate List as used in RFC destination created above
  • Click button Import certificate (1)
  • Click button Add to Certificate List (2)

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Set-up basic settings

Configure cloud adapter

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

  • Transaction: SPRO
  • Goto ASAPIO Cloud IntegratorMaintain Cloud Adapter. Add New Entry and specify:
  • Cloud Type: name with which to reference this type of connector
  • ACI Handler Class: /ASADEV/CL_ACI_SOLACE_HANDLER

Set-up Codepages

Specify codepages used in the integration:

  • Transaction: SPRO
  • Goto ASAPIO Cloud IntegratorMaintain Cloud Codepages
  • Add New Entry and specify the code pages to be used:

Set-up connection instance

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

  • Transaction: SPRO
  • Goto ASAPIO Cloud Integrator – Connection and Replication Object Customizing
  • Or go directly to transaction: /ASADEV/68000202
  • Add New Entry and specify:
    • Field Instance: a name for this connection in
    • Field RFC Dest. (Upload): the RFC destination create for the messaging endpoint 
    • Field ISO Code: the code page to use
    • Field Cloud Type: SOLACE (or the name you chose when adding the connector)

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

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

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:

  • Transaction: WE81
  • Add New Entry and specify:
    • Message Type: unique name for the integration
    • Description: description of the purpose

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Activate Message Type

The created message type has to be activated:

  • Transaction: BD50
  • Add New Entryand specify:
    • Message Type: the created message type
    • Active: tick the checkbox

Ein Bild, das Text, Tisch enthält. Automatisch generierte Beschreibung

Create Outbound Object configuration

This example uses the built-in notification event.

  • Transaction: SPRO
  • Goto ASAPIO Cloud Integrator – Connection and Replication Object Customizing
  • Or go directly to transaction: /ASADEV/68000202
  • Select the created Connection
  • Go to section Outbound Objects
  • Add New Entry and specify:
    • Object: name of the outbound configuration
    • Extraction Func. Module: /ASADEV/ACI_GEN_NOTIFY_SOLACE
    • Message Type: the created message type
    • Load Type: Incremental Load
    • Trace: activate for testing purposes

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

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 establishes 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.

  • Go to section Header Attributes
  • Add New Entry and specify:
    • Header Attribute: name of the attribute
    • Header Attribute Value: value of the attribute

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Header Attribute Header Attribute Value
SOLACE_CALL_METHOD POST
SOLACE_CONT_TYPE Content type (e.g. application/json)
SOLACE_DELIV_MODE Persistent
SOLACE_OBJECT_HEADER_DB_TABLE DB table to use for dynamic topics (e.g. VBAK)
SOLACE_TOPIC Fixed 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:

  • Go to section Event Linkage
  • Add New Entry and specify:
    • Object Category: BO BOR Object Type
    • Object Type: the Business Object Type sending the event
    • Event: the event to react to
    • Receiver Type: the message type of the outbound object (this is the link to the Addon configuration)
    • Receiver Call: Function Module
    • Receiver Function Module: /ASADEV/ACI_EVENTS_TRIGGER
    • Type linkage Activated: tick the checkbox

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:

  • Simple Notifications
  • Message Builder (Generic View Generator)
  • Custom-built triggers and extractors

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

The following articles explain the individual possibilities.

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:

  • Transaction: WE81
  • Add New Entry and specify:
    • Message Type: unique name for the integration
    • Description: description of the purpose

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Activate Message Type

  • Transaction: BD50
  • Add New Entry and specify:
    • Message Type: the created message type
    • Active: tick the checkbox

Ein Bild, das Text, Tisch enthält. Automatisch generierte Beschreibung

Simple Notifications

Create Outbound Object configuration

  • Transaction: SPRO
  • Goto ASAPIO Cloud Integrator – Connection and Replication Object Customizing
  • Or go directly to transaction: /ASADEV/68000202
  • Select the created Connection
  • Go to section Outbound Objects
  • Add New Entry and specify:
    • Object: name of the outbound configuration
    • Extraction Func. Module: /ASADEV/ACI_GEN_NOTIFY_SOLACE
    • Message Type: the created message type
    • Load Type: Incremental Load
    • Trace: activate for testing purposes

This example uses the built-in notification event.

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

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 establishes 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.

  • Go to section Header Attributes
  • Add New Entry and specify:
    • Header Attribute: name of the attribute
    • Header Attribute Value: value of the attribute

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Header Attribute Header Attribute Value
SOLACE_CALL_METHOD POST
SOLACE_CONT_TYPE Content type (e.g. application/json)
SOLACE_DELIV_MODE Persistent
SOLACE_OBJECT_HEADER_DB_TABLE DB table to use for dynamic topics (e.g. VBAK)
SOLACE_TOPIC Fixed topic (if dynamic topics should not be used)

Set-up dynamic topic inside the ‘Field Mapping’

 

  • Go to section Field Mapping
  • Add New Entry and specify:
    • Target structure: URL segment
    • Target field: Description
    • Source structure: Table for the dynamic field.
    • Source field: Dynamic value for URL segment.
    • Default value: Static value for URL segment.

 

Dynamic topic is visible inside the monitor with dynamic (highlighted) and static url segments:

 

Set up ‘Business Object Event Linkage’

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

  • Go to section Event Linkage
  • Add New Entry and specify:
    • Object Category: BO BOR Object Type
    • Object Type: the Business Object Type sending the event
    • Event: the event to react to
    • Receiver Type: the message type of the outbound object (this is the link to the Addon configuration)
    • Receiver Call: Function Module
    • Receiver Function Module: /ASADEV/ACI_EVENTS_TRIGGER
    • Type linkage Activated: tick the checkbox

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

  • Transaction: SPRO
  • Goto ASAPIO Cloud Integrator – Connection and Replication Object Customizing
  • Or go directly to transaction: /ASADEV/68000202
  • Select the created Connection
  • Go to section Outbound Objects
  • Add New Entry and specify:
    • Object: name of the outbound configuration
    • Extraction Func. Module: /ASADEV/ACI_GEN_VIEWEXT_SOLACE
    • Message Type: the created message type
    • Load Type: Incremental Load
    • Trace: activate for testing purposes
    • Formatting Function: /ASADEV/ACI_GEN_VIEWFRM_SOLACE
    • Extraction View Name: Add a database view or CDS-View.

Create database view

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

  • Transaction: SE11 (for SAP ERP or S/4HANA on-prem deployments with SAP GUI access)
  • Alternatively, you can use Eclipse with ABAP Development Tools, or the SAP Fiori App “Create Custom CDS Views” to create a database view if you have this app available in SAP S/4HANA.

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

 

Set up ‘Business Object Event Linkage’

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

  • Go to section Event Linkage
  • Add New Entry and specify:
    • Object Category: BO BOR Object Type
    • Object Type: the Business Object Type sending the event
    • Event: the event to react to
    • Receiver Type: the message type of the outbound object (this is the link to the Addon configuration)
    • Receiver Call: Function Module
    • Receiver Function Module: /ASADEV/ACI_EVENTS_TRIGGER
    • Type linkage Activated: tick the checkbox

Set-up Packed Load (split large data)

Create Outbound Object configuration

  • Transaction: SPRO
  • Goto ASAPIO Cloud Integrator – Connection and Replication Object Customizing
  • Or go directly to transaction: /ASADEV/68000202
  • Select the created Connection
  • Go to section Outbound Objects
  • Add New Entry and specify:
    • Object: name of the outbound configuration
    • Extraction Func. Module: /ASADEV/ACI_GEN_VIEW_EXT_PACK
    • Message Type: the created message type(optional)
    • Load Type: Packed Load
    • Trace: activate for testing purposes
    • Formatting Function: /ASADEV/ACI_GEN_VIEW_FORMATTER (depending on your use case)
    • Extraction View Name: Add a database view or CDS-View.

Create database view

Note

Please also refer to chapter 4.3.2

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

  • Transaction: SE11 (for SAP ERP or S/4HANA on-prem deployments with SAP GUI access)
  • Alternatively, you can use Eclipse with ABAP Development Tools, or the SAP Fiori App “Create Custom CDS Views” to create a database view if you have this app available in SAP S/4HANA.

Example: Material master view

Example

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 attribute Header attribute value Example
ACI_PACK_BDCP_COMMIT

Flag for changepointer creation.

If set, changepointers will be generated for every entry.

IF this flag is set, a messagetype has to be maintained in the outbound object.

Caution:

This approx.. halves performance.

X
ACI_PACK_TABLE Name of the table to take the keyfields from. This is typically different then 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_TRY Number of attempts to get a new ressource from the servergroup (typically you should choose a very high number here) 100000
ACI_PACK_RETRY_TIME Time in seconds. This is the duration in which the framework will attempt to get a new ressource from the servergroup Note: this is not yet released, use ACI_PACK_TRY instead
ACI_PACK_WHERE_COND Condition that is applied to the table defined in ‘ACI_PACK_TABLE
ACI_PACK_SIZE Number of entries to send 500
ACI_PACK_KEY_LENGTH Length of the key to use from the ACI_PACK_TABLE (e.g. MANDT + MATNR) 13

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!

  • Transaction: /ASADEV/ACI
  • Select the Connection and hit enter
  • Select Upload Type: P
  • Select Replication Object 
  • Select a Servergroup (this is mandatory)

Demos and slides

Demo videos

Scroll to Top