busy-office-ui
Menu

Which pattern should I use?

Pick by the JOB, not by the widget. A screen's pattern follows from what the person is trying to finish — find something, work one record, enter data, clear a queue, watch something run — and every pattern below says in its own words when it is the wrong choice, which is usually the faster way to decide. Not a component index: if you know the screen and need the parts, the pattern page lists them, and the component pages document each one. This page only answers "which screen am I building?".

Start from the job generated

Six families, in the order a working day runs through them. Every row is read from the same file that builds the pattern index and the sidebar, so this page cannot disagree with them about what exists.

enter & find

enter & find — patterns, who they serve, and when not to use them
Pattern Reach for it when Not when
Login every user, before anything else — the first screen and, for anyone who forgets a password, a recurring one. Not for re-authentication mid-task
Error pages every user, eventually — a stale bookmark, a link shared before a record moved, a permission that changed since yesterday, a request that failed server-side. Not for a section failing to load inside a page you're still on
First load everyone, on every screen, before they can do anything else. Not for a REFETCH of data already on screen
App frame everyone, on every screen — the persistent chrome the whole suite lives inside. Not for a single-task dedicated device
Suite home anyone whose work spans modules — a controller touching Finance and Purchasing, an ops lead across Warehouse and Reports; the screen behind the brand link and the switcher's "home". Not for one role's daily queue
App launch anyone opening the suite, every session — the first screen after sign-in. Not for returning a user to a specific record they already know
Role home every named role — a buyer, an approver, a warehouse supervisor — each seeing their own version. Not a launcher
Command bar power users who know what they want — a dispatcher jumping to PO-88213, a controller running "post period" — without walking the menu. Not a replacement for navigation
List report AP clerks, all day — the screen they live in. Not for a single record's full detail
Advanced filter panel — Not for a list with one obvious narrowing dimension
Value help anyone typing a code they cannot remember — a buyer picking a material out of forty thousand, a clerk choosing a cost centre; dozens of times a day, inside a form they are part-way through. Not when the option set is small

work one record

work one record — patterns, who they serve, and when not to use them
Pattern Reach for it when Not when
Object page whoever owns one record end to end — a buyer opening a PO, an approver checking it before signing; many times a day, one object at a time. Not for a record you can take in at one glance
Record detail whoever owns this record, checking its status or adding to its history — a buyer, an approver, anyone who clicked in from a list row. Not once the record stops fitting in one scan
Master-detail — Not when one record deserves the whole screen
Multi-column detail form whoever owns the record — a buyer editing a PO, an admin fixing vendor details; occasional, high-stakes edits where losing work is unacceptable. Not for reading a record

enter & correct data

enter & correct data — patterns, who they serve, and when not to use them
Pattern Reach for it when Not when
Editable grid whoever enters or corrects line items — a buyer building a PO, a warehouse clerk keying a pick list. Not for a table that's read far more often than edited
Multi-step wizard whoever is creating something too long for one screen, guided rather than dropped into a form — most often a first-time or occasional flow. Not for a routine single-step task
Staging / batch result whoever maintains data in bulk — an uploaded file, an interface run, a mass posting. Not for a handful of records
Reconciliation whoever must prove two independent records agree — an accountant clearing the bank statement against the ledger, AP matching payments to invoices, treasury clearing suspense. Not for validating one imported list
Timesheet anyone who books time — a consultant, a field engineer, a project team member. Not for editing arbitrary fields across rows
Comparison matrix whoever must choose one of several candidates on stated criteria — a buyer awarding an RFQ, an analyst picking a vendor, a manager comparing budget scenarios. Not for comparing versions of one record
Validation summary anyone filling a form with more than a couple of required fields — worth it the moment a reader could miss which field failed. Not for per-row saves

decide & clear queues

decide & clear queues — patterns, who they serve, and when not to use them
Pattern Reach for it when Not when
Inbox every ERP user, first thing — the screen a working day starts on. Not for one document type's approval queue
Approval workflow an approver named in the chain — a manager, a cost-centre owner, finance. Not for a record with no decision to make
Bulk actions an AP clerk clearing a queue — select many, act once. Not for changing one record
Kanban board whoever needs to see WHERE a batch of things stands, all at once — a production planner watching orders move through stages, a fulfilment lead watching shipments. Not for finding one specific record

monitor & output

monitor & output — patterns, who they serve, and when not to use them
Pattern Reach for it when Not when
Reporting dashboard a manager checking whether this period's AP activity is on track and where the exceptions are. Not for an actionable worklist
Parameterized report whoever must answer a specific question with numbers — an accountant at close, a buyer checking open commitments. Not for monitoring
Issued document nobody, on screen — this is the artefact the ERP emits: a purchase order sent to a vendor, an invoice, a delivery note travelling with goods. Not a screen, and not a PDF engine
Notification anyone whose work finishes while they are not watching — a posting run, an export, an approval granted upstream. Not for work that needs your action
Job monitor whoever is accountable when unattended work fails — an integrations admin, an ops lead, the person the inbox assigned an exception to. Not for authoring schedules
Schedule calendar — Not for authoring a schedule
Settings & admin a workspace admin, occasionally a first-time setup wizard. Not for a single end user's own preferences

RF / rugged devices

RF / rugged devices — patterns, who they serve, and when not to use them
Pattern Reach for it when Not when
RF task menu a warehouse floor worker, first screen after signing into the handheld — every RF shift starts here. Not for a general app launcher with dozens of destinations
RF task queue a warehouse floor worker after picking a task from the RF task menu — "what's next" for that task type. Not for editing a line's data on this screen
RF goods receipt a warehouse floor worker, one-handed and often gloved, holding a scanner instead of a mouse. Not for a desk-based receiving clerk keying a paper packing slip.
RF pick a picker with a gun in one hand and the other on the rack — the highest-volume RF activity in any warehouse. Not for checking stock without moving it
RF putaway whoever moves what receiving just accepted into its storage bin — the second half of every inbound delivery. Not the receiving step
RF count whoever walks the aisles for a physical inventory or a cycle count. Not for correcting a quantity you already know is wrong

How this page is built, and what it does not cover

Every cell above is extracted from patterns.json, which is generated from the pattern pages themselves. Adding a pattern adds a row here with no edit to this file; rewording a page's opener rewords its row. That is the point — a hand-written decision flow would be a fifth place the pattern system is described, free to drift from the other four.

Stated so you can see the gaps rather than trust the table. Of 39 patterns, 36 state who they are for and 39 state when not to use them; the rest show — and their page is the answer. The "not when" column is the pattern's own wrong-choice clause, which check:wrong-choice requires every page to carry — so a blank means the generated pattern record has no wrong-choice clause. This page uses that record directly, so it preserves guidance phrased as "Never" or "Do not" as well as "Not for" and "Not when".

And a pattern named in a wrong-choice clause is linked automatically where the clause names one outright. Where it describes the alternative instead of naming it, the prose stands — the page it points at is one sentence away, and inventing a link the author did not write would be this page guessing.

↑↓ move Enter open Esc close