
IMS Course Management Service Information Model
Version 1.0
Public Draft Release
Version 1.0
Date Issued: 15 March 2010
Latest version: http://www.imsglobal.org/lis/
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
Copyright © IMS Global Learning Consortium 2010. All Rights Reserved.
If you wish to distribute this document or use this document to implement a product or service, you must complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm.
This document may be copied and furnished to others by Licensee organizations registered on the IMS website provided that the above copyright notice and this paragraph are included on all such copies. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to IMS, except as needed for the purpose of developing IMS specifications, under the auspices of a chartered IMS work group.
Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/lis/lisv2p0pd/lisv2p0pdspeclicense.html.
The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
1.1 Course Management Service Overview
1.3 Structure of this Document
2 Course Management Service Description
2.1 An Abstract Representation
2.2 Course Management Service Architecture & Specification Model
2.4 Synchronous & Asynchronous Services
2.5 Handling the Service Status Codes
3.2 CourseTemplateManager Interface Description
3.2.1 CreateCourseTemplate() Operation
3.2.2 CreateByProxyCourseTemplate() Operation
3.2.3 DeleteCourseTemplate() Operation
3.2.4 ReadCourseTemplate() Operation
3.2.5 ReadAllCourseTemplateIds() Operation
3.2.6 ReadCourseTemplateIdsFromSavePoint() Operation
3.2.7 ReadCourseOfferingIdsForCourseTemplate() Operation
3.2.8 ReadCourseTemplates() Operation
3.2.9 ReadCourseTemplatesFromSavePoint() Operation
3.2.10 UpdateCourseTemplate() Operation
3.2.11 ReplaceCourseTemplate() Operation
3.2.12 DiscoverCourseTemplateIds() Operation
3.2.13 ChangeCourseTemplateIdentifier() Operation
3.3 CourseOfferingManager Interface Description
3.3.1 CreateCourseOffering() Operation
3.3.2 CreateByProxyCourseOffering() Operation
3.3.3 CreateCourseOfferingFromCourseOffering() Operation
3.3.4 DeleteCourseOffering() Operation
3.3.5 ReadCourseOffering() Operation
3.3.6 ReadAllCourseOfferingIds() Operation
3.3.7 ReadAllActiveCourseOfferingIdsForAcademicSession() Operation
3.3.8 ReadCourseSectionIdsForCourseOffering() Operation
3.3.9 ReadCourseOfferingIdsFromSavePoint() Operation
3.3.10 ReadCourseOfferings() Operation
3.3.11 ReadCourseOfferingsFromSavePoint() Operation
3.3.12 ReplaceCourseOffering() Operation
3.3.13 UpdateCourseOffering() Operation
3.3.14 UpdateCourseOfferingStatus() Operation
3.3.15 DiscoverCourseOfferingIds() Operation
3.3.16 ChangeCourseOfferingIdentifier() Operation
3.4 CourseSectionManager Interface Description
3.4.1 CreateCourseSection() Operation
3.4.2 CreateByProxyCourseSection() Operation
3.4.3 CreateCourseSectionFromCourseSection() Operation
3.4.4 DeleteCourseSection() Operation
3.4.5 ReadCourseSection() Operation
3.4.6 ReadAllCourseSectionIds() Operation
3.4.7 ReadCourseSectionIdsFromSavePoint() Operation
3.4.8 ReadCourseSections() Operation
3.4.9 ReadCourseSectionsFromSavePoint() Operation
3.4.10 ReplaceCourseSection() Operation
3.4.11 UpdateCourseSection() Operation
3.4.12 UpdateCourseSectionStatus() Operation
3.4.13 DiscoverCourseSectionIds() Operation
3.4.14 ChangeCourseSectionIdentifier() Operation
3.5 SectionAssociationManager Interface Description
3.5.1 CreateSectionAssociation() Operation
3.5.2 CreateByProxySectionAssociation() Operation
3.5.3 DeleteSectionAssociation() Operation
3.5.4 ReadSectionAssociation() Operation
3.5.5 ReadAllSectionAssociationIds() Operation
3.5.6 ReadSectionAssociationIdsFromSavePoint() Operation
3.5.7 ReadSectionAssociations() Operation
3.5.8 ReadSectionAssociationsFromSavePoint() Operation
3.5.9 AddCourseSection() Operation
3.5.10 RemoveCourseSection() Operation
3.5.11 UpdateSectionAssociation() Operation
3.5.12 ReplaceSectionAssociaton() Operation
3.5.13 DiscoverSectionAssociationIds() Operation
3.5.14 ChangeSectionAssociationIdentifier() Operation
3.6 Course Object State Machines
4.1 AcademicSession Class Description
4.2 CourseOfferingRecord Class Description
4.3 CourseOfferingRecordSet Class Description
4.4 CourseSectionRecord Class Description
4.5 CourseSectionRecordSet Class Description
4.6 CourseTemplateRecord Class Description
4.7 CourseTemplateRecordSet Class Description
4.10 QueryObject Class Description
4.11 SectionAssociationRecord Class Description
4.12 SectionAssociationRecordSet Class Description
4.13 SequenceIdentifier Class Description
4.15 StatusInfo Class Description
5.3 CourseDatabase Class Description
5.4 CourseTemplateRecord Class Description
5.4.1 CourseTemplateId Attribute Description
5.5 CourseOfferingRecord Class Description
5.5.1 CourseOfferingId Attribute Description
5.6 CourseSectionRecord Class Description
5.6.1 CourseSectionId Attribute Description
5.7 SectionAssociationRecord Class Description
5.7.1 SectionAssociationId Attribute Description
5.8 CourseTemplate Class Description
5.8.1 Label Attribute Description
5.8.2 Title Attribute Description
5.8.3 CatalogDescription Attribute Description
5.8.4 CourseNumber Attribute Description
5.8.5 Status Attribute Description
5.8.6 DefaultCredits Attribute Description
5.8.7 Org Attribute Description
5.8.8 ListofTopics Attribute Description
5.8.9 ListofPrerequisities Attribute Description
5.8.10 DataSource Attribute Description
5.8.11 RecordInfo Attribute Description
5.8.12 Extension Attribute Description
5.9 ListofPrerequisites Class Description
5.10 ListofTopics Class Description
5.11 CourseOffering Class Description
5.11.1 Label Attribute Description
5.11.2 Title Attribute Description
5.11.3 ParentTemplateId Attribute Description
5.11.4 CatalogDescription Attribute Description
5.11.5 DefaultCredits Attribute Description
5.11.6 Status Attribute Description
5.11.7 AcademicSession Attribute Description
5.11.8 Org Attribute Description
5.11.9 TimeFrame Attribute Description
5.11.10 EnrollControl Attribute Description
5.11.11 DataSource Attribute Description
5.11.12 RecordInfo Attribute Description
5.11.13 Extension Attribute Description
5.12 CourseSection Class Description
5.12.1 Label Attribute Description
5.12.2 Title Attribute Description
5.12.3 ParentOfferingId Attribute Description
5.12.4 CatalogDescription Attribute Description
5.12.5 Status Attribute Description
5.12.6 DefaultCredits Attribute Description
5.12.7 Category Attribute Description
5.12.8 MaxNumberofStudents Attribute Description
5.12.9 NumberofStudents Attribute Description
5.12.10 Org Attribute Description
5.12.11 TimeFrame Attribute Description
5.12.12 EnrollControl Attribute Description
5.12.13 Location Attribute Description
5.12.14 Notes Attribute Description
5.12.15 Meeting Attribute Description
5.12.16 DataSource Attribute Description
5.12.17 RecordInfo Attribute Description
5.12.18 Extension Attribute Description
5.13 SectionAssociation Class Description
5.13.1 Label Attribute Description
5.13.2 Title Attribute Description
5.13.3 CourseSectionIdList Attribute Description
5.13.4 Status Attribute Description
5.13.5 DataSource Attribute Description
5.13.6 RecordInfo Attribute Description
5.13.7 Extension Attribute Description
5.14 ListofCourseSectionIds Class Description
5.14.1 CourseSectionId Attribute Description
5.15 Common Classes Descriptions
5.15.2 EnrollControl Class Description
5.15.3 TimeFrame Class Description
5.15.4 Description Class Description
5.15.5 FullDescription Class Description
5.15.7 Metadata Class Description
5.15.8 IMSExtension Class Description
5.15.9 ExtensionField Class Description
6 Extending and Profiling the Service
6.1.2 Proprietary Data Elements
Appendix A – Service Status Codes
B1 Set of Defined Vocabularies
B2 Using Vocabularies for the Metadata Class
B3 Using Vocabularies for the IMSExtension Class
Figure 2.1 Course Management service architecture model.
Figure 2.2 Structure of a Course.
Figure 2.3 Synchronous service.
Figure 2.4 Asynchronous service.
Figure 3.1 CourseManagementService CourseTemplateManager interface definition.
Figure 3.2 CourseManagementService CourseOfferingManager interface definition.
Figure 3.3 CourseManagementService interface definition.
Figure 3.4 CourseManagementService SectionAssociationManager interface definition.
Figure 3.5 State machine for a ‘courseTemplate’ object.
Figure 3.6 State machine for a ‘courseOffering’ object.
Figure 3.7 State machine for a ‘courseSection’ object.
Figure 3.8 State machine for a ‘sectionAssociation’ object.
Figure 5.1 CourseDatabase class diagram.
Figure 5.2 Extending a course.
Figure 5.3 CourseTemplate class diagram.
Figure 5.4 CourseOffering class diagram.
Figure 5.5 CourseSection class diagram.
Figure 5.6 SectionAssociation class diagram.
Figure 5.7 Common class diagram.
Table 3.1 Summary of operations for CourseTemplateManager.
Table 3.2 Status codes for the ‘createCourseTemplate’ operation.
Table 3.3 Status codes for the ‘createByProxyCourseTemplate’ operation.
Table 3.4 Status codes for the ‘deleteCourseTemplate’ operation.
Table 3.5 Status codes for the ‘readCourseTemplate’ operation.
Table 3.6 Status codes for the ‘readAllCourseTemplateIds’ operation.
Table 3.7 Status codes for the ‘readCourseTemplateIdsFromSavePoint’ operation.
Table 3.8 Status codes for the ‘readCourseOfferingIdsForCourseTemplate’ operation.
Table 3.9 Status codes for the ‘readCourseTemplates’ operation.
Table 3.10 Status codes for the ‘readCourseTemplatesFromSavePoint’ operation.
Table 3.11 Status codes for the ‘updateCourseTemplate’ operation.
Table 3.12 Status codes for the ‘replaceCourseTemplate’ operation.
Table 3.13 Status codes for the ‘discoverCourseTemplateIds’ operation.
Table 3.14 Status codes for the ‘changeCourseTemplateIdentifier’ operation.
Table 3.15 Summary of operations for CourseOfferingManager.
Table 3.16 Status codes for the ‘createCourseOffering’ operation.
Table 3.17 Status codes for the ‘createByProxyCourseOffering’ operation.
Table 3.18 Status codes for the ‘createCourseOfferingFromCourseOffering’ operation.
Table 3.19 Status codes for the ‘deleteCourseOffering’ operation.
Table 3.20 Status codes for the ‘readCourseOffering’ operation.
Table 3.21 Status codes for the ‘readAllCourseOfferingIds’ operation.
Table 3.22 Status codes for the ‘readAllActiveCourseOfferingIdsForAcademicSession’ operation.
Table 3.23 Status codes for the ‘readCourseSectionIdsForCourseOffering’ operation.
Table 3.24 Status codes for the ‘readCourseOfferingIdsFromSavePoint’ operation.
Table 3.25 Status codes for the ‘readCourseOfferings’ operation.
Table 3.26 Status codes for the ‘readCourseOfferingsFromSavePoint’ operation.
Table 3.27 Status codes for the ‘replaceCourseOffering’ operation.
Table 3.28 Status codes for the ‘updateCourseOffering’ operation.
Table 3.29 Status codes for the ‘updateCourseOfferingStatus’ operation.
Table 3.30 Status codes for the ‘discoverCourseOfferingIds’ operation.
Table 3.31 Status codes for the ‘changeCourseOfferingIdentifier’ operation.
Table 3.32 Summary of operations for CourseSectionManager.
Table 3.33 Status codes for the ‘createCourseSection’ operation.
Table 3.34 Status codes for the ‘createByProxyCourseSection’ operation.
Table 3.35 Status codes for the ‘createCourseSectionFromCourseSection’ operation.
Table 3.36 Status codes for the ‘deleteCourseSection’ operation.
Table 3.37 Status codes for the ‘readCourseSection’ operation.
Table 3.38 Status codes for the ‘readAllCourseSectionIds’ operation.
Table 3.39 Status codes for the ‘readCourseSectionIdsFromSavePoint’ operation.
Table 3.40 Status codes for the ‘readCourseSections’ operation.
Table 3.41 Status codes for the ‘readCourseSectionsFromSavePoint’ operation.
Table 3.42 Status codes for the ‘replaceCourseSection’ operation.
Table 3.43 Status codes for the ‘updateCourseSection’ operation.
Table 3.44 Status codes for the ‘updateCourseSectionStatus’ operation.
Table 3.45 Status codes for the ‘discoverCourseSectionIds’ operation.
Table 3.46 Status codes for the ‘changeCourseSectionIdentifier’ operation.
Table 3.47 Summary of operations for SectionAssociationManager.
Table 3.48 Status codes for the ‘createSectionAssociation’ operation.
Table 3.49 Status codes for the ‘createByProxySectionAssociation’ operation.
Table 3.50 Status codes for the ‘deleteSectionAssociation’ operation.
Table 3.51 Status codes for the ‘readSectionAssociation’ operation.
Table 3.52 Status codes for the ‘readAllSectionAssociationIds’ operation.
Table 3.53 Status codes for the ‘readSectionAssociationIdsFromSavePoint’ operation.
Table 3.54 Status codes for the ‘readSectionAssociations’ operation.
Table 3.55 Status codes for the ‘readSectionAssociationsFromSavePoint’ operation.
Table 3.56 Status codes for the ‘addCourseSection’ operation.
Table 3.57 Status codes for the ‘removeCourseSection’ operation.
Table 3.58 Status codes for the ‘updateSectionAssociation’ operation.
Table 3.59 Status codes for the ‘replaceSectionAssociation’ operation.
Table 3.60 Status codes for the ‘discoverSectionAssociationIds’ operation.
Table 3.61 Status codes for the ‘changeSectionAssociationIdentifier’ operation.
Table 5.1 Description of the ‘CourseDatabase’ class.
Table 5.2 Description of the ‘CourseTemplateRecord’ class.
Table 5.3 Description of the ‘courseTemplateId’ attribute for the ‘Template’ class.
Table 5.4 Description of the ‘CourseOfferingRecord’ class.
Table 5.5 Description of the ‘courseOfferingId’ attribute for the ‘Offering’ class.
Table 5.6 Description of the ‘CourseSectionRecord’ class.
Table 5.7 Description of the ‘courseSectionId’ attribute for the ‘Section’ class.
Table 5.8 Description of the ‘SectionAssociationRecord’ class.
Table 5.9 Description of the ‘sectionAssociationId’ attribute for the ‘Association’ class.
Table 5.10 Description of the ‘CourseTemplate’ class.
Table 5.11 Description of the ‘label’ attribute for the ‘CourseTemplate’ class.
Table 5.12 Description of the ‘title’ attribute for the ‘CourseTemplate’ class.
Table 5.13 Description of the ‘catalogDescription’ attribute for the ‘CourseTemplate’ class.
Table 5.14 Description of the ‘courseNumber’ attribute for the ‘CourseTemplate’ class.
Table 5.15 Description of the ‘status’ attribute for the ‘CourseTemplate’ class.
Table 5.16 Description of the ‘defaultCredits’ attribute for the ‘CourseTemplate’ class.
Table 5.17 Description of the ‘org’ attribute for the ‘CourseTemplate’ class.
Table 5.18 Description of the ‘listofTopics’ attribute for the ‘CourseTemplate’ class.
Table 5.19 Description of the ‘listofPrerequisities’ attribute for the ‘CourseTemplate’ class.
Table 5.20 Description of the ‘dataSource’ attribute for the ‘CourseTemplate’ class.
Table 5.21 Description of the ‘recordInfo’ attribute for the ‘CourseTemplate’ class.
Table 5.22 Description of the ‘extension’ attribute for the ‘CourseTemplate’ class.
Table 5.23 Description of the ‘ListofPrerequisites’ class.
Table 5.24 Description of the ‘prerequisite’ attribute for the ‘ListofPrerequisites’ class.
Table 5.25 Description of the ‘ListofTopics’ class.
Table 5.26 Description of the ‘topic’ attribute ‘ListofTopics’ class.
Table 5.27 Description of the CourseOffering class.
Table 5.28 Description of the ‘label’ attribute for the ‘CourseOffering’ class.
Table 5.29 Description of the ‘title’ attribute for the ‘CourseOffering’ class.
Table 5.30 Description of the ‘parentTemplateId’ attribute for the ‘CourseOffering’ class.
Table 5.31 Description of the ‘catalogDescription’ attribute for the ‘CourseOffering’ class.
Table 5.32 Description of the ‘defaultCredits’ attribute for the ‘CourseOffering’ class.
Table 5.33 Description of the ‘status’ attribute for the ‘CourseOffering’ class.
Table 5.34 Description of the ‘academicSession’ attribute for the ‘CourseOffering’ class.
Table 5.35 Description of the ‘org’ attribute for the ‘CourseOffering’ class.
Table 5.36 Description of the ‘timeFrame’ attribute for the ‘CourseOffering’ class.
Table 5.37 Description of the ‘enrollControl’ attribute for the ‘CourseOffering’ class.
Table 5.38 Description of the ‘dataSource’ attribute for the ‘CourseOffering’ class.
Table 5.39 Description of the ‘recordInfo’ attribute for the ‘CourseOffering’ class.
Table 5.40 Description of the ‘extension’ attribute for the ‘CourseOffering’ class.
Table 5.41 Description of the CourseSection class.
Table 5.42 Description of the ‘label’ attribute for the ‘CourseSection’ class.
Table 5.43 Description of the ‘title’ attribute for the ‘CourseSection’ class.
Table 5.44 Description of the ‘parentOfferingId’ attribute for the ‘CourseSection’ class.
Table 5.45 Description of the ‘catalogDescription’ attribute for the ‘CourseSection’ class.
Table 5.46 Description of the ‘status’ attribute. for the ‘CourseSection’ class
Table 5.47 Description of the ‘defaultCredits’ attribute for the ‘CourseSection’ class.
Table 5.48 Description of the ‘category’ attribute for the ‘CourseSection’ class.
Table 5.49 Description of the ‘maxNumberofStudents’ attribute. for the ‘CourseSection’ class
Table 5.50 Description of the ‘numberofStudents’ attribute for the ‘CourseSection’ class.
Table 5.51 Description of the ‘org’ attribute for the ‘CourseSection’ class.
Table 5.52 Description of the ‘timeFrame’ attribute for the ‘CourseSection’ class.
Table 5.53 Description of the ‘enrollControl’ attribute for the ‘CourseSection’ class.
Table 5.54 Description of the ‘Location’ attribute for the ‘CourseSection’ class.
Table 5.55 Description of the ‘notes’ attribute for the ‘CourseSection’ class.
Table 5.56 Description of the ‘notes’ attribute for the ‘CourseSection’ class.
Table 5.58 Description of the ‘recordInfo’ attribute for the ‘CourseSection’ class.
Table 5.59 Description of the ‘extension’ attribute for the ‘CourseSection’ class.
Table 5.60 Description of the SectionAssociation class.
Table 5.61 Description of the ‘label’ attribute for the ‘SectionAssociation’ class.
Table 5.62 Description of the ‘title’ attribute for the ‘SectionAssociation’ class.
Table 5.63 Description of the ‘courseSectionIdList’ attribute for the ‘SectionAssociation’ class.
Table 5.64 Description of the ‘status’ attribute for the ‘SectionAssociation’ class.
Table 5.65 Description of the ‘dataSource’ attribute for the ‘SectionAssociation’ class.
Table 5.66 Description of the ‘recordInfo’ attribute for the ‘SectionAssociation’ class.
Table 5.67 Description of the ‘extension’ attribute for the ‘SectionAssociation’ class.
Table 5.68 Description of the ListofCourseSectionIds class.
Table 5.69 Description of the ‘courseSectionId’ attribute for the ‘ListofCourseSectionIds’ class.
Table 5.70 Description of the Org class.
Table 5.71 Description of the ‘orgName’ attribute for the ‘Org’ class.
Table 5.72 Description of the ‘orgUnit’ attribute for the ‘Org’ class.
Table 5.73 Description of the ‘type’ attribute for the ‘Org’ class.
Table 5.74 Description of the ‘id’ attribute for the ‘Org’ class.
Table 5.75 Description of the EnrollControl class.
Table 5.76 Description of the ‘enrollAccept’ attribute for the ‘EnrollControl’ class.
Table 5.77 Description of the ‘enrollAllowed’ attribute for the ‘EnrollControl’ class.
Table 5.78 Description of the TimeFrame class for the ‘EnrollControl’ class.
Table 5.79 Description of the ‘begin’ attribute for the ‘EnrollControl’ class.
Table 5.80 Description of the ‘end’ attribute for the ‘EnrollControl’ class.
Table 5.81 Description of the ‘restrict’ attribute for the ‘EnrollControl’ class.
Table 5.82 Description of the ‘adminPeriod’ attribute for the ‘EnrollControl’ class.
Table 5.83 Description of the Description class.
Table 5.84 Description of the ‘shortDescription’ attribute for the ‘Description’ class.
Table 5.85 Description of the ‘longDescription’ attribute for the ‘Description’ class.
Table 5.86 Description of the ‘fullDescription’ attribute for the ‘Description’ class.
Table 5.87 Description of the FullDescription class.
Table 5.88 Description of the ‘mediaMode’ attribute for the ‘FullDescription’ class.
Table 5.89 Description of the ‘contentRefType’ attribute for the ‘FullDescription’ class.
Table 5.90 Description of the ‘mimeType’ attribute for the ‘FullDescription’ class.
Table 5.91 Description of the ‘descriptionText’ attribute for the ‘FullDescription’ class.
Table 5.92 Description of the ‘Text’ class.
Table 5.93 Description of the ‘language’ attribute for the ‘Text’ class.
Table 5.94 Description of the ‘text’ attribute for the ‘Text’ class.
Table 5.95 Description of the Metadata class.
Table 5.96 Description of the ‘metadataNameVocabulary’ attribute for the Metadata class.
Table 5.97 Description of the ‘metadataTypeVocabulary’ attribute for the Metadata class.
Table 5.98 Description of the ‘metadataField’ attribute for the Metadata class.
Table 5.99 Description of the IMSExtension class.
Table 5.100 Description of the ‘extensionNameVocabulary’ attribute for the IMSExtension class.
Table 5.101 Description of the ‘extensionTypeVocabulary’ attribute for the IMSExtension class.
Table 5.102 Description of the ExtensionField class.
Table 5.103 Description of the ‘fieldName’ attribute for the ‘ExtensionField’ class.
Table 5.104 Description of the ‘fieldType’ attribute for the ‘ExtensionField’ class.
Table 5.105 Description of the ‘fieldValue’ attribute for the ‘ExtensionField’ class.
Table A.1 Status codes for the service operations.
Table A.2 Common status codes for the service operations.
Table B.1 Set of implementation dependent vocabularies.
Table B.2 The status attribute external vocabulary.
Table B.3 The fieldType external vocabulary.
The Course Management Service (CMS) specification is the definition of how systems manage the exchange of information that describes courses. The Course Management Service specification is constructed following the recommendations documented in the IMS GLC Abstract Framework (IAF) [IAF, 03a], [IAF, 03b], [IAF, 03c]. This means that this specification is based upon the concepts of:
· Interoperability – Course Management Service focuses on the exchange of information about Courses between systems. There are no definitions in the specification on how the data is managed within the systems;
· Service-oriented – Course Management Service defines the exchange of information in terms of the services being supplied by the collaboration of the systems;
· Component-based – for example, the Course Management Service is combined with the Group Management Service, Membership Management Service, Person Management Service, Outcomes Management Service and Bulk Data Exchange Management Service to provide the Learning Information Services [LIS, 10a];
· Layering – the Course Management Service is a part of the Application Services layer but it interacts with the services available in the Common Services layer e.g. authentication;
· Behaviors and Data Models – the Course Management Service is defined in terms of its behaviors and data models. The behaviors cause changes in the state of the data model and the state of the data model will only be altered as a result of a clearly defined behavior;
· Multiple Bindings – the Course Management Service information model is defined using the Unified Modeling Language (UML). This enables reliable mapping of the information model into a range of different bindings. The binding of immediate importance is to the Web Services Description Language (WSDL);
· Adoption – whenever appropriate, the Course Management Service specification makes use of other IMS GLC and non-IMS GLC standards and specifications.
The logical structure of a Course is defined as composed of Templates, Offerings, Sections and Associations. A Template may have one or more Offering and each Offering may have one of more Sections. Templates, Offerings and Sections define the logical structure of a Course. Associations are collections of Sections that have some educational collaborative relevance. Participation in the activity defined in a Template, Offering and Section is described using a mapping to the equivalent Membership. The structure of a course can be extended using Groups i.e. either as sub-structures below the Section or as organizational structures above a Template. A Group is as defined in the Group Management Service specification [GMS, 10]. The standard create, read, update, replace, delete and simple discovery operations are available for managing Templates, Offerings and Sections. Other operations are defined to support specific business requirements.
This document is the IMS Course Management Service Information Model v1.0 and as such it is used as the basis for the development of the following documents:
a) IMS Course Management Service WSDL Binding v1.0 [CMS, 10] – the description of the WSDL binding of the Information Model.
The core uses-cases for the Course Management Service are described as a subset of the Learning Information Services Specification [LIS, 10b].
This information model defines the Course Management Service Abstract Application Programming Interface (a-API). The Learning Information Services specification, of which the Course Management Service is a component, is a series of behavioral models that define how the data models are to be manipulated. These behavioral models are described using the Unified Modeling Language (UML) [SDN07, 07].
The structure of this document is:
|
2. Course Management Service Description |
The description of the overall structure and operation of the Course Management Service. This includes the description of the architectural model and the domain object model; |
|
3. Behavioral Model |
The definition of the operations of Course Management Service application service. This focuses on the description of the behaviors supported by the service; |
|
4. Interface Data Model |
The definition of the data models exchanged between the Course Management Service End Systems. These are the parameters exchanged across the interoperability interface; |
|
5. End System Data Model |
The definition of the data models in the Course Management Service End Systems. This addresses the persistence of the data with respect to interoperability; |
|
6. Extending and Profiling the Service |
Identification of the ways in which the Course Management Service can be extended both in terms of the addition of new constituent services and proprietary extensions to a service; |
|
Appendix A Service Status Codes |
A summary list of the status codes, and their causes, that can be returned by each of the operations forming the Course Management Service; |
|
Appendix B Vocabularies |
A summary of the set of vocabularies that are used within the specification. |
The Course Management Service was not part of the IMS GLC Enterprise Services v1.0 specification [ES, 06]. Instead, this functionality was supported using the IMS GLC Group Management Service v1.0 [GMS, 06] specification in a variety of different ways. This created interoperability problems hence the creation of this service specification. The Course Management Service v1.0 is closely linked to the Group Management Service (GMS) v2.0 [GMS, 10] and Membership Management Service (MMS) v2.0 [MMS, 10]. The MMS is used to define the participants in a Course defined by the CMS and Courses are extended using the GMS. Therefore the GMS and MMS must be implemented to obtain the full functionality of the CMS.
In general, there is NO backwards compatibility between the usage of the CMSv1.0 and the ways in which GMS v1.0 has been implemented to support course management. Vendors may define compatibility bridges for their own implementations but these are outside the scope of this specification.
a-API Abstract Application Programming Interface
API Application Programming Interface
CMS Course Management Service
GMS Group Management Service
IAF IMS GLC Abstract Framework
LIS Learning Information Services
MMS Membership Management Service
PIM Platform Independent Model
PSM Platform Specific Model
RFC Request For Comment
SDN Specification Development Note
UML Unified Modeling Language
URL Uniform Resource Locator
WSDL Web Services Description Language
[APG, 05a] IMS GLC Application Profile Guidelines Overview: Part 1 – Management Overview v1.0, IMS Global Learning Consortium, K.Riley, October 2005. http://www.imsglobal.org/ap/index.html.
[APG, 05b] IMS GLC Application Profile Guidelines White Paper: Part 2 Technical Manual, S.Wilson and K.Riley, Version 1.0, IMS Global Learning Consortium, October 2005. http://www.imsglobal.org/ap/index.html.
[BDEMS, 10] IMS GLC Bulk Data Exchange Management Service Information Model v1.0 Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[CMS, 10] IMS GLC Course Management Service WSDL Binding v2. Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[ES, 06] IMS GLC Enterprise Services Overview v1.0 Final Release, C.Vento and C.Smythe, IMS Global Learning Consortium, June 2006.
[GMS, 06] IMS/GLC Group Management Services Information Model v1.0 Final Release, C.Vento and C.Smythe, IMS Global Learning Consortium, June 2006.
[GMS, 10] IMS GLC Group Management Service Information Model v2.0 Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[GWS, 05] IMS GLC General Web Services WSDL Binding Guidelines v1.0 Final Specification, C.Schroeder, J.Simon and C.Smythe, IMS Global Learning Consortium, December 2005.
[IAF, 03a] IMS Abstract Framework: Applications, Services & Components v1.0, Ed. C.Smythe, IMS Global Learning Consortium, July 2003.
[IAF, 03b] IMS GLC Abstract Framework: Glossary v1.0, Ed. C.Smythe, IMS Global Learning Consortium, July 2003.
[IAF, 03c] IMS GLC Abstract Framework: White Paper v1.0, Ed. C.Smythe, IMS Global Learning Consortium, July 2003.
[LIS, 10a] IMS GLC Learning Information Services Overview v2.0 Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[LIS, 10b] IMS GLC Learning Information Services Specification v2.0 Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[LIS, 10c] IMS GLC Learning Information Services Best Practices & Implementation Guide v2.0 Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[MMS, 10] IMS GLC Membership Management Service Information Model v2.0 Public Draft, L.Feng, W.Lee and C.Smythe, IMS Global Learning Consortium, March 2010.
[SDN07, 06] IMS GLC Specification Note: UML Profile for Platform Independent Model Descriptions of Specifications for Data Models v1.0, C.Smythe, IMS Global Learning Consortium, October 2006.
[SDN11, 06] IMS GLC Specification Note 11: Vocabulary Definition, Registration & Maintenance Procedures, C.Smythe, IMS Global Learning Consortium, October 2006.
[VDEX, 04] IMS Vocabulary Definition Exchange Best Practice and Implementation Guide, Version 1.0 Final Specification, A. Cooper, IMS Global Learning Consortium, 2005. Online version: http://www.imsglobal.org/vdex/vdexv1p0/imsvdex_bestv1p0.html
It is important to remember that this document contains a description of the underlying information model in terms of the abstract API. The manner in which this abstract representation is visualized is not intended to dictate the implementation form of a Course Management System. The breakdown of the service into its interface classes is a convenient way to document the set of behaviors. The objective for producing these interfaces is to identify and define the messages that are exchanged between the end-systems to realize the system behaviors required of the service.
The internal organization of an implementation of the full abstract API is beyond the scope of this specification. The only constraint is that the external behavior of the abstract API complies with this specification. This means that a .NET, J2EE, etc. physical implementation of this abstract API does not have to represent the functionality using the same breakdown of operations/methods. This physical implementation is not subject to the conformance specification.
It is important to note that the UML representation of the interfaces is used to help develop and document the Course Management Service Information Model. It is not a requirement for an implementation to implement this interface as defined i.e. to use the same parameters, etc. Conformance against this specification will be confirmed by inspecting the appropriate binding of the information model and ensuring that the relevant information is present and that different sequences of activity result in the predicted and mandated behavior. It is essential that the behaviors described by each of the operations are fully supported and that the behaviors described by different sequences be also maintained.
The basic architectural model for the Course Management Service specification is shown in Figure 2.1. In this architecture the scope of the Course Management Service specification is shown as the dotted line. The scope of the interoperability is the data and behavioral models of the objects being exchanged.

