Creating courses and course groups
How to create a course
Brief description: | Using IMS-ES it is possible to create a course by creating a group with some extension data. This means that in itslearning both a hierarchy and a (connected) course will be created. | |
Methods to set organisation type: | IMS ES Request | Comments |
createGroup |
| |
Methods to get organisation type: | readGroup | |
Input parameters: |
| |
Example in itslearning: | Example 1: I want to add a new course to the organisation with syncId = "SchoolA" Example 2: I want to read all the courses for the user with syncId = "UserA". NOTE: This will actually return all hierarchies for the user. You will have to filter the courses yourself by checking the OrganisationType. | |
Example 1 Request to create course: | < soapenv :Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" xmlns:ims1 = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" xmlns:ims2 = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < soapenv :Header/> < soapenv :Body> < ims :createGroupRequest> < ims :sourcedId> < ims1 :identifier>CourseA</ ims1 :identifier> </ ims :sourcedId> < ims :group> < ims2 :groupType> < ims2 :scheme>ItslearningOrganisationTypes</ ims2 :scheme> < ims2 :typeValue> < ims2 :type>Course</ ims2 :type> </ ims2 :typeValue> </ ims2 :groupType> < ims2 :relationship> < ims2 :relation>Parent</ ims2 :relation> < ims2 :sourceId> < ims1 :identifier>SchoolA</ ims1 :identifier> </ ims2 :sourceId> </ ims2 :relationship> < ims2 :description> < ims2 :descShort>Description of the hierarchy connected to the course</ ims2 :descShort> </ ims2 :description> < ims2 :extension> < ims1 :extensionField> < ims1 :fieldName>course</ ims1 :fieldName> < ims1 :fieldType>String</ ims1 :fieldType> < ims1 :fieldValue>CourseA</ ims1 :fieldValue> </ ims1 :extensionField> < ims1 :extensionField> < ims1 :fieldName>course/code</ ims1 :fieldName> < ims1 :fieldType>String</ ims1 :fieldType> < ims1 :fieldValue>CourseA</ ims1 :fieldValue> </ ims1 :extensionField> </ ims2 :extension> </ ims :group> </ ims :createGroupRequest> </ soapenv :Body> </ soapenv :Envelope> | |
Example 1 Response: | < s :Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" > < s :Header> < h :syncResponseHeaderInfo xmlns:h = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < messageIdentifier /> < statusInfo > < codeMajor >success</ codeMajor > < severity >status</ severity > < messageIdRef /> </ statusInfo > </ h :syncResponseHeaderInfo> < o :Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > < u :Timestamp u:Id = "_0" > < u :Created>2013-08-30T10:42:35.384Z</ u :Created> < u :Expires>2013-08-30T10:47:35.384Z</ u :Expires> </ u :Timestamp> </ o :Security> </ s :Header> < s :Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < createGroupResponse xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" /> </ s :Body> </ s :Envelope> | |
Example 2: Request to get course for a user: | < soapenv :Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" xmlns:ims1 = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < soapenv :Header/> < soapenv :Body> < ims :readGroupsForPersonRequest> < ims :personSourcedId> < ims1 :identifier>UserA</ ims1 :identifier> </ ims :personSourcedId> </ ims :readGroupsForPersonRequest> </ soapenv :Body> </ soapenv :Envelope> | |
Example 2 Response: | < s :Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" > < s :Header> < h :syncResponseHeaderInfo xmlns:h = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < messageIdentifier /> < statusInfoSet > < statusInfo > < codeMajor >success</ codeMajor > < severity >status</ severity > </ statusInfo > </ statusInfoSet > </ h :syncResponseHeaderInfo> < o :Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > < u :Timestamp u:Id = "_0" > < u :Created>2013-08-30T13:54:30.466Z</ u :Created> < u :Expires>2013-08-30T13:59:30.466Z</ u :Expires> </ u :Timestamp> </ o :Security> </ s :Header> < s :Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < readGroupsForPersonResponse xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" > < groupSet > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >autogenerated_IMS_59969085</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >Site</ type > < level >0</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >autogenerated_IMS_59969085</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >IMS</ descShort > < descFull /> </ description > < extension xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >visibleinsearch</ fieldName > < fieldType >Boolean</ fieldType > < fieldValue >True</ fieldValue > </ extensionField > </ extension > </ group ></ group > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >SchoolA</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >School</ type > < level >1</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >autogenerated_IMS_59969085</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >SchoolA</ descShort > < descFull /> </ description > </ group ></ group > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >CourseA</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >Course</ type > < level >2</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >SchoolA</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >Description of the hierarchy connected to the course</ descShort > < descFull /> </ description > < extension xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >visibleinsearch</ fieldName > < fieldType >Boolean</ fieldType > < fieldValue >True</ fieldValue > </ extensionField > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >course</ fieldName > < fieldType >String</ fieldType > < fieldValue >CourseA</ fieldValue > </ extensionField > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >course/code</ fieldName > < fieldType >String</ fieldType > < fieldValue >CourseA</ fieldValue > </ extensionField > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >course/credits</ fieldName > < fieldType >String</ fieldType > < fieldValue /> </ extensionField > </ extension > </ group ></ group > </ groupSet > </ readGroupsForPersonResponse > </ s :Body> </ s :Envelope> |
Creating course groups
Brief description: | Since release 43 it is now possible to create course groups using IMS-ES. This can be easily achieved by setting the OrganisationType of the hierarchy (see Managing groups) to CourseGroup. | |
Methods to set organisation type: | IMS ES Request | Comments |
createGroup |
| |
Methods to get organisation type: | readGroup | |
Input parameters: |
| |
Example in itslearning: | Example 1: I want to add a new course group to the course with syncId = "CourseA" Example 2: I want to read all the course groups for the user with syncId = "UserA". NOTE: This will actually return all hierarchies for the user. You will have to filter the course groups yourself by checking the OrganisationType. | |
Example 1 Request to create course group: | < soapenv :Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" xmlns:ims1 = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" xmlns:ims2 = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < soapenv :Header/> < soapenv :Body> < ims :createGroupRequest> < ims :sourcedId> < ims1 :identifier>CourseGroupA</ ims1 :identifier> </ ims :sourcedId> < ims :group> < ims2 :groupType> < ims2 :scheme>ItslearningOrganisationTypes</ ims2 :scheme> < ims2 :typeValue> < ims2 :type>CourseGroup</ ims2 :type> </ ims2 :typeValue> </ ims2 :groupType> < ims2 :relationship> < ims2 :relation>Parent</ ims2 :relation> < ims2 :sourceId> < ims1 :identifier>CourseA</ ims1 :identifier> </ ims2 :sourceId> </ ims2 :relationship> < ims2 :description> < ims2 :descShort>Test group</ ims2 :descShort> </ ims2 :description> </ ims :group> </ ims :createGroupRequest> </ soapenv :Body> </ soapenv :Envelope> | |
Example 1 Response: | < s :Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" > < s :Header> < h :syncResponseHeaderInfo xmlns:h = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < messageIdentifier /> < statusInfo > < codeMajor >success</ codeMajor > < severity >status</ severity > < messageIdRef /> </ statusInfo > </ h :syncResponseHeaderInfo> < o :Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > < u :Timestamp u:Id = "_0" > < u :Created>2013-08-30T10:42:35.384Z</ u :Created> < u :Expires>2013-08-30T10:47:35.384Z</ u :Expires> </ u :Timestamp> </ o :Security> </ s :Header> < s :Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < createGroupResponse xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" /> </ s :Body> </ s :Envelope> | |
Example 2: Request to get course group for a user: | < soapenv :Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" xmlns:ims1 = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < soapenv :Header/> < soapenv :Body> < ims :readGroupsForPersonRequest> < ims :personSourcedId> < ims1 :identifier>UserA</ ims1 :identifier> </ ims :personSourcedId> </ ims :readGroupsForPersonRequest> </ soapenv :Body> </ soapenv :Envelope> | |
Example 2 Response: | < s :Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" > < s :Header> < h :syncResponseHeaderInfo xmlns:h = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns = "http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < messageIdentifier /> < statusInfoSet > < statusInfo > < codeMajor >success</ codeMajor > < severity >status</ severity > </ statusInfo > </ statusInfoSet > </ h :syncResponseHeaderInfo> < o :Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > < u :Timestamp u:Id = "_0" > < u :Created>2013-08-30T13:54:30.466Z</ u :Created> < u :Expires>2013-08-30T13:59:30.466Z</ u :Expires> </ u :Timestamp> </ o :Security> </ s :Header> < s :Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" > < readGroupsForPersonResponse xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManMessSchema_v1p0" > < groupSet > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >autogenerated_IMS_59969085</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >Site</ type > < level >0</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >autogenerated_IMS_59969085</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >IMS</ descShort > < descFull /> </ description > < extension xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >visibleinsearch</ fieldName > < fieldType >Boolean</ fieldType > < fieldValue >True</ fieldValue > </ extensionField > </ extension > </ group ></ group > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >SchoolA</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >School</ type > < level >1</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >autogenerated_IMS_59969085</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >SchoolA</ descShort > < descFull /> </ description > </ group ></ group > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >CourseA</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >Course</ type > < level >2</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >SchoolA</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >Description of the hierarchy connected to the course</ descShort > < descFull /> </ description > < extension xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >visibleinsearch</ fieldName > < fieldType >Boolean</ fieldType > < fieldValue >True</ fieldValue > </ extensionField > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >course</ fieldName > < fieldType >String</ fieldType > < fieldValue >CourseA</ fieldValue > </ extensionField > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >course/code</ fieldName > < fieldType >String</ fieldType > < fieldValue >CourseA</ fieldValue > </ extensionField > < extensionField xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" > < fieldName >course/credits</ fieldName > < fieldType >String</ fieldType > < fieldValue /> </ extensionField > </ extension > </ group ></ group > < group > < sourcedId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >CourseGroupA</ identifier > </ sourcedId > < group > < groupType xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < scheme >ItslearningOrganisationTypes</ scheme > < typeValue > < type >CourseGroup</ type > < level >3</ level > </ typeValue > </ groupType > < relationship xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < relation >Parent</ relation > < sourceId > < identifier xmlns = "http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" >CourseA</ identifier > </ sourceId > < label >Is parent of</ label > </ relationship > < description xmlns = "http://www.imsglobal.org/services/gms/xsd/imsGroupManDataSchema_v1p0" > < descShort >Test group</ descShort > < descFull /> </ description > </ group ></ group > </ groupSet > </ readGroupsForPersonResponse > </ s :Body> </ s :Envelope> Course archivingA course is not deleted when a hierarchy group attached to the course is deleted though the IMS ES import. The course will be be detached from the hierarchy group and will live on as a manually created course. If you create a new hierarchy and use the same synckey as the course in the archive, you will NOT be able to re-attach the new hierarchy to the course in the archive. |