SIMS and Moodle Integration
There are various levels of integration with SIMS.
Automatically importing users and courses from SIMS
- Using this method, The SIMS MSSQL database is contacted via a view that is created in MSSQL. This does not 'write-back' to the SIMS so there is no danger of corruption. This method uses an LDAP server (MS Active Directory) for Moodle authentication and information is matched between the LDAP server and the SIMS server.
SIMS and Active Directory (LDAP)
- Before we integrate Moodle into the LDAP server, we need to integrate the LDAP server with SIMS. THis is necessary because something is needed to tie the username in AD with the real name in SIMS. We will use the users UPN (the sims UPN - Nothing to do with UserPrincipalName!!!)
- We choose the employeeID field in active directory. It could be any field but employeeID sounds appropriate. The employeeid fiels is populated with the UPN
- also make sure that the email field is populated with the users email address so that they can receive messages from the moodle server. This is a useful method of getting teacher to email classes of students because the classes are auto-generated.
- As long as the UPN in SIMS matches the UPN in LDAP everything should be good.
In the LDAP authentication of moodle under data mapping, we pull out that information "ID number = employeedID". So now Moodle can match AD users to SIMS users.
Pull Course info out of SIMS
- To create the 'view' in MSSQL open the database in SQL Server management studio and select 'create view'
- Here we have labeled the view "mdl_enrolments"
- Add course, person and role to the view as shown;
- open the database in SQL Server management studio, expand the sims database, expand views, find the view youcreated and then right click to edit it- it should look like this
USE [sims] GO /****** Object: View [dbo].[mdl_enrolments] Script Date: 12/05/2007 17:16:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER VIEW [dbo].[mdl_enrolments] AS SELECT DISTINCT class_name AS course, staff_initials AS person, 'editingteacher' AS role FROM sims.curr_via_classperiods AS p UNION SELECT DISTINCT p.class_name AS course, m.unique_pupil_no AS person, 'student' AS role FROM sims.curr_via_classperiods AS p INNER JOIN sims.stud_via_group_members AS m ON m.base_group_id = p.base_group_id
No extra code is required, just setup courses from an external mssql database