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
Field | Type | Notes | Example |
---|---|---|---|
auth | See authentication | ||
studentId | string | The student identifier | 102930 |
date | timestamp | When does this change take effect from? | 20120730T00:00:00 |
outOfClasses | array of strings | A list of class-codes representing the classes the student is moving out of. Can be an empty array. | ["7MAT A", "7SCI A"] |
intoClasses | array of strings | A 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
}