Change class membership

This call is for the Timetabling app to publish incremental class membership changes to the SIS. Unlike most LISS calls, this call is not paired with a “get data” call, because that would not make sense for incremental changes, unless we implemented a “subscribe to changes” mechanism, which is getting too complicated.

Call

liss.changeClassMembership (auth, studentId, date, outOfClasses, intoClasses)

Parameters

FieldTypeNotesExample
authSee authentication
studentIdstringThe student identifier102930
datetimestampWhen does this change take effect from?20120730T00:00:00
outOfClassesarray of stringsA list of class-codes representing the classes the student is moving out of. Can be an empty array.["7MAT A", "7SCI A"]
intoClassesarray of stringsA list of class-codes representing the classes the student is moving into. Can be an empty array. If you enter a class-code for a class that the student is already in, then this is allowed but unnecessary.["7MAT A", "7SCI A"]

Returns

Nothing - an empty string "". If anything other than an error is returned it should be ignored. For error reporting see fault codes.

Semantics

Note that there was discussion over whether to have the "outOf/into" system versus repeating the full list of classes for this student. The advantage of the full list would be that errors, i.e. situations where the 2 systems have different class memberships, will be automatically corrected for the student in question. The disadvantage is that it creates possible confusion if the timetabling system maintains private class-like objects that it doesn't (always) send to the SIS, or vice versa: i.e. if a class does not appear in the list, is this because the student left the class or because the class was marked "don't export"? The consensus is that both systems would work, but we decided on the "outOf/into" system.

Example

Send

{
"method": "liss.changeClassMembership",
"params": [
{
"School": "03014",
"UserName": "Jsmith",
"Password": "Password1",
"LissVersion": 10002,
"UserAgent": "Edval"
},
"102930",
"20120730T00:00:00",
["7MAT A", "7SCI A"],
["7MAT B", "7SCI B"]
],
"id": 0
}

Return

{
"result": "",
"id": 0
}