Figure 2.1 Course Management service architecture model.
It is important to remember that the structure of the exchanged information has NO bearing on how the same information is contained within the ‘source’ and ‘target’ Learning Information Services systems (the Course object repositories in the two end-systems). It is simply a representation of the data used to facilitate exchange between the end-systems. The only constraint on the end-system repositories is that they provide data persistence consistent with the required behavior.
It is important to note that this is an interoperability specification and as such it makes no statements about how information is stored within the exchanging end systems. The objects in the end-systems must be persistent otherwise sequences of operation on the same object will not be possible. Reference to these objects in the interface is through a SourcedId however this identifier does not have to be the key stored within the end-systems. If different keys are used in the end-systems then it is the responsibility of the end-systems to maintain the mapping between that key and the SourcedId i.e. the interface must never be exposed to the keys of the end-systems.
There is no such thing as a Course object. Instead, Courses are reflected in four types of object each of which has its own SourcedId. The structure of a Course is shown schematically in Figure 2.2.

Figure 2.2 Structure of a Course.
The components of a Course are:
· Course Template (or just Template) – the identification of the basic and definition of the course e.g. Biology 101. A CourseTemplate will, in general, have one or more CourseOfferings associated with it;
· Course Offering (or just Offering) – the allocation of the course to an academic session e.g. Maths 101 Semester 1. A CourseOffering will, in general, have one or more CourseSections associated with it;
· Course Section (or just Section) – the assignment of teaching resources to the scheduled activities that constitute the course e.g. English 101 Semester 2 Seminars;
· Section Association (or just Association) – the association of two or more Course Sections for some educational purpose.
Groups, as defined in the IMS Group Management Service specification v2.0 [GMS, 10], can be used to extend the basic structure of a Course (See Sub-section 5.2).
Within the context of the Course Management Service the definition of synchronous and asynchronous services is:
· Synchronous – the source service is blocked until the final response from the target service is received. A schematic representation of the information flow for a synchronous service is shown in Figure 2.3;
· Asynchronous – the source service is not blocked and so more than one request can be outstanding at any moment in time. A schematic representation of the information flow for an asynchronous service is shown in Figure 2.4.

