# Process Worklist — record output per SO line and LOT for the custom in-house process after Trimming that is in the Routing, then move the Completed LOT to the next process

> Fine Chemical (FC) · MES module · v0.5 · 13/10/2026 · Standard flow — for implementation, testing and development
>
> Generated from the diagram by `sync.js` — do not edit by hand. The diagram is authoritative: report any mismatch with the diagram page.
>
> Diagram page: /en/mes/process-worklist

## How to read

- Every box on the diagram has a code `Bxx`, numbered in flow order (from the start event, following the arrows).
- "Goes to" lists every arrow leaving the box; text in square brackets is that arrow's condition label.
- "Optional branch" = a dashed arrow on the diagram: may be done or skipped.
- "Data" boxes in the Input lane are incoming data; in the Output lane they are results / end points of the flow.

## Process Flow (swimlane)

### Roles (lanes)

- Input
- Operator
- Output

### Steps

| Code | Role | Type | Content | Platform · Screen | Goes to |
| --- | --- | --- | --- | --- | --- |
| B01 | Input | Data | In-house process WI (per the WO's Routing) |  | B05 |
| B02 | Input | Data | Trimmed LOT (A + A-) of a WO with an in-house process in its Routing |  | B06 |
| B03 | Input | Data | Master data: Defect reason | Master data | B08 |
| B04 | Operator | Start | Start |  | B05 |
| B05 | Operator | Task | Select process tab | Web · Process Worklist | B06 |
| B06 | Operator | Task | Open SO line | Web · Process Worklist | B07 |
| B07 | Operator | Task | Select the LOT to record Output | Web · Process Worklist | B08 |
| B08 | Operator | Task | Enter Output by size | Web · Process Worklist | B09 |
| B09 | Operator | Decision | Output valid? |  | B10 [No]; B11 [Valid] |
| B10 | Output | Data | Save blocked + error message |  | (end) |
| B11 | Operator | Task | Confirm output | Web · Process Worklist | B12 [grade C present]; B13 [with PR]; B14 |
| B12 | Operator | Task | Record grade C in Defect Records | System (auto) · Defect Records | B15 |
| B13 | Operator | Task | Open Repair / Rework records per size with PR > 0 | System (auto) · Repair / Rework | B16 |
| B14 | Operator | Decision | Has the LOT run out of Remaining? |  | B07 [Not yet — LOT PARTIAL]; B17 [Enough — LOT COMPLETED] |
| B15 | Output | Data | Grade C → Defect Records (Process Stitching) |  | (end) |
| B16 | Output | Data | Repair / Rework record per size with PR > 0 (Source Stitching · Pending repair) |  | (end) |
| B17 | Operator | Task | Move the LOT to the next process | Web · Process Worklist | B18; B19 |
| B18 | Output | Data | LOT TRANSFERRED — A + A- to the next process, C + PR stay, no new lot is created |  | (end) |
| B19 | Operator | End | End |  |  |

### Step details (hover content on the diagram)

#### B05 · Select process tab

- Operator · Web · Process Worklist
- Comes from: B01, B04
- Goes to: B06 · Open SO line

> The Operator selects the tab of the custom in-house process to report output for.  
> When: the WO has a custom in-house process after Trimming in its Routing.  
> Action: Process Worklist › select the process tab (the prototype has one tab, "Stitching").  
> System: the screen shows only tabs of custom in-house processes that are in the WO Routing; a process outside the Routing has no tab. Screen subtitle: "In-house custom processes after Trimming that are in the WO Routing — record output per SO and LOT, then move the Completed LOT (A + A-) to the next process".  
> Result: the table of SO lines of that process is listed.  
> Open: the stock pool where a LOT waits after Trimming Result before it enters the in-house process is not on the diagram or the prototype yet (OQ-PWL-01).  
> Source: Q-20261012-02 (question 4) · Q-20261012-05 (question 1) · prototype v0.89  

#### B06 · Open SO line

- Operator · Web · Process Worklist
- Comes from: B02, B05
- Goes to: B07 · Select the LOT to record Output

> The Operator opens the SO line to report output for.  
> When: the SO line is WAITING or PARTIAL (a COMPLETED line opens for viewing only).  
> Action: "<Process> Worklist" table (sorted by ETD) › "Open SO" button.  
> System: output is booked per allocated SO line and LOT, no new lot is created ("Output is booked per allocated SO and moves to <next> — no new lot is created."). The SO line status is derived from its LOTs: Output = 0 → WAITING; Remaining > 0 → PARTIAL; Remaining = 0 → COMPLETED.  
> Result: the "LOTs allocated to <SO No.> (n)" block is shown, one row per LOT.  
> Test:  
> - An SO line with 2 LOTs, one with Remaining = 0 and the other with Remaining > 0 → the SO line is PARTIAL  
> Source: prototype v0.89  

#### B07 · Select the LOT to record Output

- Operator · Web · Process Worklist
- Comes from: B06, B14
- Goes to: B08 · Enter Output by size

> The Operator picks the LOT in the SO line to report output for.  
> When: the LOT is WAITING or PARTIAL.  
> Action: "LOTs allocated to <SO No.> (n)" block › "Enter Output" (first time) / "Add Output" (later) button on the LOT row.  
> System: a COMPLETED LOT has no entry button any more (only "Move to Next process in Routing"); a TRANSFERRED LOT shows "Handed to Next process in Routing".  
> Result: the Output page of that LOT opens; a LOT can be recorded several times until Remaining = 0.  
> Test:  
> - A LOT with Remaining > 0 already recorded once → the button reads "Add Output"  
> - A LOT with Remaining = 0 → no "Enter Output" / "Add Output" button  
> Source: Q-20261012-03 (question 1) · prototype v0.89  

#### B08 · Enter Output by size

- Operator · Web · Process Worklist
- Comes from: B03, B07
- Goes to: B09 · Output valid?

> The Operator enters the output of this entry by grade and size, splits grade C by defect reason, and enters repairable goods in the Pending repair row.  
> Action: "Output Matrix (Item / Size)", four rows "A · First grade" · "A- · First grade, minor" · "C · Reject" · "PR · Pending repair" by W5…W11; "Fill A = Open Qty" fills quickly, "Clear" resets. Enter Start Time, End Time, Operator / Team Leader, Remark.  
> Action: with grade C, the "Defect Reason Breakdown (grade C)" block › "Add Defect Line" button › "Defect Reason" column and quantity, one line per reason; the "Mapped:" cell shows "Balanced" when the lines add up to the C quantity. The Pending repair row needs no reason split.  
> System: "This Entry = A + A- + C + Pending repair"; "Remaining = Received − Already Recorded − This Entry", so Pending repair also reduces Remaining. Grade C is scrap, Pending repair is repairable.  
> Test:  
> - C = 25 split "Cut edge rough" 15 + "Burr / flash" 10 → "Balanced"  
> - C = 25 split 15 + 5 → not matching, saving is blocked at the validation step  
> - PR = 10 in W5 with no reason → can still be confirmed  
> Source: Q-20261013-01 · prototype v0.91  

#### B09 · Output valid?

- Operator
- Comes from: B08
- Goes to [No]: B10 · Save blocked + error message
- Goes to [Valid]: B11 · Confirm output

> The system validates the entry before it can be confirmed; it is a hard block, there is no approval for over-recording.  
> Valid when all 3 conditions hold:  
> - A quantity in at least one grade row — otherwise: "Enter a quantity in at least one grade row."  
> - For each size: This Entry ≤ Received − Already Recorded — otherwise: "Recorded output exceeds the received quantity."  
> - With grade C, it is split by reason and the reason lines add up to the C quantity — otherwise: "Grade C quantity recorded — map the defect quantity to a defect reason." / "A defect line has a quantity but no defect reason." / "A defect reason has no quantity." / "Defect reason breakdown (N) must equal the grade C quantity (M)."  
> No: confirmation is blocked and the messages above are shown.  
> Test:  
> - Received 100, already recorded 60, this entry 40 → can be confirmed; this entry 41 → blocked  
> - Enter C = 2 with no "Defect Reason" chosen → blocked  
> Open: BRD §6.4 allows "Warn or block by configuration; supervisor override requires reason", prototype v0.89 hard-blocks and has no override screen (OQ-PWL-02).  
> Source: BRD §6.4 · prototype v0.89  

#### B11 · Confirm output

- Operator · Web · Process Worklist
- Comes from: B09
- Goes to [grade C present]: B12 · Record grade C in Defect Records
- Goes to [with PR]: B13 · Open Repair / Rework records per size with PR > 0
- Goes to: B14 · Has the LOT run out of Remaining?

> The Operator confirms the output entry once it passes validation.  
> Action: "Confirm Output" button › the "Confirm Stitching output?" box shows SO No., LOT No., Process, Next Process, Time, Operator, This Entry, Remaining, "C → Defect Records", "Pending repair", "Pending repair → Repair / Rework" › "Confirm & Save" button.  
> System: note in the box "Output is recorded on this SO line. C is written to Defect Records; Pending repair opens a Repair / Rework record for each size."  
> Result: entry #n is created in "Output Entries" (it has a "Pending repair" column); a LOT can be recorded several times and the quantities add up. Message "<SO> · <LOT> — entry #n: <qty> pairs recorded at Stitching" followed by " · <qty> pairs remaining" or " · SO line complete, ready for Next process in Routing", then " · C <qty> pairs → Defect Records" and " · Pending repair → <n> Repair / Rework record(s)" when present.  
> Test:  
> - Two entries for the same LOT → "Already Recorded" = total of the 2 entries  
> Open: the message says "SO line complete" although only that LOT has no Remaining; there is no way yet to reverse a wrong entry (OQ-PWL-03).  
> Source: BRD §6.4 (Partial Confirmation) · Q-20261013-01 · prototype v0.91  

#### B12 · Record grade C in Defect Records

- Operator · System (auto) · Defect Records
- Comes from: B11
- Goes to: B15 · Grade C → Defect Records (Process Stitching)

> The system writes the grade C quantity (scrap) to Defect Records automatically, split by defect reason.  
> When: the entry just confirmed has grade C > 0.  
> System: each reason in "Defect Reason Breakdown (grade C)" becomes one Defect Records line, Process "Stitching", tied to the WO, SO and LOT. Pending repair goods are not written to Defect Records and grade C does not open a Repair / Rework record.  
> Result: new lines on the "Defect Records" screen; the Process filter has the value "Stitching".  
> Test:  
> - C = 10, reason "Burr / flash" → Defect Records gets 1 line with Process "Stitching" and quantity 10  
> - C = 25 split in two reasons 15 + 10 → 2 new lines  
> - C = 0, PR = 10 → Defect Records gets no line  
> Source: Q-20261013-01 · prototype v0.91  

#### B13 · Open Repair / Rework records per size with PR > 0

- Operator · System (auto) · Repair / Rework
- Comes from: B11
- Goes to: B16 · Repair / Rework record per size with PR > 0 (Source Stitching · Pending repair)

> The system opens Repair / Rework records for Pending repair goods automatically, one per size, nobody creates them by hand.  
> When: the entry just confirmed has Pending repair > 0 in at least one size.  
> System: each size with PR > 0 creates one record carrying LOT, WO, SO, size and the PR quantity; Source "Stitching · Pending repair". Grade C creates no record.  
> Result: the record appears on the "Repair / Rework" screen; once repaired, the goods enter the Repair Inv List of the next process.  
> Test:  
> - PR only in size W5 = 10 → 1 record "Stitching · Pending repair" size W5 quantity 10  
> - PR in two sizes → 2 records  
> - C = 10, PR = 0 → no record  
> Open: the process after Stitching and the Repair Inv List that receives repaired goods are not defined (OQ-PWL-04).  
> Source: Q-20261013-01 · prototype v0.91  

#### B14 · Has the LOT run out of Remaining?

- Operator
- Comes from: B11
- Goes to [Not yet — LOT PARTIAL]: B07 · Select the LOT to record Output
- Goes to [Enough — LOT COMPLETED]: B17 · Move the LOT to the next process

> Has the LOT recorded all it received?  
> Not yet — LOT PARTIAL: Remaining = Received − Already Recorded > 0 → keep recording later.  
> Enough — LOT COMPLETED: Remaining = 0 → the LOT can be moved to the next process.  
> Test:  
> - Received 100, already recorded 100 (A 90 + A- 5 + C 5) → LOT COMPLETED  
> - Received 100, already recorded 99 → LOT PARTIAL, Remaining 1  
> Open: a LOT that never reaches Remaining = 0 (short receipt from the previous process) cannot be moved; closing it short is outside the scope of v0.1 (OQ-PWL-06).  
> Source: Q-20261012-03 (question 1) · prototype v0.89  

#### B17 · Move the LOT to the next process

- Operator · Web · Process Worklist
- Comes from: B14
- Goes to: B18 · LOT TRANSFERRED — A + A- to the next process, C + PR stay, no new lot is created
- Goes to: B19 · End

> The Operator moves the fully recorded LOT to the next process in the Routing; only first-grade goods (A + A-) go on.  
> When: the LOT is COMPLETED (Remaining = 0).  
> Action: "Move to Next process in Routing" button on the LOT row › "Move <LOT> to Next process in Routing?" box › "Confirm & Move"; or "Move all recorded lines" for the whole SO line.  
> System: the quantity moved = "Good (A + A-)"; grade C and Pending repair stay ("C + Pending repair (C in Defect Records, Pending repair in Repair / Rework)"). "Only the good quantity (A + A-) is handed over to Next process in Routing. Output can no longer be added to this lot line." "Move all recorded lines" takes only COMPLETED LOTs.  
> Result: the LOT → TRANSFERRED ("Handed to Next process in Routing"), no new lot is created; the SO line stays COMPLETED. The message has the part "C + Pending repair <qty> stay behind (C in Defect Records, Pending repair in Repair / Rework)".  
> Blocked when: a LOT with Remaining > 0 has no Move button; message "<lot> is not Completed yet (N pairs remaining) — only a Completed LOT can be moved." / "No Completed LOT ready to move."  
> Test:  
> - COMPLETED LOT A 90, A- 5, C 3, PR 2 → 95 moved, C + PR 5 stay  
> - An SO line with 1 COMPLETED LOT + 1 PARTIAL LOT, press "Move all recorded lines" → only the COMPLETED LOT moves  
> Open: the label "Next process in Routing" is temporary, the next process is not defined (OQ-PWL-04).  
> Source: Q-20261012-03 (question 1) · Q-20261013-01 · prototype v0.91  

## Status lifecycle

#### SO line at the process (Process Worklist)

`WAITING` → `PARTIAL` → `COMPLETED`

Transitions:

- `WAITING` -- Confirm Output — a LOT still has Remaining > 0 --> `PARTIAL`
- `PARTIAL` -- Every LOT Remaining = 0 --> `COMPLETED`
- `WAITING` -- Confirm Output — fully recorded in one go --> `COMPLETED` (back)

#### LOT in the SO line (Process Worklist)

`WAITING` → `PARTIAL` → `COMPLETED` → `TRANSFERRED`

Transitions:

- `WAITING` -- Confirm Output — Remaining left --> `PARTIAL`
- `PARTIAL` -- Remaining = 0 --> `COMPLETED`
- `COMPLETED` -- Move to Next process in Routing --> `TRANSFERRED`
- `WAITING` -- Confirm Output — fully recorded in one go --> `COMPLETED` (back)

## Input

| # | Input | Type | Used in step |
| --- | --- | --- | --- |
| I-1 | Trimmed LOT (A + A-) of a WO with a custom in-house process in its Routing — received per SO line, no new lot | Process goods — flow trimming-result | Open SO line |
| I-2 | In-house process WI per the WO's Routing | MES document | Select process tab |
| I-3 | Defect reason (defect catalogue) | Master data | Enter Output by size |

## Step ↔ screen

| Step | Role | Screen · UI button |
| --- | --- | --- |
| Select process tab · Open SO line · Select the LOT to record Output · Enter Output by size · Confirm Output · Move LOT to the next process | Operator | Process Worklist (`Open SO`, `Enter Output` / `Add Output`, `Fill A = Open Qty`, `Add Defect Line`, `Confirm Output`, `Confirm & Save`, `Move to …`, `Confirm & Move`, `Move all recorded lines`) |
| Record grade C in Defect Records | System (auto) | Defect Records |
| Open a Repair / Rework record per size with PR > 0 | System (auto) | Repair / Rework |

## Output

| # | Output | Produced when |
| --- | --- | --- |
| O-1 | Save blocked + error message | No quantity in any grade row · recording beyond Received · grade C not split by reason or reason total differs from the C quantity |
| O-2 | Grade C → Defect Records (Process Stitching), one line per reason; no Repair / Rework record is created | Output Entry with grade C |
| O-3 | Repair / Rework record per size with PR > 0, Source `Stitching · Pending repair`, carrying LOT / WO / SO; not written to Defect Records | The Output Entry has Pending repair (PR) > 0 |
| O-4 | Goods move to the next process in the Routing, no new lot — LOT = `TRANSFERRED` | The Operator presses Move when the LOT is `COMPLETED` (Remaining = 0) — quantity moved = A + A-; C and PR stay in Defect Records / Repair / Rework |

## Glossary

| Glossary | Meaning in this flow |
| --- | --- |
| `WO` | Work Order — production order created on Release in Master Plan; each WO brings its process plans |
| `Routing` | The WO's list of processes; it decides which in-house process has a tab in Process Worklist and which process comes next |
| `SO line` | The part of an SO allocated at Trimming; made of several LOTs, its status is derived from the LOTs |
| `LOT` | A Trimmed lot received into the process; the unit of output recording and of the move to the next process |
| `In-house` | A process done in the plant, not sent to an outside subcontractor |
| `Received` | The quantity the LOT has received into the process — the ceiling of the total recorded output |
| `Output Entry` | One output recording (per shift) of the LOT; a LOT has many entries |
| `A / A- / C / PR` | Quality grade: A and A- are first-grade goods; C is scrap (label "Reject"), split by reason and written to Defect Records; PR (label "Pending repair") is repairable and opens a Repair / Rework record |
| `Remaining` | Received − Already Recorded − This Entry |
| `Defect Records` | The screen that records grade C by reason, process, WO and SO |
| `Repair / Rework` | The screen of repair records; each size with Pending repair creates one record, source "<Process> · Pending repair" |
| `Repair Inv List` | Stock of repaired goods, carrying the next process |
