Webservice til EUD-indberetning til DVH Dato 24-06-2016 Version Status 1.0 Gældende fra og med den 1. juli 2016 Ansvarlig Lars Strange
Side 2 af 9 Indhold 1 Indledning... 3 2 Kontakt Webservicen... 3 3 Webservicens Get-metoder... 3 3.1 GetXmlSchema... 3 4 Validere data... 3 4.1 ValidateXmlAgainstSchema... 3 4.1.1 Eksempel på OK-svar... 4 4.1.2 Eksempel på Fejl-svar... 4 5 Overføre data... 5 6 Udviklingsværktøjer... 6 Bilag 1: Eksempel på valid XML-data... 7 Bilag 2: Eksempel på SoapUI request... 9 Bilag 3: Eksempel på SoapUI response... 9
Side 3 af 9 1 Indledning Dette notat beskriver kort webservicen tilhørende EUD-indberetningen (herefter Webservicen). Webservicen er udviklet og driftes af Styrelsen for It og Læring. Indholdet er beskrevet i dokumentet Indberetningsstruktur for EUD-indberetning til DVH. 2 Kontakt Webservicen Webservicen findes i et testmiljø. Servicebeskrivelsen findes på denne adresse: https://statistik-ext.unic.dk/eudindberetningws/uploadservice.svc?singlewsdl Webservicen udstiller en simpel HelloWorld-metode, der blot returnerer Hello World. Det anbefales at foretage den første test mod denne metode. Der findes pt. ikke en adresse til driftversionen. 3 Webservicens Get-metoder Webservicen udstiller en række Get-metoder, som kort beskrives nedenfor. 3.1 GetXmlSchema Denne metode returnerer det aktuelle schema, som XML-data forventes at overholde, når der overføres data fra de administrative systemer til Webservicen. Det anbefales, at leverandøren altid sikrer sig, at XML-data overholder det schema, der udstilles via GetXmlSchema, og validerer XML data lokalt (i klienten) mod schemaet før overførelse til Webservicen. GetXmlSchema returnerer schemaet i XML-format. 4 Validere data 4.1 ValidateXmlAgainstSchema Denne metode validerer overførte XML-data mod det aktuelle schema. Der returneres et ValidateXmlAgainstSchemaResult som resultat af valideringen. Hvis valideringen ikke finder fejl, vil ErrorCount være 0. Ellers vil ErrorCount være større end 0, og der vil være en liste af ValidationError-elementer med fejlmeddelelser. Fejlmeddelelserne er henvendt til udviklere og lister.net-fejlmeddelelsen samt den linje i XML filen, der fejler i forhold til schemaet. ValidateXmlAgainstSchema har alene til formål at teste XML-data mod det aktuelle schema og er en hjælp til udvikling af XML-eksport i de administrative systemer. Se Bilag 1 for eksempel på XML-data, der overholder det aktuelle schema og returnerer et OK-svar.
Side 4 af 9 4.1.1 Eksempel på OK-svar <ValidateXmlAgainstSchemaResult xmlns:i="http://www.w3.org/2001/xmlschema-instance"> <ErrorCount>0</ErrorCount> <Message>Data blev modtaget og valideret korrekt.</message> <ValidationErrors/> </ValidateXmlAgainstSchemaResult> 4.1.2 Eksempel på Fejl-svar <ValidateXmlAgainstSchemaResult xmlns:i="http://www.w3.org/2001/xmlschema-instance"> <ErrorCount>2</ErrorCount> <Message>Der er 2 valideringsfejl</message> <ValidationErrors> <ExtendedValidationError> <ErrorLocation i:nil="true"/> <ErrorMessage>Linje: 81 udløser fejlen: [The 'http://www.stil.dk/euddvhindberetning/:karaktervaerdi' element is invalid - The value '03' is invalid according to its datatype 'String' - The Enumeration constraint failed.]</errormessage> <ErrorPersonId i:nil="true"/> <ErrorType/> </ExtendedValidationError> <ExtendedValidationError> <ErrorLocation i:nil="true"/> <ErrorMessage>Linje: 84 udløser fejlen: [The 'http://www.stil.dk/euddvhindberetning/:evalueringsform' element is invalid - The value 'Skriftlig dansk' is invalid according to its datatype 'http://www.stil.dk/euddvhindberetning/:evalueringsformtype' - The Enumeration constraint failed.]</errormessage> <ErrorPersonId i:nil="true"/> <ErrorType/> </ExtendedValidationError> </ValidationErrors> </ValidateXmlAgainstSchemaResult>
Side 5 af 9 5 Overføre data (endnu ikke implementeret)
Side 6 af 9 6 Udviklingsværktøjer Webservicen er udviklet i.net-frameworket og kan umiddelbart tilgås i Visual Studio ved at tilføje WSDL som service reference. Følgende gratis udviklingsværktøjer kan anbefales til test og debug: soupui (http://www.soapui.org/) kan bl.a. oprette soap requests, der kan sendes mod webservicen. Fiddler (http://www.telerik.com/fiddler) analyserer webservicekald og - svar. Bilag 2 og 3 er eksempler på hhv. soap request og tilhørende soap response, når XML-data i bilag 1 anvendes.
Side 7 af 9 Bilag 1: Eksempel på valid XML-data <Indberetning xmlns="http://www.stil.dk/euddvhindberetning/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="uvm_stil EudIndberetningV1.0.xsd"> <Version>1.0</Version> <SystemVersion>STIL Sample</SystemVersion> <JournalNummer>Jour. 1</JournalNummer> <IndberettendeEnhed>999999</IndberettendeEnhed> <Person> <PersonId>1234567890</PersonId> <Fornavne>Jane</Fornavne> <Efternavn>Joe</Efternavn> <Foedselsdato>1957-08-13</Foedselsdato> <Koen>0</Koen> <Elev> <Uddannelsesinstitution>999999</Uddannelsesinstitution> <Uddannelse>1912</Uddannelse> <Startdato>2015-08-13</Startdato> <Slutdato>2016-08-13</Slutdato> <Adgangsvej>ST</Adgangsvej> <Speciale> <Version>String</Version> <Speciale>aaaa</Speciale> <SpecialeStartdato>String</SpecialeStartdato> <SpecialeSlutdato>String</SpecialeSlutdato> </Speciale> <Elevtype> <Elevtype>a</Elevtype> </Elevtype> <Afgangsaarsag> <Dato>1957-08-13</Dato> <Aarsag>a</Aarsag> </Afgangsaarsag> <Elevdeltagelse> <UndervisningsenhedRef>String</UndervisningsenhedRef> <Rolle>SÆ</Rolle> <Antal>99</Antal> </Elevdeltagelse> <Skoleophold> <Skoleperiode>aaaa</Skoleperiode> <Undervisningssted>aaaaaa</Undervisningssted> <UVMafdeling>aaaaaa</UVMafdeling> <AAEBidragUndervisning> <Taelledato>1957-08-13</Taelledato> <Bidrag>0</Bidrag> <Restbidrag>0</Restbidrag> <PeriodeStart>1957-08-13</PeriodeStart> <PeriodeSlut>1957-08-13</PeriodeSlut> </AAEBidragUndervisning> </Skoleophold> <Praktikophold> <Skoleperiode>aaaa</Skoleperiode> <Speciale>String</Speciale> <AAEBidragSkolepraktik> <Taelledato>1957-08-13</Taelledato> <UdlosBidrag>N</UdlosBidrag> <Bidrag>0</Bidrag> </AAEBidragSkolepraktik> </Praktikophold> <KvalifikationTilHovedforloeb> <DatoKvalifikation>1957-08-13</DatoKvalifikation> <Uddannelse>String</Uddannelse> </KvalifikationTilHovedforloeb> <LaererstyretUndervisning>
Side 8 af 9 <Dato>1957-08-13</Dato> <Timer>0</Timer> <Periodetype>String</Periodetype> </LaererstyretUndervisning> <Karakter> <Fag> <Fagnummer>99999</Fagnummer> <Fagniveau>C</Fagniveau> </Fag> <Karaktervaerdi>02</Karaktervaerdi> <Karakterskala>Bestået/Ikke bestået</karakterskala> <Karaktertype>Standpunktskarakter</Karaktertype> <Evalueringsform>Skriftlig</Evalueringsform> <KarakterDato>1957-08-13</KarakterDato> <Termin>String</Termin> </Karakter> </Elev> <Optagelsesgrundlag> <Uddannelse>String</Uddannelse> <Studiestart>1957-08-13</Studiestart> <Uddannelsessted>aaaaaa</Uddannelsessted> <Undervisningssted>aaaaaa</Undervisningssted> <KarakterDansk>-3</KarakterDansk> <KarakterMatematik>-3</KarakterMatematik> <OptagelsesproeveDansk>F</OptagelsesproeveDansk> <OptagelsesproeveMatematik>F</OptagelsesproeveMatematik> <ResultatOptagelsesproeveDansk>Bestået</ResultatOptagelsesproeveDansk> <ResultatOptagelsesproeveMatematik>Ej mødt</resultatoptagelsesproevematematik> <BetingetOptag>-</BetingetOptag> <OptagetSamtale>-</OptagetSamtale> </Optagelsesgrundlag> </Person> <Undervisningsenhed> <UndervisningsenhedsId>a</UndervisningsenhedsId> <Undervisningssted>aaaaaa</Undervisningssted> <UndervisningsenhedensNavn>a</UndervisningsenhedensNavn> <Fag> <Fagnummer>99999</Fagnummer> <Fagniveau>-</Fagniveau> </Fag> <Lokation>a</Lokation> <AntalPlanlagt>1</AntalPlanlagt> <AntalAfholdt>0</AntalAfholdt> </Undervisningsenhed> </Indberetning>
Side 9 af 9 Bilag 2: Eksempel på SoapUI request <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eud="http://www.stil.dk/euddvh"> <soapenv:header/> <soapenv:body> <eud:validatexmlagainstschema> <eud:xml> [ Indsæt XML som i Bilag 1 ] </eud:xml> </eud:validatexmlagainstschema> </soapenv:body> </soapenv:envelope> Brugernavn og adgangskode sættes i SoapUI via knappen Auth: Bilag 3: Eksempel på SoapUI response <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:body> <ValidateXmlAgainstSchemaResponse xmlns="http://www.stil.dk/euddvh"> <ValidateXmlAgainstSchemaResult xmlns:i="http://www.w3.org/2001/xmlschema-instance"> <ErrorCount>0</ErrorCount> <Message>Data blev modtaget og valideret korrekt.</message> <ValidationErrors/> </ValidateXmlAgainstSchemaResult> </ValidateXmlAgainstSchemaResponse> </s:body> </s:envelope>