3.6 KiB
WOID Attribut für workorders Collection
Was ist die WOID?
Die WOID (Work Order ID) ist eine 5-stellige Zahl (10000-99999), die jedes Ticket eindeutig identifiziert.
Beispiele: 10234, 54321, 99999
Appwrite Setup
Das woid Attribut muss zur workorders Collection hinzugefügt werden:
Schritt 1: Öffne Appwrite
- Gehe zu:
https://appwrite.webklar.com - Öffne dein Projekt: woms (ID:
693d9f37000b35267f1b) - Gehe zu Databases → woms-database (ID:
6943bf0e0003291f8c35) - Öffne die Collection: workorders (ID:
6943bf7d001901baa60c)
Schritt 2: Erstelle das woid Attribut
-
Klicke auf Attributes Tab
-
Klicke auf Create Attribute
-
Wähle String als Typ
-
Konfiguration:
- Attribute Key:
woid - Size: 10
- Required: ❌ Nein (für bestehende Tickets ohne WOID)
- Array: ❌ Nein
- Default Value: (leer lassen)
- Attribute Key:
-
Klicke auf Create
Schritt 3: Optional - Index erstellen
Für schnellere Suche nach WOID:
-
Gehe zum Indexes Tab
-
Klicke auf Create Index
-
Konfiguration:
- Index Key:
woid_index - Type: Key
- Attributes: Wähle
woid - Order: ASC
- Index Key:
-
Klicke auf Create
Wie funktioniert die WOID?
Automatische Generierung
Beim Erstellen eines neuen Tickets wird automatisch eine 5-stellige WOID generiert:
// Beispiel: 12345, 54321, 99999
const generateWOID = () => {
const timestamp = Date.now().toString()
const random = Math.floor(Math.random() * 90000) + 10000
const combined = (parseInt(timestamp.slice(-5)) + random) % 90000 + 10000
return combined.toString().padStart(5, '0')
}
Anzeige in der App
- Ticket-Liste: Zeigt die WOID in der ersten Spalte
- Ticket-Details: WOID im Header
- Filter: Suche nach WOID möglich
Format
- Länge: Immer 5 Zeichen
- Typ: Nur Zahlen (0-9)
- Bereich: 10000-99999
- Beispiele:
10234,54321,99999
Bestehende Tickets
Tickets die vor diesem Update erstellt wurden, haben möglicherweise keine WOID.
Fallback: Wenn keine WOID vorhanden ist, werden die letzten 5 Zeichen der Document ID angezeigt.
Fehlerbehebung
"Unknown attribute: woid"
Problem: Das woid Attribut existiert nicht in der Collection.
Lösung: Folge Schritt 2 oben, um das Attribut zu erstellen.
WOID zeigt Buchstaben
Problem: Alte Tickets haben keine WOID und verwenden den Fallback (Document ID).
Lösung:
- Erstelle das
woidAttribut (Schritt 2) - Neue Tickets bekommen automatisch eine WOID
- Optional: Bestehende Tickets manuell aktualisieren
WOID Duplikate
Problem: Zwei Tickets haben die gleiche WOID (sehr unwahrscheinlich).
Lösung: Der Algorithmus verwendet Timestamp + Zufallszahl für Eindeutigkeit. Bei Millionen von Tickets könnte theoretisch eine Kollision auftreten.
Verbesserung: Verwende einen Index mit unique: true und behandle Fehler beim Erstellen.
Technische Details
Datentyp in Appwrite
- String (nicht Integer), weil:
- Führende Nullen möglich (z.B.
00123) - Einfacher zu suchen und zu filtern
- Kompatibel mit verschiedenen Formaten
- Führende Nullen möglich (z.B.
Speicherung
workorderData = {
// ...
woid: "12345", // String mit 5 Ziffern
// ...
}
Anzeige
// In TicketRow.jsx
<div>{ticket.woid || ticket.$id?.slice(-5)}</div>
Fertig!
Nach dem Erstellen des woid Attributs:
- ✅ Neue Tickets bekommen automatisch eine 5-stellige WOID
- ✅ WOID wird in der Ticket-Liste angezeigt
- ✅ Suche nach WOID funktioniert
- ✅ Keine Buchstaben mehr in der WOID