RFID-Zählungen nach Odoo schreiben: von stock.inventory zu stock.quant-Anpassungen
RFID-Zählungen nach Odoo schreiben: von stock.inventory zu stock.quant-Anpassungen
Odoo Integration

RFID-Zählungen nach Odoo schreiben: von stock.inventory zu stock.quant-Anpassungen

Die Zählung ist die leichte Hälfte. Die schwere Hälfte ist, aus einem Strom von EPC-Lesungen eine belastbare Bestandsanpassung zu machen: deterministische Zuordnung, Soll-Ist-Arithmetik mit Respekt vor Reservierungen, Batch-Schreibvorgänge ohne Deadlock und ein Prüfpfad, den die Buchhaltung akzeptiert.

12 min· By SpidersRFID Editorial Team

Ein Leser erzeugt Beobachtungen. Odoo braucht eine Entscheidung. Dazwischen liegt der unspektakulärste und folgenreichste Teil eines RFID-Deployments: der Code, der einige hunderttausend EPC-Lesungen in wenige Bestandsanpassungen verwandelt, die jemand zu unterschreiben bereit ist.

Macht man das falsch, ist das Symptom keine Fehlermeldung. Es ist ein Lager, das dem System nicht mehr traut und daneben eine Tabelle führt.

Was sich geändert hat: stock.inventory ist weg, das Modell ist stock.quant

Viel Rat im Netz beschreibt noch ein Modell, das Odoo entfernt hat, also beginnen Sie mit der aktuellen Wahrheit.

  • Das alte stock.inventory-Dokument ist veraltet; ab Odoo 15 wird direkt auf stock.quant-Datensätzen gezählt.
  • Ein Quant ist eindeutig über Produkt, Standort, Charge, Packstück und Eigentümer bestimmt; dieses Tupel ist der Schlüssel, den Ihr Import treffen muss.
  • Zählen heißt, inventory_quantity im Inventarmodus auf den Quant zu schreiben und danach den Bestand anzuwenden.
  • Das Anwenden erzeugt als Inventuranpassung markierte Lagerbewegungen und, bei bewerteten Produkten, Bewertungsschichten.
  • Der Anpassungsassistent (stock.inventory.adjustment.name) bündelt eine Zählsitzung und trägt das Buchungsdatum, und genau das macht eine Zählung prüfbar.

Die Staging-Tabelle zwischen Leser und ERP

Lassen Sie einen Leser nie direkt in den Produktivbestand schreiben; die Staging-Schicht ist der Ort, an dem schlechte Daten sterben.

  • Speichern Sie zuerst Rohlesungen: EPC, Antenne, Leser, Zeitstempel, RSSI und die Sitzungskennung.
  • Lösen Sie EPC zu Produkt in einem separaten Schritt auf, damit eine Korrektur der Zuordnung kein erneutes Zählen des Lagers erfordert.
  • Behalten Sie die aufgelöste Zeile, ihre Konfidenz und ihre Quelle, denn „wir haben es aus dem Präfix geraten" ist Information, nach der die Revision fragt.
  • Machen Sie die Tabelle pro Sitzung idempotent, damit ein erneuter Lauf derselben Zählung nicht doppelt zählt.
  • Bewahren Sie die Rohlesungszahl pro EPC; Duplikate sind zu erwarten, und ihre Anzahl ist ein Signal über die Leserkonfiguration.

EPC Produkt, Charge und Standort zuordnen

Bei der Zuordnung entsteht der größte Teil der Abweichung, und sie ist vollständig vermeidbar.

  • Lösen Sie EPC über ein explizites Register auf, nicht durch Parsen des SGTIN-Musters zur Lesezeit, es sei denn, das Muster ist vertraglich garantiert.
  • Ist ein Produkt chargengeführt, muss die Charge aus dem Register oder aus einer Verpackungsbeziehung kommen; ein EPC allein trägt sie selten.
  • Der Standort kommt aus den Sitzungsmetadaten, nicht aus dem Etikett, denn Etiketten wissen nicht, wo sie sind.
  • Löst ein EPC zwei Produkte auf, halten Sie an und quarantänisieren Sie die Lesung; eine stille Ersttreffer-Regel ist der Weg zu Geisterbestand.
  • Erfassen Sie nicht zugeordnete EPCs, statt sie zu verwerfen; unbekannte Etiketten sind der schnellste Weg zu einem Prozessfehler.

Soll versus gezählt: die Arithmetik, die man falsch macht

Die Abweichung ist nicht gezählt minus verfügbar; sie ist ein Drei-Wege-Vergleich, und der dritte Term sind die Reservierungen.

  • Die verfügbare Menge ist das, was das Buch physisch für vorhanden hält.
  • Die reservierte Menge ist bereits einem Liefer- oder Fertigungsauftrag zugesagt und darf nicht als fehlend behandelt werden.
  • Die gezählte Menge ist das, was der Leser während der Sitzung gesehen hat, nach Deduplizierung und Filterregeln.
  • Die Abweichung ist gezählt minus verfügbar; eine negative Abweichung auf einer reservierten Zeile heißt meist, die Ware ist bereitgestellt, nicht verloren.
  • Melden Sie die Abweichung in Stück und in Wert, weil ein Controller nach Wert triagiert, auch wenn der Betrieb nach Stück triagiert.

