Modernisering af CPR Services

Introduktion

Som led i den lĂžbende modernisering af CPR-systemet konverteres CPR Services til en Java platform, hvilket medfĂžrer mindre tilpasninger og ĂŠndringer for opslags-, sĂžge- og lĂŠseservices.

For CPR’s Ajourfþringsservices (indberetning-/skriveservices) henvises specifikt til Adgang til siden gives til eksterne anvendere efter anmodning via CPRs servicedesk https://cpr.dk/kunder/support/link-til-cpr-servicedesk

Moderniserede versioner af services vil releases lĂžbende.

I en overgangsperiode vil bĂ„de den “gamle” service og den “nye” service vĂŠre tilgĂŠngelige.

Hvad er nyt?

De moderniserede opslags-, sÞge- og lÊseservices indeholder fÄ mindre Êndringer i den overordnede GCTP protokol og i de enkelte services.

I hovedsagen ĂŠndres fĂžlgende i GCTP protokollen:

  1. GCTP behandles som XML, og derfor skal bÄde GCTP requests og responses vÊre velformet XML dokumenter jvf. https://www.w3.org/TR/xml/#sec-well-formed.

  2. GCTP requests valideres for at sikre, at request indholdet er gyldigt jvf. GCTP XSD skemaet.

FormÄlet med Êndringerne er at sikre, at bÄde CPR's egne systemer samt andre fagsystemer, kan benytte standardiserede XML vÊrktÞjer og tredjepartsbiblioteker, nÄr der integreres med CPR Services.

LĂŠs eventuelt ogsĂ„ afsnittet Ændringer i version 2.0 services.

Udrulningsplan

Datoer for Êndringer i de enkelte services fremgÄr af .

Scope

Kun CPR’s opslags-, sþge- og léseservices er i scope.

For CPR’s Ajourfþringsservices (indberetning-/skriveservices) henvises specifikt til . Adgang til siden gives til eksterne anvendere efter anmodning via CPRs servicedesk .

Lokale tilpasninger og forberedelse

Anvendertest og anvenders risikomitigering

Anvendere af CPR’s opslags-, sþge- og léseservices er selv ansvarlig for at vurdere risikoen for egen myndighed eller virksomhed.

CPR’s test og udrulning er baseret pĂ„, at services funktionelt releases 1:1 i forhold til “gamle” services.

CPR’s vurdering af risikoen for anvenderne er sĂ„ledes for nuvĂŠrende, at risikoen for anvendere er meget lav. Det er imidlertid ogsĂ„ baseret pĂ„ en forventning om, at anvendernes integration til CPR’s services er baseret pĂ„ tidssvarende rammevĂŠrk.

XML-parser

Den klare forventning er, at anvendere, som anvender tidssvarende og standardiserede XML-parsere, ikke vil have behov for at foretage lokale tilpasninger.

Anvendere, som anvender en egen udviklet XML-parser, bĂžr foretage en grundig test. Ved modtagelse af ikke valid XML vil GCTP services svar tilbage med fĂžlgende struktur i responsen:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0" env=""> <Kvit r="Fejl" t="GCTP Request er ikke valid XML" v="5400"/> </Gctp> </root>

Hvilke services anvender I?

Anvendere af CPR’s GCTP services bþr undersþge précist, hvilke services som anvendes.

Derved kan du som anvender hurtigt identificere, hvornÄr en service Êndres og hvornÄr overgangsperioden slutter, og sÄledes vinduet for lokale test, jf.

Overgang til moderniserede CPR Services

Transitionen til moderniserede services foretages med fokus pÄ risikomitigering.

Moderniserede services vil benytte en ny GCTP protokolversion - version 2.0.

Kald, der i dag modtages med version 1.0 eller uden versionsnummer i <Gctp> tagget, vil fortsat betjenes af den “gamle” service i servicens overgangsperiode.

NÄr overgangsperioden er udlÞbet, vil den gamle serviceversion blive lukket, og alle kald til den pÄgÊldende service vil herefter betjenes af en moderniseret service - uanset versionnummer i <Gctp> tagget.

Default service

  1. FĂžr overgangsperiode (fĂžr release): Default service er gamle service. Det er ikke muligt at benytte version 2.0 service.

  2. Overgangsperioden: Default service er gamle service. Det er muligt at benytte version 2.0 service.

  3. Udfasningsperiode: Default service er ny 2.0 service. Det er ikke muligt at benytte gamle service. CPR forbeholder sig ret til uden varsel rulle tilbage til “overgangsperioden”, hvor gamle service er default.

  4. Efter udfasningsperioden: Default service er ny 2.0 service. Det er ikke muligt at benytte gamle service, og der kan ikke rulles tilbage til gamle service.

BemÊrk: CPR kan og vil efter overgangsfasen uden varsel og kommunikation Êndre pÄ den default service, som betjener servicekald uden versionsnummer i tagget.

