Runs the daily shortage meeting on live projected stock: planning, sourcing, sales and the plant allocate scarce components to orders and write the decisions to the ERP.
Delta tables in Unity Catalog are read in place through a SQL warehouse: the app sends only the filter and the columns it needs. The Backbone landing model (bronze, silver and gold) is the usual source, so history and aggregates are already prepared and lineage is registered in Unity Catalog.
| Object | Read from | Fields the app uses | Freshness |
|---|---|---|---|
| Material master | silver.material | material_id (id) · description (desc) · material_type (type) · plant (plant) | prepared by the Backbone; refreshed on its schedule |
| Stock position | silver.stock_position · gold.stock_daily | on_hand_qty (on hand) · material_id (material) · plant (plant) · storage_location (sloc) | prepared by the Backbone; refreshed on its schedule |
| Purchase order line | silver.purchase_order_line · gold.po_line_versions | ordered_qty (qty) · received_qty (received qty) · po_number (number) · po_line (line) | prepared by the Backbone; refreshed on its schedule |
| Production order | silver.production_order | order_qty (qty) · order_id (number) · material_id (material) · start_date (start) | prepared by the Backbone; refreshed on its schedule |
| Sales order line | silver.sales_order_line | ordered_qty (qty) · so_number (number) · so_line (line) · customer_id (customer) | prepared by the Backbone; refreshed on its schedule |
| Bill of materials | silver.bom_component | parent_material (parent) · component_material (component) · component_qty (qty) · valid_from (valid from) | prepared by the Backbone; refreshed on its schedule |
In plain words: Each working day at 07:00 the app projects stock for every component on the critical list; a component whose projected stock falls below 0 within 4 weeks is on that day's agenda.
The criterion runs in Databricks through the data handler, so only the matching rows return. The editor shows the rows it selects, and their count, as it is written.
# start criterion in Databricks fields on_hand_qty + (ordered_qty - received_qty due within 28 days) < demand from order_qty and ordered_qty within 28 days # the same criterion in canonical fields {stock.on_hand} + ({po.qty} - {po.received_qty} due within 28 days) < demand from {prod_order.qty} and {so.qty} within 28 days
Decisions are recorded in a Lima-owned gold table with MERGE INTO, so notebooks and dashboards see them next to the history. The operational write goes to the system of record through its released interface, and the app records the acknowledgement. For this app the operational change (start and finish dates changed to the allocation) goes to SAP S/4HANA or Oracle Fusion through its released interface, and the pair pages for those systems show the exact call.
| Object | What changes | Interface |
|---|---|---|
| Production order | start and finish dates changed to the allocation | MERGE INTO gold.lima_app_decisions |
| Purchase order line | pull-in date and quantity changed on the schedule line; premium buy added as a new line | MERGE INTO gold.lima_app_decisions · PO change to the ERP |
| Sales order line | confirmed quantity and date updated on the customer order | MERGE INTO gold.lima_app_decisions |
Each write stores the identifier Databricks returns beside the decision, the person and the time, so the log answers who changed what, and the reconciliation shows it arrived.
Unity Catalog grants and row filters are mapped to Lima access policies once, so a person sees the same rows in the app that they see in a notebook.
This app reads material master from Databricks because the screens need history at scale: months of rows, aggregates by period, several versions. The Backbone lands the objects in the conformed model and refreshes them on a schedule, and the handler reads them in place with the filter and the columns pushed down. The person's grants in Databricks decide what they see.
The operational rows the person acts on can come live from the ERP in the same app: one handler per object per system, and a screen that shows both.
The screens read through handlers that leave the rows in Databricks. The conformed tables it reads were landed there by the Backbone from the ERP; the app reads them there.
The prerequisites above: an integration identity with read rights on the objects listed and write rights on the interfaces named, connectivity, and the scopes agreed with the process owner.
Yes. The screens, criteria and roles stay; the handlers are re-bound to the other system's objects, and the app's other system pages show them.
Bring the 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.