Docs / Connectors / Microsoft Fabric
Microsoft Fabric Connector
The ASAPIO Integration Add-on connects SAP S/4HANA and SAP ECC directly to Microsoft Fabric — writing SAP business data in real time to Lakehouse tables, OneLake files, or via Open Mirroring into Fabric mirrored databases. The connector uses native SAP application-layer integration and requires no middleware or database-layer access.
Overview
| Component | Type |
|---|---|
| ASAPIO Integration Add-on – Framework | Base component (required) |
| ASAPIO Integration Add-on – Connector for Microsoft® Azure® | Required add-on (same package as Azure connector) |
| Property | Value |
|---|---|
| Connection Instance Cloud Type | FABRIC |
| Error Mapping | HTTP 201 → Success, HTTP 202 → Success |
Prerequisites
An active Microsoft Azure subscription (for OAuth or Managed Identity authentication) and a Microsoft Fabric workspace are required. The ASAPIO Integration Add-on Connector for Microsoft Azure must be installed before configuring the Fabric connector.
SAP Connection Setup (in SAP Gui)
The connection setup in SAP GUI is a required first step for both the Event Studio and SAP GUI configuration paths. Event Studio uses the connection defined here — it cannot be created from within Event Studio.
Step 1 — Create RFC Destinations (SM59)
Create two HTTP type G RFC destinations:
- OAuth token endpoint: host
login.microsoftonline.com, path prefix<tenantID>/oauth2/token. Enable SSL. - OneLake endpoint: host
onelake.dfs.fabric.microsoft.com. Enable SSL.
Step 2 — Import SSL Certificate (STRUST)
In transaction STRUST, import the Microsoft TLS certificate into the SSL Client Certificate list and add it to the Certificate List used by both RFC destinations.
Step 3 — Import BC-Set (SCPR20)
Import the ASAPIO Azure framework BC-Set (same as the Azure connector):
- BC-Set:
/ASADEV/ACI_BCSET_FRAMEWORK_AZ
Step 4 — Configure Cloud Adapter (SPRO)
In SPRO → ASAPIO Cloud Integrator → Maintain Cloud Adapter, set:
- Cloud Type:
FABRIC - Error Mapping: HTTP 201 → Success, HTTP 202 → Success
Step 5 — Create Connection Instance
In transaction /ASADEV/ACI_SETTINGS, create a connection instance pointing to the OneLake RFC destination with Cloud Type FABRIC. Set the OAuth default values:
| Default Attribute | Value / Description |
|---|---|
AZURE_CLIENT_ID | Application (client) ID from the Azure App Registration |
TOKEN_DESTINATION | RFC destination name for the OAuth token endpoint |
Store the Azure App Registration client secret in the SAP Secure Store (transaction /ASADEV/SCI_TPW).
Create an outbound interface (Event Studio)
Prerequisite: The connection instance must already be set up in SAP GUI (see SAP Connection Setup above) before Event Studio can be used.
Event Studio is the web-based configuration interface for the ASAPIO Integration Add-on. To configure a Fabric replication event:
- Open Event Studio and select the backend SAP system.
- Go to the Data Catalog to find the data object to replicate.
- In the Available Standard Events table, click Deploy, or use Create to define a new event.
- Select the Fabric connection from the Connection dropdown — the Header Fields table auto-populates with the connection's default attributes.
- Set the required header attributes for the target Fabric destination (Open Mirroring, Lakehouse, or custom — see sections below).
- Save and activate the event.
After creating the interface in Event Studio, configure the target-specific settings: Open Mirroring, Lakehouse, Managed Identity, Change Pointers, or Packed Load.
Open Mirroring
Open Mirroring replicates SAP data directly into a Fabric Mirrored Database in real time. Changes are delivered as incremental PATCH operations in Parquet format, enabling continuous sync without scheduled jobs.
Header Attributes
Configure the following header attributes on the outbound object for Open Mirroring targets. Header attributes apply equally when configuring via Event Studio or SAP GUI.
| Header Attribute | Value / Description | Required |
|---|---|---|
ACI_HTTP_METHOD | PATCH | Yes |
AZURE_SERVICE_TYPE | MIRRORING | Yes |
FABRIC_MIRROR_ID | Mirroring item ID from the Fabric workspace | Yes |
FABRIC_MIRROR_TABLE | Target table name in the mirrored database | Yes |
FABRIC_WORKSPACE | Fabric workspace ID (GUID) | Yes |
Formatter
Open Mirroring uses the Parquet formatter: /ASADEV/ACI_PARQUET_FORMATTER. This serializes SAP data into the Parquet column format expected by Fabric Open Mirroring.
Create Outbound Object (SAP GUI)
In transaction /ASADEV/68000202, select the connection instance and add an entry under Outbound Objects. Set:
- Extraction FM:
/ASADEV/ACI_GEN_VIEW_EXTRACTOR - Formatting FM:
/ASADEV/ACI_PARQUET_FORMATTER - Header Attributes: as listed above
Event Linkage (SWE2)
Register the event trigger in transaction SWE2:
- Receiver Function Module:
/ASADEV/ACI_EVENTS_TRIGGER - Tick Type linkage Activated
Lakehouse — Custom Data Product
For writing to Fabric Lakehouse files (CSV or Parquet), configure the following header attributes:
| Header Attribute | Value / Description | Required |
|---|---|---|
ACI_HTTP_METHOD | PATCH | Yes |
FABRIC_FILE_PATH | Target file path within the Lakehouse (e.g., /Files) | Yes |
FABRIC_LAKEHOUSE | Lakehouse item ID (GUID) from the Fabric workspace | Yes |
FABRIC_WORKSPACE | Fabric workspace ID (GUID) | Yes |
Managed Identity
When SAP runs on an Azure virtual machine with a managed identity, you can use the managed identity to authenticate against Fabric without a client secret.
For Managed Identity, the connection RFC destination must use HTTP (not HTTPS) to the local metadata endpoint. Set the following defaults on the connection instance:
| Default Attribute | Value |
|---|---|
AZURE_AUTH_TYPE | MANAGED_IDENTITY |
AZURE_SERVICE_TYPE | lakehouse |
TOKEN_DESTINATION | RFC destination for the MSI metadata endpoint |
Change Pointer Header
The change pointer header enables efficient incremental data delivery. When activated, each message includes metadata about which record changed and when. This allows the Fabric notebook to process only new or changed records without re-reading the full dataset.
Activate the change pointer header by setting ACI_CP_INFO=X on the outbound object. The following fields are automatically added to each message:
| Field | Description |
|---|---|
ACICPIDENT | Change pointer identifier |
ACITABNAME | Source table name |
ACITABKEY | Key of the changed record |
ACICRETIME | Timestamp when the change pointer was created |
ACIACTTIME | Timestamp of the business event |
ACICDCHGID | Change document ID |
Packed Load
Packed Load splits large data sets into configurable packages and streams them sequentially to Fabric. This is used for initial loads or large periodic sync jobs.
| Header Attribute | Value / Description | Example |
|---|---|---|
ACI_PACK_TABLE | Table for key fields (typically the header table) | MARA |
ACI_PACK_SIZE | Records per delivery package | 500 |
ACI_PACK_KEY_LENGTH | Total length of key fields | 13 |
ACI_PACK_WHERE_COND | Optional WHERE condition on ACI_PACK_TABLE | — |
ACI_PACK_RETRY_TIME | Seconds before retrying server group resource acquisition | 300 |
ACI_PACK_BDCP_COMMIT | Generate change pointers per entry (~50% performance impact) | X |
For Open Mirroring packed load, the extraction FM is /ASADEV/ACI_GEN_PDVIEW_EXTRACT and the formatter is /ASADEV/ACI_PARQUET_FORMATTER with Load Type: Packed Load.
Execute the initial load from transaction /ASADEV/ACI: select the connection, set Upload Type to P, select the replication object, and specify a server group.
Optimized Incremental Load
The optimized incremental load pattern uses two outbound objects working together:
- The first object runs on event trigger and writes change pointers only (no payload). This is very fast and low-impact.
- The second object runs periodically (batch job) and collects all pending change pointers, packs them, and sends the full payload to Fabric.
This approach decouples real-time change capture from the heavier data extraction, reducing load on the SAP system during peak times.
Note: The ASAPIO monitor may show "500 lock object could not be set" messages during packed load execution. This is expected behavior — it indicates that a parallel process is holding the lock and the current process will retry. These errors do not indicate data loss.
Predefined Content
ASAPIO ships predefined data products for the most common SAP business objects. These are ready to deploy without custom configuration and cover both S/4HANA and ECC systems.
S/4HANA Predefined Objects (28)
| Business Object | CDS View | Payload Design Name |
|---|---|---|
| GL Documents | I_JournalEntry | GL Document |
| GL Document Items | I_JournalEntryItem | GL Document Item |
| Sales Orders | I_SalesOrder | Sales Order Header |
| Sales Order Items | I_SalesOrderItem | Sales Order Item |
| Purchase Orders | I_PurchaseOrder | Purchase Order Header |
| Purchase Order Items | I_PurchaseOrderItem | Purchase Order Item |
| Purchase Requisitions | I_PurchaseRequisitionItem | Purchase Requisition Item |
| Deliveries | I_DeliveryDocument | Delivery |
| Delivery Items | I_DeliveryDocumentItem | Delivery Item |
| Billing Documents | I_BillingDocument | Billing Document |
| Billing Document Items | I_BillingDocumentItem | Billing Document Item |
| Material Masters | I_Product | Material Master |
| Material Plant Data | I_ProductPlant | Material Plant |
| Customers (Business Partners) | I_BusinessPartner | Business Partner |
| Suppliers (Business Partners) | I_BusinessPartner | Business Partner Supplier |
| Production Orders | I_ProductionOrder | Production Order |
| Production Order Operations | I_ProductionOrderOperation | Production Order Operation |
| Cost Centers | I_CostCenter | Cost Center |
| Profit Centers | I_ProfitCenter | Profit Center |
| Controlling Documents | I_ControllingDocument | Controlling Document |
| Asset Master | I_MasterFixedAsset | Asset Master |
| Asset Transactions | I_FixedAssetPostingValue | Asset Transaction |
| Work Centers | I_WorkCenter | Work Center |
| Plant Maintenance Orders | I_MaintenanceOrder | PM Order |
| Service Orders | I_ServiceOrder | Service Order |
| Quality Notifications | I_QualityNotification | Quality Notification |
| Inspection Lots | I_InspectionLot | Inspection Lot |
| Stock Overview | I_MatlStkInAcctMod | Stock Overview |
ECC Predefined Objects (26)
| Business Object | Leading Table |
|---|---|
| GL Documents | BKPF |
| GL Document Items | BSEG |
| Sales Orders | VBAK |
| Sales Order Items | VBAP |
| Purchase Orders | EKKO |
| Purchase Order Items | EKPO |
| Purchase Requisitions | EBAN |
| Deliveries | LIKP |
| Delivery Items | LIPS |
| Billing Documents | VBRK |
| Billing Document Items | VBRP |
| Material Masters | MARA |
| Material Plant Data | MARC |
| Customers | KNA1 |
| Suppliers | LFA1 |
| Production Orders | AUFK |
| Cost Centers | CSKS |
| Controlling Documents | COEP |
| Asset Master | ANLA |
| Asset Transactions | ANEK |
| Work Centers | CRHD |
| Plant Maintenance Orders | AUFK |
| Quality Notifications | QMEL |
| Inspection Lots | QALS |
| Stock Overview | MARD |
| Batch Master | MCH1 |
Fabric Notebook
The ASAPIO Fabric connector ships example PySpark notebooks for processing the delivered SAP data. The notebook reads SAP CSV files from OneLake, merges them into Delta tables, and enables incremental processing using the change pointer metadata.
Notebook Variables
| Variable | Description |
|---|---|
path_to_csv_files | OneLake path to the SAP CSV files (e.g., Files/SAP/MaterialMaster/) |
path_to_delta_table | Lakehouse Delta table path to merge data into |
pattern | File name pattern for filtering incoming files (e.g., *.csv) |
pattern_with_groups | Regex pattern with named capture groups for parsing filename metadata |