Takes a produced batch from complete inspection results through QA review to a usage decision, sets the batch status in the ERP and produces the certificate of analysis.
Today the batch record is a binder that travels from the line to the QA office, and the reviewer checks the results against the specification by hand. The usage decision is typed into the ERP at the end of the day, and the certificate is assembled in a word processor.
The app watches inspection lots from production and picks up each one whose results are recorded for every characteristic and whose usage decision is open. It shows the QA reviewer every result beside its specification limit, the deviations raised on the batch, the production order confirmations and the batches of the components used. The reviewer passes the record to the release officer, who accepts or rejects the lot; the app posts the usage decision through the released interface, which moves the stock from quality inspection to unrestricted or blocked and sets the batch status. The certificate of analysis is generated from the recorded results and attached to the batch for the delivery.
| Lane | Does |
|---|---|
| QC analyst | records the results and confirms every characteristic has a value |
| QA reviewer | checks results against specification, deviations and the production record |
| Release officer | makes the usage decision and signs the certificate |
| Warehouse | moves the released batch and ships it with the certificate |
Every screen renders for desktop and mobile; portal screens are the same screens delivered to an outside login.
| Screen | What is on it |
|---|---|
| S01 Batches awaiting release | grid of inspection lots with batch, material, production order, results recorded, open deviations, days since production; filter by plant and product family; open button |
| S02 Batch record review | results per characteristic beside the specification limits, out-of-specification flags, production order confirmations, component batches used; pass-to-release and return buttons |
| S03 Deviations | quality notifications raised on the batch with status, root cause and closure; link to open the notification; block indicator until every deviation is closed |
| S04 Usage decision | options: accept, accept with restriction, reject; stock posting shown (unrestricted, blocked, scrap); note; sign with a second signature |
| S05 Certificate | certificate of analysis built from the recorded results with the specification and the signatory; preview, download, send with the delivery |
| S06 Board | batches by stage and age, hours from end of production to release, rejections, open deviations blocking release |
The first object is the main one; each system page shows the real table or resource behind every handler.
| Object | Why the app reads it | See it on |
|---|---|---|
| Batch | the produced batch: material, quantity, produced date, expiry, status | S/4HANA · Oracle Fusion · Snowflake · Databricks |
| Inspection lot | the inspection lot: origin, results per characteristic, usage decision | S/4HANA · Oracle Fusion · Snowflake · Databricks |
| Production order | the production order the batch came from: confirmations, quantities, finish | S/4HANA · Oracle Fusion · Snowflake · Databricks |
| Quality notification | deviations raised on the batch and their status | S/4HANA · Oracle Fusion · Snowflake · Databricks |
| Stock position | the batch quantity in quality inspection and where it sits | S/4HANA · Oracle Fusion · Snowflake · Databricks |
| Object | What changes |
|---|---|
| Inspection lot | usage decision posted as accept or reject through the inspection lot interface, with the stock posting from quality inspection to unrestricted, blocked or scrap |
| Batch | batch status set to released or blocked; certificate of analysis attached to the batch |
Start: An inspection lot from production (origin 04) whose results are recorded for every characteristic and whose usage decision is still open.
# start criterion, in canonical fields; each system page shows it in that system's fields
{lot.origin} = '04' and {lot.result} = 'recorded' and {lot.decision} = ''| Step | Moves when |
|---|---|
| Results complete | every characteristic has a result; the lot appears on S01 for the QA reviewer of the plant |
| Record reviewed | results inside specification, or a deviation open for each result outside it; production record checked |
| Deviations closed | every notification on the batch has a closed status; the release option opens |
| Usage decision | release officer accepts or rejects; a rejection, or a restricted release above 50,000 in value, goes to the quality head |
| Posted | usage decision written to the ERP; stock moved; batch status set; certificate generated and attached; case closed |
| Component | Trigger → action → outcome |
|---|---|
| grd_results | on load → compare each result with the specification limits of the material → mark results outside the limits and require an open deviation for each before the record passes |
| btn_pass_to_release | on click → check that every deviation on the batch is closed → open S04 for the release officer, start the 1-day clock |
| btn_accept | on click → call the usage decision interface with the decision code and the stock posting → store the material document number, set the batch status, generate the certificate |
| btn_send_certificate | on click → attach the certificate to the batch and to the open deliveries of the batch → send it to the customer contact with the delivery |
| Step | Time limit and escalation |
|---|---|
| QA review | 1 working day from results complete, then the QA lead is reminded |
| Usage decision | 2 working days from results complete, then the quality head is copied and the batch is flagged on the plant board |
| Deviation closure | 5 working days, then the deviation owner's lead is reminded |
Names, places and figures are illustrative; the pattern is the catalogue's.
At 07:40 Mateusz, a QA reviewer in Kraków, opened the 6 batches that finished overnight; 5 showed every result inside specification and one had an assay result 0.4 percent above the limit with a deviation already open. He passed the 5 to the release officer by 08:30, and she accepted them at 09:10 with her second signature; the stock moved from quality inspection to unrestricted a minute later and the certificates went out with the morning deliveries. The deviation on the sixth batch closed at 15:10 after a retest, and the batch was released the same afternoon. The board showed the quality head 19 hours from end of production to release that week, down from 3 days.
The objects with their real names, the criteria in that system's fields, the write interface and what to set up first.
Batch read from MCH1 · MCHA · MCHB; also on SAP ECC.
Open the S/4HANA page →Batch read from Inventory REST: inventoryItemLots; also on Oracle E-Business Suite.
Open the Oracle Fusion page →Batch read from CONFORMED.BATCH; lakehouse.
Open the Snowflake page →Batch read from silver.batch; lakehouse.
Open the Databricks page →Other systems connect through the same handlers; see how SmartApps connect.
About 30 minutes to a first running screen on your live rows, and 6 working days to the production-grade version described here, most of it spent agreeing screens and criteria with the process owner.
Any of SAP S/4HANA, Oracle Fusion Cloud, Snowflake, Databricks, with the objects read in place; the pages above show the objects and the write path for each. Two systems at once is one handler per object per system.
Every role in this app is inside the company; an outside role can be added as a lane with a portal screen.
Every step, value, decision, notification and write-back acknowledgement of every instance, with the version of the app, append-only.
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.