Docent
Docenten worden geïmporteerd vanuit de EDU-DEX “teacher” elementen. De volgende eigenschappen worden overgenomen naar Class:
| EDU-DEX teacher eigenschap |
Class docent eigenschap |
| id |
Docent code. Uw unieke code voor de docent. |
| name |
Achternaam |
| summary |
Beschrijving |
Faciliteit
Faciliteiten worden geïmporteerd vanuit de EDU-DEX “location” elementen. De onderstaande eigenschappen worden overgenomen naar Class. Naam en unieke code worden gegenereerd op basis van een speciale samenstelling van deze eigenschappen:
| EDU-DEX location eigenschap |
Class faciliteit eigenschap |
| id |
Faciliteit code. Uw unieke code voor de faciliteit. |
| address |
Adres. |
| city |
Plaats. |
| geoCode |
Geografische coördinaten van de faciliteit. |
| zipcode |
Postcode |
| country |
Land. |
Opleiding
Opleidingen worden geïmporteerd vanuit de EDU-DEX “program” elementen. Alleen opleidingen met applicationType “individual” worden door ons systeem geïmporteerd.
Alleen opleidingen met startDateDetermination “fixed starting date”, “agreed starting date” of “direct start” worden in Class ingelezen. Bij een opleiding met startDateDetermination “agreed starting date” wordt door ons systeem automatisch een uitvoering met status “startdatum in overleg” aangemaakt. Merk op dat in de EDU-DEX xsd het toevoegen van de “startDate” en “endDate” altijd verplicht is. Class zal deze waardes echter negeren voor “agreed starting date” uitvoeringen. Bij een opleiding met startDateDetermination “direct start” wordt automatisch een uitvoering aangemaakt waarbij “Directe start / volledig online” is aangevinkt.
Vanuit de programDescriptions worden alleen de teksten met attribuut lang “nl” ingelezen.
De onderstaande eigenschappen worden overgenomen naar Class.
| EDU-DEX program eigenschap |
Class opleiding eigenschap |
| programClassification/programId |
Opleiding code. Uw unieke code voor de opleiding. |
| programDescriptions/programName |
Naam. |
| programClassification/degree |
Afronding. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| programClassification/programDuration |
Doorlooptijd in weken. |
| programClassification/theme |
Thema’s. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| programClassification/targetSector |
Doelgroepen. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| programDescriptions/programSummaryText |
Introductie (informatietekst). |
| programDescriptions/programDescriptionText |
Methode (informatietekst). |
| programDescriptions
/subjectText[subject=’objectives’]
/summaryText |
Doel (informatietekst). |
| programDescriptions
/subjectText[p:subject=’course schedule’]
/summaryText
|
Programma (informatietekst). |
| programDescriptions/webLink |
URL. |
| programAdmission/requiredLevel |
Opleidingsniveau. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| programCurriculum/instructionMode |
Werkvormen. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| programAdmission/applicationOpen |
Actief (ja/nee) |
Prijzen
Let op dat prijzen in Class zijn gedefinieerd op het niveau van een opleiding, maar in EDU-DEX op het niveau van de uitvoering (programRun). Class zal proberen de prijzen uit de uitvoeringen van de opleiding te herleiden. Hierbij is het van belang dat er geen uitvoeringen met dezelfde startdatum bestaan, waarbij de prijzen van elkaar afwijken. Wanneer dit wel het geval is, zal Class een foutmelding m.b.t. de overlap geven. Wanneer er geen prijzen worden gevonden in “programRun” elementen, zal Class proberen de prijzen te herleiden vanuit het “genericProgramRun” element.
Indien bij de prijzen van een “programRun” prijscomponent (cost) met waarde “amountIsFinal” false zijn opgenomen, wordt de complete opleiding (program) niet geïmporteerd. CLC kan alleen opleidingen met vastgestelde prijs ontsluiten.
Indien bij de prijzen van een “programRun” prijscomponenten (cost) met een andere currency dan euro staan, zal de complete opleiding (program) niet worden geïmporteerd.
Optionele kostentypes, ofwel costTypes met voor eigenschap isRequiredCost de waarde “false”, worden door Class niet ingelezen. Een uitzondering daarop is het kostentype “accomodation” welke wordt ingelezen als “Overnachtingskosten (optioneel)”.
De volgende eigenschappen worden overgenomen naar Class:
| EDU-DEX cost eigenschap |
Class prijs eigenschap |
| amount |
Bedrag per inschrijving. |
| costType |
Kostensoort. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| VATExemptAmount |
Bedrag per inschrijving, indien leverancier vrijgesteld van BTW voor opleidingskosten. Deze wordt alleen voor de opleidingskosten (“tuition fee”) gebruikt. |
Uitvoering
Aan de hand van het programSchedule worden de uitvoeringen in Class bepaald. Wij importeren daarbij alle “programRun” elementen als uitvoering.
Let op: Van het EDU-DEX element “genericProgramRun” wordt alleen het element “numberOfContactSessions” geïmporteerd. Deze wordt echter niet in de uitvoering geplaatst, maar in het veld “Aantal bijeenkomsten” van de opleiding. Verder wordt het “genericProgramRun” element gebruikt voor het bepalen van de prijzen, wanneer er in geen enkel “programRun” element een prijs wordt gevonden.
| EDU-DEX programRun eigenschap |
Class uitvoering eigenschap |
| id |
Uitvoering code. Uw unieke code voor de uitvoering. |
| programClassification/programId |
Code van gerelateerde opleiding. |
| location |
Faciliteit. |
| status |
Uitvoering status. Zie de referentietabellen in de volgende paragraaf voor ondersteunde waardes. |
| startDate |
Startdatum. |
| endDate |
Einddatum. |
| programAdmission/minNumberOfParticipants |
Minimum aantal deelnemers. |
| programAdmission/maxNumberOfParticipants |
Maximum aantal deelnemers. |
| programCurriculum/teacher/id |
Docent codes. |
Bijeenkomst
Bijeenkomsten worden samengesteld uit de “courseDay” elementen uit de EDU-DEX XML. Hiervan worden de volgende elementen geïmporteerd:
| EDU-DEX courseDay eigenschap |
Class bijeenkomst eigenschap |
| id |
Bijeenkomst code. Uw unieke code voor de bijeenkomst. |
| date |
Datum van de bijeenkomst. |
| location |
Faciliteit. |
| startTime |
Starttijd. |
| endTime |
Eindtijd. |
| name |
Naam. |
Thema
Voor het bepalen van het thema wordt gekeken naar de “theme” classificatie van EDU-DEX. Hiervoor wordt de volgende mapping gehanteerd:
| EDU-DEX theme |
Class thema naam |
Class thema ID |
| automation and it |
Automatisering & ICT/IT |
1 |
| communication |
Communicatie |
2 |
| human resources |
HR |
3 |
| coaching |
HR |
3 |
| sales |
Sales |
4 |
| finance |
Financieel |
6 |
| procurement and logistics |
Inkoop & Logistiek |
7 |
| quality and project management |
Kwaliteit & Projectmanagement |
8 |
| management |
Management |
10 |
| change management |
Management |
10 |
| personal development |
Management |
10 |
| leadership |
Management |
10 |
| entrepreneurship |
Management |
10 |
| secretarial and office work |
Secretarieel & Administratief |
11 |
| marketing |
Marketing |
12 |
| health and safety |
Arbo & Veiligheid |
13 |
| training and education |
Opleiding & Onderwijs |
15 |
| personal effectiveness |
Persoonlijke Effectiviteit |
16 |
| manufacturing engineering and construction |
Productie, bouw en techniek |
18 |
| languages |
Taalcursus |
22 |
| sports and vitality |
Sport & Vitaliteit |
24 |
| hobbies and leisure |
Hobby & Vrije tijd |
25 |
| law |
Juridisch |
26 |
| care and personal care |
Zorg & Verzorging |
27 |
| property and real estate |
Vastgoed & Makelaardij |
28 |
| internet and media |
Internet & Media |
29 |
Doelgroep
Voor het bepalen van de doelgroep wordt gekeken naar de “targetSector” classificatie van EDU-DEX. Hiervoor wordt de volgende mapping gehanteerd:
| EDU-DEX targetSector |
Class doelgroep naam |
Class doelgroep ID |
| A Landbouw, bosbouw en visserij |
Diversen |
2 |
| B Winning van delfstoffen |
Diversen |
2 |
| C Fabricage |
Productie en techniek |
8 |
| D Elektriciteit, gas, stoom en luchtverversing |
Productie en techniek |
8 |
| E Watervoorziening; riolering, het beheer en afvalwaterbeheer en sanering |
Productie en techniek |
8 |
| F Bouw |
Productie en techniek |
8 |
| G Groot-en detailhandel; reparatie van auto’s en motorfietsen |
Verkoop |
10 |
| H Vervoer en opslag |
Logistiek |
6 |
| I Accommodatie en maaltijden |
Diversen |
2 |
| J Informatie en communicatie |
Diversen |
2 |
| K Financiële activiteiten en verzekeringen |
Financieën/administratie |
3 |
| L Vastgoedactiviteiten |
Verkoop |
10 |
| M Vrije beroepen en wetenschappelijke en technische activiteiten |
Productie en techniek |
8 |
| N Administratieve en ondersteunende diensten |
Financieën/administratie |
3 |
| O Openbaar bestuur en defensie; verplichte sociale verzekeringen |
Financieën/administratie |
3 |
| P Onderwijs |
Diversen |
2 |
| Q Menselijke gezondheidszorg en maatschappelijke dienstverlening |
Diversen |
2 |
| R Kunst, amusement en recreatie |
Diversen |
2 |
| S Overige diensten |
Diversen |
2 |
| T Huishoudens als werkgever; ongedifferentieerde goederen-en dienstenproducerende huishoudens voor eigen gebruik |
Diversen |
2 |
| U Extraterritoriale organisaties en lichamen |
Financieën/administratie |
3 |
Afronding
Voor het bepalen van de afronding wordt gekeken naar de “degree” classificatie van EDU-DEX. Hiervoor wordt de volgende mapping gehanteerd:
| EDU-DEX degree |
Class afronding |
| none |
Geen |
| certificate |
Certificaat |
| diploma |
Instituutsdiploma |
| certificate on request |
Certificaat |
Werkvorm
Voor het bepalen van de werkvorm wordt gekeken naar de “instructionMode” classificatie van EDU-DEX. Hiervoor wordt de volgende mapping gehanteerd:
| EDU-DEX instructionMode |
Class werkvorm |
| blended learning |
E-learning + Training |
| case study |
Case |
| coaching |
Coaching |
| colloquium |
Presentatie |
| computer exercise |
E-learning |
| computer modeling |
Simulatie |
| design project |
Practicum |
| excursion |
Excursie |
| gaming |
E-learning |
| group discussion |
Discussie |
| individual assignment |
Case |
| internship |
Stage |
| laboratory work |
Practicum |
| lecture |
Presentatie |
| literature study |
Boek |
| management game |
Management-game |
| research project |
Scriptie |
| roleplay |
Rollenspel |
| oral presentation |
Presentatie |
| poster presentation |
Presentatie |
| practicum |
Practicum |
| simulation |
Simulatie |
| tutorial |
Boek |
| traineeship |
Stage |
| training |
Training |
Opleidingsniveau
Voor het bepalen van opleidingsniveau wordt gekeken naar de “levelType” classificatie van EDU-DEX. Hiervoor wordt de volgende mapping gehanteerd:
| EDU-DEX levelType |
Class opleidingsniveau |
| none |
Niet bekend |
| associate |
HBO |
| bachelor |
HBO |
| master |
HBO |
| academic bachelor |
WO |
| academic master |
WO |
| mavo |
MAVO |
| havo |
HAVO |
| vwo |
VWO |
| vbo |
VBO |
| vmbo |
VBO |
| lbo |
LBO |
| mbo |
MBO |
| mbo+ |
MBO + |
| vmbo/mavo |
VBO |
| PhD |
WO + |
Uitvoering status
Voor het bepalen van de status van de uitvoering wordt gekeken naar de “programRunStatus”. Hiervoor wordt de volgende mapping gehanteerd:
| EDU-DEX programRunStatus |
Class uitvoering status |
| application opened |
Open |
| application closed |
Volgeboekt |
| canceled |
Geannuleerd |
| agreed starting date |
Startdatum in overleg |
Kosten
De VAT velden van prijzen worden door ons systeem genegeerd. Wij houden de volgende vaste mapping van kosten type (costType) naar Class kostensoort en BTW percentage aan:
| EDU-DEX costType |
EDU-DEX isRequiredCost |
Class kostensoort |
Met BTW tarief |
| cost of living |
TRUE |
Arrangement- en faciliteitskosten |
hoog (21%) |
| examination |
TRUE |
Kosten examinering |
hoog (21%) |
| excursions |
TRUE |
Overige kosten |
hoog (21%) |
| housing |
TRUE |
Kosten faciliteit |
hoog (21%) |
| insurance |
TRUE |
Overige kosten |
hoog (21%) |
| lunch |
TRUE |
Kosten lunch |
laag (6%) |
| dinner |
TRUE |
Kosten diner |
laag (6%) |
| registration fee |
TRUE |
Kosten inschrijving |
hoog (21%) |
| study material |
TRUE |
Kosten lesmateriaal |
hoog (21%) |
| tuition fee |
TRUE |
Kosten opleiding |
hoog (21%) |
| visa/permit |
TRUE |
Overige kosten |
hoog (21%) |
| coaching |
TRUE |
Overige kosten |
hoog (21%) |
| accommodation |
TRUE |
Faciliteitskosten 6% |
laag (6%) |
| accommodation |
TRUE |
Kosten locatie |
hoog (21%) |
| accommodation |
FALSE |
Overnachtingskosten (optioneel) |
laag (6%) |
| second accommodation |
TRUE |
Overnachtingskosten (verplicht) |
laag (6%) |
De volledige Toelichting op importeren via EDU-DEX vind je in de beheeromgeving op de pagina Aanbod -> Aanbod importeren, tabblad XML import (inclusief Springest en EDU-DEX).
Hieronder vind je de eerste hoofdstukken uit de Toelichting op importeren via EDU-DEX.
Inleiding
Opleidingsleveranciers kunnen hun aanbod importeren in het LMS CLASS. Het aanbod wordt na importeren niet automatisch in de catalogi van de aangesloten leerportalen opgenomen. De learning services partner van het aangesloten leerportaal stemt met de beheerder van het portaal af of het aanbod wel, niet of gedeeltelijk wordt opgenomen.
Het aanbod in het LMS CLASS moet door de opleidingspartner zelf actueel worden gehouden. Om dit voor jou als opleidingspartner zo makkelijk mogelijk te maken biedt CLASS hiervoor diverse mogelijkheden:
- Importeren via CSV bestanden
- Importeren via XML feed(s)
- Importeren via EDU-DEX feed(s)
- Importeren vanuit Springest
Wij raden aan om via EDU-DEX te importeren. EDU-DEX (http://edudex.nl) is een initiatief van de Nederlandse opleidingssector tot een open standaard voor aanbod van cursussen, opleidingen, studies, en e-learning modules.
Omdat CLASS en EDU-DEX qua datamodel niet precies gelijk zijn, worden tijdens het importeren een aantal transformaties op de data gedaan. Dit document beschrijft hoe het LMS CLASS vanuit een EDUDEX feed het aanbod inleest in CLASS. In dit document worden o.a. de veldenmappings en vertalingen van EDU-DEX waardes naar CLASS beschreven.
⚠ Het is een vereiste dat je als opleidingspartner zorgt voor een actueel aanbod!
Instellen van een EDU-DEX feed in CLASS
Conclusion ondersteunt het importeren via XML feeds volgens de EDU-DEX standaard. Je kunt hier testen of je feed valideert tegen de standaard van EDU-DEX: https://feeds.edudex.nl/validator/.
De EDU-DEX import in CLASS is momenteel gebaseerd op EDU-DEX versie 2.0. CLASS ondersteunt het importeren van EDU-DEX directory en catalogus feeds.
Instellen van de feed
Volg de volgende stappen om je feed in te stellen:
- Ga via het menu naar Aanbod -> Aanbod importeren.
- Ga naar de tab ‘XML-import (inclusief Springest en EDU-DEX)’.
- Selecteer bij ‘Xml import feed type’ de optie ‘EDU-DEX XML feed’.
- Geef een e-mailadres op waar e-mails naartoe worden verzonden als er een fout optreedt.
- Vul onderaan de pagina de url van de feed in. Geef ook een naam aan deze feed.
- Klik op Opslaan.
Hoe vind je de url van jouw feed in EDU-DEX
In EDU-DEX is het mogelijk als opleider om een selectie (“catalogus”) aan te maken van de eigen programma’s. De URL voor de XML-file van die selectie kunt u vinden door in het submenu Catalogusbeheer op “Links tonen” te klikken. De bovenste link is de URL voor het XML-bestand die u in CLASS kunt invoeren.

Stappen in het importproces
Stap 1. Downloaden van de feed
In deze stap wordt de feed gedownload en opgeslagen in de database van CLASS. Het downloaden van de feed gebeurt elke nacht.
Tijdens de download wordt getoetst of de inhoud van de feed gewijzigd is ten opzichte van de feed van de vorige nacht. De velden lastEdited en Expires worden buiten beschouwing gelaten bij deze toets. Als de inhoud van de feed onveranderd is, wordt de feed niet verwerkt. In het importlog kan de leverancier zien dat er die nacht geen wijzigingen zijn doorgevoerd.

Tijdens het downloaden controleert CLASS of er in de feed meerdere programs (leeractiviteiten) zitten met hetzelfde programId.
Ook controleert CLASS op de structuur van de xml feed. Deze moet voldoen aan de EDU-DEX standaard versie 2.0.
Als een van bovenstaande fouten voorkomt, dan wordt het importproces afgebroken en stuurt CLASS een e-mail aan de leverancier waarin vermeld is dat de feed niet verwerkt kan worden. De reden daarvan staat in de e-mail.
Voorbeeld van deze e-mail:

In het importlog ziet de leverancier in dit geval de opmerking ‘Import mislukt (feed bevat fouten)’.

Stap 2. Importeren van de gedownloade feed
Als stap 1 succesvol is, dan importeert CLASS in stap 2 de gedownloade feed.
Tijdens het importeren controleert CLASS of de data in de xml feed voldoet aan de eisen die de omgeving stelt. De fouten in de data die kunnen voorkomen, zijn allemaal beschreven in hoofdstuk 3 ‘Validatie op data’.
Als tijdens het importeren blijkt dat de data in de xml feed van een program niet voldoet aan de eisen die de omgeving stelt, dan wordt de betreffende program overgeslagen. Hierover stuurt CLASS een e-mail aan de leverancier waarin vermeld is dat de feed gedeeltelijk niet verwerkt kan worden.
Voorbeeld van deze e-mail:

De leverancier kan op basis van deze informatie de data van het overgeslagen program aanpassen. Nadat de aanpassing is gedaan zal CLASS de nacht daarop het overgeslagen program alsnog proberen te importeren.
In het importlog ziet de leverancier in dit geval de opmerking ‘Import uitgevoerd met fouten (batch)’.

⚠ Let op: Als de leverancier de data van eerder overgeslagen programs de dag na de import nog niet heeft aangepast, dan zal het importlog niet opnieuw de opmerking ‘Import uitgevoerd met fouten (batch)’ tonen. Op de tussenliggende dagen zal het importlog in plaats daarvan de opmerking ‘Geen wijzigingen t.o.v. vorige import’ tonen.
Omdat CLASS en EDU-DEX qua datamodel niet precies gelijk zijn, worden tijdens het importeren een aantal transformaties op de data gedaan. Deze transformaties op de data zijn allemaal beschreven in hoofdstuk 4 ‘Veldenmappings’.
Validatie op data
Tijdens het importeren controleert CLASS of de data in de xml feed van een program voldoet aan de eisen die de omgeving stelt. Zo niet, dan wordt de betreffende program overgeslagen. Hierover stuurt CLASS een e-mail aan de leverancier waarin vermeld is dat de feed gedeeltelijk niet verwerkt kan worden.
De volgende validatie vindt plaats:
Algemeen
- programAdmissionApplicationType moet ‘individual’ zijn.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
Import <program> with ID ‘1’
Skipping <program> with ID ‘1’ because <applicationType> is not ‘individual’
- Het aantal thema’s mag niet groter zijn dan het maximum aantal thema’s dat in CLASS is toegestaan (50 thema’s).Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
“Skipping <program> with ID ‘1’ because it has 52 themes, while only 50 are allowed.”
- Meerdere programRuns (uitvoeringen) met hetzelfde ID zijn niet toegestaan.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
“Skipping <program> with ID ‘1 ‘ because it has <programRun>s with the same IDs (2, 3, 4).”
- Meerdere courseDays (bijeenkomsten) met hetzelfde ID zijn niet toegestaan.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
“Skipping <program> with ID ‘1′ because it has <programRun>s with <courseDay>s with the same IDs: programRun 2: courseDays 3, 4.”
Kosten
- Van de kosten mag amountIsFinal niet ‘false’ of ‘0’ zijn.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
“Skipping program with ID ‘1’ because it contains <cost> elements where amountIsFinal is false”
- Het kostentype singlePaymentDiscount mag niet gebruikt worden.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
“Skipping program with ID ‘1 ‘ because it contains <cost> elements with <costType> ‘single payment discount’.”
- Meerdere programRuns die op dezelfde dag starten mogen geen verschillende bedragen hebben voor eenzelfde costType.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:
Validating costs for <program> with ID ’66’
Skipping <program> with ID ’66’: Unable to merge prices. <programRun>s with the same start date (6-9-2022 00:00:00) have different amounts for the cost types Course
Import <program> with ID ’66’
⚠ Let op: als er geen kosten zijn voor programRuns, maar wel voor een genericProgramRun, wordt deze gebruikt voor de import en dan wordt daarop gevalideerd.