Lima Backbone reads SAP ECC through table reads through a released function module, types the data correctly on landing, writes it into Azure Data Lake Storage Gen2 as containers with raw and history paths, and keeps it current from the source’s changes. Every run ends with a row count and a control total per table.
Keeping file sizes right for the engines that read them.
The first load is assembled from these objects through table reads through a released function module. Change capture (change pointers, table-level change capture, extractor deltas) keeps the daily volume small afterwards.
| Planning object | Source objects | Destination in Azure Data Lake Storage Gen2 |
|---|---|---|
| Items | MARA · MARC · MARD · MBEW | raw container Parquet or Delta → history |
| Bills of material | STKO · STPO · MAST · STAS | raw container Parquet or Delta → history |
| Routings and production versions | PLKO · PLPO · MKAL | raw container Parquet or Delta → history |
| Stock by status and date | MARD · MSKA · MSLB · MCHB | raw container Parquet or Delta → history |
| Open purchase orders | EKKO · EKPO · EKET · EKBE | raw container Parquet or Delta → history |
| Open sales orders | VBAK · VBAP · VBEP · VBUP | raw container Parquet or Delta → history |
| Production orders | AFKO · AFPO · AFRU | raw container Parquet or Delta → history |
| Forecast and planned independent requirements | PBIM · PBED | raw container Parquet or Delta → history |
| Customers and suppliers | KNA1 · KNVV · LFA1 · LFM1 | raw container Parquet or Delta → history |
| Calendars | TFACD · TFACS · T001W | raw container Parquet or Delta → history |
Lima reads SAP through released interfaces: table reads through a named function module, BAPIs, CDS views where available, change pointers and extractor delta queues. It does not use the ODP RFC interface that SAP Note 3255746 restricts, it does not use RFC_READ_TABLE in production (SAP Note 382318), and it does not read the HANA database log (SAP Note 2971304). No add-on is installed in SAP.
Every check either passes a row or turns it into an exception record with an owner. Nothing is dropped silently.
| Check | Kind | What it catches, with an example |
|---|---|---|
| Types set from the source | typing | SAP dates and times stored as text become dates and times; currency decimals shifted by the currency's rule |
| Keys complete and unique | keys | client or organisation columns kept in the key; zero-padded keys preserved |
| Deletes applied | consistency | rows deleted in the source are marked or removed in the copy |
| Late changes land in order | consistency | a change that arrives after a later one is applied by its source timestamp |
| Wide and cluster tables complete | completeness | every column of a wide table lands; cluster tables read through the released module |
| Partitions cover the range | completeness | every date partition present; gaps reported |
| Counts and control totals match | reconciliation | rows and amounts per table compared between source and target |
| Schema changes noticed | drift | a new or changed column is flagged before it breaks a downstream query |
After the first landing, Azure Data Lake Storage Gen2 receives the source's changes: change pointers, table-level change capture, extractor deltas. A migration month costs the same as a quiet month on the same tier.
The tables you name, landed in Azure Data Lake Storage Gen2 with types set, keys complete and a count and control total per table, then kept current. Scoped in one call.
Offers and principles →Two weeks on your largest tables: terabytes moved, rows per minute, reconciliation variance and cost per terabyte against your current tool.
The offer →Days for the first tables; a full-history migration is sized by table count and volume, and read in partitions inside the run windows your administrators allow.
Counts per step, the check that stopped a row, the owner and the replay point, and the lineage of any number back to its source column.
Your team, on the schedule you set, with the same report after every run; or your systems integrator; or Lima's team under the subscription.
One call scopes the dataset, the run window and the tier. The reconciliation report at the end is the acceptance test.