Anvenders lokale tilpasninger skal derfor tage hĂžjde for, at default service kan ĂŠndres uden varsel efter overgangsperioden.

SĂŠrlige bemĂŠrkninger vedr. flere GCTP services i et request

Hvis et <Gctp v="2.0"> request indeholder kald til flere GCTP services skal samtlige services i requestet vÊre tilgÊngelige som version 2.0 services (jvf. ) for at version 2.0 services bliver kaldt. Der kaldes aldrig bÄde version 1.0 og 2.0 services for at fuldfÞre et request. Hvis en service i requestet er kun tilgÊngelig som version 1.0 service vil samtlige services i requestet blive hÄndteret af version 1.0 services. Denne regel gÊlder ogsÄ selvom overgangsperioden/udfasningsperioden for en eller flere services i requestet er afsluttet.

Anvendertest

I overgangsperioden vil anvendere have mulighed for at teste integrationen mod moderniserede services.

CPR’s test

Inden en moderniseret service bliver releaset, er der afviklet en maskinel sammenligningstest mellem gamle og moderniserede services, der identificerer eventuelle forskel i responsen.

CPR’s klient CPRWeb ĂŠndres lĂžbende til at benytte moderniserede services. Hvis der mod forventning er fejl i servicens forretningslogik eller tilsvarende, vil det sĂ„ledes med hĂžj sandsynlighed blive konstateret gennem anvendelsen af CPRWeb.

VĂŠrktĂžjer til test af ĂŠndringer i CPR Services

FĂžlgende vĂŠrktĂžjer kan anvendes til at hjĂŠlpe med overgangen til moderniserede services (version >= 2.0).

GCTP 2.0 XSD skema

Skemaer for GCTP version 2.0 kan anvendes til at validere GCTP requests.

Filer sidst opdateret 25. januar 2024 kl. 14.48

Request validering i DEMO-miljþet (CPR’s kundevendte testmiljþ)

Kunder kan med fordel kalde GCTP valideringsendpointet i DEMO miljĂžet for at teste egen integration med de moderniserede services. URL til endpointet er https://gctp-demo.cpr.dk/cpr-online-gctp/validate. Endpointet kan kaldes uden session (login).

 

Eksempel gyldigt request/respons

De fleste vÊrdier i requestet som fx. System og Service har ingen betydning, hvor det alene angÄr validering. Requestet skal blot overholde GCTP skemaet.

curl -i https://gctp-demo.cpr.dk/cpr-online-gctp/validate -d ' <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprSoeg"> <Service r="STAMP"> <CprServiceHeader r="STAMP"> <Key> <Field r="PNR" v="..."/> </Key> </CprServiceHeader> </Service> </System> </Gctp> </root> '

 

GCTP requestet er gyldigt, og der returneres et <Kvit> element i svaret:

HTTP/1.1 200 Content-Type: text/xml;charset=ISO-8859-1 Content-Length: 447 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprSoeg"> <Service r="STAMP"> <CprServiceHeader r="STAMP"> <Key> <Field r="PNR" v="..."/> </Key> </CprServiceHeader> </Service> </System> <Kvit r="Ok" v="0"/> </Gctp> </root>

 

Eksempel pÄ ugyldig request/respons

Eksempel hvor requestet ikke overholder XML-standarden: </ CprServiceHeader> i stedet for </CprServiceHeader>.

 

GCTP request er ugyldig, og der returneres <Kvit> elementet i response, hvor attributten v har vĂŠrdi 999 og attributten t 's vĂŠrdi er en beskrivelse af valideringsfejlen.

Ændringer i version 2.0 services

Opbygning af restart (REST) nĂžglevĂŠrdier og SEARCH_ID feltvĂŠrdier

RestartnĂžgler benyttes i de sĂžgeservices, der understĂžtter paginering af responsdata. RestartnĂžgler bruges i efterfĂžlgende forespĂžrgsler for at hente den nĂŠste side data.

SEARCH_ID feltvĂŠrdier benyttes i visse sĂžgeservices for at indikere, at resultatet af en sĂžgning er blevet gemt. EfterfĂžlgende kald til servicen med en restartnĂžgle, der indeholder SEARCH_ID feltvĂŠrdien, vil hente data fra den gemte sĂžgning.

Opbygning af REST nĂžglevĂŠrdier i de version 2.0 GCTP services, der indeholder SEARCH_ID feltvĂŠrdier, kan afvige fra opbygningenaf REST nĂžglevĂŠrdier i version 1.0 services.

Version 1.0 service eksempel:

Version 2.0 service eksempel:

De CPR Services integrationer, der overfÞrer REST nÞglevÊrdien uÊndret fra responsdata til et efterfÞlgende forespÞrgsler forventes ikke at blive pÄvirket af denne Êndring.