Skip to Content
EinstellungenDrucker & Workstations

Drucker & Workstations

Das WMS verwendet ein Print-Broker-System: Drucker werden nicht direkt aus dem Browser angesteuert, sondern über einen lokalen Print Agent, der auf dem Packplatz-PC läuft. Der Agent verbindet sich mit dem WMS, empfängt Druckaufträge und sendet sie an die angeschlossenen Drucker — lautlos, ohne Browser-Dialoge.

Architektur-Ăśberblick

So funktioniert es:

  1. Ein Nutzer löst im WMS einen Versand aus (oder klickt “Nachdrucken”)
  2. Das WMS erstellt einen Druckauftrag in der Datenbank mit Status queued
  3. Der Print Agent auf dem Packplatz-PC wird per Realtime benachrichtigt (oder fragt alle 500ms ab)
  4. Der Agent beansprucht den Auftrag (Status wird printing), lädt das Label herunter und druckt es
  5. Der Agent meldet den Erfolg oder Fehler zurĂĽck (Status wird success oder failed)
  6. Das WMS zeigt den aktuellen Status in der Druckhistorie an

Komponenten

Das Drucksystem besteht aus vier Hauptbestandteilen:

KomponenteBeschreibungWo?
WMS (Print Broker)Erstellt Druckaufträge, verwaltet Workstations und Drucker-ZuweisungenBrowser (app.flowkom.de)
Print AgentWindows-Programm, das Druckaufträge empfängt und an lokale Drucker sendetPackplatz-PC (Windows)
WorkstationVirtuelle Repräsentation eines physischen Packplatzes im WMSWMS-Einstellungen
DruckerPhysische Drucker, die am Packplatz-PC angeschlossen sindLokal am PC

Druckauftrag-Lebenszyklus

StatusBedeutungNächster Schritt
Wartend (queued)Auftrag erstellt, wartet auf den AgentAgent holt den Auftrag ab
Wird gedruckt (printing)Agent hat den Auftrag beanspruchtAgent druckt und meldet Ergebnis
Erfolgreich (success)Druck wurde ausgefĂĽhrtFertig
Fehlgeschlagen (failed)Druck ist fehlgeschlagenFehler prĂĽfen, ggf. Retry

Der Print Agent ist ein Windows-Programm (.exe), das auf jedem Packplatz-PC installiert werden muss.

Systemanforderungen

  • Betriebssystem: Windows 10 oder neuer
  • Runtime: .NET 8 (wird bei der Installation mitgeliefert)
  • Netzwerk: Internetzugang zum WMS (HTTPS)

Installation (Schritt fĂĽr Schritt)

  1. Öffne im WMS Einstellungen → Drucker
  2. Lade im Bereich Print Agent herunterladen die EXE-Datei herunter
  3. FĂĽhre die Installation auf dem Packplatz-PC durch
  4. Der Agent startet automatisch und legt sich in die Taskleiste (System Tray)
  5. Der Agent startet kĂĽnftig automatisch mit Windows

Pairing (Agent mit Workstation verbinden)

