Loading…
Tilbage

Dokumentation af webservice operationerne - GetArticlesByFormTasks samt GetArticleIDsByFormTaskArea og GetArticleIDsByFormServiceArea


05-11-2012 17:04:48

Opdateret: 18. november 2012 -  Borger.dk anvender faktisk ale niveauer af FORM men de kaldes alle via GetArticlesByFormTasks.

Alle niveauer af FORM kalde via GetArticlesByFormTasks

SOAP Formatet på artikelimporten, stammer fra en tid da FORM var helt nyt. I FORM 1.1 havde vi følgende områder

  • Serviceområde
  • Opgaveområde
  • Opgaver 

Derfor blev interfacet oprindeligt gjort klar til søgning på alle tre niveauer. I den tidligere implementation var der dog kkun understøttelse for to af niveauerne: Serviceområde og Opgaver.I den nuværende FORM (2.2) er der 4 niveauer:

  • Serviceområde
  • Hovedområde
  • OpgaveOmråde
  • Opgave

I den aktuelle implementation er der kun implementeret én søge operation til FORM (GetArticlesByFormTasks) hvor der kan søges på alle niveauer. Dette strider umiddelbart imod semantikken i navnet på operationen men skyldes at det oprindeligt kun var planen at anvende opgave niveauet i BG3. Det viste sig senere ikke at være hensigtsmæssigt og det blev muligt for redaktørerne at anvende alle 4 niveauer. Der kunne ikke konsekvensrettes i operationerne på artikelimporten, uden at bryde interfacet og valget blev at beholde at GetArticlesByFormTasks som eneste søgemetode.

OBS: Hvis du anvender denne funktion skal du være opmærksom på denne afvigelse samt at søgningen IKKE er rekursiv, altså en søgning efter  "Ungdomsuddannelser" (10.10) ikke giver hits på f.eks. den underliggende nøgle  "Gymnasiale uddannelser" (10.10.05).

  • GetArticleIDsByFormServiceArea - denne understøttes ikke mere. Der vil blive svaret med en SOAP Fault med beskrivelsen "The method is deprecated". Se et eksempel nederst på denne side.
  • GetArticleIDsByFormTaskArea - denne understøttes ikke. Der vil blive svaret med en SOAP Fault med beskrivelsen "The method is deprecated". Se et eksempel nederst på denne side.
  • GetArticlesByFormTasks (Returnerer liste med artikler med indhold) - denne operation er implementeret og svarer for nøgler på alle niveauer.

Hvis nogen ønsker at lave en søgning på ikke blot specifikke nøgler men, en også alle nøgler under et givet emne må de selv lave denne aggregering. Dette gøres lettest ud fra bruttolisten af anvendte form-nøgler man kan få ved et kald til GetAllArticles eller alternativt ved at søgning på alle de relevate underliggende nøgler hvilket ofte vil betyde mange ekstra kald og hvor de fleste blot vil svare at der ikke er nogen artikler opmærket med den nøgle.

GetArticlesByFormTasks 

Artikelimporten bruger nøglernes UuidIdentifikator som id'er

I den tidligere implementation skulle man angive nøgler med den logiske FORM notation som f.eks.

<a:FormTask>
<a:FormTaskName>Udstedelse af pas</a:FormTaskName>
<a:FormTaskNumber>01.3.12.04</a:FormTaskNumber>
</a:FormTask>

som i den aktuelle version af FORM findes under 08.15.05.50 og der skal nu kaldes med nøglernes UuidIdentifikator, som det kan hentes ved f.eks. FORM online

<Opgave>
<VersionIdentifikator>2.1</VersionIdentifikator>
<OprettetDato>2011-03-28</OprettetDato>
<UuidIdentifikator>82e54e2b-4e46-11e0-a272-0050c2490048</UuidIdentifikator>
<NavnTekst>Pas</NavnTekst>
<BeskrivelseTekst>Rejselegitimation for danske statsborgere. Andre landes pas- og visumregler, se forvaltningsopgave 03.05.05.15</BeskrivelseTekst>
<OpgaveNummerIdentifikator>08.15.05.50</OpgaveNummerIdentifikator>

