SmartApps Connect

Connected on day one: SAP, Oracle, the lakes and the applications you run.

An app reads its rows in place through the same connectors the rest of the platform uses, so building starts the day a system is connected.

Your systemany connected sourceREAD IN PLACEreleased read interfaces, filtered, columns onlychange capture where the system offers ithistory and aggregates via the lakeWRITE BACKreleased write interface, acknowledgeddecision recorded beside the writeWHAT THE APP CAN DOscreens on live rows within secondscriteria tested on real recordswrites confirmed, logged, reconciled
The same shape for every system: reads in place through released interfaces, optional change capture, writes through released interfaces with an acknowledgement stored in the log.
60
connectors: ERPs, planning, warehouses, lakes, databases, files, streams, applications
connector library
3
read paths: in place, change capture, prepared history
product
1
write rule everywhere: released interface, acknowledgement stored
product
2021
since when the SAP-to-planning loop has run in production, reading in place and writing back
production
22 days
from contract to production for the showcase estate, 5 systems connected in the first 4
showcase estate
SAP

SAP S/4HANA and SAP ECC

Read through released interfaces, write through BAPIs and IDocs, stay inside SAP's published guidance.

Screens on SAP objects read the tables in place through the SAP connector's released read interfaces: the handler sends the filter and the columns, SAP returns the rows. Where the basis team allows it, change capture brings changed rows to a screen within minutes. Writes go through released BAPIs and IDocs, so a confirmed delivery date on a schedule line, a released requisition, a usage decision on an inspection lot or a new vendor arrive in SAP the way SAP expects them, with a document number back.

The connector stays inside SAP's published guidance for third-party access (Notes 3255746, 382318 and 2971304) and leaves the ODP RFC interface out of its design. On SAP ECC the same objects live in the classic tables: MATDOC becomes MKPF and MSEG, ACDOCA becomes BKPF and BSEG; the BAPIs are the same. ERP extraction: SAP and Oracle has the methods table and the extraction statement.

SAP S/4HANAERPREAD IN PLACEtable read via released function moduleschange capture: change pointers, CDS extractorshistory at scale from the lake landingWRITE BACKBAPIs and IDocs, RETURN checkeddocument number stored in the logWHAT THE APP CAN DOlate lines, blocked invoices, quality notifications livevendor, material, price changes written backSOX-grade log of every write

Objects apps read most, and how they are written

ObjectRead in place fromWritten throughOn SAP ECC
Purchase order lineEKKO · EKPO · EKET · EKBEBAPI_PO_CHANGE · BAPI_PO_CREATE1same tables
Supplier masterLFA1 · LFB1 · LFM1 (business partner in S/4)BAPI_BUPA_CREATE_FROM_DATA · BAPI_VENDOR_*LFA1/LFB1/LFM1 vendor master, XK01 via BAPI
Material masterMARA · MARC · MAKTBAPI_MATERIAL_SAVEDATAsame tables
Stock positionMARD · MCHB · MATDOC_EXTRACTBAPI_GOODSMVT_CREATE (transfer, scrap, block)MARD · MCHB · MBEW
Supplier invoiceRBKP · RSEG (supplier invoices)BAPI_INCOMINGINVOICE_RELEASE · BAPI_INCOMINGINVOICE_CREATEsame tables
Quality notificationQMEL · QMFE · QMMABAPI_QUALNOT_CREATE · BAPI_QUALNOT_ADD_DATA · BAPI_QUALNOT_MODIFY_DATAsame tables
Journal lineACDOCA (universal journal)BAPI_ACC_DOCUMENT_POST · BAPI_ACC_DOCUMENT_REV_POSTBKPF and BSEG
Price conditionA004 · A005 · KONP (condition records) · PRCD_ELEMENTSBAPI_PRICES_CONDITIONSKONV for conditions

What the basis team sets up

Apps on SAP S/4HANA

36 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

Oracle

Oracle Fusion Cloud and Oracle E-Business Suite

REST resources and BI Cloud Connector for Fusion; JDBC reads and open interfaces for EBS.

