Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Hændelser

...

udstilles

...

via

...

GraphQL-tjenesterne,

...

som

...

en

...

entitet

...

for

...

hvert

...

register.

...

Dvs.

...

man

...

kun

...

vil

...

modtage

...

hændelser

...

for

...

et

...

enkelt

...

register

...

per

...

kald,

...

og

...

der

...

vil

...

kun

...

være

...

hændelser

...

for

...

de

...

entiteter

...

man

...

har

...

adgang

...

til.

...

Adgangssystemet

...

for

...

adgang

...

til

...

entiteter

...

og

...

hvordan

...

adgang

...

tildeles

...

er

...

beskrevet

...

i

...

*\[C0200-ENTITETSBASEREDE-GRAPHQL\]{*}.

...

 

I

...

disse

...

eksempler

...

bruges

...

API

...

key

...

som

...

autentifikationsmetode

...

til

...

at

...

hente

...

hændelser

...

fra

...

...


Table of Contents

Display Metadata
hidetableheadertrue




Hændelser per register


Følgende query

...

vil sende en forespørgsel til BBR om at få hændelser for den specifikke entitet "Bygning":


Code Block
query {

...


	BBR_Events(

...


		where: {

...


			entityname: { eq: "Bygning" }

...


		}
	) 	{
		nodes {
			eventid
			entityname
			eventaction
			datafordelerRegisterImportSequenceNumber
			datafordelerOpdateringstid
			fromfailedimport
			object_id
			object_datafordelerRowId
			object_datafordelerRowVersion
			object_registreringfra
			object_registreringtil
			object_status
			object_virkningfra
			object_virkningtil
		}
	}
}







Abonnement på hændelser


Forespørgsler til at abonnere på hændelser er næsten ens med almindelige GraphQL queries, med den forskel at der kommer et "subscription"-præfix på i stedet for "query". Følgende forespørgsel i Figur 5 til BBR abonnerer på hændelser for den specifikke entitet "Bygning":


Code Block
subscription {

...


	BBR_Events(

...


		where: {

...


			entityname: { eq: "Bygning" }

...


		}
	)
		{
		eventid
		entityname
		eventaction
		datafordelerRegisterImportSequenceNumber
		datafordelerOpdateringstid
		fromfailedimport
		object_id
		object_datafordelerRowId
		object_datafordelerRowVersion
		object_registreringfra
		object_registreringtil
		object_status
		object_virkningfra
		object_virkningtil
		}
	}





Status på register import


Registre importerer data til Datafordeleren i pakker. Information om tilstanden og aktualiteten af denne dataimport bliver udstillet til anvendere gennem RegisterImportStatus entiteten. RegisterImportStatus er en åben entitet, som alle anvendere har adgang til.

RegisterImportStatus opdateres kun når en hel pakke af hændelser er færdigimporteret, mens individuelle hændelser løbende tilføjes til hændelsestabellen under importen. Dette sikrer, at anvendere kan:

  • Modtage komplette datapakker: En pakke kan indeholde relaterede hændelser (f.eks. både oprettelse og sletning for samme række) som skal behandles samlet
  • Undgå usammenhængende tilstande: Ved at sammenligne RegisterImportStatus sekvensnummer med hændelsernes sekvensnummer kan anvendere sikre, at de kun behandler komplette pakker
  • Garantere dataintegritet: Kritiske forretningsscenarier hvor rækkefølgen og sammenhængen mellem hændelser er vigtig bliver håndteret korrekt







Anvendere bruger RegisterImportStatus til at sikre, at de er opdaterede med alle hændelser indenfor et givent register ved at sammenligne dets sekvensnummer med sekvensnummeret på de hændelser de processerer.
Query i Figur 6 vil hente data fra RegisterImportStatus:
query {
DAF_RegisterImportStatus {
lastSequenceNumber,
lastEventId,
lastUpdated
}
}

Anchor
_Ref208471425
_Ref208471425
Figur 6: Eksempel query for RegisterImportStatus
Forespørgslen sendes til URL'en som tilhører det registers entitetsbaserede GraphQL-tjeneste, som man vil have oplysninger fra, se for eksempel BBR i afsnit 3 (Udstilling af hændelser). RegisterImportStatus udstiller de 3 felter som vises i Tabel 4.

Feltnavn

Betydning

lastSequenceNumber

Sekvensnummeret på senest indlæste pakke for registeret.

lastEventId

ID'et på den seneste hændelse genereret for et givent register.

lastUpdated

Tidspunkt for seneste opdatering.

Anchor
_Ref204869290
_Ref204869290
Anchor
_Ref204869284
_Ref204869284
Tabel 4: RegisterImportStatus felter

Anchor
_Toc209014378
_Toc209014378
Anchor
_Toc209089000
_Toc209089000
Abonnering på RegisterImportStatus

Da RegisterImportStatus er eksponeret gennem GraphQL på samme måde som hændelser, er det muligt at abonnere på ændringer til "DAF_RegisterImportStatus".
Bemærk at Datafordeleren kun gemmer én række per replikeringskanal i databasen. Dette har den konsekvens, at hvis flere opdateringer forekommer inden for det interval der udsendes hændelser, vil kun de seneste data blive sendt til anvendere gennem abonnementer. Se Figur 7 for eksempel på forespørgsel til at oprette abonnement på RegisterImportStatus.
subscription {
DAF_RegisterImportStatus {
lastSequenceNumber,
lastEventId,
lastUpdated
}
}

Anchor
_Ref208477144
_Ref208477144
Figur 7: Eksempel på subsciption for RegisterImportStatus

Anchor
_Toc209014379
_Toc209014379
Anchor
_Toc209089001
_Toc209089001
Register import metadata i fildownloads


Wiki Markup
Sekvensnummeret fra RegisterImportStatus udstilles som metadata for fildownloads under GetAvailableFileDownloads, hvis en anvender ønsker at kombinere hændelser med fildownloads, til at vedligeholde egen data. Mere information om vedligeholdelse af kopiregister med fildownloads kan findes i *\[C0200-FILDOWNLOAD{*}<span style="color: #0f2147"><strong>]</strong></span>.


Anchor
_Ref203469223
_Ref203469223
Anchor
_Toc209014380
_Toc209014380
Anchor
_Toc209089002
_Toc209089002
Registre uden hændelser

Der er 3 registre, som er tilgængelige i GraphQL, men som ikke har nogen funktionalitet relateret til moderniserede hændelser. Disse registre er:

  • Historiske Kortbladsinddelinger: Indeholder udelukkende historiske data
  • DHM Højdekurver: Opdateres sjældent (ca. halvårligt)
  • DHM Oprindelse: Opdateres sjældent (ca. halvårligt)

For registre med historiske data eller sjældne opdateringer er hændelsesfunktionalitet ikke relevant. Derfor kan hverken Events eller RegisterImportStatus tilgås i GraphQL-tjenesterne for disse registre.