Fejlhåndtering

Fejlhåndtering

SOAP Faults (fra webservices baseret på DFDG.Foundation og udstillet af DFDG, Jobnet og Vitas)

Alle webservicekald, der i selve kaldet resulterer i en fejl, returneres som en SOAP Fault i henhold til WS-i BP 1.1, hvor det er muligt.

  • I WS-I Basic Profile 1.1 (BP 1.1) skal serviceudbyderen returnere en SOAP Fault, der overholder BP 1.1, i alle de tilfælde hvor service aftageren forventer et SOAP Response.

  • Det er serviceaftageren, der modtager og fortolker fejlbeskrivelsen og evt. videregiver en brugervenlig fejlbesked til slutbrugeren.

  • SOAP Fault beskeder skal som udgangspunkt aldrig præsenteres direkte for slutbrugerne i den aftagende applikation.

En fejl returneres således, at SOAP Body’en kun indeholder en SOAP Fault. Serviceaftageren skal tolke en SOAP Fault som værende en fejl, når der i HTTP Response returneres en HTTP Status kode, der indikerer, at der er sket en fejl. De HTTP Status koder, der returneres i forbindelse med fejl, vil være i kategorierne:

  • 4xx client error

  • 5xx server error

Opbygning af en SOAP Fault:

  • Faultcode 
    Faultcode elementet er tiltænkt at blive brugt i serviceimplementeringen som en algoritmisk mekanisme til at identificere en given fejl.

  • Faultstring 
    Faultstring elementet har til formål at give en menneskelig læsbar forklaring af en fejl og er ikke egnet til algoritmisk behandling. De enkelte Fault strings er angivet i tabellen over fejlkoder nedenfor.

  • Faultactor 
    Faultactor elementet har til formål at beskrive, hvem der forårsagede fejlen. For fejl der opdages på servicesiden, vil dette element have værdien, der er lig med servicens basis URL.

  • Detail
    Detail elementet bruges til applikationsspecifikke fejl informationer. I disse webservices indeholder Detail elementet et ErrorCode og et Message element.

    • ErrorCode elementet indeholder en numerisk fejlkode, der entydigt identificerer fejlen. Se Error

    • Message elementet giver en tekstuel menneskelig læsbar forklaring af fejlen.

Faultcode oversigt

Her følger en oversigt over de tilgængelige Faultcode betegnelser:

Navn

Betydning

Navn

Betydning

VersionMismatch

Den behandlende part har fundet et invalid namespace for SOAP Envelop elementet.

MustUnderstand

Et "child" element i SOAP Header elementet der enten ikke blev forstået eller overholdt af den behandlende part indeholdt en SOAP mustUnderstand attribut med værdien "1" 

Client

"Client" indikerer, at meddelelsen var ukorrekt formateret eller ikke indholdsmæssigt lever op til servicekontrakten, således at servicen kunne fortolke forespørgslen korrekt. Dette er generelt en indikation af, at beskeden ikke skal gensendes, før den er modificeret.

Server

"Server" indikerer, at meddelelsen ikke kunne behandles af årsager, der ikke direkte er knyttet til indeholdet i selve beskeden, men til selve servicen. Dette indikerer at beskeden evt. kan gensendes senere uden modifikation.

REST / HTTP Errors (fra webservices baseret på STAR.Foundation og udstillet af JobSearch og Taxonomy siloerne)

Alle webservicekald, der i selve kaldet resulterer i en fejl, returneres med en HTTP Status kode, der indikerer, at der er sket en fejl samt med en HTTP Body indeholdende detaljeret information om fejlen (ErrorDetails).

  • De HTTP Status koder, der returneres i forbindelse med fejl, vil være i kategorierne:

    • 4xx client error

    • 5xx server error

  • Det er serviceaftageren, der modtager og fortolker den detaljeret information om fejlen og eventuelt videregiver en brugervenlig fejlbesked til slutbrugeren.

  • Den detaljeret information om fejlen skal som udgangspunkt aldrig præsenteres direkte for slutbrugerne i den aftagende applikation, med mindre andet ikke er muligt.

En fejl returneres således, at HTTP Body'en kun indeholder detaljeret information om en fejl - også kaldet ErrorDetails. Serviceaftageren skal tolke denne detaljeret information som værende en fejl, uanset hvilket HTTP Status kode, der måtte være returneret.