Figure 2.3 Synchronous service.

Figure 2.4 Asynchronous service.
It is stressed that the abstract-API dos not differentiate between synchronous and asynchronous services[1]. The support for these two approaches is at the binding level only.
The key difference is that for an asynchronous service more than one request can be issued at any one time (it should be noted that an asynchronous service can be supported using synchronous messaging). In both cases the service assumes a perfect messaging system i.e. request, response and acknowledgement messages have a guaranteed delivery grade of service.
Each operation in a service is mapped to an appropriate message exchange pattern. Any response/acknowledgement message will contain status information. This status information provides contextual information about the completed success or otherwise of the operation. There are two types of status information that are available to the end-systems:
· Business transaction – these are the status reports that reflect the business logic of the transactions being exchanged by the end-systems. This status information will be contained within the message header under a specially defined data structure. The status information contained herein is also used to contain any error codes i.e. error reporting is handled as a subset of status information reporting;
· Messaging fault– these are fault codes that are reported by the messaging infrastructure and which are carried in the messages.
It is important to note that messaging errors may indicate that the original request never reached the service provider end-system. In this case the service consumer implementation that handles the status information is responsible for mapping the message infrastructure failure codes to the equivalent business transaction status code. The message infrastructure failure codes have no meaning with respect to an IMS GLC specification. The IMS GLC specifications do not describe how the status information is to be handled within an end-system i.e. this will depend on how the abstract API is physically realized within an implementation. Therefore, it is important that an implementation can:
· Combine the transaction status information and any message fault error codes in a single integrated status reporting mechanism. Any other system failure information that is made available by an implementation should also use the same mechanism;
· Examine the status information reported after the completion of the appropriate phase of an operation and especially once the operation has been completed. This may require an explicit status information call or it may be reported as part of the API call;
· Differentiate the status information reports for each transaction within an operation. Remember that some specifications provide operations that can contain more than one transaction request and that a different status report may be given for each of those transactions.
Exception handling is the system’s response to known or unknown error conditions. Exception handling is outside the scope of an IMS GLC specification. However, an error condition should not cause the end-systems to fail in an uncontrolled manner. The requirement for every operation to return status information is to enable an implementation to terminate in a controlled fashion.
The CourseManagementService is used to model the service responsible for manipulating information about course structures. The CourseManagementService interfaces are shown in Figures 3.1, 3.2, 3,3 and 3.4. The CourseManagementService is defined as a four interfaces: CourseTemplateManager that supports the manipulation of CoureTemplates; CourseOfferingManager that supports the manipulation of CourseOfferings; CourseSectionManager that supports the manipulation of CourseSections; and SectionAssociation Manager that supports the manipulation of SectionAssociations.
The CourseTemplateManager interface class, as shown in Figure 3.1, describes the operations on a CourseTemplate. The interface stereotype indicates that there are no attributes for this class. The set of operations are summarized in Table 3.1.

