Docs / Outbound Messaging

Outbound Messaging Overview

Outbound Messaging is the delivery engine of ASAPIO: it listens to SAP business changes, builds payloads, and dispatches events to your configured target platform with enterprise-grade control over retries, sequencing, and transformation.

Concept

Every outbound process follows the same conceptual chain, regardless of connector or event type:

Trigger -> Enrichment -> Payload -> Connector -> Delivery

A trigger in SAP starts processing. ASAPIO optionally enriches business context, builds the payload (simple or model-based), applies mappings and filters, then publishes to the selected connector endpoint.

Architecture diagram of the outbound communication flow
Architecture diagram — outbound communication flow through the ASAPIO Integration Add-on

Guided Step-by-Step

Define the integration object

Create or select the outbound object, choose extraction/format strategy, and assign the integration package context.

Choose the trigger model

Bind the object to a business trigger such as BOR event, BTE, change document, IDoc, RAP, or a custom ABAP call.

Design and refine payload behavior

Apply mappings, where-clause filters, field conversions, hierarchy adjustments, and optional CloudEvents formatting.

Set connector and delivery controls

Maintain endpoint attributes, retries, sequencing, and load strategy (incremental, packed, or reprocessing) for robust delivery.

Configuration Paths: SAP GUI and Event Studio

ASAPIO supports both implementation styles. They use the same backend object model and can coexist in one landscape.

PathBest ForTypical Activities
SAP GUIFine-grained backend customizing and classic operationsObject creation in /ASADEV/ACI_SETTINGS, SWE2 linkages, header attributes, scheduler and retry settings
Event StudioGuided, visual modeling and team collaborationData Catalog exploration, visual payload design, deployment-oriented configuration aligned with backend fields

Important: Event Studio is not a separate runtime. It accelerates design and setup while deploying into the same ASAPIO outbound runtime used by SAP GUI-based customizing.

Trigger Categories

Available trigger categories include SAP Business Object events, BTEs, Change Documents, IDoc events, RAP events, and custom ABAP trigger calls.

SAP Business Object Events

Use transaction SWO3 to inspect available objects and events. Typical objects:

Object NameObject Type
MaterialBUS1001
Sales OrderBUS2032
Purchase OrderBUS2012
DeliveryLIKP
Business PartnerBUS1006
SWO3 Business Object Browser showing available SAP Business Objects
SWO3 — Business Object Browser showing available SAP Business Objects

To discover event triggers, enable traces in SWELS and inspect events in SWEL after executing representative business transactions.

SWELS activating event trace with restriction to a user
SWELS — activating event trace, restricted to a user
SWEL event trace log showing triggered Object Type and Event
SWEL — event trace log showing the triggered Object Type / Event
SWEL event trace detail view
SWEL — event trace detail

Business Transaction Events (BTE)

For modules where BOR events are not triggered directly, use BTE integration in FIBF:

  1. Create Product (Settings -> Products).
  2. Copy sample function module for the BTE and implement trigger logic.
  3. Register FM in P/S Modules customizing.
FIBF Info System listing available Business Transaction Events
FIBF — Info System listing available Business Transaction Events
FIBF BTE search results filtered for object BKPF
FIBF — BTE search results filtered for object BKPF (Accounting Document)
FIBF BTEs 1030 and 1050 used for accounting document creation
FIBF — BTEs 1030 and 1050 triggered on accounting document creation
FIBF Settings Products, creating a new BTE product
FIBF — Settings > Products, creating a new BTE product
FIBF Product definition detail screen
FIBF — Product definition detail screen
FIBF sample function module used as a copy template for the BTE
FIBF — sample function module used as a copy template for the BTE
FIBF Settings P/S Modules, registering the custom FM to the BTE
FIBF — Settings > P/S Modules, registering the custom FM to the BTE

Filtering Events

Standard Check FM

Use /ASADEV/ACI_EVENTS_CHECK and maintain BOR attribute-based header attributes (for example BOR_ATTRIBUTE_MaterialGroup).

SWO1 locating the Business Object and its BOR attribute
SWO1 — locating the Business Object and its BOR attribute
ASAPIO customizing Header Attribute BOR_ATTRIBUTE configuration
ASAPIO customizing — Header Attribute BOR_ATTRIBUTE_<name> configuration
Example filter value for BOR_ATTRIBUTE_MaterialGroup
ASAPIO customizing — example filter value for BOR_ATTRIBUTE_MaterialGroup
SWE2 adding the Check Function Module to Event Linkage customizing
SWE2 — adding the Check Function Module to Event Linkage customizing

Custom Check FM

Create custom FM with same interface as standard check FM and maintain it in Event Linkage.

Custom check function module implementing the standard check FM interface
Custom check function module implementing the /ASADEV/ACI_EVENTS_CHECK interface

BAdI-Based Filtering

Implement /ASADEV/TRIGGER_BADI method /ASADEV/TRIGGER_IF~SET_BDCP_LINES to modify/clear change pointer lines before processing.