Opbygning af ErrorDetails:

  • ErrorCode, der indeholder en numerisk fejlkode, der entydig identificerer fejlen. Se Error

  • ErrorMessage, der indeholder en tekstuel menneskelig læsbar forklaring af fejlen.

  • Details, der kan indeholde en mere detajleret beskrivelse af fejlen.

  • CorrelationId, der indeholder en GUID, som skal benyttes i forbindelse med fejlsøgning.

Generelle fejlkoder

Følgende fejl kan kastes af hver eneste webservicemetode og er derfor ikke beskrevet der.

Validerings- og sikkerhedsfejl kastet af DFDG.Foundation og webservices baseret herpå hos DFDG (alle webservices), Jobnet og Vitas

 

Fejlkode

Beskrivelse

Aktør

FaultCode

FaultString

Fejlkode

Beskrivelse

Aktør

FaultCode

FaultString

1010

The submitted cpr is unknown to the system

http://amportal.bm.dk/pjaktass

Client

Unknown cpr

1011

Internal error - unexpected end of data query

http://amportal.bm.dk/pjaktass

Server

Internal error on server

1012

Logon failed for user

http://amportal.bm.dk/pjaktass

Client

Logon failed

1013

User has insufficient permissions to access this webservice

http://amportal.bm.dk

Client

Insufficient permissions

1014

The submitted message could not be validated

http://amportal.bm.dk/pjaktass

Client

Failed to validate message

4385

The client does not have an unemploymentfund registration

http://amportal.bm.dk/pjaktass

Client

The client does not have an unemploymentfund registration

4400

The supplied CV Customer Number is unknown to the system

http://amportal.bm.dk/pjaktass

Client

CV Customer Number is unknown

4413

The authoritytype of the requestheader is invalid

http://amportal.bm.dk/pjaktass

Client

The authoritytype of the requestheader is invalid

4575

You are not authorized to execute the operation

http://amportal.bm.dk/pjaktass

Client

You are not authorized

8173

OrganisationType is invalid according to the organisationTypeIdentifierCodeList

http://service.bm.dk/pjaktasswcf

Client

OrganisationType is invalid according to the organisationTypeIdentifierCodeList

8174

UserType is invalid according to the requestUserTypeIdentifierCodeList

http://service.bm.dk/pjaktasswcf

Client

UserType is invalid according to the requestUserTypeIdentifierCodeList

8232

The Soap request message is missing its required Soap header: ActiveOrganisationHeader

http://service.bm.dk/pjaktasswcf

Client

The Soap request message is missing its required Soap header: ActiveOrganisationHeader

8233

The Soap request message is missing its required Soap header: RequestUserMetadataHeader

http://service.bm.dk/pjaktasswcf

Client

The Soap request message is missing its required Soap header: RequestUserMetadataHeader

8234

Could not deserialize the Soap header: ActiveOrganisationHeader

http://service.bm.dk/pjaktasswcf

Client

Could not deserialize the Soap header: ActiveOrganisationHeader

8235

Could not deserialize the Soap header: RequestUserMetadataHeader

http://service.bm.dk/pjaktasswcf

Client

Could not deserialize the Soap header: RequestUserMetadataHeader

Nedenstående liste viser eksempler på endpoints, hvorfra man kan modtage disse fejlkoder:

Generelle fejl kastet alene af webservices hos DFDG

Fejlkode

Beskrivelse

Aktør

FaultCode

FaultString

Fejlkode

Beskrivelse

Aktør

FaultCode

FaultString

1000

The message can not be null

http://amportal.bm.dk/pjaktass

Client

Message can not be null

1001

The submitted cpr is either to long or short or contains data not interpretable as a date

http://amportal.bm.dk/pjaktass

Client

Invalid cpr

1002

Error converting response message from XML stream to object

http://amportal.bm.dk/pjaktass

Server

Error converting response message

1003

The reported duration is negative, start date is greater than end date

http://amportal.bm.dk/pjaktass

Client

Duration is negative

1009

System incorrectly configured

http://amportal.bm.dk/pjaktass

Server

Configuration error

1010

The submitted cpr is unknown to the system

http://amportal.bm.dk/pjaktass

Client

Unknown cpr

9131

Invalid CodeListItemIdentifier

http://service.bm.dk/pjaktasswcf

Client

Invalid CodeListItemIdentifier