Nach der Installation muss der Agent einmalig mit einer Workstation im WMS gekoppelt werden:

  1. Erstelle im WMS eine Workstation (siehe nächster Abschnitt) oder verwende eine bestehende
  2. Klicke im WMS auf das Aktionsmenü der Workstation → Pairing-Code erstellen
  3. Ein 6-stelliger Zahlencode wird angezeigt (gĂĽltig fĂĽr 10 Minuten)
  4. Ă–ffne den Print Agent auf dem Packplatz-PC
  5. Gib dort die WMS-URL ein (z.B. https://app.flowkom.de)
  6. Gib den 6-stelligen Pairing-Code ein und bestätige
  7. Die Verbindung ist hergestellt — der Agent zeigt den Status “Verbunden” an

Nach erfolgreichem Pairing:

  • Die Workstation zeigt im WMS den Status Online (grĂĽner Punkt)
  • Die Agent-Version wird angezeigt
  • Alle am PC angeschlossenen Drucker werden automatisch gemeldet und im WMS sichtbar

Sicherheit: Der Agent authentifiziert sich mit einem kryptografisch sicheren Device Token, nicht mit Benutzername/Passwort. Der Token ist an genau eine Workstation gebunden. Im WMS wird nur der Hash des Tokens gespeichert.

Workstations verwalten

Eine Workstation repräsentiert einen physischen Packplatz. Jede Workstation hat genau einen Print Agent und beliebig viele Drucker.

Workstation erstellen

  1. Öffne Einstellungen → Drucker
  2. Klicke auf Workstation hinzufĂĽgen
  3. Vergib einen Namen (z.B. “Packplatz 1”, “Versand Erdgeschoss”)
  4. Optional: FĂĽge einen Kommentar hinzu (z.B. Standort, Besonderheiten)
  5. Klicke auf Speichern

Workstation-Ăśbersicht

Die Workstation-Tabelle zeigt alle konfigurierten Packplätze:

SpalteBedeutung
NameName der Workstation (+ Kommentar falls vorhanden)
VerbindungOnline (grĂĽn), Offline (grau) oder Nicht gepairt
Agent-VersionVersion des installierten Print Agent
Letzter KontaktZeitpunkt des letzten Heartbeat vom Agent
StatusAktiv oder Inaktiv

Online/Offline-Status

Der Agent sendet regelmäßig einen Heartbeat an das WMS. Anhand des letzten Heartbeat wird der Status bestimmt:

  • Online (grĂĽner Punkt): Letzter Heartbeat innerhalb der letzten 30 Sekunden
  • Offline (grauer Punkt): Kein Heartbeat seit mehr als 30 Sekunden
  • Nicht gepairt: Noch kein Agent verbunden — Pairing steht aus

Workstation aktivieren/deaktivieren

Ăśber das AktionsmenĂĽ (drei Punkte) kannst du eine Workstation deaktivieren. Deaktivierte Workstations:

  • Erhalten keine neuen Druckaufträge
  • Bleiben mit allen Einstellungen erhalten
  • Können jederzeit wieder aktiviert werden

Warnung: Wenn keine Workstation aktiv ist, kann kein automatischer Labeldruck ausgefĂĽhrt werden. Das WMS zeigt dann eine Warnmeldung an.

Workstation entkoppeln

Wenn der Print Agent durch eine Neuinstallation ersetzt werden muss:

  1. Klicke auf das AktionsmenĂĽ der Workstation
  2. Wähle Entkoppeln
  3. Der bestehende Device Token wird invalidiert
  4. Erstelle einen neuen Pairing-Code und verbinde den neuen Agent

Workstation löschen

  1. Klicke auf das Aktionsmenü → Löschen
  2. Bestätige den Dialog

Bedingung: Eine Workstation kann nur gelöscht werden, wenn keine aktiven Druckaufträge (Status “Wartend” oder “Wird gedruckt”) vorhanden sind. Warte, bis alle Aufträge abgeschlossen sind, bevor du die Workstation löschst.

Drucker-Typen und Formate

Nach dem Pairing meldet der Agent alle am PC verfĂĽgbaren Drucker automatisch an das WMS. Die Drucker erscheinen im Tab Drucker der Workstation-Details.

Drucker-Typen

TypBezeichnung im WMSBeschreibungBeispiel
thermalThermodruckerZPL-fähige Etikettendrucker für VersandlabelsZebra GK420, Zebra ZD421
a4A4-DruckerStandard-Laserdrucker fĂĽr Dokumente (Lieferscheine, Zolldokumente)HP LaserJet, Brother HL
labelAdressetikettendruckerKleine Etikettendrucker (kein ZPL, nur PDF)Brother QL-820NWB, DYMO LabelWriter
bondBondruckerBondrucker fĂĽr BelegeEpson TM
unknownUnbekanntTyp noch nicht zugewiesenNeuer Drucker

Brother QL und DYMO werden vom Agent automatisch anhand des Druckernamens als Adressetikettendrucker erkannt. Falls ein Drucker nicht erkannt wird (z.B. weil er umbenannt wurde), kann der Typ manuell geändert werden.

Label-Formate

FormatBeschreibungVerwendet fĂĽr
PDFUniverselles Druckformat, von allen Druckern unterstĂĽtztA4-Drucker, Adressetikettendrucker, Thermodrucker
ZPLZebra Programming Language — Spezialformat für ThermodruckerNur Thermodrucker (Zebra, etc.)

Wichtig: Adressetikettendrucker (Brother QL, DYMO) unterstĂĽtzen kein ZPL. FĂĽr diese Drucker muss das Format auf PDF eingestellt sein. Der Agent setzt dies beim Erkennen automatisch, aber das WMS zeigt eine Warnung an, falls ein Adressetikettendrucker auf ZPL eingestellt ist.

Drucker konfigurieren

In den Workstation-Details (Klick auf den Workstation-Namen) im Tab Drucker:

  1. Format ändern: Über das Dropdown in der Format-Spalte zwischen PDF und ZPL wechseln
  2. Typ ändern: Über das Aktionsmenü → “Drucker-Typ ändern” den Typ manuell setzen
  3. Deaktivieren/Aktivieren: Ăśber das AktionsmenĂĽ den Drucker ein-/ausschalten. Deaktivierte Drucker stehen nicht fĂĽr Zuweisungen zur VerfĂĽgung.
  4. Testdruck: Über das Aktionsmenü → “Testdruck” einen Testdruck auslösen. Ein Test-Job wird in die Queue eingestellt und vom Agent verarbeitet.

Drucker-Zuweisungen (Versandart → Drucker)

Damit das WMS beim Versand automatisch den richtigen Drucker wählt, musst du Zuweisungen einrichten: Welcher Drucker soll für welche Versandart drucken?

Zuweisungen einrichten

  1. Klicke auf eine Workstation, um die Details zu öffnen
  2. Wechsle zum Tab Zuweisungen
  3. FĂĽr jede Versandart siehst du zwei Dropdowns:
    • Primärdrucker — Der bevorzugte Drucker fĂĽr diese Versandart
    • Fallback-Drucker — Wird verwendet, wenn der Primärdrucker inaktiv ist
  4. Wähle die gewünschten Drucker aus
  5. Klicke auf Speichern
SpalteBeschreibung
VersandartName der Versandart (z.B. “DHL Paket”, “Deutsche Post Brief”)
PrimärdruckerStandardmäßig verwendeter Drucker
Fallback-DruckerErsatzdrucker, falls Primär inaktiv

Warnung: Versandarten ohne Drucker-Zuweisung werden mit einem gelben Warndreieck markiert. Ohne Zuweisung wird beim Versand kein automatischer Labeldruck ausgelöst — das Label kann aber weiterhin manuell heruntergeladen werden.

Exportdokument-Drucker (Zolldokumente)

FĂĽr internationale Sendungen mit Zolldokumenten (CN23) kann ein separater A4-Drucker konfiguriert werden:

  1. Im Tab Zuweisungen findest du unter der Zuweisungstabelle den Bereich A4-Drucker fĂĽr Exportdokumente
  2. Wähle einen A4-Drucker aus der Liste
  3. Zolldokumente werden automatisch an diesen Drucker gesendet

Nur aktive Drucker vom Typ “A4-Drucker” stehen in dieser Auswahl zur Verfügung.

Zuweisungen von anderer Workstation kopieren

Wenn du mehrere Packplätze mit gleicher Konfiguration einrichten möchtest:

  1. Ă–ffne die Zuweisungen der Ziel-Workstation
  2. Klicke auf Von anderer Workstation kopieren
  3. Wähle die Quell-Workstation aus
  4. Die Zuweisungen werden ĂĽbernommen (nur Drucker, die auch auf der Ziel-Workstation existieren)
  5. Klicke auf Speichern, um die kopierten Zuweisungen zu sichern

Druckablauf im Versandprozess

Automatischer Labeldruck beim Versand

Der häufigste Druckvorgang: Ein Mitarbeiter versendet eine Bestellung, das Label wird automatisch gedruckt.

Ablauf im Detail:

  1. Der Packer wählt im Versand-Dialog seine Workstation aus (wird im Browser gespeichert)
  2. Nach Klick auf “Versenden” erstellt das WMS ein Label bei DHL/Deutsche Post
  3. Das Label wird im Storage abgelegt
  4. Das WMS sucht den passenden Drucker: Primärdrucker der Versandart → Fallback → kein Druck
  5. Ein Druckauftrag wird in die Queue eingestellt
  6. Der Print Agent empfängt den Auftrag, lädt das Label über eine signierte URL herunter und druckt es
  7. Die signierte URL ist 24 Stunden gĂĽltig

Wichtig: Der Druckvorgang blockiert nie den Versandprozess. Falls kein Drucker zugewiesen ist oder der Agent offline ist, wird der Versand trotzdem abgeschlossen. Das Label kann dann manuell heruntergeladen werden.

Nachdruck (Reprint)

Falls ein Label erneut gedruckt werden muss (z.B. unleserlich, Papierstau):

  1. Ă–ffne die Bestelldetails der versendeten Bestellung
  2. Klicke auf Nachdrucken beim gewĂĽnschten Label
  3. Ein neuer Druckauftrag wird in die Queue eingestellt
  4. Der Agent druckt das Label erneut

Der Nachdruck funktioniert fĂĽr:

  • Versandlabels — DHL, Deutsche Post
  • Exportdokumente — CN23 Zolldokumente
  • Retourenlabels — Falls automatisch erstellt

Was passiert, wenn kein Drucker konfiguriert ist?

Wenn beim Versand kein passender Drucker gefunden wird:

  • Der Versand wird nicht blockiert — die Bestellung wird trotzdem als versendet markiert
  • Das WMS zeigt eine Warnung: “Kein Drucker fĂĽr Versandart X auf Workstation Y konfiguriert”
  • Das Label kann ĂĽber den Download-Link manuell heruntergeladen und gedruckt werden
  • Die Lösung: Unter Einstellungen → Drucker den fehlenden Drucker zuweisen

Exportdokumente bei internationalen Sendungen

Bei internationalen DHL-Sendungen, die Zolldokumente (CN23) erfordern:

  1. Das WMS erstellt neben dem Versandlabel auch ein Exportdokument
  2. Falls ein Exportdokument-Drucker (A4) konfiguriert ist, wird ein separater Druckauftrag erstellt
  3. Das Exportdokument wird automatisch auf dem A4-Drucker gedruckt
  4. Falls kein Exportdrucker konfiguriert ist, kann das Dokument manuell heruntergeladen werden

Workstation im Versandprozess auswählen

Im Versand-Dialog (Pack & Ship) gibt es ein Workstation-Dropdown, um den aktiven Packplatz auszuwählen:

  • Das Dropdown zeigt alle aktiven, gepaarten Workstations
  • Neben dem Namen wird der Online-Status angezeigt (grĂĽn = online, grau = offline)
  • Die Auswahl wird im Browser gespeichert und beim nächsten Ă–ffnen automatisch vorbelegt
  • Ohne Workstation-Auswahl ist der Versand weiterhin möglich — es wird nur kein automatischer Druck ausgelöst

Druckhistorie

In den Workstation-Details im Tab Druckhistorie siehst du alle Druckaufträge der Workstation:

  • Auftrag — Bestellnummer (oder “Testdruck”)
  • Drucker — Name des verwendeten Druckers
  • Typ — Versandlabel, Exportdokument oder Testdruck
  • Format — PDF oder ZPL
  • Status — Wartend, Wird gedruckt, Erfolgreich, Fehlgeschlagen
  • Zeitpunkt — Wann der Auftrag erstellt bzw. gedruckt wurde
  • Benutzer — Wer den Druck ausgelöst hat

Bei fehlgeschlagenen Aufträgen kannst du über das Aktionsmenü einen Retry auslösen — ein neuer Druckauftrag mit Status “Wartend” wird erstellt.

Druckaufträge werden nach 60 Tagen automatisch bereinigt. Die zugehörigen Label-Dateien im Storage werden ebenfalls gelöscht.

Testdruck

Um zu prĂĽfen, ob der Print Agent korrekt mit einem Drucker verbunden ist:

  1. Ă–ffne die Workstation-Details (Klick auf den Workstation-Namen)
  2. Im Tab Drucker → Aktionsmenü des gewünschten Druckers → Testdruck
  3. Ein Test-PDF wird als Druckauftrag in die Queue eingestellt
  4. Der Agent verarbeitet den Auftrag und meldet das Ergebnis
  5. In der Druckhistorie siehst du, ob der Testdruck erfolgreich war

Fehlerbehebung

Agent zeigt “Offline” im WMS

  1. Prüfe, ob der Print Agent auf dem Packplatz-PC läuft (Icon in der Taskleiste?)
  2. PrĂĽfe die Internetverbindung des PCs
  3. Starte den Agent neu (Rechtsklick auf Tray-Icon → Beenden, dann Agent erneut öffnen)
  4. Falls der Agent seit der letzten Neuinstallation nicht mehr verbunden war: Entkoppeln und neu pairen

”Kein Drucker für Versandart X konfiguriert”

  1. Öffne Einstellungen → Drucker
  2. Klicke auf die betroffene Workstation
  3. Wechsle zum Tab Zuweisungen
  4. Weise der genannten Versandart einen Primärdrucker zu
  5. Klicke auf Speichern

Druckauftrag bleibt auf “Wartend” hängen

  1. PrĂĽfe, ob die Workstation online ist (grĂĽner Punkt)
  2. Prüfe, ob der Agent auf dem PC läuft
  3. Falls der Agent läuft aber keine Jobs abholt: Agent neu starten
  4. Falls das Problem bestehen bleibt: Workstation entkoppeln und neu pairen

Druckauftrag zeigt “Fehlgeschlagen”

  1. Ă–ffne die Druckhistorie der Workstation
  2. PrĂĽfe die Fehlermeldung des fehlgeschlagenen Auftrags
  3. Häufige Ursachen:
    • Drucker nicht gefunden — Der Drucker wurde vom PC entfernt oder ist ausgeschaltet
    • Papier/Etiketten leer — NachfĂĽllen und Retry auslösen
    • Format-Mismatch — ZPL an einen Nicht-ZPL-Drucker gesendet → Format in den Drucker-Einstellungen auf PDF umstellen
  4. Nach Behebung der Ursache: Retry ĂĽber das AktionsmenĂĽ des Auftrags

Label wird in falscher Größe gedruckt

Das WMS sendet Labels im Originalformat (z.B. DHL: 100 x 210 mm). Die Skalierung auf die tatsächliche Etikettengröße ist Aufgabe des Windows-Druckertreibers:

  1. Ă–ffne auf dem Packplatz-PC die Druckereigenschaften
  2. Stelle die Papiergröße/Etikettengröße auf das eingelegte Medium ein
  3. PrĂĽfe die Skalierungseinstellungen im Treiber

Häufige Fragen

Kann ich mehrere Drucker an einer Workstation betreiben?

Ja. Der Print Agent erkennt alle am PC angeschlossenen Drucker und meldet sie dem WMS. Ăśber die Versandart-Zuweisungen steuerst du, welcher Drucker fĂĽr welche Versandart verwendet wird. Du kannst z.B. einen Thermodrucker fĂĽr DHL-Labels und einen A4-Drucker fĂĽr Zolldokumente an derselben Workstation betreiben.

Was passiert, wenn der Print Agent offline ist?

Druckaufträge bleiben in der Queue mit Status “Wartend”. Sobald der Agent wieder verbunden ist, werden die wartenden Aufträge automatisch abgearbeitet. Zeitkritische Labels sollten deshalb immer mit einer aktiven Workstation generiert werden.

Können mehrere Packplätze gleichzeitig drucken?

Ja. Jede Workstation hat eine eigene Druckwarteschlange. Mehrere Packplätze arbeiten vollständig unabhängig voneinander. Es gibt kein Limit für die Anzahl gleichzeitig aktiver Workstations.

Wie wird verhindert, dass ein Label doppelt gedruckt wird?

Jeder Druckauftrag hat einen Idempotenz-Schlüssel (job_key). Beim Versand wird dieser aus Bestell-ID und Versandauftrags-ID zusammengesetzt. Ein zweiter Klick auf “Versenden” erzeugt keinen doppelten Druckauftrag — der bestehende wird erkannt und übersprungen.

UnterstĂĽtzt das System ZPL und PDF gleichzeitig?

Ja. Das DHL-Label-Format wird beim Versand automatisch anhand der Drucker-Konfiguration gewählt. Ein Thermodrucker kann ZPL empfangen, während ein Adressetikettendrucker an derselben Workstation PDF bekommt. Das Format wird pro Drucker eingestellt, nicht pro Workstation.

Brauche ich den Print Agent fĂĽr jeden PC?

Ja, der Print Agent muss auf jedem Packplatz-PC installiert werden, der automatisch drucken soll. Jeder Agent ist genau einer Workstation zugeordnet. Wenn du nur einen Packplatz hast, brauchst du nur einen Agent.

Technische Details (fĂĽr Administratoren)

Datenbank-Tabellen

Das Drucksystem verwendet folgende Tabellen:

TabelleBeschreibung
workstationsPackplätze mit Name, Status, Device Token (gehasht), Agent-Version, letzter Heartbeat
workstation_pairing_codesEinmal-Codes (6-stellig, 10 Min. TTL) fĂĽr das Agent-Pairing
workstation_printersVom Agent gemeldete Drucker mit Typ, Format, Status
shipping_method_printer_assignmentsVersandart-zu-Drucker-Zuweisungen pro Workstation (Primary + Fallback)
print_jobsDruckauftrags-Queue und Audit Trail

Enum-Typen

printer_type: thermal | a4 | bond | label | unknown label_format: zpl | pdf label_type: shipping_label | picklist | test | export_document print_job_status: queued | printing | success | failed

Idempotenz und Signed URLs

  • Job Key: Jeder Druckauftrag hat einen eindeutigen SchlĂĽssel (z.B. ship-{order_id}-{task_id}). Ein UNIQUE-Index verhindert doppelte Einträge.
  • Signed URLs: Der Agent lädt Labels nicht direkt aus der Datenbank, sondern ĂĽber signierte URLs aus dem Supabase Storage. Die URLs sind 24 Stunden gĂĽltig.
  • Atomischer Claim: Wenn der Agent einen Job abholt, wird der Status in einer atomischen Transaktion von queued auf printing gesetzt. Das verhindert, dass zwei Agents denselben Job verarbeiten.

Broker-Architektur (Edge Functions)

Die Kommunikation zwischen Agent und WMS läuft über Supabase Edge Functions:

EndpointZweck
POST /print-pairPairing-Code einlösen → Device Token erhalten
POST /print-heartbeatHeartbeat senden (Version, Status, last_seen_at)
GET /print-next-jobNächsten wartenden Job atomar beanspruchen
POST /print-job-resultDruckergebnis melden (success/failed + Fehlermeldung)
POST /print-printers-reportDrucker-Inventar an das WMS melden (Upsert)

Alle Endpoints validieren den Device Token und beschränken Aktionen auf genau eine Workstation.

Realtime-Benachrichtigung

Im optimierten Modus (PROJ-41) nutzt der Agent Supabase Realtime, um sofort über neue Druckaufträge benachrichtigt zu werden. Als Fallback fragt der Agent alle 500ms per Polling nach neuen Jobs. Der kritische Pfad (DHL-Label generieren → Agent druckt) dauert typischerweise 2–4 Sekunden.

RLS-Policies (Row Level Security)

Alle Tabellen sind mit RLS gesichert:

  • Workstations, Printers, Assignments: Lesen fĂĽr alle Workspace-Mitglieder, Schreiben nur fĂĽr Admins
  • Print Jobs: Lesen und Erstellen fĂĽr alle Workspace-Mitglieder, Löschen nur fĂĽr Admins
  • Pairing Codes: Nur fĂĽr Admins sichtbar und verwaltbar

Label Storage

Labels werden im Supabase Storage Bucket labels/ abgelegt:

  • Pfadformat: labels/{workspace_id}/{order_id}/{filename}.pdf (oder .zpl)
  • Bereinigung: Der tägliche Cleanup-Cron-Job löscht Labels älter als 60 Tage
  • Zugriff: Nur ĂĽber signierte URLs (kein direkter öffentlicher Zugriff)

Verwandte Seiten

  • Versandarten — Versandarten anlegen, die den Druckern zugewiesen werden
  • Cron-Jobs — Täglicher Cleanup bereinigt alte Druckaufträge und Labels