On Oracle Fusion Cloud the handler reads objects through the released REST resources, filtered and with the columns the screen needs, and reads bulk history through BI Cloud Connector extracts landed by the Backbone. Writes use the same REST resources under the integration user's data-security profile, so a change order on a purchase order, a receipt, an invoice hold released or a new supplier site lands in Fusion through its own front door with the resource ID back.

On Oracle E-Business Suite the tables are read in place through JDBC with a read-only user, changed rows by their last-update columns, and writes go through the open interface tables and public APIs, run by a concurrent program, with the request ID stored. The EBS connector page lists the interface tables per object.

Oracle Fusion CloudERPREAD IN PLACEREST resources: filtered GET, columns onlyBICC extracts for history at scaleFusion business events for changesWRITE BACKREST POST and PATCH, ID returnedrecorded beside the decisionWHAT THE APP CAN DOorders, receipts, invoices and suppliers liveapprovals returned to Fusion's own stepsthe same app on EBS with the interface tables

Objects apps read most, and how they are written

ObjectRead in place fromWritten throughOn Oracle E-Business Suite
Purchase order lineProcurement REST: purchaseOrders · lines · schedulesPATCH purchaseOrders (change order) · POST purchaseOrdersPO_HEADERS_ALL · PO_LINES_ALL · PO_LINE_LOCATIONS_ALL (write: PO_CHANGE_API1_S)
Supplier masterProcurement REST: suppliers · supplierSitesPOST suppliers · PATCH supplierSitesAP_SUPPLIERS · AP_SUPPLIER_SITES_ALL (write: AP_SUPPLIERS_INT)
Material masterProduct Hub REST: itemsV2POST/PATCH itemsV2MTL_SYSTEM_ITEMS_B (write: MTL_SYSTEM_ITEMS_INTERFACE)
Stock positionInventory REST: inventoryOnhandBalances · inventoryItemLotsPOST inventoryTransactions (transfer, scrap, status)MTL_ONHAND_QUANTITIES_DETAIL (write: MTL_TRANSACTIONS_INTERFACE)
Supplier invoicePayables REST: invoicesPOST invoices · PATCH invoiceHoldsAP_INVOICES_ALL · AP_HOLDS_ALL (write: AP_INVOICES_INTERFACE)
Quality notificationQuality Management REST: qualityIssues · qualityActionsPOST qualityIssues · POST qualityActionsQA_RESULTS (collection plans)
Journal lineGeneral Ledger REST: journals · BICC GL journal lines extractPOST journals (ERP Integration Service, FBDI)GL_JE_HEADERS · GL_JE_LINES (write: GL_INTERFACE)
Price conditionPricing REST: priceLists · priceListItemsPATCH priceListItemsQP_LIST_HEADERS_B · QP_LIST_LINES

What the Oracle team sets up

Apps on Oracle Fusion

35 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

Lakes

Snowflake, Databricks and Microsoft Fabric

History, aggregates and prepared results, read where they land; decisions recorded beside them.

Lakes hold the history an operational screen would struggle to serve: a year of stock positions, five years of journals, every forecast version. The Backbone lands ERP objects in a conformed model (RAW, CONFORMED and HISTORY schemas in Snowflake; bronze, silver and gold Delta tables in Unity Catalog on Databricks; Delta tables in OneLake on Fabric), and the app reads them in place through the native connector with the filter and the columns it needs.

Decisions taken in an app are recorded in a Lima-owned table in the lake through stage, COPY and MERGE, so analysts and dashboards see the decision beside the history. The operational write goes to the system of record: an app on Snowflake that reviews excess stock still writes the transfer to SAP or Oracle through their interfaces, and the pair pages say so for every app.

Snowflake · Databricks · FabriclakehouseREAD IN PLACEnative connector, filter and columns pushed downconformed and history schemas from the Backbonerow-access policies and grants honouredWRITE BACKMERGE into a Lima-owned decision tableoperational write to the ERP of recordWHAT THE APP CAN DOexcess stock, scorecards, variance on 12+ monthsboards over every instance and decisionthe same app on either lake

Objects apps read most on a lake