Her vil fremover bliver benyttet GUID'en 82e54e2b-4e46-11e0-a272-0050c2490048 og ikke  08.15.05.50, efter anbefaling fra FORM redaktionen da disse er mere stabile/persistente og bevares selvom nøgle flyttet internt i FORM hierakiet.

SOAP Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://www.borger.dk/2009/WSArticleExport/v1"
xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<soapenv:Header />
<soapenv:Body>
<v1:GetArticlesByFormTasks>
<!--Optional: -->
<v1:formTaskNumbers>
<!--Zero or more repetitions: -->
<arr:string>82e54e2b-4e46-11e0-a272-0050c2490048</arr:string>
</v1:formTaskNumbers>
<!--Optional: -->
<!-- <v1:useLogicalAnd>?</v1:useLogicalAnd> -->
<!-- <v1:municipalityCode>?</v1:municipalityCode> -->
<!-- v1:updatedAfter>?</v1:updatedAfter> -->
</v1:GetArticlesByFormTasks>
</soapenv:Body>
</soapenv:Envelope>

SOAP Response

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetArticlesByFormTasksResponse
xmlns="http://www.borger.dk/2009/WSArticleExport/v1">
<GetArticlesByFormTasksResult
xmlns:a="http://www.borger.dk/2009/WSArticleExport/v1/types"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Article>
<a:ArticleHeader>Alle danske statsborgere kan f&amp;#229; udstedt
et pas ved at henvende sig til et kommunalt borgerservicecenter.
Fra 1. januar 2012 skal du have taget fingeraftryk, n&amp;#229;r
du bestiller et nyt pas</a:ArticleHeader>
<a:ArticleID>150</a:ArticleID>
<a:ArticleTitle>Ans&amp;#248;g om eller forny dansk pas
</a:ArticleTitle>
<a:ArticleUrl>https://www.borger.dk/Sider/Ansoeg-om-eller-forny-dansk-pas.aspx
</a:ArticleUrl>
<a:Content><![CDATA[<div id='selvbetjeningslinks'><h3>Hvad vil du?</h3>
<ul>

<li id="opis_domainservice_7bb097ea-5570-405d-86db-108d02e3fcd6">
<a title="Du skal møde PERSONLIGT i et borgerservicecenter med ansøgning om dansk pas eller fornyelse. Dette gælder også børn. Husk ved førstegangsbestiling eller bortkommet af pas at medbringe original dåbs- eller navneattest samt billedlegitimation. Ved fornyelse af pas skal du medbringe dit gamle pas.
........
........
........
<div id='anbefaler'><h3>Læs også</h3><h4>På borger.dk</h4>
<ul><li><div><span><span></span><span><a href="https://www.borger.dk/Sider/Regler-om-pas.aspx" title="Artikel på borger.dk om regler om pas">Regler om pas</a><span>&#160;</span></span></span>&#160;</div></li></ul></div>
<div id='lovgivning'><h3>Hvad siger loven?</h3><p>Du kan læse pasloven på Retsinformation.</p>
<ul><li><div><a href="https://www.retsinformation.dk/Forms/R0710.aspx?id=2404" title="Retsinformation om Pasloven - Bekendtgørelse af lov om pas til danske statsborgere m.v. (nyt vindue)" target="_blank">Pasloven (nyt vindue)</a><span>&#160;&#160;</span></div></li></ul>
<p>Kravet om fingeraftryk i danske pas står i:</p>
<ul><li><a href="https://www.retsinformation.dk/Forms/R0710.aspx?id=137683" title="Lov om ændring af lov om pas til danske statsborgere m.v." target="_blank">Lov om ændring af lov om pas til danske statsborgere m.v. (nyt vindue)</a><span>&#160;&#160;</span></li></ul>
<p>&#160;</p>
<div>&#160;</div></div>]]></a:Content>
<a:FormServiceAreas i:nil="true" />
<a:FormTaskAreas i:nil="true" />
<a:FormTasks>
<a:FormTask>
<a:FormTaskName>Udlændinges indrejse og ophold</a:FormTaskName>
<a:FormTaskNumber>b3f13531-9160-11de-b8c4-0050c2490048
</a:FormTaskNumber>
</a:FormTask>
<a:FormTask>
<a:FormTaskName>Pas</a:FormTaskName>
<a:FormTaskNumber>82e54e2b-4e46-11e0-a272-0050c2490048
</a:FormTaskNumber>
</a:FormTask>
</a:FormTasks>
<a:LastUpdated>2012-09-11T12:37:26</a:LastUpdated>
<a:PublishingDate>2012-04-08T21:40:53</a:PublishingDate>
</a:Article>
<a:Article>
<a:ArticleHeader>Der findes to typer pas for udl&amp;#230;ndinge,
der ikke selv har et nationalt pas - et konventionspas og et
fremmedpas</a:ArticleHeader>
<a:ArticleID>151</a:ArticleID>
<a:ArticleTitle>Pas til udl&amp;#230;ndinge</a:ArticleTitle>
<a:ArticleUrl>https://www.borger.dk/Sider/Pas-til-udlaendinge.aspx
</a:ArticleUrl>
<a:Content><![CDATA[<div id='selvbetjeningslinks'><h3>Hvad vil du?</h3>
<ul>

<li id="opis_domainservice_ea87343b-6e86-41f2-89bd-36ce549c9036">
<a title="Dette skema skal du bruge, hvis du vil søge om at få udstedt enten et rejsedokument for flygtninge (konventionspas) eller et fremmedpas. " href="https://www.borger.dk/Sider/Handlingsside.aspx?DomainServiceId=ea87343b-6e86-41f2-89bd-36ce549c9036&amp;PageId=e1b78f8f-cd28-4ee4-b7a8-ce5ef3bf61d1">
Ansøg om pas til udlændinge i Danmark</a> </li>

<li id="opis_domainservice_7bb097ea-5570-405d-86db-108d02e3fcd6">
<a title="Du skal møde PERSONLIGT i et borgerservicecenter med ansøgning om dansk pas eller fornyelse. Dette gælder også børn. Husk ved førstegangsbestiling eller bortkommet af pas at medbringe original dåbs- eller navneattest samt billedlegitimation. Ved fornyelse af pas skal du medbringe dit gamle pas.
For at få udstedt/fornyet pas til dit barn under 18 år skal BEGGE forældremyndighedshavere underskrive ansøgningen, hvis der er fælles forældremyndighed. Ellers underskriver den forælder, som har forældremyndigheden alene. Husk ved ændring af navn at medbringe original navneattest/vielsesattest. Mange kommuner tilbyder, at du kan få taget pasfoto i borgerservicecentret. Spørg din kommune herom." href="https://www.borger.dk/Sider/Handlingsside.aspx?DomainServiceId=7bb097ea-5570-405d-86db-108d02e3fcd6&amp;PageId=e1b78f8f-cd28-4ee4-b7a8-ce5ef3bf61d1">
Ansøg om/forny dansk pas</a> </li>

<li id="opis_domainservice_e0a0b50c-7efb-4099-b045-93299c076470">
<a title="Erklæring om anvendelse af pas. " href="https://www.borger.dk/Sider/Handlingsside.aspx?DomainServiceId=e0a0b50c-7efb-4099-b045-93299c076470&amp;PageId=e1b78f8f-cd28-4ee4-b7a8-ce5ef3bf61d1">
Erklæring om anvendelse af pas</a> </li>

........
........
........
<div id='lovgivning'><h3>Hvad siger loven?</h3><ul><li><a href="https://www.retsinformation.dk/Forms/R0710.aspx?id=138340" title="Retsinformation om udlændingeloven (nyt vindue)" target="_blank">Udlændingeloven (nyt vindue)</a><span>&#160;&#160;</span></li>
<li><a href="https://www.retsinformation.dk/Forms/R0710.aspx?id=2404" title="Retsinformation om Pasloven - Bekendtgørelse af lov om pas til danske statsborgere m.v. (nyt vindue)" target="_blank">Pasloven (nyt vindue)</a><span>&#160;&#160;</span></li></ul></div>]]></a:Content>
<a:FormServiceAreas i:nil="true" />
<a:FormTaskAreas i:nil="true" />
<a:FormTasks>
<a:FormTask>
<a:FormTaskName>Pas</a:FormTaskName>
<a:FormTaskNumber>82e54e2b-4e46-11e0-a272-0050c2490048
</a:FormTaskNumber>
</a:FormTask>
<a:FormTask>
<a:FormTaskName>Udlændinges indrejse og ophold</a:FormTaskName>
<a:FormTaskNumber>b3f13531-9160-11de-b8c4-0050c2490048
</a:FormTaskNumber>
</a:FormTask>
</a:FormTasks>
<a:LastUpdated>2012-07-11T15:04:02</a:LastUpdated>
<a:PublishingDate>2012-04-08T21:48:08</a:PublishingDate>
</a:Article>
<a:Article>
<a:ArticleHeader>N&amp;#229;r du rejser ud af Danmark, skal du
altid have dit pas med dig, medmindre du rejser i Norden
</a:ArticleHeader>
<a:ArticleID>152</a:ArticleID>
<a:ArticleTitle>Regler om pas</a:ArticleTitle>
<a:ArticleUrl>https://www.borger.dk/Sider/Regler-om-pas.aspx
</a:ArticleUrl>
<a:Content><![CDATA[<div id='selvbetjeningslinks'><h3>Hvad vil du?</h3>
<ul>

<li id="opis_domainservice_ea87343b-6e86-41f2-89bd-36ce549c9036">
<a title="Dette skema skal du bruge, hvis du vil søge om at få udstedt enten et rejsedokument for flygtninge (konventionspas) eller et fremmedpas. " href="https://www.borger.dk/Sider/Handlingsside.aspx?DomainServiceId=ea87343b-6e86-41f2-89bd-36ce549c9036&amp;PageId=10448ce3-78ae-4deb-9113-4991566137cd">
Ansøg om pas til udlændinge i Danmark</a> </li>

<li id="opis_domainservice_7bb097ea-5570-405d-86db-108d02e3fcd6">
<a title="Du skal møde PERSONLIGT i et borgerservicecenter med ansøgning om dansk pas eller fornyelse. Dette gælder også børn. Husk ved førstegangsbestiling eller bortkommet af pas at medbringe original dåbs- eller navneattest samt billedlegitimation. Ved fornyelse af pas skal du medbringe dit gamle pas.
For at få udstedt/fornyet pas til dit barn under 18 år skal BEGGE forældremyndighedshavere underskrive ansøgningen, hvis der er fælles forældremyndighed. Ellers underskriver den forælder, som har forældremyndigheden alene. Husk ved ændring af navn at medbringe original navneattest/vielsesattest. Mange kommuner tilbyder, at du kan få taget pasfoto i borgerservicecentret. Spørg din kommune herom." href="https://www.borger.dk/Sider/Handlingsside.aspx?DomainServiceId=7bb097ea-5570-405d-86db-108d02e3fcd6&amp;PageId=10448ce3-78ae-4deb-9113-4991566137cd">
Ansøg om/forny dansk pas</a> </li>

........
........
........
<div id='lovgivning'><h3>Hvad siger loven?</h3><ul><li><a href="https://www.retsinformation.dk/Forms/R0710.aspx?id=2404" title="Retsinformation om Pasloven - Bekendtgørelse af lov om pas til danske statsborgere m.v. (nyt vindue)" target="_blank">Pasloven (nyt vindue)</a><span>&#160;&#160;</span></li>
<li><a href="http://eur-lex.europa.eu/" title="EUR-lex - adgang til EU-lovgivningen (nyt vindue)" target="_blank">EUR-lex - adgang til EU-lovgivningen (nyt vindue)</a><span>&#160;&#160;</span></li></ul></div>]]></a:Content>
<a:FormServiceAreas i:nil="true" />
<a:FormTaskAreas i:nil="true" />
<a:FormTasks>
<a:FormTask>
<a:FormTaskName>Udlændinges indrejse og ophold</a:FormTaskName>
<a:FormTaskNumber>b3f13531-9160-11de-b8c4-0050c2490048
</a:FormTaskNumber>
</a:FormTask>
<a:FormTask>
<a:FormTaskName>Pas</a:FormTaskName>
<a:FormTaskNumber>82e54e2b-4e46-11e0-a272-0050c2490048
</a:FormTaskNumber>
</a:FormTask>
</a:FormTasks>
<a:LastUpdated>2012-07-16T12:28:09</a:LastUpdated>
<a:PublishingDate>2012-04-08T21:50:34</a:PublishingDate>
</a:Article>
</GetArticlesByFormTasksResult>
</GetArticlesByFormTasksResponse>
</s:Body>
</s:Envelope>

GetArticleIDsByFormTaskArea og GetArticleIDsByFormServiceArea

Disse operationer understøttes ikke og svaret vil altid være en SOAPFault:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring xml:lang="da-DK">The method is deprecated.</faultstring>
<detail>
<ArticleFault xmlns="http://www.borger.dk/2009/WSArticleExport/v1/types"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<HelpMessage>The method is deprecated.</HelpMessage>
</ArticleFault>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>

Filer og referencer

Titel Type
GetArticlesByFormTasks-response.xml text/xml
GetArticlesByFormTasks-request.xml text/xml
Profilbillede

Opdateret - Borger.dk anvender alle fire niveauer i FORM og alle søgninger sker med "GetArticlesByFormTasks"

Brian Nielsen

Alle 4 niveauer i FORM anvendes til artikler på Borger.dk og de er alle søgbare gennem 'GetArticlesByFormTasks'.

Bemærk at søgningen IKKE er rekursiv, altså en søgning efter  "Ungdomsuddannelser" (10.10) ikke giver hits på f.eks. den underliggende nøgle  "Gymnasiale uddannelser" (10.10.05).

Vedhæfter en oversigt over de FORM nøgler der pt. er anvendt på Borger.dk, baseret på GetAllArticles.

ændret af Brian Nielsen (18.11.2012)
Profilbillede

Svartider på kald til 'GetArticlesByFormTasks'

Brian Nielsen

På baggrund af en melding om bla. meget lange svartider på kald til operationen GetArticlesByFormTasks, har jeg lavet et gennemløb med kald til alle de Tasks/Opgaver vi anvender på Borger.dk.

Alle kald var baseret på følgende SOAP Request

xmlns:v1="http://www.borger.dk/2009/WSArticleExport/v1" 
xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">





${taskguid}



779



Resultatet efter 417 kald (var startet på et nyt loop efter de 392 Tasks der anvendes pt. på Borger.dk):

Gennemsnitlig svartid var 9 sekunder, med en variation imellem 1 og 62 sekunder, hvor det længste kald var til b3f13531-9160-11de-b9aa-0050c2490048 som gælder for Arbejdsmarkedsrelaterede ydelser.

 

ændret af Brian Nielsen (07.11.2012)

Jeg glemte at skrive at testen tog 62 minutter for at lave de 417 kald, altså knapt 7 kald i minuttet.

Dette var lavet sådan at alle kald blev afviklet så hurtigt som JMeter kunne udføre det og stemmer godt overens med den gennemsnitlige svartid.