Figure 3.1 CourseManagementService CourseTemplateManager interface definition.
Table 3.1 Summary of operations for CourseTemplateManager.
|
Operation |
Description |
|
createCourseTemplate |
To request the creation of a populated CourseTemplate object on the target system where the source is responsible for the allocation of the unique identifier. |
|
createByProxyCourseTemplate |
To request the creation of a populated CourseTemplate object on the target system where the target is responsible for the allocation of the unique identifier. |
|
deleteCourseTemplate |
To request the deletion of a CourseTemplate object. The CourseTemplate object is deleted and all of its associated relationships. |
|
readCourseTemplate |
To read the full contents of the identified CourseTemplate object. The target must return all of the data it has for the CourseTemplate object. |
|
readAllCourseTemplateIds |
To obtain the set of SourcedIds which have been assigned to CourseTemplate objects. |
|
readCourseOfferingIdsForCourseTemplate |
To obtain the set of SourcedIds of the CourseOfferings associated with the CourseTemplate. |
|
readCourseTemplateIdsFromSavePoint |
To obtain the set of SourcedIds for CourseTemplates objects which have been altered since the requested reference point. The reference point is set as zero at creation and incremented after every write operation. |
|
readCourseTemplates |
To obtain the CourseTemplate objects for a defined set of SourcedIds. This results in a single transaction that may require the exchange of a large volume of data in the response message. |
|
readCourseTemplatesFromSavePoint |
To obtain the set of CourseTemplate objects which have been altered since the requested reference point. The reference point is set as ‘zero’ at creation and incremented after every write operation. This results in a single transaction that may require the exchange of a large volume of data in the response message. |
|
updateCourseTemplate |
To write new content into the identified CourseTemplate object. The target must write the new data into the CourseTemplate object. This is an additive operation. |
|
replaceCourseTemplate |
To replace the content of the identified CourseTemplate object. The target must write the new data into the CourseTemplate object. This is a destructive write-over of all of the original information. |
|
discoverCourseTemplateIds |
To obtain the set of SourcedIds for CourseTemplate objects whose properties agree with those defined in the query/filter. |
|
changeCourseTemplateIdentifier |
To change the SourcedId of the CourseTemplate record. The completion of this operation will result in later actions using the original SourcedId reporting an unknown identifier status. |
|
Name: |
createCourseTemplate |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.2 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the sourcedId allocated by the source system. This is the identifier that must also be assigned within the target system. courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is to be stored in the new object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘createCourseTemplate’ request the target is instructed to create the populated CourseTemplate object and to allocate that structure the ‘sourcedId’ passed by the source. If the supplied ‘sourcedId’ has already been allocated to another object then the request is rejected and the appropriate failure code is returned. The reference point identifier is set to zero for the CourseTemplate object in both the source and target. |
|
Notes: |
This request contains the initial content for the CourseTemplate object. More content can be added/replaced using the ‘updateCourseTemplate’ and/or ‘replaceCourseTemplate’ requests. |
Table 3.2 Status codes for the ‘createCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the CourseTemplate object has been created with a unique identifier. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the required unique SourcedId to the CourseTemplate object as it is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseTemplate object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the supplied data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data record e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
createByProxyCourseTemplate |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.3 and A.2. |
|
Supplied (in) Parameters: |
courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is to be stored in the new object. |
|
Returned (out) Parameters: |
sourcedId:GUID – the identifier allocated by the target to the newly created CourseTemplate object. |
|
Behavior: |
When the source issues the ‘createByProxyCourseTemplate’ request the target is instructed to create the populated CourseTemplate object and to allocate that record a unique ‘sourcedId’. The reference point identifier is set to zero for the ‘courseTemplate’ object in both the source and target. |
|
Notes: |
This request contains the initial content for the CourseTemplate object. More content can be added/replaced using the ‘updateCourseTemplate’ and/or ‘replaceCourseTemplate’ requests. |
Table 3.3 Status codes for the ‘createByProxyCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the CourseTemplate object has been created with the identifier supplied by the source. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocfail’ |
The target could not allocate a unique ‘identifier’ to the CourseTemplate object because there are no more spare identifiers available. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseTemplate object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the supplied data was detected as invalid by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
deleteCourseTemplate |
|
Return Function Parameter: |
StatusInfo – the status of the delete request. The permitted status codes are defined in Tables 3.4 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier to be used by the target to identify the CourseTemplate object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘deleteCourseTemplate’ request the target is instructed to delete the identified CourseTemplate object and to remove the reference to the CourseTemplate from any of the related CourseOffering objects. All Membership associations are also deleted. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
Deletion of the CourseTemplate object does not necessarily result in the destruction of the data within the server. The true state of the data in the target is unknown. |
Table 3.4 Status codes for the ‘deleteCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The deletion request has been fully and successfully implemented by the target system and the CourseTemplate object has been deleted. The corresponding membership records have also been deleted. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseTemplate object identifier is unknown in the target system and so the object could not be deleted. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor= deletefailure’ |
The target system has not been able to delete the identified CourseTemplate object. |
|
Name: |
readCourseTemplate |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are given in Tables 3.5 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the courseTemplate object to be read. |
|
Returned (out) Parameters: |
courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is read from the object. |
|
Behavior: |
When the source issues the ‘readCourseTemplate’ request the target is charged with retrieving the identified record from its database and returning this data to the source. The target is responsible for ensuring that the object contains valid data. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
The returned CourseTemplate object can only be trusted if the corresponding status code is ‘success’. |
Table 3.5 Status codes for the ‘readCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified courseTemplate object has been read from the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseTemplate object identifier is unknown in the target system and so the object could not be read. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=targetreadfailure’ |
The target system has detected an error in the stored CourseTemplate object and so cannot return the data. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the returned data was detected as invalid by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The source cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
readAllCourseTemplateIds |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the read request. The permitted status codes are given in Tables 3.6 and A.2. |
|
Supplied (in) Parameters: |
None. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of SourcedIds for all of the CourseTemplate objects in the target’s course template database. |
|
Behavior: |
When the source issues the ‘readAllCourseTemplateIds’ request the target is charged with returning the sourcedIds of all of the CourseTemplates in its course template database. |
|
Notes: |
The returned set of sourcedIds may or may not already be identified as allocated in the CourseTemplates database in the source system. If no SourcedIds have been allocated then the returned data set is empty and the success status code returned. |
Table 3.6 Status codes for the ‘readAllCourseTemplateIds’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseTemplate object identifiers were found. |
|
Name: |
readCourseTemplateIdsFromSavePoint |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the read request. The permitted status codes are given in Tables 3.7 and A.2. |
|
Supplied (in) Parameters: |
fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read. This is the value in the source system. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of sourcedIds of the CourseTemplate objects stored on the target. savePoint:SequenceIdentifier – the value of the reference point counter in the target system. |
|
Behavior: |
When the source issues the ‘readCourseTemplateIdsFromSavePoint’ the target returns the set of SourcedIds that have been altered from the defined reference point. If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned. |
|
Notes: |
If no SourcedIds have been allocated then the returned data set is empty and the success status code returned. |
Table 3.7 Status codes for the ‘readCourseTemplateIdsFromSavePoint’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseTemplate object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=savepointerror’ |
An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database. |
|
‘CodeMajor=Failure’
‘Severity=Status’ |
The value of the save point reference from the source was later than that of the target system. No identifiers have been returned. The target system savepoint value is returned to the source system for information. |
|
Name: |
readCourseOfferingIdsForCourseTemplate |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the update request. The permitted status codes are given in Tables 3.8 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the sourcedId of the CourseTemplate whose associated CourseOfferings are to be identified. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of sourcedIds for all of the associated CourseOffering objects in the target’s database. |
|
Behavior: |
When the source issues the ‘readCourseOfferingIdsForCourseTemplate’ request the target is charged with using the supplied SourcedId of the reference CourseTemplate to return the SourcedIds of all the associated course offerings. These relationships are identified by searching the set of CourseOfferings for the appropriate parent CourseTemplate. An error code is returned if the target does not recognize the SourcedId as a valid CourseTemplate. |
|
Notes: |
The returned set of SourcedIds may or may not already be allocated in the CourseOffering database in the source system. If no associated course offerings are found then the returned data set is empty and the success status code returned. |
Table 3.8 Status codes for the ‘readCourseOfferingIdsForCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the set of associated CourseOffering identifiers have been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseTemplate object identifier is unknown in the target system and so the request cannot be processed. |
|
Name: |
readCourseTemplates |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the read request. The permitted status codes are given in Tables 3.9 and A.2. |
|
Supplied (in) Parameters: |
sourcedIdSet:GUIDSet – the set of identifiers of the CourseTemplate objects to be read. |
|
Returned (out) Parameters: |
courseTemplateRecordSet:CourseTemplateRecordSet – the set of course template records. savePoint:SequenceIdentifier – the value of the reference point counter in the target system. |
|
Behavior: |
When the source issues the ‘readCourseTemplates’ request the target is charged with retrieving the identified set of objects from its database. The associated read savePoint reference is updated and returned. If the object identified by the supplied SourcedId cannot be located then the request is rejected and a partial success code is returned for the operation. The target is responsible for ensuring that the records contain valid data. The target should attempt to successfully complete as much of the request as possible. |
|
Notes: |
A returned CourseTemplate record is only present if the object has been located in the target system and the full data set returned. The enclosed data may result in a long response message. |
Table 3.9 Status codes for the ‘readCourseTemplates’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been read from the target system. |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=partialreadfail’ |
Some of the CourseTemplate object identifiers are unknown in the target system and so those objects could not be read. |
|
Name: |
readCourseTemplatesFromSavePoint |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the read request. The permitted status codes are given in Tables 3.10 and A.2. |
|
Supplied (in) Parameters: |
fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read. This is the value in the source system. |
|
Returned (out) Parameters: |
coureTemplateRecordSet: coureTemplateRecordSet – the set of course template records. savePoint:SequenceIdentifier – the value of the reference point counter in the target system. |
|
Behavior: |
When the source issues the ‘readCourseTemplatesFromSavePoint’ request the target is charged with reading the objects that have been altered from the defined reference. If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned. |
|
Notes: |
If no objects have been allocated then the data file will be empty (the file must be created and its URL returned) and the success status code returned. The enclosed data may result in a long response message. |
Table 3.10 Status codes for the ‘readCourseTemplatesFromSavePoint’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseTemplate objects have been read from the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=savepointerror’ |
An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database. |
|
‘CodeMajor=Failure’
‘Severity=Status’ |
The value of the save point reference from the source was later than that of the target system. No identifiers have been returned. The target system savepoint value has been updated to that supplied by the source system. |
|
Name: |
updateCourseTemplate |
|
Return Function Parameter: |
StatusInfo – the status of the update request. The permitted status codes are given in Tables 3.11 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseTemplate object to be updated. courseTemplateRecord:CourseTemplateRecord – the CourseTemplate data that is to be stored in the object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘updateCourseTemplate’ request the target is charged with writing the supplied information into the identified record. If any part of the write fails e.g. due to partial invalid data then the whole request is rejected and the record is left in its original state. This is an additive write operation of all the data fields supplied in the update request and fields not supplied remain unchanged. If a field is constrained with a multiplicity of one then the ‘updateCourseTemplate’ request acts as a ‘replaceCourseTemplate’ request for that field. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. The reference counter for the object is incremented in the target system. |
|
Notes: |
The source is responsible for determining the reason of the failure. |
Table 3.11 Status codes for the ‘updateCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The update request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseTemplate object identifier is unknown in the target system and so the object could not be updated. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the received data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process the proprietary data model extensions used in the object. |
|
Name: |
replaceCourseTemplate |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the replace request. The permitted status codes are given in Tables 3.12 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseTemplate object to be replaced. courseTemplateRecord:TemplateRecord – the CourseTemplate data that is to be stored in the object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘replaceCourseTemplate’ request the target is charged with writing the supplied information into the identified object. If any part of the write fails e.g. due to partial invalid data then the whole request is rejected and the record is left in its original state. This is a destructive write-over operation of the entire CourseTemplate object. This is equivalent to a ‘createCourseTemplate’ but for an object that already exists. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. The reference counter for the object is incremented by one in the target system. |
|
Notes: |
The source is responsible for determining the reason of the failure. |
Table 3.12 Status codes for the ‘replaceCourseTemplate’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The replace request has been fully and successfully implemented by the target system and the identified CourseTemplate object has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseTemplate object identifier is unknown in the target system and so the object could not be changed. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the returned data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process the proprietary data model extensions used in the object. |
|
Name: |
discoverCourseTemplateIds |
|
Return Function Parameter: |
statusInfo:StatusInfo – the status of the discover request. The permitted status codes are given in Tables 3.13 and A.2. |
|
Supplied (in) Parameters: |
queryObject:QueryObject – this is the query/filter instruction that is to be applied by the target to discover the corresponding CourseTemplate objects. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of identifiers of the CourseTemplate objects whose content conform to the query/filter conditions. |
|
Behavior: |
When the source issues the ‘discoverCourseTemplate Ids’ the target applies the query/filter instructions to the set of CourseTemplate objects and returns the set of SourcedIds that uphold the query/filter. If no CourseTemplate objects have the required properties the returned data set is empty and the success status code returned. If the target does not understand or cannot apply the requested query/filter then an error status is returned. |
|
Notes: |
The internal structure of this QueryObject is undefined (it is should be treated as a String encoded ‘blob). Later versions of this specification will look at the established best practices for clarification on the use of this operation. |
Table 3.13 Status codes for the ‘discoverCourseTemplateIds’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The query/filter request has been fully and successfully implemented by the target system and the appropriate CourseTemplate identifiers have been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The discover request has been fully and successfully implemented by the target system and no CourseTemplate object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownquery’ |
The target system cannot understand the query request that has been received i.e. the query/filter language is unknown. |
|
Name: |
changeCourseTemplateIdentifier |
|
Return Function Parameter: |
StatusInfo – the status of the change request. The permitted status codes are given in Tables 3.14 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseTemplate object to be changed. newSourcedId:GUID – the new identifier to be allocated to the CourseTemplate object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘changeCourseTemplateIdentifier’ request the target is charged with replacing the original SourcedId with the new supplied SourcedId. All membership entries must be similarly changed. All further references to the object must use the new SourcedId otherwise an ‘unknown’ object failure status code is returned. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
The reference pointer value remains unchanged. |
Table 3.14 Status codes for the ‘changeCourseTemplateIdentifier’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The change identifier request has been fully and successfully implemented by the target system and the CourseTemplate object SourcedId has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the new unique ‘identifier’ to the CourseTemplate object as the identifier is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The current CourseTemplate identifier is unknown in the target system and so the object identifier could not be changed. |
The CourseOfferingManager interface class, as shown in Figure 3.2, describes the operations that are permitted on a CourseOfferings. The interface stereotype indicates that there are no attributes for this class. The set of operations are summarized in Table 3.15.