Anpassungen sicher anwenden

Der Schreibpfad muss langweilig, gebündelt und innerhalb des Sitzungsfensters umkehrbar sein.

  • Schreiben Sie inventory_quantity im Inventarmodus und wenden Sie pro Standort oder pro Sitzung an, nicht pro Etikett.
  • Bündeln Sie in Blöcken von einigen hundert Quants; eine Transaktion pro Quant macht aus einer Zählung mit 100.000 Etiketten eine zweistündige Sperre.
  • Die Sperrreihenfolge zählt: Sortieren Sie Quants vor dem Schreiben nach Produkt und Standort, damit zwei gleichzeitige Sitzungen sich nicht gegenseitig blockieren.
  • Passen Sie niemals einen Standort an, der gerade umgelagert wird oder eine offene Kommissionierung hat; verschieben Sie diese Quants in einen zweiten Durchlauf.
  • Halten Sie die Sitzungsreferenz im Datensatz, damit die Bewertungsschicht bis zur Zählung zurückverfolgt werden kann.

Freigabe, Buchungsdatum und Prüfpfad

Der Unterschied zwischen einer Anpassung und einer Korrektur ist, wer sie freigegeben hat und wann sie in die Bücher kam.

  • Leiten Sie Anpassungen über einer Wertschwelle an einen zweiten Freigeber; darunter automatisch anwenden, aber den Akteur trotzdem protokollieren.
  • Setzen Sie das Buchungsdatum bewusst; eine am 30. gezählte und am 3. angewendete Zählung gehört in die frühere Periode, sonst erzählt der Monatsabschluss etwas anderes.
  • Hängen Sie den Zählbericht als Anlage an die Anpassung, nicht in einen Share-Ordner, der irgendwann umsortiert wird.
  • Protokollieren Sie je Zeile die Menge vor der Anpassung, die gezählte Menge, die Differenz und den Grundcode.
  • Gleichen Sie die Summe der Anpassungen zum Periodenabschluss gegen den Bewertungsbericht ab; beide müssen dasselbe erzählen.

Unbekannte Etiketten, Duplikate und Nachzählungen

Diese drei Fälle binden den größten Teil des Supports, und jeder hat eine billige, explizite Politik.

  • Unbekannte Etiketten: in einem Quarantänestandort mit Aufgabe parken und wöchentlich prüfen; nie in ein echtes Produkt schreiben.
  • Duplikate: pro EPC und Sitzung deduplizieren, aber die Rohlesungszahl behalten, um einen Leser mit falsch gesetzter Sitzung zu erkennen.
  • Nachzählungen: die zweite Zählung mit derselben Sitzungsdefinition fahren und vor der Anpassung vergleichen, nicht danach.
  • Teilzählungen: die Sitzung als teilweise markieren und nur die tatsächlich begangenen Standorte anpassen, sonst werden unberührte Gänge auf null geschrieben.
  • Fehlende Etiketten: als Nachzählaufgabe am selben Regal behandeln, bevor irgendeine negative Anpassung erfolgt, denn eine abgeschirmte Palette sieht genauso aus wie eine leere.

Ein Rollout, der den ersten Monatsabschluss übersteht

Proben Sie die ganze Kette in einer Datenbankkopie, bevor die erste echte Anpassung läuft.

  • Proben Sie auf einer Kopie mit demselben Volumen, damit Laufzeit und Sperrverhalten repräsentativ sind.
  • Fahren Sie eine vollständige Zählung, wenden Sie nichts an und vergleichen Sie die berechnete Abweichung mit dem aktuellen Buch; die Differenz ist Ihr Werkzeugfehler.
  • Dann nur an einem Standort anwenden, die Periode schließen und Bewertungsbericht sowie Lagerbewegungen prüfen.
  • Erst nach einem sauberen Periodenabschluss auf den ganzen Standort ausweiten und das Runbook an den Betrieb übergeben.
  • Veröffentlichen Sie monatlich den Abweichungstrend pro Standort; ein steigender Trend ist ein Prozessproblem, kein Zählproblem.

Die technische Zusammenfassung ist kurz: Rohlesungen staging, deterministisch auflösen, eine Drei-Wege-Abweichung rechnen, Quants gebündelt in stabiler Sperrreihenfolge schreiben, mit explizitem Buchungsdatum anwenden und jede Zwischenzahl behalten. Dann ist RFID kein Zählgerät mehr, sondern der Grund, warum das Buch endlich stimmt.

Odoo-RFID-Integration — Komplettlösung

Wir verwenden Cookies, um Ihr Surferlebnis zu verbessern, den Website-Traffic zu analysieren und Inhalte zu personalisieren. Klicken Sie auf „Alle akzeptieren“, um allen Cookies zuzustimmen, oder wählen Sie „Nur notwendige“. Weitere Informationen in unserer Datenschutzerklärung für weitere Details.