Under finner du en enkel veileder for grunnstrukturen i en typisk IMS Enterprise datafil. Mer informasjon finner du på IMS Enterprise sin offisielle webside.
Du vil ha nytte av å lese kompatibilitetsoversikten som beskriver hvilke IMS data elementer denne modulen kan behandle.
For en IMS-innmelding trenger du en <group> tagg som angir kurset, a <person> tagg som angir brukerkontoen, og en <membership> tagg som inneholder <member> tagger som angir brukerens rolle i kurset.
Husk at numeriske nøkler som brukes i Moodledatabasen ikke er de dataene som skal utveksles. Et studentdatasystem vil aldri vite på forhånd at Martin er den 20.brukeren som er lagt til Moodledatabasen - derfor brukes ikke disse dataene til datautveksling med andre systemer.
Et kurs vil vanligvis ha en referansekode i tillegg til kursnavnet, så la oss anta dette er Moodle101. For å definere dette kurset kan du gjøre slik:
<group>
<sourcedid>
<source>MyDataSystem</source>
<id>MOODLE101</id>
</sourcedid>
<description>
<short>Moodle 101</short>
</description>
</group>
Innmeldingsskriptet vil se etter et kurs med koden Moodle101 og (dersom angitt) opprette det hvis det ikke eksisterer fra før. Samme gjelder for en bruker - la oss anta at dette er "jmoodle":
<person>
<sourcedid>
<source>MyDataSystem</source>
<id>jmoodle</id>
</sourcedid>
<userid>jmoodle</userid>
<name>
<fn>Joe Moodle</fn>
<n>
<family>MOODLE</family>
<given>Martin</given>
</n>
</name>
</person>
Dersom Martin ikke eksisterer vil skriptet (dersom angitt) automatisk opprette en brukerkonto til ham.
La oss nå se på medlemsskap - dvs legge brukeren til et kurs:
<membership>
<sourcedid>
<source>MyDataSystem</source>
<id>MOODLE101</id>
</sourcedid>
<member>
<sourcedid>
<source>MyDataSystem</source>
<id>jmoodle</id>
</sourcedid>
<role roletype="01">
<status>1</status>
<extension><cohort>unit 2</cohort></extension>
</role>
</member>
</membership>
IMS Enterprise-spesifikasjonen kan angi start/slutt-datoer for innmelding, så disse feltene kan legges til ved å bruke <timeframe> taggen.
Dersom en person allerede er lagt til en gruppe i et kurs, vil skriptet IKKE oppdatere dette. Dersom de ikke finnes i noen gruppe vil skriptet sørge for at brukeren blir meldt inn i korrekt gruppe.