Figure 3.2 CourseManagementService CourseOfferingManager interface definition.
Table 3.15 Summary of operations for CourseOfferingManager.
|
Operation |
Description |
|
createCourseOffering |
To request the creation of a populated CourseOffering object on the target system where the source is responsible for the allocation of the unique identifier. |
|
createByProxyCourseOffering |
To request the creation of a populated CourseOffering object on the target system where the target is responsible for the allocation of the unique identifier. |
|
createCourseOfferingFromCourseOffering |
To create a new CourseOffering from the supplied CourseOffering for a particular academic session. |
|
deleteCourseOffering |
To request the deletion of a CourseOffering object. The CourseOffering object is deleted and all of its associated relationships. |
|
readCourseOffering |
To read the full contents of the identified CourseOffering object. The target must return all of the data it has for the identified CourseOffering object. |
|
readAllCourseOfferingIds |
To obtain the set of SourcedIds which have been assigned to CourseOffering objects. |
|
readAllActiveCourseOfferingIdsForAcademicSession |
To obtain the set of SourcedIds for all of the active CourseOfferings for the identified academic session. |
|
readCourseSectionIdsForCourseOffering |
To obtain the set of SourcedIds of the CourseSections associated with the CourseOffering. |
|
readCourseOfferingIdsFromSavePoint |
To obtain the set of SourcedIds for CourseOfferings objects which have been altered since the requested reference point. The reference point is set as zero at creation and incremented after every write operation. |
|
readCourseOfferings |
To obtain the CourseOffering objects for a defined set of identifiers. This results in a single transaction that may require the exchange of a large volume of data in the response message. |
|
readCourseOfferingsFromSavePoint |
To obtain the set of CourseOffering objects which have been altered since the requested reference point. The reference point is set as ‘zero’ at creation and incremented after every write operation. This results in a single transaction that may require the exchange of a large volume of data in the response message. |
|
replaceCourseOffering |
To replace the content of the identified CourseOffering object. The target must write the new data into the CourseOffering object. This is a destructive write-over of all of the original information. |
|
updateCourseOffering |
To write new content into the identified CourseOffering object. The target must write the new data into the CourseOffering object. This is an additive operation. |
|
updateCourseOfferingStatus |
To change the status of the identified CourseOffering to the supplied value. |
|
discoverCourseOfferingIds |
To obtain the set of SourcedIds for CourseOffering objects whose properties agree with those defined in the query/filter. |
|
changeCourseOfferingIdentifier |
To change the SourcedId of the CourseOffering record. The completion of this operation will result in later actions using the original SourcedId reporting an unknown identifier status. |
|
Name: |
createCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.16 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the SourcedId allocated by the source system. This is the identifier that must also be assigned within the target system. courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is to be stored in the new object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘createCourseOffering’ request the target is instructed to create the populated CourseOffering object and to allocate that structure the SourcedId passed by the source. If the supplied SourcedId has already been allocated to another object then the request is rejected and the appropriate failure code is returned. The reference point identifier is set to zero for the CourseOffering object in both the source and target. |
|
Notes: |
This request contains the initial content for the CourseOffering record. More content can be added/replaced using the ‘updateCourseOffering’ and/or ‘replaceCourseOffering’ requests. |
Table 3.16 Status codes for the ‘createCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the CourseOffering object has been created with a unique identifier. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the required unique SourcedId to the CourseOffering object as it is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseOffering object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the supplied data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data record e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
createByProxyCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.17 and A.2. |
|
Supplied (in) Parameters: |
courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is to be stored in the new object. |
|
Returned (out) Parameters: |
sourcedId:GUID – the identifier allocated by the target to the newly created CourseOffering object. |
|
Behavior: |
When the source issues the ‘createByProxyCourseOffering’ request the target is instructed to create the populated CourseOffering object and to allocate that record a unique SourcedId. The reference point identifier is set to zero for the CourseOffering object in both the source and target. |
|
Notes: |
This request contains the initial content for the CourseOffering object. More content can be added/replaced using the ‘updateCourseOffering’ and/or ‘replaceCourseOffering’ requests. |
Table 3.17 Status codes for the ‘createByProxyCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the CourseOffering object has been created with the identifier supplied by the source. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocfail’ |
The target could not allocate a unique SourcedId to the CourseOffering object because there are no more spare identifiers available. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseOffering object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the supplied data was detected as invalid by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
createCourseOfferingFromCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.18 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the SourcedId for the CourseOffering to be cloned. academicSession:AcademicSession – the academic session (from a pre-defined vocabulary) of the new CourseOffering object. newSourcedId:GUID – the SourcedId to be allocated to the newly created ‘courseOffering’ object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘createCourseOfferingFromCourseOffering’ request the target is instructed to find the source CourseOffering object and to create an equivalent CourseOffering but with the new SourcedId and academic session. The reference point identifier is set to zero for the new CourseOffering object in both the source and target. |
|
Notes: |
An invalid status code will be returned if the new SourcedId has already been allocated or the academic session is incorrect. |
Table 3.18 Status codes for the ‘createCourseOfferingFromCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the new CourseOffering object has been created with a unique identifier. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the required unique SourcedId to the new CourseOffering object as it is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseOffering object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
An invalid academic session value has been received by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
Name: |
deleteCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the delete request. The permitted status codes are defined in Tables 3.19 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier to be used by the target to identify the ‘courseOffering’ object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘deleteCourseOffering’ request the target is instructed to delete the identified CourseOffering object and to remove the reference to the CourseOffering from any of the related CourseTemplate, CourseSection and Membership objects. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
Deletion of the CourseOffering record does not necessarily result in the destruction of the data within the server. The true state of the data in the target is unknown. |
Table 3.19 Status codes for the ‘deleteCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The deletion request has been fully and successfully implemented by the target system and the CourseOffering object has been deleted. The corresponding Membership objects and other relationships have also been deleted. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system and so the object could not be deleted. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor= deletefailure’ |
The target system has not been able to delete the identified CourseOffering object. |
|
Name: |
readCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.20 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseOffering object to be read. |
|
Returned (out) Parameters: |
courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is read from the object. |
|
Behavior: |
When the source issues the ‘readCourseOffering’ request the target is charged with retrieving the identified record from its database and returning this data to the source. The target is responsible for ensuring that the object contains valid data. If the object identified by the SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
The returned CourseOffering object can only be trusted if the corresponding status code is ‘success’. |
Table 3.20 Status codes for the ‘readCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseOffering object has been read from the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system and so the object could not be read. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=targetreadfailure’ |
The target system has detected an error in the stored CourseOffering object and so cannot return the data. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the returned data was detected as invalid by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The source cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
readAllCourseOfferingIds |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.21 and A.2. |
|
Supplied (in) Parameters: |
None. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of SourcedIds for all of the CourseOffering objects in the target’s database. |
|
Behavior: |
When the source issues the ‘readAllCourseOfferingIds’ request the target is charged with returning the SourcedIds of all of the CourseOfferings in its course offering database. |
|
Notes: |
If no SourcedIds have been allocated then the returned data set is empty and the success status code returned. |
Table 3.21 Status codes for the ‘readAllCourseOfferingIds’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and all the CourseOffering object identifiers have been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found. |
|
Name: |
readAllActiveCourseOfferingIdsForAcademicSession |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.22 and A.2. |
|
Supplied (in) Parameters: |
academicSession:AcademicSession – the academic session (from a pre-defined vocabulary). |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of identifiers of the active CourseOffering objects. |
|
Behavior: |
When the source issues the ‘readAllActiveCourseOfferingIdsForAcademicSession’ request the target is charged with returning the identifiers of all active CourseOfferings for the defined academic session. The state of a CourseOffering is held within its ‘status’ field in the data model. |
|
Notes: |
If there are no active CourseOfferings in the academic session, an empty set of SourcedIds is returned and the success status code returned. |
Table 3.22 Status codes for the ‘readAllActiveCourseOfferingIdsForAcademicSession’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the set of associated CourseOffering identifiers have been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
An invalid academic session value has been received by the target system. |
|
Name: |
readCourseOfferingSectionIdList |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.23 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the sourcedId of the CourseOffering whose associated CourseSections are to be identified. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of SourcedIds for all of the associated CourseSection objects in the target’s CourseSection database. |
|
Behavior: |
When the source issues the ‘readCourseOfferingSectionIdList’ request the target is charged with using the supplied sourcedId of the reference CourseOffering to return the SourcedIds of all the associated course sections. These relationships are identified by searching the CourseSection database for the appropriate parent CourseOffering. An error code is returned if the target does not recognize the sourcedId as a valid CourseOffering. |
|
Notes: |
The returned set of SourcedIds may or may not already be identified as allocated in the CourseSection database in the source system. If no associated CourseSections are found then the returned data set is empty and the success status code returned. |
Table 3.23 Status codes for the ‘readCourseSectionIdsForCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the set of associated CourseSection identifiers have been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseSection object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system and so the object could not be read. |
|
Name: |
readCourseOfferingIdsFromSavePoint |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.24 and A.2. |
|
Supplied (in) Parameters: |
fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read. This is the value in the source system. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of SourcedIds of the CourseOffering objects stored on the target. savePoint:SequenceIdentifier – the value of the reference point counter in the target system. |
|
Behavior: |
When the source issues the ‘readCourseOfferingIdsFromSavePoint’ the target returns the set of SourcedIds that have been altered from the defined reference point. If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned. |
|
Notes: |
If no SourcedIds have been allocated then the returned data set is empty and the success status code returned. |
Table 3.24 Status codes for the ‘readCourseOfferingIdsFromSavePoint’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseOffering object has been read from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The read request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=savepointerror’ |
An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database. |
|
‘CodeMajor=Failure’
‘Severity=Status’ |
The value of the save point reference from the source was later than that of the target system. No identifiers have been returned. The target system savepoint value has been updated to that supplied by the source system. |
|
Name: |
readCourseOfferings |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.25 and A.2. |
|
Supplied (in) Parameters: |
sourcedIdSet:GUIDSet – the set of identifiers of the CourseOffering objects to be read. |
|
Returned (out) Parameters: |
courseOfferingRecordSet:CourseOfferingRecordSet – the set of course offering records. savePoint:SequenceIdentifier – the value of the reference point counter in the target system. |
|
Behavior: |
When the source issues the ‘readCourseOfferings’ request the target is charged with retrieving the identified set of objects from its database and placing this information in a persistent data file. The associated read savePoint reference is updated and returned. If the object identified by the supplied ‘SourcedId’ cannot be located then the request is rejected and a partial success code is returned for the operation. The target is responsible for ensuring that the records contain valid data. The target should attempt to successfully complete as much of the request as possible. |
|
Notes: |
A returned CourseOffering object is only present in the data file if the object has been located in the target system and the full data set returned. The enclosed data may result in a long response message. |
Table 3.25 Status codes for the ‘readCourseOfferings’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseOffering objects have been read from the target system. |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=partialreadfail’ |
Some of the CourseOffering object identifiers are unknown in the target system and so those objects could not be read. |
|
Name: |
readCourseOfferingsFromSavePoint |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.26 and A.2. |
|
Supplied (in) Parameters: |
fromSavePoint:SequenceIdentifier – the reference point from which all of the changed identifier actions are to be read. This is the value in the source system. |
|
Returned (out) Parameters: |
courseOfferingRecordSet:CourseOfferingRecordSet – the set of course offering records. savePoint:SequenceIdentifier – the value of the reference point counter in the target system. |
|
Behavior: |
When the source issues the ‘readCourseOfferingsFromSavePoint’ request the target is charged with reading the objects that have been altered from the defined reference point. If the reference counter in the source is greater than that in the target then an error code and the target value for the reference point are returned. |
|
Notes: |
If no objects have been allocated then the return message will be empty. The enclosed data may result in a long response message. |
Table 3.26 Status codes for the ‘readCourseOfferingsFromSavePoint’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseOffering objects have been read from the target system. |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=partialreadfail’ |
Some of the CourseOfferings object identifiers are unknown in the target system and so those objects could not be read. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=savepointerror’ |
An error has occurred in the processing of the save-point identifier information making it impossible to read the correct objects from the database. |
|
‘CodeMajor=Failure’
‘Severity=Status’ |
The value of the save point reference from the source was later than that of the target system. No identifiers have been returned. The target system savepoint value is returned to the source system for information. |
|
Name: |
replaceCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the replace request. The permitted status codes are defined in Tables 3.27 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseOffering object to be replaced. courseOfferingRecord:OfferingRecord – the CourseOffering data that is to be stored in the object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘replaceCourseOffering’ request the target is charged with writing the supplied information into the identified object. If any part of the write fails e.g. due to partial invalid data then the whole request is rejected and the record is left in its original state. This is a destructive write-over operation of the entire CourseOffering object. This is equivalent to a ‘createCourseOffering’ but for an object that already exists. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. The reference counter for the object is incremented by one in the target system. |
|
Notes: |
The source is responsible for determining the reason of the failure. |
Table 3.27 Status codes for the ‘replaceCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The replace request has been fully and successfully implemented by the target system and the identified CourseOffering object has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system and so the object could not be changed. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the returned data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process the proprietary data model extensions used in the object. |
|
Name: |
updateCourseOffering |
|
Return Function Parameter: |
StatusInfo – the status of the update request. The permitted status codes are defined in Tables 3.28 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseOffering object to be updated. courseOfferingRecord:CourseOfferingRecord – the CourseOffering data that is to be stored in the object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘updateCourseOffering’ request the target is charged with writing the supplied information into the identified record. If any part of the write fails e.g. due to partial invalid data then the whole request is rejected and the record is left in its original state. This is an additive write operation of all the data fields supplied in the update request and fields not supplied remain unchanged. If a field is constrained with a multiplicity of one then the ‘updateCourseOffering’ request acts as a replaceCourseOffering’ request for that field. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. The reference counter for the object is incremented in the target system. |
|
Notes: |
The source is responsible for determining the reason of the failure. |
Table 3.28 Status codes for the ‘updateCourseOffering’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The update request has been fully and successfully implemented by the target system and the identified CourseOffering object has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system and so the object could not be updated. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the returned data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process the proprietary data model extensions used in the object. |
|
Name: |
updateCourseOfferingStatus |
|
Return Function Parameter: |
StatusInfo – the status of the update request. The permitted status codes are defined in Tables 3.29 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseOffering object whose status is to be updated. status:Status – the new Status (form an agreed vocabulary) that is to be assigned to the CourseOffering object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘updateCourseOfferingStatus’ request the target is charged with changing the status of the associated object. This is a destructive write i.e. the previous status is replaced. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. The reference counter for the object is incremented by one in the target system. |
|
Notes: |
None. |
Table 3.29 Status codes for the ‘updateCourseOfferingStatus’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The update status request has been fully and successfully implemented by the target system and the status of the identified CourseOffering object has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseOffering object identifier is unknown in the target system and so the object could not be updated. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
The target system has received and invalid status value. |
|
Name: |
discoverCourseOfferingIds |
|
Return Function Parameter: |
StatusInfo – the status of the discover request. The permitted status codes are defined in Tables 3.30 and A.2. |
|
Supplied (in) Parameters: |
queryObject:QueryObject – this is the query/filter instruction that is to be applied by the target to discover the corresponding CourseOffering objects. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of identifiers of the CourseOffering objects whose content conform to the query/filter conditions. |
|
Behavior: |
When the source issues the ‘discoverCourseOfferingIds’ the target applies the query/filter instructions to the set of CourseOffering objects and returns the set of SourcedIds that uphold the query/filter. If no CourseOffering objects have the required properties the returned data set is empty and the success status code returned. If the target does not understand or cannot apply the requested query/filter then an error status is returned. |
|
Notes: |
The internal structure of this QueryObject is undefined (it is should be treated as a String encoded ‘blob). Later versions of this specification will look at the established best practices for clarification on the use of this operation. |
Table 3.30 Status codes for the ‘discoverCourseOfferingIds’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The discover request has been fully and successfully implemented by the target system and the appropriate CourseOffering identifiers have been retrieved from the target system. |
|
‘CodeMajor=Success’
‘Severity=Status’ |
The discover request has been fully and successfully implemented by the target system and no CourseOffering object identifiers were found. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownquery’ |
The target system cannot understand the query request that has been received i.e. the query/filter language is unknown. |
|
Name: |
changeCourseOfferingIdentifier |
|
Return Function Parameter: |
StatusInfo – the status of the change identifier request. The permitted status codes are given in Tables 3.31 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseOffering object to be changed. newSourcedId:GUID – the new identifier to be allocated to the CourseOffering object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘changeCourseOfferingIdentifier’ request the target is charged with replacing the original SourcedId with the new supplied SourcedId. All membership entries must be similarly changed. All further references to the object must use the new SourcedId otherwise an ‘unknown’ object failure status code is returned. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
The reference pointer value remains unchanged. |
Table 3.31 Status codes for the ‘changeCourseOfferingIdentifier’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The change identifier request has been fully and successfully implemented by the target system and the CourseOffering object SourcedId has been changed on the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the new unique ‘identifier’ to the CourseOffering object as the identifier is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The current CourseOffering SourcedId identifier is unknown in the target system and so the object identifier could not be changed. |
The CourseSectionManager interface class, as shown in Figure 3.3, describes the operations that are permitted on a CourseSections. The interface stereotype indicates that there are no attributes for this class. The set of operations are summarized in Table 3.32.

