SIMS and Moodle Integration

From Wiki

Jump to:navigation, search

SIMS/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]

/****** Object:  View [dbo].[mdl_enrolments]    Script Date: 12/05/2007  17:16:34 ******/

ALTER VIEW [dbo].[mdl_enrolments]
SELECT DISTINCT class_name AS course, staff_initials AS person,  'editingteacher' AS role
FROM         sims.curr_via_classperiods AS p
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

configure moodle

No extra code is required, just setup courses from an external mssql database