Nedenstående liste viser eksempler på endpoints, hvorfra man kan modtage disse fejlkoder:

Validerings- og sikkerhedsfejl kastet af STAR.Foundation og webservices baseret herpå, dvs. JobSearch, Taxonomy, Borgerkommunikation, Kontaktforloeb osv. (alle nye forretningsdomæner).

Fejlkode

Beskrivelse

HTTP Status kode

Fejlkode

Beskrivelse

HTTP Status kode

1010

Unknown cpr

401 - Unauthorized

1011

Internal error on server

500 - Internal server error

1012

Logon failed

401 - Unauthorized

1013

User has insufficient permissions to access this webservice

401 - Unauthorized

1014

The submitted message is not valid

400 - Bad request

1100

An error has occurred

400 - Bad request

401 - Unauthorized

500 - Internal server error

1101

Client certificate missing from request

401 - Unauthorized

2001

Invalid CodeList name

500 - Internal server error

2002

Invalid CodeList value

400 - Bad request

2003

Use of expired CodeList value not allowed

400 - Bad request

4385

The client does not have an unemploymentfund registration

401 - Unauthorized

4575

You are not authorized to execute the operation

401 - Unauthorized

Nedenstående liste viser eksempler på endpoints, hvorfra man kan modtage disse fejlkoder:

SOAP Fault oversigt - fejlkoder

I det følgende angives alle de definerede SOAP Faults fra webservices. I servicekataloget er det for hver webservicemetode angivet de SOAP Faults, der kan returneres. Kun de mest relevante fejl er noteret. SQL Connection fejl og Message Queue fejl er for eksempel ikke noteret. Se følgende liste for komplet beskrivelse af fejlen:

  • Se fejlkodeliste her: Error

 

Webserviceaftageren skal sørge for at oversætte nedenstående fejlkoder, således at webservicefejlkoderne ikke returneres direkte til brugerne. Webservicefejlkoderne skal logges i aftagerapplikationen til brug i forbindelse med fejlsøgning.

Faultactor i listen er sat til en af følgende: 

WS-aftager skal reagere på fejlkoder

Jobcentre, kommuner, a-kasser m.fl. (eventuelt i samarbejde med deres respektive leverandører) følger op på indberetninger, der afvises af DFDG.

Jobcentre, kommuner, a-kasser m.fl. (eventuelt i samarbejde med deres respektive leverandører) retter i nødvendigt omfang i egne registreringer eller i egne it-systemer og indberetter derefter data på ny - eller opretter fejlsager (Fogbugz/Manuscript) til STAR (ved Systemforvaltningen), hvis der vurderes at være tale om, at fejl i STARs systemer er årsag til afvisning af indberetningen.

WS-aftagers brug af fejlkoder

Det skal om aftagers brug af DFDG’s fejlkoder bemærkes følgende:

  • DFDG fejlkoder og fejltekster er ikke umiddelbart designet til at vise direkte for slutbrugere i fagapplikationer eller selvbetjeningsløsninger - uanset sprog om fejlteksterne er angivet på dansk eller engelsk.

  • Fejlbeskrivelserne er primært til vores fælles udviklingsbrug og kan derfor formuleringsmæssigt være korte, indforståede og med meget tekniske indhold. Og nogle af hensyn til de max 100 tegn være meget forkortet med uautoriserede forkortelser

  • STAR/DFDG kender ikke i hvilken kontekst de kan bliver vist i aftagers systemer og det er derfor ikke muligt for STAR/DFDG at give en fejlbeskrivelse, der passer i aftagers præcise kontekst ift. sagsbehandlere eller borgere, der i øvrigt også kan være ganske forskelligartede for mange forskellige leverandørers systemer og typer af slutbrugere

Hvis en aftager vælger at bruger fejlkodeteksterne direkte i brugergrænsefladen skal man derfor være opmærksom på at udover de kan være korte, indforståede og med meget tekniske også kan

  • være upræcise, da de i nogle situationer dækker over flere forhold

  • være lidt forældede og ikke tilpasser med de nye formuleringer, hvis f.eks. et begreb har ændre navn eller forretningen er tilpasses

  • være formuleret uhensigtsmæssigt, da de kan være beskrevet fra et meget teknisk perspektiv

  • indeholde f.eks. stavefejl, uautoriserede forkortelser og tekniske termer