BAdI TRIGGER_BADI example filter logic clearing BDCP lines
BAdI /ASADEV/TRIGGER_BADI — example filter logic clearing BDCP lines
BAdI implementation Instance and Object filter values for SET_BDCP_LINES
BAdI implementation — Instance and Object filter values for SET_BDCP_LINES
BAdI implementation adding the custom implementing class
BAdI implementation — adding the custom implementing class

Payload Designer Where Clause

For extraction-level filtering, use where conditions in Payload Designer.

Payload Designer WHERE clause on a table
Payload Designer — WHERE clause configured on a table

Set-up Outbound Messaging

Create Message Type

  1. Create message type in WE81.
  2. Activate message type in BD50.
WE81 creating a new Message Type
WE81 — creating a new Message Type
BD50 activating the Message Type
BD50 — activating the Message Type

Simple Notifications (Via SAP GUI)

  1. Create outbound object in /ASADEV/ACI_SETTINGS with extraction FM /ASADEV/ACI_SIMPLE_NOTIFY.
  2. Set endpoint header attribute (for example AZURE_TOPIC).
  3. Create SWE2 linkage to /ASADEV/ACI_EVENTS_TRIGGER.
Outbound Object configuration using ACI_SIMPLE_NOTIFY
Outbound Object configuration using /ASADEV/ACI_SIMPLE_NOTIFY
Header Attributes configuring AZURE_TOPIC as the target endpoint
Header Attributes — configuring AZURE_TOPIC as the target endpoint
SWE2 Business Object Event Linkage to the ASAPIO receiver function module
SWE2 — Business Object Event Linkage to the ASAPIO receiver function module

Message Builder (DB/CDS View Payload)

  1. Create extraction view in SE11 or CDS tooling.
  2. Configure outbound object with /ASADEV/ACI_GEN_VIEW_EXTRACTOR and /ASADEV/ACI_GEN_VIEW_FORMATTER.
  3. Maintain connector-specific and optional global header attributes.
Header AttributePurposeExample
AZURE_TOPICAzure topic/queue/event hub targetMaterialMaster
ACI_ADD_LOGSYSAdd logical system to payload rootX
SWITCH_OFF_LASTRUN_TIMESTAMPPerformance optimization in high frequency scenariosX
ACI_CP_INFOInclude change pointer fields in payloadX
SE11 example database view for Material Master extraction
SE11 — example database view for Material Master extraction
Outbound Object configured with the generic view extractor and formatter
Outbound Object configured with /ASADEV/ACI_GEN_VIEW_EXTRACTOR / _FORMATTER
Header Attributes example values AZURE_TOPIC ACI_ADD_LOGSYS SWITCH_OFF_LASTRUN_TIMESTAMP
Header Attributes — example values for AZURE_TOPIC, ACI_ADD_LOGSYS, SWITCH_OFF_LASTRUN_TIMESTAMP
Header Attributes ACI_CP_INFO configuration for change pointer fields
Header Attributes — ACI_CP_INFO configuration for change-pointer fields
SWE2 Business Object Event Linkage for the Message Builder configuration
SWE2 — Business Object Event Linkage for the Message Builder configuration
Outbound Object configuration using a CDS View Entity as the extraction view
Outbound Object configuration using a CDS View Entity as the extraction view (release 9.32504)

Event Studio Flow

Use Event Studio Data Catalog for object selection, payload design, and deployment. Event Studio uses the same backend object model; deploy-time settings map to SAP GUI customizing fields.

How to Change the Payload

Field Mapping TABLE_RENAME FIELD_RENAME configuration example
Field Mapping — TABLE_RENAME / FIELD_RENAME configuration example
Field Mapping APPEND_TABLE with a conversion class and method
Field Mapping — APPEND_<TABLE> with a conversion class/method
Conversion method interface options string vs raw return type
Conversion method interface options — string vs. raw return type
Field Mapping SKIP_FIELD configuration example
Field Mapping — SKIP_FIELD configuration example
Header Attributes FIELD_CAMELCASE_ACTIVE configuration
Header Attributes — FIELD_CAMELCASE_ACTIVE configuration
Field Mapping TABLE_PARENT configuration for parent child hierarchy
Field Mapping — TABLE_PARENT configuration for parent/child hierarchy
Field Mapping CARDINALITY_FUNCTIONALITY set to 1 or star
Field Mapping — CARDINALITY_FUNCTIONALITY set to 1 or *
Header Attributes DISABLE_CONVERSION_EXIT configuration
Header Attributes — DISABLE_CONVERSION_EXIT configuration
Header Attributes ENABLE_MESSAGE_ID configuration on the outbound object
Header Attributes — ENABLE_MESSAGE_ID configuration (release 9.32507)
Default Values applying ENABLE_MESSAGE_ID across all Outbound Objects of an Instance
Default Values — applying ENABLE_MESSAGE_ID across all Outbound Objects of an Instance
Table storing the unique message ID and log info
Table /ASADEV/LGCP_LNK — storage location for the unique message ID and log info

Change Pointer Enhancements

