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.
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.
| Path | Best For | Typical Activities |
|---|---|---|
| SAP GUI | Fine-grained backend customizing and classic operations | Object creation in /ASADEV/ACI_SETTINGS, SWE2 linkages, header attributes, scheduler and retry settings |
| Event Studio | Guided, visual modeling and team collaboration | Data 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 Name | Object Type |
|---|---|
| Material | BUS1001 |
| Sales Order | BUS2032 |
| Purchase Order | BUS2012 |
| Delivery | LIKP |
| Business Partner | BUS1006 |
To discover event triggers, enable traces in SWELS and inspect events in SWEL after executing representative business transactions.
Business Transaction Events (BTE)
For modules where BOR events are not triggered directly, use BTE integration in FIBF:
- Create Product (Settings -> Products).
- Copy sample function module for the BTE and implement trigger logic.
- Register FM in P/S Modules customizing.
Filtering Events
Standard Check FM
Use /ASADEV/ACI_EVENTS_CHECK and maintain BOR attribute-based header attributes (for example BOR_ATTRIBUTE_MaterialGroup).
BOR_ATTRIBUTE_<name> configuration
BOR_ATTRIBUTE_MaterialGroup
Custom Check FM
Create custom FM with same interface as standard check FM and maintain it in Event Linkage.
/ASADEV/ACI_EVENTS_CHECK interfaceBAdI-Based Filtering
Implement /ASADEV/TRIGGER_BADI method /ASADEV/TRIGGER_IF~SET_BDCP_LINES to modify/clear change pointer lines before processing.
/ASADEV/TRIGGER_BADI — example filter logic clearing BDCP lines
SET_BDCP_LINES
Payload Designer Where Clause
For extraction-level filtering, use where conditions in Payload Designer.
Set-up Outbound Messaging
Create Message Type
- Create message type in WE81.
- Activate message type in BD50.
Simple Notifications (Via SAP GUI)
- Create outbound object in /ASADEV/ACI_SETTINGS with extraction FM
/ASADEV/ACI_SIMPLE_NOTIFY. - Set endpoint header attribute (for example
AZURE_TOPIC). - Create SWE2 linkage to
/ASADEV/ACI_EVENTS_TRIGGER.
/ASADEV/ACI_SIMPLE_NOTIFY
AZURE_TOPIC as the target endpoint
Message Builder (DB/CDS View Payload)
- Create extraction view in SE11 or CDS tooling.
- Configure outbound object with
/ASADEV/ACI_GEN_VIEW_EXTRACTORand/ASADEV/ACI_GEN_VIEW_FORMATTER. - Maintain connector-specific and optional global header attributes.
| Header Attribute | Purpose | Example |
|---|---|---|
AZURE_TOPIC | Azure topic/queue/event hub target | MaterialMaster |
ACI_ADD_LOGSYS | Add logical system to payload root | X |
SWITCH_OFF_LASTRUN_TIMESTAMP | Performance optimization in high frequency scenarios | X |
ACI_CP_INFO | Include change pointer fields in payload | X |
/ASADEV/ACI_GEN_VIEW_EXTRACTOR / _FORMATTER
AZURE_TOPIC, ACI_ADD_LOGSYS, SWITCH_OFF_LASTRUN_TIMESTAMP
ACI_CP_INFO configuration for change-pointer fields
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
- Rename table/field:
TABLE_RENAME,FIELD_RENAME - Append new field:
APPEND_<TABLE> - Convert values:
FIELD_CONVERSIONusing/ASADEV/IF_ACI_CONVERSION - Skip field:
SKIP_FIELD - Camel case: header
FIELD_CAMELCASE_ACTIVE = X - Change hierarchy:
TABLE_PARENT - Change cardinality:
CARDINALITY_FUNCTIONALITY - Disable conversion exits:
DISABLE_CONVERSION_EXIT = X - Unique message id:
ENABLE_MESSAGE_ID = X
TABLE_RENAME / FIELD_RENAME configuration example
APPEND_<TABLE> with a conversion class/method
SKIP_FIELD configuration example
FIELD_CAMELCASE_ACTIVE configuration
TABLE_PARENT configuration for parent/child hierarchy
CARDINALITY_FUNCTIONALITY set to 1 or *
DISABLE_CONVERSION_EXIT configuration
ENABLE_MESSAGE_ID configuration (release 9.32507)
ENABLE_MESSAGE_ID across all Outbound Objects of an Instance
/ASADEV/LGCP_LNK — storage location for the unique message ID and log infoChange Pointer Enhancements
Release 9.32405 introduced change indicator mapping (I/U/D) by event naming convention and optional mapping table /ASADEV/ACI_CP_I.
/ASADEV/ACI_CP_I mapping event names to change indicators (I/U/D)
/ASADEV/TRIGGER_BADI — implementation guidelines and method signature
/ASADEV/TRIGGER_BADI — example key-translation use caseBatch Job (Job Processed Messaging)
- Set message type as async in
/ASADEV/ACI_SYNC(Sync Off). - Create variant in
/ASADEV/ACI. - Schedule
/ASADEV/AMR_REPLICATORvia SM36.
/ASADEV/ACI_SYNC — configuring the message type for job-processed (synchronous) messaging
/ASADEV/ACI_SYNC — configuration detail
/ASADEV/ACI — defining and saving a replication variant (Upload Type I)
/ASADEV/AMR_REPLICATOR with the saved variant
/ASADEV/ACI_MONITOR — trace output after running the scheduled jobPacked Load / Initial Load
Use load type Packed Load for large-volume extraction and reprocessing.
| Header Attribute | Description |
|---|---|
ACI_PACK_BDCP_COMMIT | Create change pointers per packed entry |
ACI_PACK_TABLE | Header table used for key slicing |
ACI_PACK_RETRY_TIME | Resource retry timeout in seconds |
ACI_PACK_WHERE_COND | Extraction constraint condition |
ACI_PACK_SIZE | Package size |
ACI_PACK_KEY_LENGTH | Key length for chunking |
ACI_PACK_* configuration for Packed/Initial Load
/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.
ACI_PACK_TABLE = BDCP2, ACI_PACK_KEY_LENGTH = 43 for reprocessingImmediate Retry Feature
Since release 9.32410:
ACI_IMMEDIATE_RETRIES: number of immediate retriesACI_RETRY_WAIT_TIME: wait time in seconds between retries
ACI_IMMEDIATE_RETRIES and ACI_RETRY_WAIT_TIME at connection level
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.
/ASADEV/ACI_CPIDENT_TRANSFER configuration
EXIT_SAPMM07R_001 implementation to trigger created/changed events
Authorization and Global Control Flags
Release 9.32510/SP12 adds global controls:
ACI_AUTH_GLOBAL_CP_WRITEfor CP write authorization overrideACI_AUTH_GLOBAL_IDOC_PORTfor IDoc port authorization override
Maintain global constants in /ASADEV/ACI_PART and values in /ASADEV/ACI_PAR.