Bilag - GCTP Service Protokol
Indholdsfortegnelse
1. Indledning
Nærværende dokument indeholder en beskrivelse Gctp service protokollen
1.1. Identifikation
General Communication Transfer Protocol (GCTP) er et data transport format til kommunikation af data mellem CPR’s services og en klient hvad enten den er server side eller desktop baseret.
1.2. Formål
Formålet med dette dokument er at beskrive GCTP formatet på en sådan måde at læseren sættes istand i til at kunne afkode data fra gctp formatet. Det skal endvidere være mulig på baggrund af dette dokument at implementere software der er i stand til at skrive og modtage GCTP
1.3. Referencer
GCTP indgår som en blok i et XML-dokument af XML ver 1.0 http://www.w3.org/TR/REC-xml. (REC-xml).
2. GCTP Struktur
GCTP er en XML baseret protokol og fungerer ved hjælp af tags og attributter.
Nedenstående diagram illustrerer strukturen på en GCTP besked, som bør være indkapsuleret i et <root></root>
element, der evt kan have namespace deklarationer.
Herunder beskrives de enkelte tags
2.1. Gctp
GCTP
elementet skal altid findes som den første tag i en besked, dog gerne under et root
element. Herved fortælles det at, der frem til GCTP’ slut tag findes de data der indgår i beskeden
Attribut | Beskrivelse |
---|---|
v | Skal indeholde versionen af GCTP der anvendes |
env | Kan indeholde en indentifikation af det miljø der kommunikeres med |
<Gctp v="2.0"> ... </Gctp>
2.2. System
System
elementet anvendes til at angive oplysninger om hvilket system man agter at køre imod.
Attribut | Beskrivelse |
---|---|
r | Skal indeholde hvilket system kaldet foretages mod |
<System r="CprAjour"> ... </System>
2.3. CprServiceHeader
CprServiceHeader
elementet anvendes til at angive oplysninger om hvilken tilstand man ønsker at anvende når man kalder gctp og hvilken tilstand man er i når man modtager GCTP’en.
Endvidere kan angives om man anvender ventesystemet og servicen er primær (hvilket den altid er).
En CprServiceHeader vil have et underelement i form af en Table
hvor der er angivet hvilke aktion der er muligt at vælge på en hændelse efter denne er initieret.
Attribut | Beskrivelse |
---|---|
r | Skal indeholde navnet på hændelsen der kaldes |
mk | Skal indeholde den indberettende myndighedskode |
a | Skal indeholde hvilken aktion der ønskes eller hvilken tilstand servicen er i |
u | Hvis denne attribut udfyldes med u="v" angives der at man ønsker at anvende ventesystemet |
st | st="P" angiver primær hændelse. Der anvendes kun primære hændelser i CPR ved GCTP version 2.0 |
ts | Anvendes til at identificere den igangværende session med den pågældende hændelse |
Attribut | Beskrivelse |
---|---|
pt | Identificere den primære session en sekundær hændelse indgår i |
pv | Angiver en myndighed som en hændelse er indsendt på vegne af |
Aktion | Beskrivelse |
---|---|
I | Initiering af hændelsen |
V | Validering af hændelsen |
G | Gem hændelsen |
F | Fortryd hændelsen |
S | Slet mange registreringer i hændelsen |
1 | Initiering fra Vent |
2 | Gem som kladde |
3 | Gem og send til godkendelse i Vent |
4 | Gem og godkend i Vent |
5 | Aktiver fra Vent |
6 | Slet fra Vent |
7 | Afvis fra Vent |
8 | Send til godkendelse uden data |
9 | Godkend uden data |
Aktion | Beskrivelse |
---|---|
U | Gem uden initier |
<CprServiceHeader a="ADOPTI-I" a="I" st="P"> ... </CprServiceHeader>
<CprServiceHeader a="ADOPTI-I" a="V" st="P" ts="20050727094718410933"> ... </CprServiceHeader>
<CprServiceHeader a="ADOPTI-I" a="I" st="P" ts="20050727094718410933"> <Table r="Aktioner"> <Row> <Field r="KODE" v="V" t="Validering"/> </Row> <Row> <Field r="KODE" v="G" t="Gem"/> </Row> <Row> <Field r="KODE" v="F" t="Fortryd"/> </Row> </Table> </CprServiceHeader>
2.4. Field
Field
elementet anvendes til at angive værdier i GCTP beskeden og anvendes både til at angive læsedata og data der skal gemmes i CPR.
Attribut | Beskrivelse |
---|---|
r | Skal indeholde navnet på feltet |
v | Værdien af feltet |
a | Egenskaber ved feltet, f.eks. L=Låst, S=Skal |
a1 | Yderligere egenskaber for feltet |
t | En tekst betegnelse af værdien i v attributten |
ts | En forkortet tekst betegnelse af værdien i v attributten |
tm | En mellemlang tekst betegnelse af værdien i v attributten |
tl | En lang tekst betegnelse af værdien i v attributten |
e | En fejlkode der angiver at der er fejl i det pågældende felt |
bv | En boolsk betegnelse (true/false) for værdien i v-attributten |
<Field r="CNVN_FORNAVN" v="Peter" a="L" />
<Field r="CNVN_STARTMYN" v="101" a="S" t="Københavns kommune" ts="Kbh. kommune" />
<Field r="CNVN_STARTMYN" v="101" a="S" t="Københavns kommune" ts="Kbh. kommune" e="3032" />
2.5. Row
En Row
er beregnet på at kunne indeholde en række af data fra en tabel. Ved hjælp af usage attributten kan det fastsættes, om en række indeholder data eller om der er tale om en modelrække der bare angiver felter der er muligt på en række.
Selve datafelterne findes som Field
elementer inde i Row
blokken, som ikke kan optræde uden at være indeholdt i en Table
blok.
Samspillet mellem Table og Row er netop metoden til at kommunikere flere rækker af data imellem server og klient.
Attribut | Beskrivelse |
---|---|
u | Angiver Usage, hvis denne er sat u="M" er der tale om en model række der ikke indeholder data men bare oplysninger om hvilke felter der kan forekomme i hver række på denne tabel |
k | Nøgle for rækken. Denne skal altid være udfyldt, og skal være unik i en Table blok, da det er den måde server og klient er enige om hvilke data der snakkes om |
Usage | Beskrivelse |
---|---|
M | Beskriver modellen af rækker i en tabel |
B | En logisk separator der kan adskille forskellig data |
REST | Genstart nøgle for søgninger, som indikerer at der er mere data tilgængelig i tabellen |
De nedenstående værdier benyttes ikke længere af systemet, da det selv beslutter betydningen af det indsendte data. Hvis der indsendes nye rækker med data der ikke findes, indsættes der nye data; hvis der rettes i data i en eksisterende række, opdateres der data; og hvis en forespørgsel har fjernet en eksisterende række, slettes data.
Usage | Beskrivelse |
---|---|
C | Indsæt som ny række |
U | Opdater denne række |
D | Slet denne række |
<Row u="M"> <Field r="CNVN_FORNAVNE" a="L" /> <Field r="CNVN_STARTMYN" a="S" /> </Row>
<Row k="NOEGLE1"> <Field r="CNVN_FORNAVNE" v="Peter" a="L" /> <Field r="CNVN_STARTMYN" v="101" a="S" /> </Row>
2.6. Table
En Table
er beregnet til at kunne indeholde data i tabel format, dvs i rækker og kolonner.
Table elementet anvendes sammen med Row
elementet: Table tagget omkranser hele tabellen, mens de enkelte rækker omkranses af Row elementer inde i Table elementet.
Der kan godt forekomme flere Table elementer i en besked og disse skal derfor navngives unikt.
Endvidere kan Table indehold informationer om hvor mange rækker der er i alt.
Attribut | Beskrivelse |
---|---|
r | Skal indeholde tabellens navn |
aia | Antal i alt, anvendes ved søgninger |
min | Det minimale antal rækker tabellen skal indeholde |
max | Det maksimale antal rækker tabellen må indeholde |
mr | Max antal rækker der kan indsendes via tabellen |
<Table r="NavneTab" mr="25"> <Row k="12345625122"> <Field r="CNVN_FORNVN" v="Peter"/> <Field r="CNVN_EFTERNVN" v="Larsen"/> </Row> <Row k="12345625122"> <Field r="CNVN_FORNVN" v="Mette"/> <Field r="CNVN_EFTERNVN" v="Hansen"/> </Row> </Table>
2.7. Kvit
Kvit
elementet indeholder informationer om resultatet af seneste handling i form af enten en OK kvittering eller en fejl kvittering.
Hvis der er tale om en Gem aktion der er gået godt, indeholder Kvit også en tabel med stamdata om de objekter som persisteringen vedrører.
Attribut | Beskrivelse |
---|---|
r | Skal angive kvitteringstypen |
v | Skal angive kvitteringskoden |
t | Kan indeholder en tekst såfremt der er tale om en fejl eller anmærkning |
Type | Beskrivelse |
---|---|
System | Systemfejl |
Anmrk | Anmodningen blev behandlet uden fejl men der er en anmærkning |
Afslut | Anmodningen blev behandlet uden fejl og session er afsluttet |
Fejl | Anmodningen fejlede |
Info | Anmodningen blev behandlet uden fejl med en bemærkning |
Ok | Anmodningen blev behandlet uden fejl og sessionen er stadig aktiv |
returKode | Kvitteringskoden kan have en speciel betydning - ikke blot ok eller en fejl/anmærkning |
Type | Beskrivelse |
---|---|
Dump | Gammel systemfejl |
<Kvit r="Fejl" v="3422" t="Personen findes ikke i CPR" />
<Kvit r="OK" v="0" />
<Kvit r="Afslut" v="0"> <Table r="AFSLUT"> <Row k="PNR=1212121212;"> <Field r="PNR" v="1212121212"/> <Field r="ADRNVN" v="Petersen,Peter"/> <Field r="FORNVN" v="Peter"/> <Field r="MELNVN"/> <Field r="EFTERNVN" v="Petersen"/> <Field r="STATUS" v="1" t="Bopæl i Danmark"/> <Field r="REL"/> </Row> </Table> </Kvit>
2.8. CprData
CprData
elementet angives til angive blokke af data der anvendes i GCTP beskeden. Der skelnes på attributten u
som angiver om der er tale om input eller output data.
Output data tjener som stamdata om de objekter servicen omhandler, mens Inputdata tjener som de data der evt. kan indberettes på servicen.
Attribut | Beskrivelse |
---|---|
u | Skal angive hvilken type data der indgår i blokken. |
Data usage | Beskrivelse |
---|---|
I | Blokken indeholder input data der kan redigeres |
O | Blokken indeholder output data der ikke kan redigeres, og som blot er til visninger |
2.9. Rolle
Rolle
elementet anvendes til at angive blokke af data som omhandler et specifikt objekt der indgår i servicen, f.eks. en person. Omhandler en service f.eks. flere personer kan der være flere Roller under CprData
elementet.
En rolle angives med navn i r
attributten.
Hvis der er tale om en Output rolle vil der være et eller flere Praes
elementer i blokken. Hvis der er tale om en input Rolle vil der være Table
eller Field
elementer i blokken.
Attribut | Beskrivelse |
---|---|
r | Skal indeholde navnet på rollen |
2.10. Sik
Sik
elementet anvendes ved logon.
Attribut | Beskrivelse |
---|---|
function | Skal angive den funktion der benyttes |
userid | Skal angive brugernavn |
password | Skal angive password |
newpass1 | Kan indeholde et nyt password |
Funktion | Beskrivelse |
---|---|
signon | Logon via GCTP |
newpass | Skift password |
<Sik function="signon" userid="x3450" password="xxxxxx" />
<Sik function="newpass" userid="x3450" password="xxxxxx" newpass1="yyyyyy" />
2.11. Praes
Praes
elementet anvendes til præsentation af objekters data. Blokken indeholder Field
elementer.
En Praes angives med navn i r
attributten.
Der er en række kendte præsentationer for standard objekter, som altid vil indeholder de samme felter, f.eks. vil STAMPNR altid indeholder felter der præsenterer en person, og STAMMYN vil altid indeholde de samme felter for en præsentation af en myndighed.
Attribut | Beskrivelse |
---|---|
r | Skal indeholder navnet på præsentationen |
2.12. Log
Log
elementet kan anvendes til at samle flere Service
elementer under en logisk logning. Dette anvendes kun ved søge-services.
En Log angives med navn i r
attributten.
Attribut | Beskrivelse |
r | Skal angive det logiske navn på log blokken |
2.13. Service
Service
elementet anvendes til at identificere den CPR ydelse der skal benyttes.
En Service angives med navn i r
attributten.
Elementet indeholder altid en eller flere CprServiceHeader
elementer, samt CprData
elementer til input og output data, hvis en service session er i gang. Ved svar var serveren vil der også være et Kvit
element.
Når en session afsluttes vil der ikke forekomme CprData
elementer.
Attribut | Beskrivelse |
---|---|
r | Skal indeholde navnet på servicen der anvendes |
<Service r="STAM"> ... </Service>
2.14. Key
Key
elementet anvendes til at identificere nøglefelter ved initiering af ajourførings-services og ved søgninger, og indeholder Field
elementer.
Key elementet skal optræde i alle kald fra klienten, både ved initiering, validering, og gem, og findes i CprServiceHeader
blokken.
Elementet har ingen attributter.
<CprServiceHeader r="FLYT-I" st="P" a="I"> <Key> <Field r="PNR" v="2216582244"/> <Field r="DATO" v="19980325"/> </Key> </CprServiceHeader>
3. Eksempler
Dette afsnit indeholder en række eksempler, der viser hvordan GCTP services kaldes og hvordan de svarer tilbage.
3.1. ADROPL-R - Registrering med én person
Dette eksempel dækker en service med én hovedperson. Der initieres og gemmes.
3.1.1. Klient initiate
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v= "2.0" > <System r= "CprAjour"> <Service r= "ADROPL-R"> <CprServiceHeader r="ADROPL-R" st="P" a="I" mk="1011"> <Key> <Field r="PNR" v="2216582244" /> <Field r="DATO" v="19980325" /> <Field r="TMST" v="19980322130522123456" /> <Field r="AK" v=" " /> </Key> </CprServiceHeader> </Service> </System> </Gctp> </root>
3.1.2. Server initiate svar
Serveren sender præsentationsdata samt input felter.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADROPL_R"> <CprServiceHeader r="ADROPL_R" st="P" a="I" mk="1011" ts="19980322130522123456" /> <Table r="Aktioner"> <Row> <Field r="KODE" v="V" t="Validering"/> </Row> <Row> <Field r="KODE" v="F" t="Fortryd"/> </Row> <Row> <Field r="KODE" v="G" t="Gem"/> </Row> </Table> <CprData u="O"> <Rolle r="HovedRolle"> <Praes r="STAMPNR"> <Field r="PNR" v="1205680887" /> <Field r="ADRNVN" v="Larsen,Peter" /> <Field r="FOEDDATO" v="19680512" /> ... resten af præsentationen </Praes> <Praes r="STAMMYN"> <Field r="MYNKOD" v="0101" t="Københavns Kommune" /> <Field r="DATO" v="19980625" /> </Praes> <Field r="CPST_POSTNR" v="4600" t="Køge" /> </Rolle> </CprData> <CprData u="I"> <Rolle r="HovedRolle"> <Field r="CADR_STARTMYNKOD" v="0259" t="Køge" a="S" /> <Field r="CADR_STARTDATO" v="19980625" /> <Field r="CADR_STARTDATOUSM" v="*" /> <Field r="CADR_VEJKOD" v="124" t="Vestergade" a="S" /> <Field r="CADR_CONVN" v="c/o Petersen" /> <Field r="CADR_ETAGE" v="4" /> <Field r="CADR_HUSNR" v="125" /> <Field r="CADR_KOMKOD" v="0259" t="Køge" a="S" /> <Field r="CADR_SIDEDOER" v="tv" /> </Rolle> </CprData> <Kvit r="Ok"/> </Service> </System> </Gctp> </root>
3.1.3. Klient gemmer
Klienten ændrer c/o navn. Klienten sender de felter ind som er ændret, samt alle de felter, som serveren i svaret på initiate har fortalt er skal-felter.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADROPL-R"> <CprServiceHeader r="ADROPL-R" st="P" a="G" mk="1011" ts="19980322130522123456"> <Key> <Field r="PNR" v="2216582244" /> <Field r="DATO" v="19980325" /> <Field r="TMST" v="19980322130522123456" /> <Field r="AK" v=" " /> </Key> </CprServiceHeader> <CprData u="I"> <Rolle r="HovedRolle"> <Field r="CADR_STARTMYNKOD" v="0101" /> <Field r="CADR_CONVN" v="c/o Pedersen" /> <Field r="CADR_VEJKOD" v="1245" t="Vestergade" /> <Field r="CADR_KOMKOD" v="0259" t="Køge" /> </Rolle> </CprData> </Service> </System> </Gctp> </root>
3.1.4. Sever svarer på gem
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r=" ADROPL-R"> <CprServiceHeader r="ADROPL-R" st="P" a="G" mk="1011" ts="19980322130522123456" /> <Kvit r="Afslut" v="0"> <Table> <Row k="2216582244"> <Field r="PNR" v="2216582244" /> <Field r="ADRNVN" v="Larsen,Peter" /> </Row> <Row k="2216582244"> <Field r="PNR" v="2216582244" /> <Field r="ADRNVN" v="Larsen,Ulla" /> <Field r="REL" v="ÆGTEFÆLLE" /> </Row> </Table> </Kvit> </Service> </System> </Gctp> </root>
3.2. ADOPTI-I - Registrering med flere personer
Dette eksempel dækker over en service med flere relaterede personer. Der initieres, valideres, og gemmes.
3.2.1. Klient initiate med flere nøgler
Klienten sende r4 nøgler ind til serveren.
- PNR : Barnet
- PNRF : Den nye far
- PNRM : Den nye mor
- DATO : Hændelsesdatoen
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADOPTI-I"> <CprServiceHeader r="ADOPTI-I" st="P" a="I" mk="1011" ts=""> <Key> <Field r="PNR" v="2206802244" /> <Field r="PNRF" v="1112581235" /> <Field r="PNRM" v="1008623456" /> <Field r="DATO" v="19980325" /> </Key> </CprServiceHeader> </Service> </System> </Gctp> </root>
3.2.2. Server initiate svar med flere stamperson præsentationer
Severen svarerer med præsentationsdata for alle personerne i nøglefelterne, samt barnets nuværende mor og far.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADOPTI-I"> <CprServiceHeader r="ADOPTI-I" st="P" a="I" mk="1011" ts="19980322130522123456"> <Table r="Aktioner"> <Row> <Field r="KODE" v="V" t="Validering" /> </Row> <Row> <Field r="KODE" v="F" t="Fortryd" /> </Row> <Row> <Field r="KODE" v="G" t="Gem" /> </Row> <Row> <Field r="KODE" v="2" t="Gem kladde i vent" /> </Row> <Row> <Field r="KODE" v="4" t="Gem og godkend" /> </Row> </Table> </CprServiceHeader> <CprData u="O"> <Rolle r="HovedRolle"> <Praes r="STAMPNR"> <Field r="PNR" v="2206802244" /> <Field r="ADRNVN" v="Larsen,Petra" /> <Field r="FOEDDATO" v="19800622" /> .... resten af STAMPNR præsentation for personen </Praes> </Rolle> <Rolle r="NyMor"> <Praes r="STAMPNR"> <Field r="PNR" v="1008623456" /> <Field r="ADRNVN" v="Larsen,Olga" /> <Field r="FOEDDATO" v="19620810" /> .... resten af STAMPNR præsentation for personen </Praes> </Rolle> <Rolle r="NyFar"> <Praes r="STAMPNR"> <Field r="PNR" v="1112581235" /> <Field r="ADRNVN" v="Birger Olsen" /> <Field r="FOEDDATO" v="19581211" /> .... resten af STAMPNR præsentation for personen </Praes> </Rolle> <Rolle r="Far"> <Praes r="STAMPNR"> <Field r="PNR" v="1210564567" /> <Field r="ADRNVN" v="Helge Larsen" /> <Field r="FOEDDATO" v="19561012" /> .... resten af STAMPNR præsentation for personen </Praes> </Rolle> <Rolle r="Mor"> <Praes r="STAMPNR"> <Field r="PNR" v="2307606788" /> <Field r="ADRNVN" v="Pedersen,Ursula" /> <Field r="FOEDDATO" v="1960723" /> .... resten af STAMPNR præsentation for personen </Praes> </Rolle> </CprData> <CprData u="I"> <Rolle r="HovedRolle"> <Field r="CSLG_FARDATO" v="19980325" a="SL" /> <Field r="CSLG_FARDOK" a="S" /> <Field r="CSLG_FARDOKMYNKOD" v="0259" a="SL" t="Køge" /> <Field r="CSLG_FARMYNKOD" v="0259" a="SL" t="Køge" /> <Field r="CSLG_FARNVN" v="" a="L" /> <Field r="CSLG_FARNVNMRK" v="" a="L" /> <Field r="CSLG_FARFOEDDATO" v="" a="L" /> <Field r="CSLG_MORDATO" v="19980325" a="SL" /> <Field r="CSLG_MORDOK" a="S" /> <Field r="CSLG_MORDOKMYNKOD" v="0259" a="SL" t="Køge" /> <Field r="CSLG_MORMYNKOD" v="0259" a="SL" t="Køge" /> <Field r="CSLG_MORNVN" a="L" /> <Field r="CSLG_MORNVNMRK" a="L" /> <Field r="CSLG_MORFOEDDATO" a="L" /> </Rolle> </CprData> <Kvit r="Ok" /> </Service> </System> </Gctp> </root>
3.2.3. Klient ændre data og validerer
Klienten markerer far og mor som verificeret (DOK) og beder om validering.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADOPTI-I"> <CprServiceHeader r="ADOPTI-I" st="P" a="V" mk="1011" ts="19980322130522123456"> <Key> <Field r="PNR" v="2206802244" /> <Field r="PNRM" v="1112581235" /> <Field r="PNRF" v="1008623456" /> <Field r="DATO" v="19980325" /> </Key> </CprServiceHeader> <CprData u="I"> <Rolle r="HovedRolle"> <Field r="CSLG_FARDATO" v="19980325" a="SL" /> <Field r="CSLG_FARDOK" v="JA" /> <Field r="CSLG_FARDOKMYNKOD" v="1011" /> <Field r="CSLG_FARMYNKOD" v="1011" a="SL" /> <Field r="CSLG_FARNVN" v="" a="L" /> <Field r="CSLG_FARNVNMRK" v="" a="L" /> <Field r="CSLG_FARFOEDDATO" v="" a="L" /> <Field r="CSLG_MORDATO" v="19980325" a="SL" /> <Field r="CSLG_MORDOK" v="JA" /> <Field r="CSLG_MORDOKMYNKOD" v="1011" /> <Field r="CSLG_MORMYNKOD" v="1011" a="SL" /> <Field r="CSLG_MORNVN" v="" a="L" /> <Field r="CSLG_MORNVNMRK" v="" a="L" /> <Field r="CSLG_MORFOEDDATO" v="" a="L" /> </Rolle> </CprData> </Service> </System> </Gctp> </root>
3.2.4. Server svar på validering
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADOPTI-I"> <CprServiceHeader r="ADOPTI-I" st="P" a="v" mk="1011" ts="19980322130522123456" /> <CprData u="O"> <Rolle r="HovedRolle"> <Praes r="STAMPNR"> <Field r="PNR" v="2206802244" /> <Field r="ADRNVN" v="Petra Larsen" /> <Field r="FOEDDATO" v="19800622" /> </Praes> </Rolle> <Rolle r="NyMor"> <Praes r="STAMPNR"> <Field r="PNR" v="1008623456" /> <Field r="ADRNVN" v="Larsen,Olga" /> <Field r="FOEDDATO" v="19620810" /> </Praes> </Rolle> <Rolle r="NyFar"> <Praes r="STAMPNR"> <Field r="PNR" v="1112581235" /> <Field r="ADRNVN" v="Olsen,Birger" /> <Field r="FOEDDATO" v="19581211" /> </Praes> </Rolle> <Rolle r="Far"> <Praes r="STAMPNR"> <Field r="PNR" v="1210564567" /> <Field r="ADRNVN" v="Larsen,Helge" /> <Field r="FOEDDATO" v="19561012" /> </Praes> </Rolle> <Rolle r="Mor"> <Praes r="STAMPNR"> <Field r="PNR" v="2307606788" /> <Field r="ADRNVN" v="Petersen,Ursula" /> <Field r="FOEDDATO" v="196007230" /> </Praes> </Rolle> </CprData> <CprData u="I"> <Rolle r="HovedRolle"> <Field r="CSLG_FARDATO" v="19980325" a="SL" /> <Field r="CSLG_FARDOK" v="JA" /> <Field r="CSLG_FARDOKMYNKOD" v="0259" a="L" t="Køge" /> <Field r="CSLG_FARMYNKOD" v="0259" a="SL" t="Køge" /> <Field r="CSLG_FARNVN" a="L" /> <Field r="CSLG_FARNVNMRK" a="L" /> <Field r="CSLG_MORDATO" v="19980325" a="SL" /> <Field r="CSLG_MORDOK" v="JA" /> <Field r="CSLG_MORDOKMYNKOD" v="0259" a="L" t="Køge" /> <Field r="CSLG_MORMYNKOD" v="19980325" a="SL" /> <Field r="CSLG_MORNVN" a="L" /> <Field r="CSLG_MORNVNMRK" a="L" /> </Rolle> </CprData> <Kvit r="Ok" /> </Service> </System> </Gctp> </root>
3.2.5. Klient gemmer
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADOPTI-I"> <CprServiceHeader r="ADOPTI-I" st="P" a="G" mk="1011" ts="19980322130522123456"> <Key> <Field r="PNR" v="2206802244" /> <Field r="PNR2" v="1112581235" /> <Field r="PNR3" v="1008623456" /> <Field r="DATO" v="19980325" /> </Key> </CprServiceHeader> <CprData u="I"> <Rolle r="HovedRolle"> <Field r="CSLG_FARDATO" v="19980325" /> <Field r="CSLG_FARDATOUSM" v=" " /> <Field r="CSLG_FARDOK" v="JA" /> <Field r="CSLG_FARDOKMYNKOD" v="1011" /> <Field r="CSLG_MORDATO" v="19980325" /> <Field r="CSLG_MORDATOUSM" v=" " /> <Field r="CSLG_MORDOK" v="JA" /> <Field r="CSLG_MORDOKMYNKOD" v="1011" /> </Rolle> </CprData> </Service> </System> </Gctp> </root>
3.2.6. Server svarer på gem
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="ADOPTI-I"> <CprServiceHeader r="ADOPTI-I" st="P" a="G" mk="1011" ts="19980322130522123456" /> <Kvit r="Afslut" v="0" > <Table> <Row k="2206802244"> <Field r="PNR" v="2206802244" /> <Field r="ADRNVN" v="Larsen,Petra" /> </Row> </Table> </Kvit> </Service> </System> </Gctp> </root>
3.3. KNOTAT-I - Registrering med tabel-rækker
Dette eksempel dækker over en service der har inputfelter i tabel rækker. Der initieres og gemmes.
3.3.1. Klient initiate
Klienten beder om at få initieret indberet kommunale notater.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="KNOTAT-I"> <CprServiceHeader r="KNOTAT-I" st="P" a="I" mk="1011" ts=""> <Key> <Field r="PNR" v="2206802244" /> </Key> </CprServiceHeader> </Service> </System> </Gctp> </root>
3.3.2. Server initiate svar med input tabel rækker
Serveren svarer med tabel rækker. Der findes allerede eksisterende data, som vises i rækker med knøglerne 3 og 8, samt en model-række.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r=" KNOTAT-I"> <CprServiceHeader r="KNOTAT-I" st="P" a="I" mk="1011" ts="19980322130522123456"> <Table r="Aktioner"> <Row> <Field r="KODE" v="V" t="Validering" /> </Row> <Row> <Field r="KODE" v="F" t="Fortryd" /> </Row> <Row> <Field r="KODE" v="G" t="Gem" /> </Row> </Table> </CprServiceHeader> <CprData u="O"> <Rolle r="HovedRolle"> <Praes r="STAMPNR"> <Field r="PNR" v="2206802244" /> <Field r="ADRNVN" v="Larsen,Petra" /> <Field r="FOEDDATO" v="19800622" /> .... reseten af en person præsentation </Praes> </Rolle> </CprData> <CprData u="I"> <Rolle r="HovedRolle"> <Table max="24"> <Row u="M"> <Field r="CNTA_MYNKOD" v="0101" t="København" a="SL" /> <Field r="CNTA_NOTTXT" /> <Field r="CNTA_STARTDATO" /> </Row> <Row k="3"> <Field r="CNTA_MYNKOD" v="0101" t="København" a="SL" /> <Field r="CNTA_NOTTXT" v="ttttttt" /> <Field r="CNTA_STARTDATO" v="19880623" /> </Row> <Row k="8"> <Field r="CNTA_MYNKOD" v="0101" t="København" a="SL" /> <Field r="CNTA_NOTTXT" v="yyyyyy" /> <Field r="CNTA_STARTDATO" v="19860623" /> </Row> </Table> </Rolle> </CprData> <Kvit r="Ok" /> </Service> </System> </Gctp> </root>
3.3.3. Klienten gemmer date med nye rækker
Klienten laver en ny række med nøglen 1, og fjerner den gamle række med nøgle 8 (hvilket vil sige at den slettes).
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r="KNOTAT-I"> <CprServiceHeader r="KNOTAT-I" st="P" a="G" mk="1011" ts="19980322130522123456"> <Key> <Field r="PNR" v="2206802244" /> </Key> </CprServiceHeader> <CprData u="I"> <Rolle r="HovedRolle"> <Table> <Row k="3"> <Field r="CNTA_MYNKOD" v="0101" /> <Field r="CNTA_NOTTXT" v="tvtvtvtvtv" /> <Field r="CNTA_STARTDATO" v="19990423" /> </Row> <Row k="1"> <Field r="CNTA_MYNKOD" v="0101" /> <Field r="CNTA_NOTTXT" v="nynynynynyny" /> <Field r="CNTA_STARTDATO" v="19990423" /> <Field r="CNTA_SLETDATO" v="20000423" /> </Row> </Table> </Rolle> </CprData> </Service> </System> </Gctp> </root>
3.3.4. Server svar på gem
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprAjour"> <Service r=" KNOTAT-I"> <CprServiceHeader r=" KNOTAT-I" st="P" a="G" mk="1011" ts="19980322130522123456" /> <Kvit r="Afslut" v="0"> <Table> <Row k="2206802244"> <Field r="PNR" v="2206802244" /> <Field r="ADRNVN" v="Larsen,Petra" /> </Row> </Table> </Kvit> </Service> </System> </Gctp> </root>
3.4. STAM - Stamoplysninger for en person
Dette eksempel viser hvordan STAM service kaldes med et personnummer (PNR) nøgle.
3.4.1. Klient forespørgsel
<?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= "STAM"> <CprServiceHeader r="STAM"> <Key> <Field r="PNR" v="2216582244"/> </Key> </CprServiceHeader> </Service> </System> </Gctp> </root>
3.4.2. Server svar
Serveren sender præsentationsdata tilbage til klienten.
<?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="STAM"> <CprServiceHeader r="STAM" ts="20240521222305987643"/> <CprData u="O"> <Rolle r="HovedRolle"> <Praes r="STAMPNR"> <Field r="PNR" v="2216582244"/> <Field r="I_VENT_MRK"/> <Field r="ADRNVN" v="Larsen,Petra" t="Petra Larsen"/> <Field r="KOEN" v="K"/> <Field r="STATUS" v="01" t="Bopael i Danmark"/> <Field r="STARTDATOSTATUS"/> <Field r="PNRGAELD"/> <Field r="FOEDDATO" v="19581622"/> <Field r="FOEDDATOUSM"/> <Field r="BESKYT" v="1" t="Navne- og adresse beskyttelse" ts="Beskyt"/> <Field r="CONVN"/> <Field r="ETAGE"/> <Field r="HUSNR" v="005"/> <Field r="SIDEDOER"/> <Field r="BNR"/> <Field r="KOMKOD" v="0400" t="Børnholm" tl="Børnholm"/> <Field r="VEJKOD" v="0042" t="Vejnavn"/> <Field r="BYNVN"/> <Field r="LOKALITET"/> <Field r="POSTNR" v="3700" t="Postdistrikt"/> <Field r="UDR_LANDEKOD"/> <Field r="UDLANDSADR1"/> <Field r="UDLANDSADR2"/> <Field r="UDLANDSADR3"/> <Field r="UDLANDSADR4"/> <Field r="UDLANDSADR5"/> <Field r="PERSONUUID" v="8d00ef82-8aaf-458a-bbc2-232f8f989588"/> <Field r="SBL"/> <Field r="SBLHIS"/> <Field r="STADR" v="Vejnavn 005"/> </Praes> </Rolle> </CprData> <Kvit r="Ok" v="0"/> </Service> </System> </Gctp> </root>