ER2 - MIS Integrations - SIMS
ER2Also covers: SIMS Technical Integration specification
SIMS
For SIMS integration, we call the methods of proprietary SIMS dlls. Those dlls connect to SIMS database and retrieve/manipulate the data. The following is the list of main methods used for integration:
Population
TPPersonStudent.GetXmlStudents() - This will get all the students and its related information from SIMS system valid within the date supplied. This is the sample response from SIMS. All available student registration details are included in the response. Using the DateOfLeaving, we identify if the student is a leaver or not.
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <Students> <Student> <PersonID>4627</PersonID> <Forename>Sukvinder</Forename> <Surname>Kakkad</Surname> <ChosenName>Kakkad</ChosenName> <MiddleName /> <LegalSurname>Kakkad</LegalSurname> <Gender>Male</Gender> <GenderID>0</GenderID> <DOB>1992-08-17T00:00:00</DOB> <AdmissionNumber>002570</AdmissionNumber> <UPN>Y820432103130</UPN> <Religion /> <ReligionID /> <Nationality>Black North American</Nationality> <NationalityID>225</NationalityID> <RegGroup>11A</RegGroup> <RegGroupID>417</RegGroupID> <YearGroup>Year 11</YearGroup> <YearGroupID>33</YearGroupID> <House>Newton</House> <HouseID>44</HouseID> <RollMode>Single Registration</RollMode> <RollModeID>2</RollModeID> <AdmissionDate>2003-09-01T00:00:00</AdmissionDate> <DateOfLeaving /> <ParentalSalutation>Mr and Mrs KAKKAD</ParentalSalutation> </Student> </Students>
BrowseEmployee.Load() - this method is used to retrieve teachers and technician staff from SIMS. It's not a dll designed for third party, and I am not sure why a third party interface dll was not used for this purpose. In any case, the data fields are the following and are similar to the fields from a third party interface dll:
public string ChoosenName { get; } public string Code { get; } public string Description { get; set; } public string EmployeeCode { get; } public string Forename { get; } public string Gender { get; }} public int ID { get; set; } public string LegalSurname { get; } public string Midname { get; } public int PersonID { get; } public string PreviousName { get; } public string Surname { get; } public string Title { get; }
Person Photos
TPPerson.GetXmlPersonPhotos(personId) - This method returns data of photo associated with a personId supplied as an input. The sample response is:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <PersonPhotos> <PersonPhoto> <PersonID>1</PersonID> <Photo>FFD8FFE000104A46494600010101006000600000FFDB0043000101010101010101010101010101016D8B8CAB00406C93CE172A40EBBB23BE3D0863EA54A728CA9D249CE4DDA2D6F67FCCFFAB33055A6925A3B2495EF7B2D3BFE47476C96F6E3ED296915D48EBE5B7FA45D594DB5887DCD35BAE59728018C9DACC431E5168A96C363AF9448DCA818839ED8079208EA7D68AC94F955946365E5E69F7F21FB79768FE3FE7EBFD6FF00FFD9</Photo> </PersonPhoto> <PersonPhotos>
Timetable
TPTimetable.GetXmlStudentTimetable(personId, from, to) - used to retrieve timetables for students. Sample response from SIMS:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <Timetables> <Timetable> <StudentID>5253</StudentID> <EmployeeID>82</EmployeeID> <EventInstanceID>25291</EventInstanceID> <EventID>201</EventID> <TimetableDate>2009-09-02T09:15:00</TimetableDate> <PeriodName>Wed:1</PeriodName> <PeriodNumber>11</PeriodNumber> <BaseGroupID>5390</BaseGroupID> <LocationID>4</LocationID> <SubjectID>521</SubjectID> </Timetable> <Timetable> <StudentID>5253</StudentID> <EmployeeID>82</EmployeeID> <EventInstanceID>25292</EventInstanceID> <EventID>202</EventID> <TimetableDate>2009-09-02T10:15:00</TimetableDate> <PeriodName>Wed:2</PeriodName> <PeriodNumber>12</PeriodNumber> <BaseGroupID>5390</BaseGroupID> <LocationID>4</LocationID> <SubjectID>521</SubjectID> </Timetable> </Timetables>
TPTimetable.GetXmlEmployeeTimetable(personId, from, to) - used to retrieve timetables for teachers. Sample response from SIMS:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <Timetables> <Timetable> <EmployeeID>26</EmployeeID> <EventInstanceID>25291</EventInstanceID> <EventID>201</EventID> <TimetableDate>2009-09-02T09:15:00</TimetableDate> <PeriodName>Wed:1</PeriodName> <PeriodNumber>11</PeriodNumber> <BaseGroupID>5370</BaseGroupID> <LocationID>52</LocationID> <SubjectID>556</SubjectID> </Timetable> <Timetable> <EmployeeID>26</EmployeeID> <EventInstanceID>25292</EventInstanceID> <EventID>202</EventID> <TimetableDate>2009-09-02T10:15:00</TimetableDate> <PeriodName>Wed:2</PeriodName> <PeriodNumber>12</PeriodNumber> <BaseGroupID>5370</BaseGroupID> <LocationID>52</LocationID> <SubjectID>556</SubjectID> </Timetable> </Timetables>
TPSubject.GetXmlSubjects() - used to retrieve subjects from SIMS. Subject is a lesson description in ER2. Sample SIMS response:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <Subjects> <Subject> <SubjectID>518</SubjectID> <SubjectCode>Ac</SubjectCode> <SubjectName>Accounting</SubjectName> </Subject> <Subject> <SubjectID>519</SubjectID> <SubjectCode>Ar</SubjectCode> <SubjectName>Art</SubjectName> </Subject> </Subjects>
The SubjectID corresponds to SubjectID in timetables response.
TPRoom.GetXmlRooms()- used to retrieve room information. Sample SIMS response:
<Rooms> <Room> <RoomID>20</RoomID> <RoomCode>A1</RoomCode> <RoomName>Art Room 1</RoomName> </Room> </Rooms>
The RoomID corresponds to the LocationID from timetables reponse.
Writeback
TPAttendanceWrite.WriteLessonAttendances(xml) - used to write back lesson attendances to SIMS. Sample XML string is:
<LessonAttendances> <LessonAttendance> <PersonID>7338</PersonID> <EventInstanceID>32220</EventInstanceID> <AttendanceMark>d</AttendanceMark> <Comments>new params</Comments> <MinsLate>2</MinsLate> <BaseGroupID>7291</BaseGroupID> <LocationID>19</LocationID> <EmployeeID>34</EmployeeID> </LessonAttendance> </LessonAttendances>
TPAttendanceWrite.WriteSessionAttendances(xml) - used to write back AM/PM attendance to SIMS. Sample XML is:
<SessionAttendances> <SessionAttendance> <PersonID>6420</PersonID> <AttendanceDate>2010-01-04</AttendanceDate> <SessionName>AM</SessionName> <AttendanceMark>M</AttendanceMark> </SessionAttendance> </SessionAttendances>