{"id":3600,"date":"2023-01-11T07:47:20","date_gmt":"2023-01-11T07:47:20","guid":{"rendered":"https:\/\/handleiding.classlms.nl\/?p=3600"},"modified":"2024-08-27T08:44:24","modified_gmt":"2024-08-27T08:44:24","slug":"edu-dex","status":"publish","type":"post","link":"https:\/\/handleiding.classlms.nl\/?p=3600","title":{"rendered":"Aanbod importeren via EDU-DEX"},"content":{"rendered":"<p>De volledige <a href=\"https:\/\/www.edudex.nl\/wp-content\/uploads\/2022\/09\/Handleiding-importeren-naar-Class-Conclusion-via-EDU-DEX-20220906.pdf\">Toelichting op importeren via EDU-DEX<\/a> vind je in de beheeromgeving op de pagina Aanbod -&gt; Aanbod importeren, tabblad XML import (inclusief Springest en EDU-DEX).<\/p>\n<p>Hieronder vind je de eerste hoofdstukken uit de Toelichting op importeren via EDU-DEX.<\/p>\n<h1>Inleiding<\/h1>\n<p>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.<\/p>\n<p>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:<\/p>\n<ul>\n<li>Importeren via CSV bestanden<\/li>\n<li>Importeren via XML feed(s)<\/li>\n<li>Importeren via EDU-DEX feed(s)<\/li>\n<li>Importeren vanuit Springest<\/li>\n<\/ul>\n<p>Wij raden aan om via EDU-DEX te importeren. EDU-DEX (<a href=\"http:\/\/edudex.nl\">http:\/\/edudex.nl<\/a>) is een initiatief van de Nederlandse opleidingssector tot een open standaard voor aanbod van cursussen, opleidingen, studies, en e-learning modules.<\/p>\n<p>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.<\/p>\n<p>\u26a0 \u00a0Het is een vereiste dat je als opleidingspartner zorgt voor een actueel aanbod!<\/p>\n<h1>Instellen van een EDU-DEX feed in CLASS<\/h1>\n<p>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: <a href=\"https:\/\/feeds.edudex.nl\/validator\/\">https:\/\/feeds.edudex.nl\/validator\/<\/a>.<\/p>\n<p>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.<\/p>\n<p><strong>Instellen van de feed<br \/>\n<\/strong>Volg de volgende stappen om je feed in te stellen:<\/p>\n<ul>\n<li>Ga via het menu naar Aanbod -&gt; Aanbod importeren.<\/li>\n<li>Ga naar de tab \u2018XML-import (inclusief Springest en EDU-DEX)\u2019.<\/li>\n<li>Selecteer bij \u2018Xml import feed type\u2019 de optie \u2018EDU-DEX XML feed\u2019.<\/li>\n<li>Geef een e-mailadres op waar e-mails naartoe worden verzonden als er een fout optreedt.<\/li>\n<li>Vul onderaan de pagina de url van de feed in. Geef ook een naam aan deze feed.<\/li>\n<li>Klik op Opslaan.<\/li>\n<\/ul>\n<p><strong>Hoe vind je de url van jouw feed in EDU-DEX<\/strong><\/p>\n<p>In EDU-DEX is het mogelijk als opleider om een selectie (\u201ccatalogus\u201d) aan te maken van de eigen programma\u2019s. De URL voor de XML-file van die selectie kunt u vinden door in het submenu Catalogusbeheer op \u201cLinks tonen\u201d te klikken. De bovenste link is de URL voor het XML-bestand die u in CLASS kunt invoeren.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3608\" src=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture1.jpg\" alt=\"\" width=\"458\" height=\"175\" srcset=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture1.jpg 458w, https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture1-300x115.jpg 300w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/p>\n<h1>Stappen in het importproces<\/h1>\n<p><strong>Stap 1. Downloaden van de feed<\/strong><\/p>\n<p>In deze stap wordt de feed gedownload en opgeslagen in de database van CLASS. Het downloaden van de feed gebeurt elke nacht.<\/p>\n<p>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.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3609\" src=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture2.png\" alt=\"\" width=\"554\" height=\"36\" srcset=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture2.png 554w, https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture2-300x19.png 300w\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" \/><\/p>\n<p>Tijdens het downloaden controleert CLASS of er in de feed meerdere programs (leeractiviteiten) zitten met hetzelfde programId.<br \/>\nOok controleert CLASS op de structuur van de xml feed. Deze moet voldoen aan de EDU-DEX standaard versie 2.0.<\/p>\n<p>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.<\/p>\n<p>Voorbeeld van deze e-mail:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3610\" src=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture3.png\" alt=\"\" width=\"556\" height=\"267\" srcset=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture3.png 556w, https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture3-300x144.png 300w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/p>\n<p>In het importlog ziet de leverancier in dit geval de opmerking \u2018Import mislukt (feed bevat fouten)\u2019.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3611\" src=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture4.png\" alt=\"\" width=\"554\" height=\"35\" srcset=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture4.png 554w, https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture4-300x19.png 300w\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" \/><\/p>\n<p><strong>Stap 2. Importeren van de gedownloade feed<\/strong><\/p>\n<p>Als stap 1 succesvol is, dan importeert CLASS in stap 2 de gedownloade feed.<\/p>\n<p>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 \u2018Validatie op data\u2019.<\/p>\n<p>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 <strong><em>gedeeltelijk<\/em><\/strong> niet verwerkt kan worden.<\/p>\n<p>Voorbeeld van deze e-mail:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3612\" src=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture5.png\" alt=\"\" width=\"556\" height=\"446\" srcset=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture5.png 556w, https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture5-300x241.png 300w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/p>\n<p>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.<\/p>\n<p>In het importlog ziet de leverancier in dit geval de opmerking \u2018Import uitgevoerd met fouten (batch)\u2019.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3613\" src=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture6.png\" alt=\"\" width=\"554\" height=\"16\" srcset=\"https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture6.png 554w, https:\/\/handleiding.classlms.nl\/wp-content\/uploads\/2023\/01\/Picture6-300x9.png 300w\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" \/><\/p>\n<p>\u26a0 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 \u2018Import uitgevoerd met fouten (batch)\u2019 tonen. Op de tussenliggende dagen zal het importlog in plaats daarvan de opmerking \u2018Geen wijzigingen t.o.v. vorige import\u2019 tonen.<\/p>\n<p>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 \u2018Veldenmappings\u2019.<\/p>\n<h1>Validatie op data<\/h1>\n<p>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 <strong><em>gedeeltelijk<\/em><\/strong> niet verwerkt kan worden.<\/p>\n<p>De volgende validatie vindt plaats:<\/p>\n<p><strong>Algemeen<\/strong><\/p>\n<ul>\n<li>programAdmissionApplicationType moet \u2018individual\u2019 zijn.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:<br \/>\n<em>Import &lt;program&gt; with ID &#8216;1&#8217;<br \/>\nSkipping &lt;program&gt; with ID &#8216;1&#8217; because &lt;applicationType&gt; is not &#8216;individual&#8217;<\/em><\/li>\n<li>Het aantal thema\u2019s mag niet groter zijn dan het maximum aantal thema\u2019s dat in CLASS is toegestaan (50 thema\u2019s).Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:<em><br \/>\n&#8220;Skipping &lt;program&gt; with ID &#8216;1&#8217; because it has 52 themes, while only 50 are allowed.&#8221;<\/em><\/li>\n<li>Meerdere programRuns (uitvoeringen) met hetzelfde ID zijn niet toegestaan.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:<br \/>\n<em>&#8220;Skipping &lt;program&gt; with ID &#8216;1 &#8216; because it has &lt;programRun&gt;s with the same IDs (2, 3, 4).&#8221;<\/em><\/li>\n<li>Meerdere courseDays (bijeenkomsten) met hetzelfde ID zijn niet toegestaan.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:<br \/>\n<em>&#8220;Skipping &lt;program&gt; with ID \u20181&#8242; because it has &lt;programRun&gt;s with &lt;courseDay&gt;s with the same IDs: programRun 2: courseDays 3, 4.&#8221;<\/em><\/li>\n<\/ul>\n<p><strong>Kosten<\/strong><\/p>\n<ul>\n<li>Van de kosten mag amountIsFinal niet \u2018false\u2019 of \u20180\u2019 zijn.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:<br \/>\n<em>&#8220;Skipping program with ID &#8216;1&#8217; because it contains &lt;cost&gt; elements where amountIsFinal is false&#8221;<\/em><\/li>\n<li>Het kostentype singlePaymentDiscount mag niet gebruikt worden.Voorbeeld van hoe deze foutmelding in de e-mail wordt weergegeven:<br \/>\n<em>&#8220;Skipping program with ID &#8216;1 &#8216; because it contains &lt;cost&gt; elements with &lt;costType&gt; &#8216;single payment discount&#8217;.&#8221;<\/em><\/li>\n<li>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:<br \/>\n<em>Validating costs for &lt;program&gt; with ID &#8217;66\u2019<br \/>\nSkipping &lt;program&gt; with ID &#8217;66&#8217;: Unable to merge prices. &lt;programRun&gt;s with the same start date (6-9-2022 00:00:00) have different amounts for the cost types Course<br \/>\nImport &lt;program&gt; with ID &#8217;66&#8217;<\/em><\/li>\n<\/ul>\n<p>\u26a0 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De volledige Toelichting op importeren via EDU-DEX vind je in de beheeromgeving op de pagina Aanbod -&gt; 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 [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[156,188],"tags":[],"class_list":["post-3600","post","type-post","status-publish","format-standard","hentry","category-edu-dex","category-importeren"],"_links":{"self":[{"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=\/wp\/v2\/posts\/3600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3600"}],"version-history":[{"count":6,"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=\/wp\/v2\/posts\/3600\/revisions"}],"predecessor-version":[{"id":3614,"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=\/wp\/v2\/posts\/3600\/revisions\/3614"}],"wp:attachment":[{"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/handleiding.classlms.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}