(Return from Placing: Package Step; then scan again → Placing)
Completion path (Check Done / Completion)
Check Done Step
OPTION
START
onAppear: all result.check set → Completion Step; else → Package Step. (No targetStep points to Check Done Step in the workflow.)
→
Completion Step
OPTION
Sortinglist complete
Please save
SAVE
SAVE: finalizeJobData(), api.workflow.done().
Options menus (via OPTION button)
Options Start Step
BACK
No OPTION available
BACK
back / back1 → Start Step
Options Package Step
BACK
New Pallet
New Container
Clear allocation
Pallet Info
back → Package Step. New Pallet → Count Step Package Step. New Container → Options Package Step 2. Clear allocation → Clear Allocation Step. Pallet Info → Pallet Info Step.
Options Placing Step
BACK
New Pallet
New Container
Clear allocation
back → Placing Step. New Pallet → Count Step Placing Step. New Container → Options Placing Step 2. Clear allocation → Clear Allocation Step.
Branch: New Container (confirmation)
Options Package Step 2
Are you sure? New Container?
No
Yes
No → Package Step. Yes → finalizeJobData(), new Job, api.workflow.done(true, newJob).
Options Placing Step 2
Are you sure? New Container?
No
Yes
No → Placing Step. Yes → finalizeJobData(), new Job, done(true, newJob) → Package Step.
Branch: Clear allocation
Clear Allocation Step
BACK
Clear allocation
Scan the Lighttag for allocation
Scan LightTag = pallet no.: entries to clearedAllocations, pallet in reusablePalettes, results filtered → Package Step. Invalid scan → negative_feedback. BACK → Package Step.
Branch: Pallet Info
Pallet Info Step
OPTION
Scan pallet for Info
Scan Pallet: load entries (current_palette, current_parcel_article, quantity) → Pallet Info 2 Step. No match → negative_feedback. OPTION → Options Pallet Info.
→
Pallet Info 2 Step
SKU
000002286902
Quantity
58
Done
Done → Package Step. Another pallet scan → Pallet Info 2 Step (show other pallet).
Options Pallet Info
BACK
Back to Process
back → Pallet Info Step. back_process → Package Step.
Branch: New Pallet (Numpad)
Count Step Package Step
Del
7
8
9
4
5
6
1
2
3
0
OK
0–9: set selected_palette. OK: palette_quantity=0 for all entries of this pallet → Package Step. Del: selected_palette null. onDoubleTrigger → Package Step.
Count Step Placing Step
Del
7
8
9
4
5
6
1
2
3
0
OK
Same numpad logic: OK → Placing Step (palette_quantity=0 for selected pallet). onDoubleTrigger → Placing Step.
Flow overview
Start Step: With workflow.job automatically → Package Step; else START button. OPTION → Options Start Step ("No OPTION available", BACK → Start). Package Step: Scan parcel (barcode > 4 chars): new entry (parcel_article, palette from reusablePalettes or max+1, palette_quantity 0), scanLog "SCAN;timestamp;sku;palette", → Placing Step. Short barcode → negative_feedback. OPTION → Options Package Step (New Pallet, New Container, Clear allocation, Pallet Info). Placing Step: Shows pallet no., quantity (sum for this pallet), article (SKU). onAppear: LightTag for current_palette (worker.additionalData, TRIPLE). "Confirmed" button or onDoubleTrigger or scan pallet LightTag barcode: entry.palette_quantity=1, entry.check, scanLog entry → Package Step. Skip: remove entry from results → Package Step. Wrong scan → negative_feedback. onDisappear: disableLightTag(current_lighttag). OPTION → Options Placing Step (New Pallet, New Container, Clear allocation). Check Done Step / Completion Step: Present in definition; Check Done onAppear checks whether all result.check set → Completion Step, else → Package Step. No other step links to Check Done. Completion Step: SAVE → finalizeJobData(), api.workflow.done(). New Container (Options Package Step 2 / Options Placing Step 2): "Are you sure?" No → back (Package/Placing). Yes → finalizeJobData(), new job created, api.workflow.done(true, newJob) (current job completed, new open job). Clear Allocation Step: Scan LightTag (pallet no.): all results with this pallet → clearedAllocations (with clearedAt), removed from results, pallet in reusablePalettes. Next scan can assign this pallet again. BACK → Package Step. Pallet Info: Scan Pallet → Pallet Info 2 Step (SKU, quantity per entry). Done → Package Step. Options Pallet Info: Back to Process → Package Step, BACK → Pallet Info Step. New Pallet (Count Step Package/Placing): Numpad selects selected_palette (digits 0–9). OK sets palette_quantity=0 for all entries of this pallet (Package: → Package Step; Placing: → Placing Step). Del clears display. onDoubleTrigger → back to previous step. onStopJobCode: finalizeJobData(), api.workflow.done(true). finalizeJobData writes summary lines (SUMMARY;sku;palette;qty, PALETTE_SUMMARY) to scanLog/results. Data: job.results[]: parcel_article, palette, palette_quantity, time, check. job.scanLog: SCAN;timestamp;sku;palette, SUMMARY, PALETTE_SUMMARY. job.clearedAllocations on Clear allocation. workflow.reusablePalettes for pallet reuse.
REST API — Step by Step
Required HTTP Data Connection endpoints per workflow step (derived from step logic). Standard PoV JSONs still use CSV/local job data — these endpoints are what your ERP/WMS should expose when migrating to HTTP.
GETvalidate-paletteValidate palette number (LightTag ID)
POSTsubmit-allocationSave SKU quantity on palette
3Check Done Step
POSTcomplete-inboundSave inbound batch and finish job
4Completion Step
POSTcomplete-inboundSave inbound batch and finish job
Special steps
5Clear Allocation Step
DELETEclear-allocationRemove allocation from palette
6Pallet Info Step
GETget-palette-infoLoad palette contents and quantities
GETvalidate-paletteValidate palette number (LightTag ID)
7Pallet Info 2 Step
GETget-palette-infoLoad palette contents and quantities
8Count Step Package Step
GETvalidate-paletteValidate palette number (LightTag ID)
9Count Step Placing Step
GETvalidate-paletteValidate palette number (LightTag ID)
Options menu
10Options Package Step 2
POSTcreate-new-containerCreate new palette / container for inbound
POSTcomplete-inboundSave inbound batch and finish job
11Options Placing Step 2
POSTcreate-new-containerCreate new palette / container for inbound
POSTcomplete-inboundSave inbound batch and finish job
Technical Reference — Sorting Parcel Inbound
Inbound SKU → palette assignment → SAVE. See the step-by-step section above for which endpoint belongs to which workflow step.
1 · HTTP Data Connection setup
Connection type
HTTP Data Connection
Identifier
e.g. erp-system — referenced as dataConnection in the workflow
Base URL
Customer web service URL (HTTPS)
Authentication
None, Basic, Bearer, or OAuth
Endpoint identifier
Unique name per operation (must match step cards above)
Endpoint URL
Relative path, e.g. /orders/{orderId}/lines/{lineId}
Pre / post processing
Transform request and map response to NIMMSTA job format
requestOverride
Workflow can override body, headers, params, query (JavaScript)
Async rules:await works in loadData pre/post processing, onStopJobCode, and api.workflow.runActionCodeAsync(...). Step handlers (onScan, onButtonPress) are synchronous — use a loading step or workflow actions for API calls.