Gå til indhold

Genforsøg, pauser og fejl i en integration

Aftal pauser, stop og opfølgning, før en integration fejler. Et konkret formularflow viser, hvad der kan vente, og hvad et menneske skal afklare.

ca. 5 min. læsningSkrevet af Mads · Platformhuset

Fire kuverter står i en udtrukket bakke foran en høj brevkasse.

En kontaktformular har sendt en henvendelse videre, men der kommer ingen kvittering fra modtagersystemet. Skal flowet vente, prøve igen eller bede en kollega om hjælp? Det spørgsmål bør være afklaret, før I kobler systemerne sammen.

Begynd med én arbejdsgang og giv hver hændelse et synligt næste skridt. Her bruger vi en formular, der skal oprette en opgave til den medarbejder, som følger op på henvendelsen. Brug eksemplet til at skrive jeres egen fejlplan.

Beskriv det, der skal ske, når alt fungerer

Formularen afleverer navn, kontaktoplysning og en besked. Flowet gemmer henvendelsen med et fast nummer, kontrollerer de nødvendige felter og sender den til opgavesystemet. Når systemet bekræfter oprettelsen med et opgavenummer, gemmes nummeret på henvendelsen. Først derefter vises den som afleveret.

Skriv også, hvor en kollega kan se resultatet. Et grønt symbol på en samlet kørsel er ikke nok til at besvare, om netop henvendelse 142 er kommet frem. Oversigten skal kunne vise den konkrete hændelse og opgaven, den blev til.

Skeln mellem en pause og et ukendt udfald

Et svar om at vente er en anden situation end slet intet svar. Ved en timeout kan modtagersystemet have nået at oprette opgaven, selv om kvitteringen ikke nåede tilbage. Registrér derfor det ukendte udfald, og undersøg den eksisterende henvendelse i modtagersystemet, før nogen starter en ny oprettelse.

Det flowet observererNæste skridtDet kollegaen skal kunne se
Oprettelsen er bekræftet med et opgavenummerGem nummeret og afslut afleveringen.Link eller reference til den oprettede opgave.
Modtageren beder om en pauseBeregn næste forsøg, hvis handlingen må gentages.Ventetid, begrundelse og planlagt tidspunkt.
Forbindelsen forsvinder uden et sikkert resultatSæt hændelsen til afstemning. Undlad en blind ny oprettelse.Sidste forsøg og hvilket resultat der stadig er ukendt.
En nødvendig oplysning er ugyldigBed om den konkrete rettelse.Det felt, der skal rettes, og hvem der følger op.
Det aftalte loft er nåetStop automatiske forsøg og send sagen til den ansvarlige.Stopårsag, tidligere forsøg og ansvarlig medarbejder.

Brug modtagerens ventetid

Svarheaderen Retry-After kan angive en ventetid i sekunder eller et bestemt tidspunkt. Den bruges blandt andet ved for mange kald og midlertidig utilgængelighed. Jeres integration skal kunne læse begge formater og håndtere, at headeren mangler.

Et timeglas står i en mørk portramme med små kasser foran og ved siden af.
AI-illustration af en pause. En ventende opgave skal have et tidspunkt for næste skridt.

I eksemplet kan I aftale højst tre forsøg inden for en time. Det er et eksempel på en driftsregel, som skal tilpasses opgaven. Hvis modtageren beder om en længere pause end den resterende tid, skal flowet vise konflikten og stoppe efter jeres regel. Det skal ikke ignorere ventetiden for at nå sit eget loft.

Når ventetiden mangler eller ikke kan læses, bruges den pause, I har aftalt på forhånd. Gem, hvorfor den blev valgt. Et ukendt svar må ikke skabe en løkke af hurtige kald, der fortsætter, indtil nogen opdager den.

Aftal, hvilke handlinger der må gentages

Idempotens betyder, at gentagne identiske kald har samme tilsigtede effekt som ét kald, som MDN beskriver. Et metodenavn er dog ikke en erstatning for modtagerens dokumentation. Undersøg, hvordan netop oprettelsen af jeres opgave håndterer gentagelser og samtidige forsøg.

HTTP-standarden afgrænser automatisk gentagelse af ikke-idempotente kald. Et manglende svar er ikke i sig selv tilstrækkeligt grundlag for at sende sådan et kald igen. I formularflowet betyder det: brug modtagerens dokumenterede beskyttelse mod gentagelser, eller afstem det ukendte udfald, før en ny oprettelse overvejes.

Et lokalt nummer hjælper jer med at finde hændelsen og samle dens forsøg. Det beviser ikke, at et eksternt system kun har oprettet én opgave. Hold derfor styr på både jeres eget hændelsesnummer og de referencer, modtageren faktisk har returneret.

Giv de stoppede hændelser en ansvarlig

En fejlliste er kun nyttig, hvis nogen ved, hvad de skal gøre med den. Aftal en ansvarlig medarbejder, et tidspunkt for opfølgning og en stedfortræder. En fejlalarm skal pege på den enkelte hændelse og forklare, hvad der mangler for at komme videre.

  • Vis hændelsens nummer, seneste forsøg, aktuelle status og næste aftalte handling.
  • Vis, om modtageren har bekræftet noget, og hvilken reference der er gemt.
  • Giv medarbejderen mulighed for at registrere sin afstemning og begrundelse.
  • Skeln mellem at rette manglende oplysninger, fortsætte en sikker handling og lukke hændelsen.
  • Bevar tidligere forsøg, så en ny medarbejder kan forstå forløbet.

Prøv stopreglerne før ibrugtagning

Afprøv en testhenvendelse, hvor modtageren svarer langsomt. Afprøv derefter en pause, en ugyldig oplysning og en forbindelse, der forsvinder efter afsendelsen. Kontrollér hver gang, at det næste skridt i oversigten svarer til det, I faktisk ved. Lad også den ansvarlige medarbejder prøve at afslutte en stoppet hændelse.

Platformhusets integrationsside kan I se, hvordan vi arbejder med sammenhængen mellem systemer og synlige resultater. Til jeres brief er én konkret henvendelse og dens mulige stop ofte et godt sted at begynde.

Ofte stillede spørgsmål

Hvad gør vi, når opgavesystemet ikke svarer?

Gem hændelsen som et ukendt udfald og undersøg, om opgaven allerede findes. En timeout fortæller ikke i sig selv, om oprettelsen lykkedes. Send ikke en ny oprettelse alene for at få en kvittering.

Hvor mange genforsøg bør en integration have?

Aftal både et antal og en samlet tidsgrænse ud fra arbejdsgangen. Tre forsøg inden for en time er et eksempel, ikke en generel regel. Oversigten skal vise, når den valgte grænse stopper en hændelse.

Hvem skal tage sig af stoppede hændelser?

Sæt navn på en ansvarlig medarbejder og en stedfortræder. Aftal, hvor ofte listen gennemgås, og hvilke oplysninger der skal være til stede, før en hændelse kan fortsættes eller lukkes.

Kilder