Det korte svar

Idempotens betyder, at den samme operation kan gentages uden at skabe en ny effekt hver gang. I et ordreflow bør et genforsøg med samme forretningsreference derfor ikke oprette endnu en ordre.

Hvorfor et timeout ikke betyder, at intet skete

Forestil jer, at integrationen beder ERP-systemet oprette en ordre. ERP opretter ordren, men svaret går tabt. Integrationen ser kun et timeout. Hvis den blot sender en ny oprettelse, kan der komme to ordrer ud af én kundebestilling.

Microsofts vejledning om genforsøg fremhæver betydningen af at vurdere operationens idempotens. Den praktiske pointe er at skelne mellem ingen handling og ukendt resultat. Ved ukendt resultat skal løsningen kunne finde den tidligere handling eller gentage den sikkert.

Brug en stabil reference for den samme hensigt

Opret en reference, der identificerer den konkrete forretningsoperation, og bevar den ved genforsøg. En tilfældig ny reference for hvert forsøg hjælper ikke. Referencen skal være afgrænset, så en legitim ny ordre ikke afvises som gentagelse.

Gem også det relevante input eller en kontrol af, at det ikke er ændret. Hvis samme reference bruges med et andet beløb eller andre linjer, bør løsningen afvise konflikten eller kræve en særskilt ændringsproces.

Brug en stabil reference for den samme hensigt
SituationForventet adfærd
Samme reference og samme inputReturnér eller find tidligere resultat
Samme reference, ændret inputStop og vis konflikten
Ny forretningsoperationNy reference og normal kontrol
Ukendt resultat efter timeoutAfstem før usikker gentagelse

Beskyttelsen skal holde ved samtidighed

To processer kan læse, at en reference ikke findes, og begge forsøge at oprette den. Derfor er et almindeligt opslag efterfulgt af oprettelse ikke altid tilstrækkeligt. Den endelige entydighed bør håndhæves atomisk i det system, der ejer operationen, hvis det understøttes.

Hvis modtagersystemet ikke tilbyder idempotente kald, skal integrationens design beskrive, hvordan referencer og afstemning bruges, og hvilke fejlscenarier der fortsat kræver manuel kontrol. Et lokalt register alene er ikke en garanti for præcis én effekt i et eksternt system.

Test fejl på de ubelejlige tidspunkter

Test før afsendelse, efter oprettelse men før svar, og under to samtidige genforsøg. Kontrollér antallet af faktiske forretningsposter i modtagersystemet. En vellykket loglinje beviser ikke, at der ikke ligger en dublet.

Aftal også, hvor længe referencer bevares. Gamle beskeder kan blive genafspillet efter en fejl. Driftsproceduren skal beskrive, hvordan teamet undersøger et ukendt resultat og undgår at klikke opret igen uden grundlag.

Brug det i praksis

Jeres næste skridt

  1. Brug samme operationsreference ved genforsøg.
  2. Kontrollér at input stemmer med referencen.
  3. Håndhæv entydighed i det system, der kan garantere den.
  4. Test timeout efter udført handling og samtidige forsøg.
  5. Dokumentér afstemning af ukendte resultater.

Ofte stillede spørgsmål

Er idempotens det samme som at ignorere alle dubletter?+

Nej. Den samme operation skal have samme effekt, mens nye legitime operationer stadig skal udføres.

Kan vi bare deaktivere genforsøg?+

Det kan give mistede opgaver ved midlertidige fejl. Løsningen bør kombinere sikre genforsøg med afstemning.

Hvor skal referencen gemmes?+

Der, hvor den kan knyttes pålideligt til operationen og dens resultat. Mulighederne afhænger af modtagersystemets API og datamodel.

Kilder og faglig baggrund

De praktiske eksempler og tjeklister er udarbejdet til denne guide. Følgende kilder uddyber de angivne faglige begreber.

Microsoft: Retry pattern (åbner i ny fane)

Teknisk baggrund om genforsøg, midlertidige fejl og idempotens.

Begreber i guiden

IdempotensWebhook

Fra guiden til jeres arbejdsgang

Se hvilke oplysninger, adgange og kontroller der skal afklares, før jeres systemer forbindes.

AI-integration til ERP, økonomi og e-mail

Brug skabelonen

Saml jeres egne oplysninger i et arbejdsgrundlag, som kan udfyldes og downloades.

Åbn den relevante skabelon
Om guiden

Udgivet af Norstream med AI-assisteret udarbejdelse. Eksempler er illustrative, medmindre andet er angivet. Tilpas metoder og kontroller til jeres systemer og faglige ansvar.

Har du en rettelse eller et spørgsmål?