Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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

GCTP Struktur

Herunder beskrives de enkelte tags

2.1. Gctp

`GCTP elementet skal altid findes som den første tag i en besked. Herved fortælles det at, der frem til GCTP’ slut tag findes de data der indgår i beskeden

Attributter

AttributBeskrivelse
vSkal indeholde versionen af GCTP der anvendes
Eksempel
<Gctp v="1.0">
    ...
</Gctp>

2.2. System

System elementet anvendes til at angive oplysninger om hvilket system man agter at køre imod.

Attributter

AttributBeskrivelse
rSkal indeholde hvilket system kaldet foretages mod
Eksempel
<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.

Attributter

AttributBeskrivelse
rSkal indeholde navnet på hændelsen der kaldes
mkSkal indeholde den indberettende myndighedskode
aSkal indeholde hvilken aktion der ønskes eller hvilken tilstand servicen er I
uHvis denne attribut udfyldes med u="v" angives der at man ønsker at anvende ventesystemet
stst="P" angiver primær hændelse. Der anvends kun primære hændelser i CPR ved GCTP version 2.0
tsAnvendes til at identificere den igangværende session med den pågældende hændelse
Table 1. Tilladte værdier for attributter "a" - aktion
AktionBeskrivelse
IInitiering af hændelsen
VValidering af hændelsen
GGem hændelsen
FFortryd hændelsen
SSlet mange registreringer i hændelsen
1Initiering fra Vent
2Gem som kladde
3Gem og send til godkendelse i Vent
4Gem og godkend i Vent
5Aktiver fra Vent
6Slet fra Vent
7Afvis fra Vent
Eksempel på initiering af adoption hændelsen
<CprServiceHeader a="ADOPTI-I" a="I" st="P">
    ...
</CprServiceHeader>
Eksempel på validering af adoption hændelsen
<CprServiceHeader a="ADOPTI-I" a="V" st="P" ts="20050727094718410933">
    ...
</CprServiceHeader>
Eksempel på CprServiceHeader efter initiering med mulige aktioner
<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.

Attributter

AttributBeskrivelse
rSkal indeholde navnet på feltet
vVærdien af feltet
aEgenskaber ved feltet, f.eks. L=Låst, S=Skal
a1Yderligere egenskaber for feltet
tEn tekst betegnelse af værdien i v attributten
tsEn forkortet tekst betegnelse af værdien i v attributten
tmEn mellemlang tekst betegnelse af værdien i v attributten
tlEn lang tekst betegnelse af værdien i v attributten
eEn fejlkode der angiver at der er fejl i det pågældende felt
Eksempel på navn angivet i et Field, feltet er låst
<Field r="CNVN_FORNAVN" v="Peter" a="L" />
Eksempel på myndighed angivet i et Field, feltet er et skal udfyldes felt
<Field r="CNVN_STARTMYN" v="101" a="S" t="Københavns kommune" ts="Kbh. kommune" />
Eksempel på felt med fejl i
<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.

AttributBeskrivelse
uAngiver Usage, hvis denner 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
kNø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
Eksempel på model række
<Row u="M">
    <Field r="CNVN_FORNAVNE" a="L" />
    <Field r="CNVN_STARTMYN" a="S" />
</Row>
Eksempel på data række
<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.

AttributBeskrivelse
rSkal indeholde tabellens navn
aiaAntal i alt, anvendes ved søgninger
minDet minimale antal rækker tabellen kan indeholde
mrMax antal rækker der kan indberettes via tabellen
Eksempel på tabel
<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.

AttributBeskrivelse
rKvitteringstypen. Ok, Afslut, Fejl
vIndeholder fejlkode såfremt der er tale om en fejlkvittering ellers 0
tsIndeholder en fejltekst såfremt der er tale om en fejlkvittering
Eksempel på fejl kvittering
<Kvit r="Fejl" v="3422" t="Personen findes ikke i CPR" />
Eksempel på OK kvittering efter validering
<Kvit r="OK" v="0" />
Eksempel på Afslut kvittering efter data er gemt
<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.

AttributBeskrivelse
uAngiver om data i blokken er O(utput) eller I(nput)

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.

AttributBeskrivelse
rSkal indeholde navnet på rollen

2.10. Sik

Sik elementet anvendes ved logon.

AttributBeskrivelse
uiBrugerid
pwdPassword
npwdNyt password
Eksempel på logon
<Sik ui="x3450" pw="xxxxxx" npw="xxxxxx" />

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.

AttributBeskrivelse
rSkal 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.

AttributBeskrivelse
rDet 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.

AttributBeskrivelse
rSkal indeholde navnet på servicen der anvendes

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.

Eksempel på et Key element
<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

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

Eksempel på at klienten initierer
<?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.

Eksempel på et server svar på 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" 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.

Eksempel på et gem kald fra klienten
<?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

Eksempel på et gem svar fra serveren
<?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
Eksempel på et initiate kald med flere nøgler fra klienten
<?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.

Eksempel på et initiate svar med flere præsentationer til flere personer
<?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.

Eksempel på at klienten ændre data og validerer
<?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

Eksempel på et 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

Eksempel på at klienten 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

Eksempel på et 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="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.

Eksempel på et initiate kald fra klienten
<?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.

Eksempel på et initiate svar med tabel rækker
<?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).

Eksempel på et kald med nye rækker og fjernet gamle rækker
<?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

Eksempel på et gem svar fra en forespørgsel med rækker
<?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>
  • No labels