Naar hoofdinhoud gaan
De Odoo UNS Connector geeft een productiesysteem een herkenbaar beeld van een Odoo-order en biedt Odoo een gecontroleerde route voor terugmeldingen. Hier lees je welke gegevensafspraken daarvoor nodig zijn en wat elke overdracht bewijst. English

Waarom zijn gegevensafspraken nodig?

Een order kan langs meerdere systemen gaan. Elk systeem gebruikt eigen namen en referenties. Zonder afspraak over de betekenis van de velden kan een aantal bij de verkeerde bewerking belanden of in een verkeerde eenheid worden gelezen. Een datacontract legt vast wat een bericht beschrijft, welke velden en referenties het gebruikt en hoe de deelnemers die interpreteren. Een voorbeeld: Odoo maakt een productieorder voor zes panelen. Elk bericht beschrijft een herkenbare order of bewerking. Een ontvangend systeem kan daardoor naar dezelfde order of bewerking verwijzen zonder afhankelijk te zijn van de interne tabellen van Odoo. De contractnamen voor productie in de connector zijn _work_order en _operation. Odoo beheert de identiteiten en de momentopnamen van orders en bewerkingen. De integratiedienst van de inrichting vertaalt die gegevens naar het afgesproken hubcontract en stuurt ze door. Een hub kan een eigen versie van een contract gebruiken; die vertaling moet expliciet zijn vastgelegd. De basisnamen van de momentopnamen bevatten geen versienummer. Een wijziging in de afspraak vraagt daarom afstemming tussen de deelnemers. De Odoo-uitbreiding verzorgt de registraties en de interface. Een afzonderlijk ingerichte integratiedienst haalt berichten op en levert ze af. De UNS en de ontvangende toepassing hebben hun eigen taken; de uitbreiding voert die afleverdienst niet zelf uit.

Waarom een outbox en niet alleen een webhook?

Een directe melding kan mislukken nadat een orderwijziging is opgeslagen. Wie de order later opnieuw ophaalt, kan een nieuwere stand krijgen dan de stand die de melding veroorzaakte. De transactionele outbox slaat de momentopname in dezelfde Odoo-transactie op als de gevolgde wijziging. Wordt die transactie teruggedraaid, dan verdwijnt ook de opname. Odoo kan de wijziging opslaan zonder op het ontvangende systeem te wachten. Na een onderbreking kan de afzonderlijk ingerichte dienst wachtende momentopnamen weer ophalen. Elke opname behoudt de inhoud die bij de wijziging is opgeslagen. Een webhook kan nog steeds dienen als melding of om een dienst te activeren. Op zichzelf bewaart die niet duurzaam de exacte wijziging. De externe dienst heeft eigen duurzame opslag en een manier om opnieuw te proberen nodig. De outbox en herhaling garanderen geen eenmalige aflevering.
1

Odoo slaat de wijziging en opname op

Een nieuwe order of bewerking en een gevolgde wijziging leveren een momentopname op onder Uitgaande berichten. Ook een conceptorder kan een opname opleveren. Dit is informatie, geen opdracht om werk vrij te geven of een machine te starten.
2

De integratiedienst haalt de opname op

De dienst haalt wachtende berichten op en bevestigt dat hij het bericht duurzaam in beheer heeft genomen. Ontvangst bevestigd door hub legt die melding vast. Het bewijst niet dat een broker, hub of ontvangende toepassing de order heeft verwerkt.
3

Het ontvangende systeem gebruikt de gegevens

De integratie vertaalt en routeert de opname. De ontvangende toepassing gebruikt die volgens de ingerichte werkwijze. Aflevering en productie zijn verschillende resultaten.
4

Odoo controleert de terugmelding

De integratie biedt een terugmelding aan bij Inkomende berichten. Odoo controleert identiteit, order, bewerking, uitvoeringssysteem en gevraagde handeling. Een geldige waarneming kan de terugmeldingsvelden bij de werkorder wijzigen. Voor tijd, gereedmelding of voorraad gelden aanvullende voorwaarden en toestemmingen.

Wat bewijst een status?

Dezelfde referentie van de terugmelding met andere inhoud wordt geweigerd. Een identieke herhaling geeft het oorspronkelijke resultaat terug zonder de handeling te herhalen. Zie dagelijks gebruik voor de schermen en instellingen voor de afzonderlijke toestemmingen.