Finale test scenarios
How to use this
Paste each one into Finale and note what actually happens against what Finale should show. These are generated from the real authored BOM but they are test pastes — importing them moves real stock, so use a scratch scenario or reverse them afterwards.
Nothing here is queued to Finale exports on purpose: these are fiction, and the VA's queue should only ever hold real work.
Start with #2 and #6. #2 is the ordering fix (FP12) — the one that made the paste nonsense. #6 is the one open assumption: whether Finale accepts a blank Consume sublocation on a labor row.
Exercises: single-step build, one consume row
What Finale should show after import
One build: produce 3DS-TESTED ×10 at Main, consuming 3DS-RAW ×10 from PO Intake plus its LB- testing row.
Exercises: the two-step chain and FP12's ordering — raw→tested MUST come first
What Finale should show after import
TWO builds, in this order: (1) 3DS-TESTED ×6 from 3DS-RAW, then (2) 3DS-BLCK ×6 from 3DS-TESTED. If Finale complains that 3DS-TESTED isn't on hand, the ORDER is wrong — that's FP12.
Exercises: multiple top builds sharing one raw pool
What Finale should show after import
3DS-RAW ×12 consumed in total across three colour builds (3DS-BLCK, 3DS-AQUA, 3DS-RED), each ×4, each preceded by its own 3DS-TESTED build.
Exercises: -FAILED and -X outputs alongside colours
What Finale should show after import
Colour, 3DS-FAILED and 3DS-X builds in one paste, 9 units of 3DS-RAW consumed. Check 3DS-X doesn't write off stock you meant to keep — cosmetic failures are 3DS-FAILED, not 3DS-X.
Exercises: the back-edge, and its labor row
What Finale should show after import
Produce 3DS-RAW ×7 consuming 3DS-FAILED ×7 — the RAW↔FAILED back-edge. Its LB- repair row should be here; if the chain isn't authored this way the paste will be a 1:1 stub instead.
This is also the shape FP19 (repair_test) will change.
Exercises: the blank consume sublocation — FP14 §1, which is CORRECT, not a gap
What Finale should show after import
Every LB- consume row now carries the same Consume sublocation as the material row in its own build — PO Intake on the raw→tested step, Main on the tested→colour step. It used to be BLANK, and a blank there is what made this paste import as nothing at all (ST11). **Re-paste this one**: it's the scenario the fix was for.
2 labor row(s) in this paste.
Exercises: container._shelf_build_tsv, the second emitter
What Finale should show after import
Same two-step chain as scenario 2, but produced at the SHELF sublocation (Main) and consumed from PO Intake. Different emitter — compare it against scenario 2's shape.
Exercises: FP8's transfer path — a transfer paste, not a build
What Finale should show after import
A TRANSFER, not a build: 3DS-BLCK ×17 moves PO Intake → Main with no consume and no production. Goes on Finale's transfer screen, not the build one.
Exercises: FP13's collision guard — the two pastes must not share a Build ID
What Finale should show after import
Import BOTH, first then second. Finale must end up with 10 units, not 6. If it shows 6, the second import overwrote the first and the Build IDs still collide — that's the FP13 bug, and it loses a day of work silently, with no error.
Two separate pastes — they are two sessions.
second session, same SKU, same day
Exercises: FP14's skip-and-warn — nothing malformed may reach the paste
What Finale should show after import
Nothing to paste, and that's the pass condition: a build with no consume line is malformed and Finale would reject the whole import for it, so it's skipped and reported instead.