Sorting Parcel Inbound mit LightTag-Navigation. Device pxx=200, pxy=200. Hauptfluss: Start → Package Step (Scan parcel) ↔ Placing Step (Pallet/Quantity/Article, Confirmed/Skip, LightTag). Optionen: New Pallet (Numpad), New Container, Clear allocation, Pallet Info. onStopJobCode: finalizeJobData, done(true).
Main flow
Start Step
onAppear: Falls workflow.job → Package Step. OPTION → Options Start Step. START → Package Step.
→
Package Step
Scan (barcode > 4 Zeichen): Entry anlegen (parcel_article, palette aus reusable oder max+1), scanLog, → Placing Step. Kurzer Barcode → negative_feedback. OPTION → Options Package Step.
→
Placing Step
OPTION
Pallet
1
Quantity
0
Article
2545465
Confirmed
Skip
onAppear: LightTag current_palette (worker color, TRIPLE). Confirmed / DoubleTrigger / Scan Pallet-Barcode: entry.palette_quantity=1, check, scanLog → Package Step. Skip: Entry entfernen → Package Step. Falscher Scan → negative_feedback. onDisappear: disableLightTag. OPTION → Options Placing Step.
↔
(Rückkehr aus Placing: Package Step; dann erneut Scan → Placing)
Completion path (Check Done / Abschluss)
Check Done Step
onAppear: alle result.check gesetzt → Abschluss Step; sonst → Package Step. (Kein targetStep verweist auf Check Done Step im Workflow.)
→
Abschluss 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 (Bestätigung)
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 = Palette-Nr: Einträge nach clearedAllocations, Palette in reusablePalettes, results gefiltert → Package Step. Ungültiger Scan → negative_feedback. BACK → Package Step.
Branch: Pallet Info
Pallet Info Step
OPTION
Scan pallet for Info
Scan Pallet: Einträge laden (current_palette, current_parcel_article, quantity) → Pallet Info 2 Step. Kein Treffer → negative_feedback. OPTION → Options Pallet Info.
→
Pallet Info 2 Step
SKU
000002286902
Quantity
58
Done
Done → Package Step. Weiterer Pallet-Scan → Pallet Info 2 Step (andere Palette anzeigen).
Options Pallet Info
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: selected_palette setzen. OK: palette_quantity=0 für alle Einträge dieser Palette → 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
Gleiche Numpad-Logik: OK → Placing Step (palette_quantity=0 für gewählte Palette). onDoubleTrigger → Placing Step.
Flow overview
Start Step: Bei workflow.job automatisch → Package Step; sonst START-Button. OPTION → Options Start Step („No OPTION available“, BACK → Start).
Package Step: Scan Parcel (Barcode > 4 Zeichen): Neuer Eintrag (parcel_article, palette aus reusablePalettes oder max+1, palette_quantity 0), scanLog „SCAN;timestamp;sku;palette“, → Placing Step. Kurzer Barcode → negative_feedback. OPTION → Options Package Step (New Pallet, New Container, Clear allocation, Pallet Info).
Placing Step: Zeigt Pallet-Nr., Quantity (Summe für diese Palette), Article (SKU). onAppear: LightTag für current_palette (worker.additionalData, TRIPLE). Button „Confirmed“ oder onDoubleTrigger oder Scan des Pallet-LightTag-Barcodes: entry.palette_quantity=1, entry.check, scanLog-Eintrag → Package Step. Skip: Entry aus results entfernen → Package Step. Falscher Scan → negative_feedback. onDisappear: disableLightTag(current_lighttag). OPTION → Options Placing Step (New Pallet, New Container, Clear allocation).
Check Done Step / Abschluss Step: In der Definition vorhanden; Check Done prüft onAppear, ob alle result.check gesetzt → Abschluss Step, sonst → Package Step. Kein anderer Step verlinkt auf Check Done. Abschluss Step: SAVE → finalizeJobData(), api.workflow.done().
New Container (Options Package Step 2 / Options Placing Step 2): „Are you sure?“ No → zurück (Package/Placing). Yes → finalizeJobData(), neuer Job erstellt, api.workflow.done(true, newJob) (aktueller Job abgeschlossen, neuer offener Job).
Clear Allocation Step: Scan LightTag (Paletten-Nr.): Alle results mit dieser Palette → clearedAllocations (mit clearedAt), aus results entfernt, Palette in reusablePalettes. Nächster Scan kann diese Palette wieder vergeben. BACK → Package Step.
Pallet Info: Scan Pallet → Pallet Info 2 Step (SKU, Quantity pro Eintrag). Done → Package Step. Options Pallet Info: Back to Process → Package Step, BACK → Pallet Info Step.
New Pallet (Count Step Package/Placing): Numpad wählt selected_palette (Ziffer 0–9). OK setzt palette_quantity=0 für alle Einträge dieser Palette (Package: → Package Step; Placing: → Placing Step). Del löscht Anzeige. onDoubleTrigger → zurück zum vorherigen Step.
onStopJobCode: finalizeJobData(), api.workflow.done(true). finalizeJobData schreibt Summary-Zeilen (SUMMARY;sku;palette;qty, PALETTE_SUMMARY) in scanLog/results.
Daten: job.results[]: parcel_article, palette, palette_quantity, time, check. job.scanLog: SCAN;timestamp;sku;palette, SUMMARY, PALETTE_SUMMARY. job.clearedAllocations bei Clear allocation. workflow.reusablePalettes für Paletten-Wiedervergabe.
Device pxx=200, pxy=200. PoVTemplates/Sorting Parcel Inbound.json