Figure 3.3 CourseManagementService interface definition.
Table 3.32 Summary of operations for CourseSectionManager.
|
Operation |
Description |
|
createCourseSection |
To request the creation of a populated CourseSection object on the target system where the source is responsible for the allocation of the unique identifier. |
|
createByProxyCourseSection |
To request the creation of a populated CourseSection object on the target system where the target is responsible for the allocation of the unique identifier. |
|
createCourseSectionFromCourseSection |
To create a new CourseSection from the supplied CourseSection for a particular academic session. |
|
deleteCourseSection |
To request the deletion of a CourseSection object. The CourseSection object is deleted along with all of its associated Memberships. |
|
readCourseSection |
To read the full contents of the identified CourseSection object. The target must return all of the data it has for the identified CourseSection object. |
|
readAllCourseSectionIds |
To obtain the set of sourcedIds which have been assigned to CourseSection objects. |
|
readCourseSectionIdsFromSavePoint |
To obtain the set of sourcedIds for CourseSection objects which have been altered since the supplied reference point. The reference point is set as ‘zero’ at creation and incremented after every write operation. |
|
readCourseSections |
To obtain the CourseSection objects for a defined set of identifiers. This results in a single transaction that may require the exchange of a large volume of data in the response message. |
|
readCourseSectionsFromSavePoint |
To obtain the set of CourseSection objects which have been altered since the requested reference point. The reference point is set as ‘zero’ at creation and incremented after every write operation. This results in a single transaction that may require the exchange of a large volume of data in the response message. |
|
replaceCourseSection |
To replace the content of the identified CourseSection object. The target must write the new data into the CourseSection object. This is a destructive write-over of all of the original information. |
|
updateCourseSection |
To write new content into the identified CourseSection object. The target must write the new data into the CourseSection object. This is an additive operation. |
|
updateCourseSectionStatus |
To change the status of the identified CourseSection. |
|
discoverCourseSectionIds |
To obtain the set of SourcedIds for CourseSection objects whose properties agree with those defined in the query/filter. |
|
changeCourseSectionIdentifier |
To change the SourcedId of the CourseSection record. The completion of this operation will result in later actions using the original SourcedId reporting an unknown identifier status. |
|
Name: |
createCourseSection |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.33 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the sourcedId allocated by the source system. This is the identifier that must also be assigned within the target system. courseSectionRecord:CourseSectionRecord – the CourseSection data that is to be stored in the new object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘createCourseSection’ request the target is instructed to create the populated CourseSection object and to allocate that structure the SourcedId passed by the source. If the supplied SourcedId has already been allocated to another object then the request is rejected and the appropriate failure code is returned. The reference point identifier is set to zero for the ‘person’ object in both the source and target. |
|
Notes: |
This request contains the initial content for the CourseSection record. More content can be added/replaced using the ‘updateCourseSection’ and/or ‘replaceCourseSection’ requests. |
Table 3.33 Status codes for the ‘createCourseSection’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the CourseSection object has been created with the identifier supplied by the source. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the required unique SourcedId to the CourseSection object as it is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseSection object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the supplied data was detected as invalid by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data record e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
createByProxyCourseSection |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.34 and A.2. |
|
Supplied (in) Parameters: |
courseSectionRecord:CourseSectionRecord – the CourseSection data that is to be stored in the new object. |
|
Returned (out) Parameters: |
sourcedId:GUID – the identifier allocated by the target to the newly created CourseSection object. |
|
Behavior: |
When the source issues the ‘createByProxyCourseSection’ request the target is instructed to create the populated CourseSection object and to allocate that record a unique SourcedId. The reference point identifier is set to zero for the CourseSection object in both the source and target. |
|
Notes: |
This request contains the initial content for the CourseSection object. More content can be added/replaced using the ‘updateCourseSection’ and/or ‘replaceCourseSection’ requests. |
Table 3.34 Status codes for the ‘createByProxyCourseSection’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the CourseSection object has been created with an identifier supplied by the target. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocfail’ |
The target could not allocate a unique ‘identifier’ to the CourseSection object because there are no more spare identifiers available. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseSection object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the supplied data was detected as invalid by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
‘CodeMajor=Success’ ‘Severity=Warning’ ‘CodeMinor=partialdatastorage’ |
The target has only stored a subset of the sent data object e.g. only the mandatory parts. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The target cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
createCourseSectionFromCourseSection |
|
Return Function Parameter: |
StatusInfo – the status of the creation request. The permitted status codes are defined in Tables 3.35 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the SourcedId for the CourseSection to be cloned. academicSession:AcademicSession – the academic session (from a pre-defined vocabulary) of the new CourseSection object. newSourcedId:GUID – the sourcedId to be allocated to the newly created CourseSection object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘createCourseSectionFromCourseSection’ request the target is instructed to find the source CourseSection object and to create an equivalent CourseSection but with the new SourcedId and academic session. The reference point identifier is set to zero for the CourseSection object in both the source and target. |
|
Notes: |
An invalid status code will be returned if the new SourcedId has already been allocated or the academic session is incorrect. |
Table 3.35 Status codes for the ‘createCourseSectionFromCourseSection’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The creation request has been fully and successfully implemented by the target system and the new CourseSection object has been created with a unique identifier. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseSection object identifier is unknown in the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=idallocinusefail’ |
The target could not allocate the required unique ‘identifier’ to the new CourseSection object as it is already in use. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=overflowfail’ |
The target could not create the CourseSection object due to lack of target allocation memory. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
An invalid academic session value has been received by the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the target system. |
|
Name: |
deleteCourseSection |
|
Return Function Parameter: |
StatusInfo – the status of the delete request. The permitted status codes are defined in Tables 3.36 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier to be used by the target to identify the CourseSection object. |
|
Returned (out) Parameters: |
None. |
|
Behavior: |
When the source issues the ‘deleteCourseSection’ request the target is instructed to delete the identified CourseSection object and to remove the reference to the CourseSection from any of the related CourseOffering and Membership objects. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
Deletion of the CourseSection object does not necessarily result in the destruction of the data within the server. The true state of the data in the target is unknown. |
Table 3.36 Status codes for the ‘deleteCourseSection’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The deletion request has been fully and successfully implemented by the target system and the CourseSection object has been deleted. The corresponding Membership records have also been deleted. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseSection object identifier is unknown in the target system and so the object could not be deleted. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor= deletefailure’ |
The target system has not been able to delete the identified CourseSection object. |
|
Name: |
readCourseSection |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.37 and A.2. |
|
Supplied (in) Parameters: |
sourcedId:GUID – the identifier of the CourseSection object to be read. |
|
Returned (out) Parameters: |
courseSectionRecord:CourseSectionRecord – the CourseSection data that is read from the object. |
|
Behavior: |
When the source issues the ‘readCourseSection’ request the target is charged with retrieving the identified object from its database and returning this data to the source. The target is responsible for ensuring that the object contains valid data. If the object identified by the supplied SourcedId cannot be located then the request is rejected and the appropriate failure code is returned. |
|
Notes: |
The returned CourseSection object can only be trusted if the corresponding status code is ‘success’. |
Table 3.37 Status codes for the ‘readCourseSection’ operation.
|
Status Code |
Explanation of the Cause of the Code |
|
‘CodeMajor=Success’ ‘Severity=Status’ ‘CodeMinor=fullsuccess’ |
The read request has been fully and successfully implemented by the target system and the identified CourseSection object has been read from the target system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownobject’ |
The CourseSection object identifier is unknown in the target system and so the object could not be read. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=targetreadfailure’ |
The target system has detected an error in the stored CourseSection object and so cannot return the data. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=invaliddata’ |
Part or all of the returned data was detected as invalid by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=incompletedata’ |
Some mandatory part of the data has been detected as missing by the source system. |
|
‘CodeMajor=Failure’ ‘Severity=Status’ ‘CodeMinor=unknownextension’ |
The source cannot process and store the proprietary data model extensions used in the object. |
|
Name: |
readAllCourseSectionIds |
|
Return Function Parameter: |
StatusInfo – the status of the read request. The permitted status codes are defined in Tables 3.38 and A.2. |
|
Supplied (in) Parameters: |
None. |
|
Returned (out) Parameters: |
sourcedIdSet:GUIDSet – the set of SourcedIds for all of the CourseSection objects in the target’s CourseSection database. |
|
Behavior: |