Release 9.32405 introduced change indicator mapping (I/U/D) by event naming convention and optional mapping table /ASADEV/ACI_CP_I.

SM30 table ACI_CP_I mapping event names to change indicators I U D
SM30 — table /ASADEV/ACI_CP_I mapping event names to change indicators (I/U/D)
BAdI TRIGGER_BADI implementation guidelines and method signature
BAdI /ASADEV/TRIGGER_BADI — implementation guidelines and method signature
BAdI TRIGGER_BADI example ATP key translation use case
BAdI /ASADEV/TRIGGER_BADI — example key-translation use case

Batch Job (Job Processed Messaging)

  1. Set message type as async in /ASADEV/ACI_SYNC (Sync Off).
  2. Create variant in /ASADEV/ACI.
  3. Schedule /ASADEV/AMR_REPLICATOR via SM36.
ACI_SYNC configuring the message type for job processed messaging
/ASADEV/ACI_SYNC — configuring the message type for job-processed (synchronous) messaging
ACI_SYNC configuration detail
/ASADEV/ACI_SYNC — configuration detail
ACI defining and saving a replication variant Upload Type I
/ASADEV/ACI — defining and saving a replication variant (Upload Type I)
SM36 scheduling AMR_REPLICATOR with the saved variant
SM36 — scheduling /ASADEV/AMR_REPLICATOR with the saved variant
ACI_MONITOR trace output after running the scheduled job
/ASADEV/ACI_MONITOR — trace output after running the scheduled job

Packed Load / Initial Load

Use load type Packed Load for large-volume extraction and reprocessing.

Header AttributeDescription
ACI_PACK_BDCP_COMMITCreate change pointers per packed entry
ACI_PACK_TABLEHeader table used for key slicing
ACI_PACK_RETRY_TIMEResource retry timeout in seconds
ACI_PACK_WHERE_CONDExtraction constraint condition
ACI_PACK_SIZEPackage size
ACI_PACK_KEY_LENGTHKey length for chunking
SE11 example database view for packed or initial load extraction
SE11 — example database view for packed/initial load extraction
Header Attributes ACI_PACK configuration for Packed Load
Header Attributes — ACI_PACK_* configuration for Packed/Initial Load
ACI Max Threads Thread Buffer and WHERE condition options release 9.32504
/ASADEV/ACI — Max. Threads, Thread Buffer and WHERE condition options (release 9.32504/SP11)

Packed Reprocessing

Use a reprocessing object with Load Type = Packed Load and maintain Full Obj. Reference to the incremental object. For reprocessing, set ACI_PACK_TABLE = BDCP2 and typically ACI_PACK_KEY_LENGTH = 43.

Outbound Object configuration Load Type Packed Load with Full Obj Reference for reprocessing
Outbound Object configuration — Load Type Packed Load with Full Obj. Reference for reprocessing
Header Attributes ACI_PACK_TABLE BDCP2 ACI_PACK_KEY_LENGTH 43 for reprocessing
Header Attributes — ACI_PACK_TABLE = BDCP2, ACI_PACK_KEY_LENGTH = 43 for reprocessing

Immediate Retry Feature

Since release 9.32410:

Default Values ACI_IMMEDIATE_RETRIES and ACI_RETRY_WAIT_TIME at connection level
Default Values — ACI_IMMEDIATE_RETRIES and ACI_RETRY_WAIT_TIME at connection level
Header Attributes ACI_IMMEDIATE_RETRIES ACI_RETRY_WAIT_TIME at object level
Header Attributes — ACI_IMMEDIATE_RETRIES / ACI_RETRY_WAIT_TIME at object level (overrides connection default)

Custom Triggers, Extractors, and Formatters

For advanced scenarios, implement custom events and trigger logic via SWU_EWCD, user exits, BAdIs, or SLT enhancements. This is especially useful where no standard SAP trigger exists.

SWU_EWCD creating a custom event choosing package and namespace
SWU_EWCD — creating a custom event, choosing package and namespace
SWU_EWCD custom event creation wizard step continuation
SWU_EWCD — custom event creation wizard, step continuation
SWU_EWCD custom event creation result
SWU_EWCD — custom event creation result
SWO1 creating a subtype of BUS2093 with created and changed events
SWO1 — creating a subtype of BUS2093 with created/changed events
SWEC Change Document configuration linking events to the BUS2093 subtype
SWEC — Change Document configuration linking events to the BUS2093 subtype
SWEC Event Container configuration
SWEC — Event Container /ASADEV/ACI_CPIDENT_TRANSFER configuration
CMOD Enhancement MBCF0007 EXIT_SAPMM07R_001 implementation
CMOD — Enhancement MBCF0007 / EXIT_SAPMM07R_001 implementation to trigger created/changed events
BAdI implementation example triggering a custom Goods Movement event
BAdI implementation example — triggering a custom Goods Movement (BUS2017) event

Authorization and Global Control Flags

Release 9.32510/SP12 adds global controls:

Maintain global constants in /ASADEV/ACI_PART and values in /ASADEV/ACI_PAR.