ObjectRead in place fromWritten throughNote
Stock positionCONFORMED.STOCK_POSITION · HISTORY.STOCK_DAILYMERGE into LIMA.APP_DECISIONS
Purchase order lineCONFORMED.PURCHASE_ORDER_LINE · HISTORY.PO_LINE_VERSIONSMERGE into LIMA.APP_DECISIONS · PO change to the ERP
Journal lineCONFORMED.JOURNAL_LINE · HISTORY.JOURNAL_LINESMERGE into LIMA.APP_DECISIONS
ForecastCONFORMED.FORECAST · HISTORY.FORECAST_VERSIONSMERGE into LIMA.APP_DECISIONS
Supplier invoiceCONFORMED.SUPPLIER_INVOICEMERGE into LIMA.APP_DECISIONS
Budget lineCONFORMED.BUDGET_LINE · CONFORMED.ACTUALS_MONTHLYMERGE into LIMA.APP_DECISIONS

Apps on Snowflake and Databricks

36 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

23 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

Applications

Salesforce, ServiceNow and Workday

Read through their APIs, change capture where offered, write under the integration user's own rules.

Salesforce

Accounts, opportunities, quotes, cases, orders and contracts read through the REST and Bulk APIs; changes arrive through Change Data Capture within seconds. Writes through the REST API under the integration user's profile and sharing rules.

9 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

ServiceNow

Incidents, changes, requests, configuration items, assets and users read through the Table API with the integration user's access control lists. Approvals raised from an app appear in the ServiceNow approval list, so people can act in either place.

3 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

Workday

Workers, positions, time off, expense reports, cost centers and journals through web services and Reports-as-a-Service. Writes through released operations such as Submit_Expense_Report, so an approval taken in the app lands in Workday's business process step.

5 app types in the catalogue read this system; each pair page lists the objects, the fields the criteria use and the write path.

Planning systems

Kinaxis Maestro, o9, Blue Yonder, SAP IBP and OMP

Apps read the plan and return decisions through the Backbone's planning connectors.

A shortage room, a production schedule change or an S&OP cycle reads the planning system's results, the constrained plan, the projected inventory, the forecast versions, through the Backbone connectors that already integrate the ERP with the planning system, and returns the agreed decisions the same way. Each planning system has its own page describing its data model and the loop.

Files, APIs and devices complete the picture: a supplier's spreadsheet becomes rows through a file handler, a carrier's tracking service through an API handler, a cold-room sensor through a device feed. The rows look the same to a screen, an expression and a decision node as rows from SAP.

Browse all 60 connectors with their methods, prerequisites and patterns →

Terms on this page

Read in placeThe rows stay in the system that owns them. The app sends the filter and the columns it needs, and the system returns the matching rows.
Write-backA change made by the app in the system of record through that system's released interface, with the acknowledgement stored beside the decision.
Data handlerA named connection from an app to rows in a system: a federated table, a saved query, a pipeline result, an API or a file. Screens, expressions and decision points use it to read and write.
Change captureReceiving changed rows from a system as they happen, through the interface the system offers (change pointers or CDS extractors in SAP, business events in Fusion, Change Data Capture in Salesforce).
Released interfaceAn interface the vendor publishes and supports for third parties: BAPIs and IDocs in SAP, REST resources in Fusion, the Table API in ServiceNow, web-service operations in Workday.
Questions

Do I need a separate integration project for an app?

The connectors and the catalog are shared by the whole platform. Once a system is connected and its objects registered, an app reads them through handlers the same day; a new object is a registration, and a new write path is a test write and a switch.

How does an app write to SAP safely?

Through released BAPIs and IDocs under an SAP user with exactly the authorisations the app needs, with the RETURN table checked and the document number stored. Write-back is off per object until a test write has been confirmed, and an approval rule can sit in front of any write.

Can one app read SAP and Oracle at the same time?

Yes. A handler per object per system, and a screen that shows both, for example when two divisions run different ERPs and one process spans them.

Which is better for an app, the ERP or the lake?

Operational rows the person acts on come from the ERP, live. History, aggregates and prepared results come from the lake. The pair pages in the catalogue show the split for every app.

See a SmartApp built on your data

Bring one process and the systems it touches. In the first session we register the data handlers, draw the levels or the lanes and run the first screen on your live rows.