User Tools

Site Tools


fmk:generel:fejlhandtering

Fejlhåndtering

Hvis der opstår en fejl ved behandling af en forespørgsel, returnerer FMK et fejlsvar, og den forretningsmæssige del af transaktionen vil blive rullet tilbage. Det betyder f.eks., at der ikke oprettes, opdateres eller seponeres på nogen af de medsendte medicinkort eller lægemiddelordinationer, hvis ét element i samme kald fejler. Kaldet vil dog stadig blive logget.

For FMK 1.6.0 er indholdet af SOAP-faultens detail-element ens for DGWS, IDWS og IDWS-Xua. Dette er i modsætning til tidligere FMK versioner, hvor fejlformatet afhænger af profilen.

Fejlkoder

Der returneres altid en FMK-fejlkode. De mulige fejlkoder er opdelt i følgende intervaller:

Interval Betydning Eksempel
1-1000 Typisk brugerfejl eller fejl forårsaget af afsendersystemet 2: Cpr-nr 1111111117 (PersonIdentifier) findes ikke
1000-3999 Applikationsfejl 3000: Intern server fejl
4000-9999 Valideringsfejl, autentificeringsfejl, autorisationsfejl, rolle-/rettighedsfejl m.v. 4003: “SOSI xml fejl: ID card is not valid in time. The card has to be less than 9 hours old 4200: Ingen roller passer på brugeren
10000-10999 Udvidet valideringsfejl, dvs. fejl som kan ignoreres ved brug af ModificationMetadata 10001: Ej muligt at seponere lægemiddelordination 31237621536712 da der findes en åben recept

En samlet liste af fejl FMK kan returnere findes i Fejlkoder og -tekster.

Ved transiente fejl og retransmission, se Retransmission.

Fejlformat

For FMK 1.6.0 returneres der i SOAP-faultens detail-element præcis ét FMKDetail-element. Klienter bør anvende FMKDetail/FaultCode som FMK-fejlkode. SOAP-felterne faultcode og faultstring følger stadig SOAP fault-formatet. Feltet faultcode angiver overordnet om der er tale om en klient fejl eller en server fejl, og faultstring vil typisk være identisk med FMKDetail/FaultText.

FMKDetail indeholder:

  • FaultCode - FMK-fejlkoden
  • FaultText - den formatterede fejltekst
  • FaultDetails - valgfri liste af uddybende key-value pairs

Et typisk eksempel på en SOAP fejl kan se således ud:

<SOAP-ENV:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <faultcode>SOAP-ENV:Client</faultcode>
  <faultstring>Medicinkortet 2603558084 findes ikke i version 999</faultstring>
  <detail>
    <FMKDetail xmlns="http://fmk-teknik.dk/160">
      <FaultCode>3</FaultCode>
      <FaultText>Medicinkortet 2603558084 findes ikke i version 999</FaultText>
      <FaultDetails>
        <KeyValueSet>
          <Key>ElementPath</Key>
          <Value>GetMedicineCardRequest</Value>
        </KeyValueSet>
        <KeyValueSet>
          <Key>MedicineCardVersion</Key>
          <Value>999</Value>
        </KeyValueSet>
        <KeyValueSet>
          <Key>PersonIdentifier</Key>
          <Value>2603558084</Value>
        </KeyValueSet>
      </FaultDetails>
    </FMKDetail>
  </detail>
</SOAP-ENV:Fault>

FaultDetails og KeyValueSet

FaultDetails indeholder en liste af KeyValueSet-elementer for den konkrete fejl. Keys følger fejlens parameter-keys, jf. Fejlkoder og -tekster.

Rækkefølgen af KeyValueSet-elementer er ikke en del af kontrakten og må ikke antages at være stabil.

En Key vil typisk ligne navnet på et relevant felt eller begreb i requestet, f.eks.:

  • DrugMedicationIdentifier
  • PersonIdentifier
  • ElementPath

Det er ikke et krav, at en Key svarer direkte til et XML-element i responsen. ElementPath er især værd at bemærke. Se også ElementPath.

Udvidet validering

Den sidste type af validering er de såkaldte udvidede valideringer. I modsætning til de øvrige typer af valideringsfejl kan disse valideringer i mange tilfælde ignoreres ved brug af feltet ModificationMetadata, som findes i de fleste opdaterende requests til FMK.

Se mere her: Udvidet validering

fmk/generel/fejlhandtering.txt · Last modified: by adta

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki