Den gode WSRM besked
WSRM beskeder anvendes til at underrette eksterne aftagere om hhv:
- Forretningshændelser - Eksempel: Der skal sendes et brev, borger har ikke nået en frist, borger har kvitteret for sin plan, osv.
- Replikering af forretningsentiteter - Eksempel: Der er registret sygdom, ferien er redigeret, plan er oprettet,..
Dataindhold
Ved ændring af en forretningsentitet udsendes hele eller væsentlige dele af den berørte entitet, inklusive entitetens unikke ID, så denne kan genfindes. Sammen med entiteten udsendes information om hvem der har foretaget kaldet og både organisationen/myndigheden og den person/system der er ansvarlig. Se mere under: Den gode WSRM besked#Metadata
Hvis flere entiteter berøres af en forretningsoperation udsendes en WSRM besked for hver berørt entitet.
Ved forretningshændelser udsendes tilstrækkelig information til at forretningshændelsen kan entydigt kan identificeres.
Store dataelementer som f.eks. PDF filer bør ikke udsendes som WSRM hændelser. Istedet kan GUID der entydigt referere til dokumentet udsendes.
Metadata i WSRM beskeden
Sammen med den enkelte WSRM besked udsendes følgende dataelementer (WSRMMetadataType):
- System ID på registrerende system
- En ny kodeliste med aftagersystemer, ClientSystemIdentifier. Kendes ud fra det funktionscertifikat som blev benyttet ved registreringen. DFDG vil indeholde en mapningstabel.
- Den registrerende myndighed
- Samme struktur som ActiveOrganisationHeaderType beskrevet her:
http://starwswiki.amstest.dk/rep,oio,dk-ams,dk-xml-schemas-2005-09-01.ActiveOrganisationHeaderType-2.ashx
- Samme struktur som ActiveOrganisationHeaderType beskrevet her:
- Registrerende bruger og dennes organisation
- Samme struktur som RequestUserMetadataType beskrevet her:
http://starwswiki.amstest.dk/service,bm,dk-RequestUserMetadata-2015-01-21.RequestUserMetadataType.ashx
- Samme struktur som RequestUserMetadataType beskrevet her:
- Tidspunkt for hvornår beskeden er lagt på kø
- det er dette tidspunkt der fremadrettet skal benyttes for at modtage WSRM beskeder i korrekt rækkefølge.
- Tilføjelse af unik guid på WSRM beskeder
- Tilføjelse af sorteringsnøgle (integer) på WSRM beskeder
RegistrationType (Created/Updated/Deleted) påføres ikke på WSRM'er da denne med tilkomsten af ophavs-system ID ikke længere er nødvendig for aftagerne
WSRMMetadataType
Navn | Type | Forekomst | Detaljer |
---|---|---|---|
MessageIdentifier | guid | 1 | ID på den specifikke WSRM |
ClientSystemIdentifier | ClientSystemTypeIdentifierType | 1 | System ID på registrerende system (fx Planner/Opera/ Momentum/ Vitas). Se kodelisten: GetClientSystemTypeIdentifierTypeCodeList |
RegisteringAuthority | 1 | Registrerende myndighed. Dette er samme element som anvendes i STARs sikkerhedsmodel | |
RegisteringUser | 1 | Registrerende bruger og dennes organisation (som ved fx Anden Aktør kan være forskellig fra ovenfor). Dette er samme element som anvendes i STARs sikkerhedsmodel | |
EnqueueDateTime | dateTime | 1 | Tidspunkt for hvornår beskeden er lagt på kø |
SortKey | unsignedLong | 1 | Sorteringsnøgle. Stigende nummerrække der kan bruges til at sortere modtagne elementer. Element med lavest nummer behandles først. Der kan let være huller i nummerrækken. |
Element | Type | Detaljer | Forekomst | Beskrivelse |
---|---|---|---|---|
- - BaseType | WSRMMetadataBaseType | 1 | ||
- - - WSRMMetadata | WSRMMetadataType | 0 - 1 | ||
- - - - MessageIdentifier | guid Base: string | Pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12} | 0 - 1 | |
- - - - ClientSystemTypeIdentifier | ClientSystemTypeIdentifierType | 0 - 1 | ||
- - - - RegisteringAuthority | ActiveOrganisationHeaderType | 0 - 1 | ||
- - - - - OrganisationTypeIdentifier | OrganisationTypeIdentifierType Base: int | MinInclusive: 1 MaxInclusive: 100 | 1 | Kodeliste med organisationstype / myndighedstype |
- - - - - OrganisationCode | OrganisationCodeType Base: string | Length: 1-20 | 1 | Identifikation af organisation / myndighed |
- - - - RegisteringUser | RequestUserMetadataType | 0 - 1 | ||
- - - - - RequestUserStructure | RequestUserStructureType | 1 | Information om den kaldende bruger. | |
- - - - - - UserFullName | UserFullNameType Base: string | Length: 1-140 | 1 | Sagsbehandlers fulde navn, ved systemkald angives systemets og jobbets navn her. |
- - - - - - RequestUserTypeIdentifier | RequestUserTypeIdentifierType | 1 | Brugertype | |
- - - - - - UserIdentifier | UserIdentifierType Base: string | Length: 1-255 | 1 | Unik identifikation af brugeren, f.eks. en GUID, et medarbejder ID, system ID, bruger ID, certifikat ID, cpr-nummer, email (hvis den er unik) o.l. |
- - - - - - UserEmail | EmailAddressIdentifierType Base: string | Pattern: ([^>\(\)\[\]\\,;:@\s]{0,191}@[^>\(\)\[\]\\,;:@\s]{1,64}) | 0 - 1 | Brugers e-mail. |
- - - - - RequestOrganisationStructure | RequestOrganisationStructureType | 1 | Den organisation som registrerende bruger tilhører. | |
- - - - - - OrganisationTypeIdentifier | OrganisationTypeIdentifierType | 1 | Kodeliste med organisationstype / myndighedstype for registrerende bruger. | |
- - - - - - OrganisationCode | OrganisationCodeType Base: string | Pattern: [-][1]|[0-9]{1,8} | 1 | Organisationskode for den registrerende bruger. |
- - - - - DFDGRegistrationDateTime | dateTime | 1 | DFDG Registreringstidspunkt. | |
- - - - EnqueueDateTime | dateTime | 0 - 1 | ||
- - - - SortKey | unsignedLong | 0 - 1 |
Gældende for WSRM beskeder, der er implementeret med WSRMMetadataType fra og med 2016-4, er, at WSRMMetadataType og dennes værdier udfyldes automatisk, når DFDG lægger WSRM-beskeden på køen, hvorfra WSRM beskeden kan hentes.
Opdeling i forretningsområder
WSRM hændelser placeres i selvstændige webservice snitflader - WSDL filer - som kun indeholder WSRM beskeder. WSRM snitfladerne opdeles efter forretningsområder.
Det er muligt for aftager at til-/fravælge hvilke services denne ønsker at modetage.
Navngivning
WSRM webservices navngives som almindelige webservices, dog følger alle webservice-operationer samme navngivning:
- GetXYZVersionN()
Hvor XYZ er navnet på hændelsen/entiteten og N er versionen af operationen. Operationen returnerer en liste af den pågældende entitet.
Get operationen skal kun kaldes når man ekspilicit bliver bedt om det i forbindelse med WSRM afhentning.
Versionsstyring af WSRM hændelser
Versioner styres som for almindelige webservices, med den tilføjelse at de enkelte webservice-operationer tilføjes et versionsnummer. Dette betyder at en WSRM webservice normalt ikke opgraderes når der tilføjes eller fjernes WSRM hændelser, da dette kan gøres uden at bryde kontrakten, dog efter et varsel.
Implementeringsnoter for DFDG
Se under udviklerhåndbøgerne: