This is an old revision of the document!
Fejlhåndtering
Hvis der opstår en fejl ved behandling af en forespørgsel vil der blive returneret et fejldokument i stedet for det forventede svar, og den forretningsmæssige del af transaktionen vil blive rullet tilbage. Dvs. at der f.eks. ikke oprettes, opdateres eller seponeres på nogen af de medsendte medicinkort eller lægemiddelordinationer, heller ikke selv om der f.eks. forsøges at oprette tre lægemiddelordinationer i samme kald og den tredje fejler. Kaldet vil dog blive logget.
Fejl returneres i XML ifølge ”Den Gode Webservice”. Der medsendes en 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, 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 | 10001: Ej muligt at seponere lægemiddelordination 31237621536712 da der findes en åben recept |
En liste af fejl FMK returnerer findes i afsnittet Fejlkoder og -tekster.
I forhold til eventelt transiente fejl og retransmission se: Retransmission
Udover en fejlkode returneres en fejl-tekst og en liste af key-value par der uddyber specifikke værdier for fejlen (values) samt hvilken del af datamodellen denne værdi tilhører (keys). En key vil typisk stemme overens med navnet på et af de xml elementer i response-dokumentet som fejlen knytter sig til.
Nedenfor er der et eksempel på hvordan body-delen af et fejldokument kan se ud (de er indsat nogle få linieskift i teksten herunder).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:medicinecard20120601="http://www.dkma.dk/medicinecard/xml.schema/2012/06/01" id="Envelope"> <soapenv:Header> <wsse:Security> <wsu:Timestamp> <wsu:Created>2012-09-25T19:06:51Z</wsu:Created> </wsu:Timestamp> </wsse:Security> <medcom:Header> <medcom:SecurityLevel>1</medcom:SecurityLevel> <medcom:Linking> <medcom:FlowID>flowId</medcom:FlowID> <medcom:MessageID>AAABOf7THJIabqVHn2+kY1NPU0k=</medcom:MessageID> <medcom:InResponseToMessageID>AAABOf7TGLxiFKiBQ3eIEVNPU0k= </medcom:InResponseToMessageID> </medcom:Linking> </medcom:Header> </soapenv:Header> <soapenv:Body> <soapenv:Fault> <faultcode>Server</faultcode> <detail> <medcom:FaultCode>3</medcom:FaultCode> <medicinecard20120601:FaultText>Medicinkortet 2603558084 findes ikke i version 999</medicinecard20120601:FaultText> <medicinecard20120601:FaultDetails> <medicinecard20120601:KeyValueSet> <medicinecard20120601:Key>MedicineCardVersion</medicinecard20120601:Key> <medicinecard20120601:Value>999</medicinecard20120601:Value> </medicinecard20120601:KeyValueSet> <medicinecard20120601:KeyValueSet> <medicinecard20120601:Key>PersonIdentifier</medicinecard20120601:Key> <medicinecard20120601:Value>2603558084</medicinecard20120601:Value> </medicinecard20120601:KeyValueSet> </medicinecard20120601:FaultDetails> </detail> <faultstring>Medicinkortet 2603558084 findes ikke i version 999</faultstring> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>
Udvidet validering
den sidste type af validering er de såkaldte udvidet valideringer, som i modsætning til de 3 andre typer af valideringsfejl kan overrules gennem brugen af de specifikke felt ModificationMetaData som findes i de fleste opdaterende requests som sendes til FMK.
Se mere her: Udvidet validering
