Read.Courses

This method allows you to retrieve course properties from courses you have access to. If organisation level access is used, only courses belonging to the selected organisations will be returned. You can choose to read all courses, courses belonging to a specific organisation, courses belonging to a specific term or individual courses. Additionally it is possible to include all course properties or just a basic set of properties. Please note that if you choose to include all properties the performance impact on the server is higher, so only request these properties if you actually need them.

Input parameters

Name

Description

Type

Mandatory/Optional

SiteId

Site where action will be executed.

Integer

Optional

VendorId

VendorId. Currently not used.

Text

Optional

PageIndex

Index of the requested page.

Integer

Optional (defaults to 0)

PageSize

Size of the requested page.

Integer

Optional (defaults to 100)

Id

Identifier of an entity to filter the result set on. Refer to IdType to the impact of this setting.

Integer

Optional if IdType = unspecified

Mandatory if IdType ~= unspecified

IdType

The type of the identifier specified by Id.

  • If IdType is CourseId or CourseSyncKey the result set will be limited to the individual course identified by Id

  • If IdType is OrganisationSyncKey the result set will be limited to all courses belonging to the organisation identified by Id

  • If IdType is TermSyncKey the result set will be limited to all courses connected to the term identified by Id

  • If IdType is GroupHierarchyID or GroupHierarchySyncKey the result set will be limited to all courses a hierarchy group identified by Id is connected to.

NOTE1: If IdType is CourseId or CourseSyncKey the service will return an error if the specified course is deleted. If IdType is any other value the result set will not include any deleted or archived courses.

NOTE2: If the Id parameter is passed, the IdType cannot be Unspecified.

NOTE3: Only courses connected to organisations you have access to will be returned.

Enum of:

  • Unspecified

  • CourseId

  • CourseSyncKey

  • OrganisationSyncKey

  • TermSyncKey

  • GroupHierarchyID

  • GroupHierarchySyncKey

Optional (defaults to unspecified)

IncludeAdditionalData

If set to true, the result set will contain all course properties. If set to false, the AdditionalData output parameter will always be null.

Boolean

Optional (defaults to false)

Output parameters

Name

Description

Type

CurrentPageIndex

The index of the current page.

Integer

PageSize

The size of the current page.

Integer

Total

The total number of items which meet the input parameters.

Integer

Courses

Array of courses containing one row for each course in the page.

Course[]

  • CourseId

Identifier of the course.

Integer

  • CourseSyncKey

SyncKey of the course.

String

  • CourseCode

Course code.

String

  • CourseTitle

Course title.

String

  • OrganisationId

Identifier of the organisation.

Integer

  • OrganisationName

Organisation title.

String

  • OrganisationSyncKey

SyncKey of the organisation.

String

  • AdditionalData

Node containing all the additional data. This is only populated if the input parameter IncludeAdditionalData is set to true.

Custom

  • AdditionalData.AllowAICC

Set to true if the course setting for AICC access is enabled.

Boolean

  • AdditionalData.AllowCourseCatalogue

Set to true if any of the course catalogues are enabled.

Boolean

  • AdditionalData.AllowWithdrawal

Set to true if students can withdraw themselves from the course.

Boolean

  • AdditionalData.CourseCatalogueFreeSeats

The number of free seats in case the course catalogue is enabled.

Boolean

  • AdditionalData.CourseCatalogueRegistrationSetting

The registration type in case the course catalogue is enabled.

Enum of:

  • Supervised

  • Free

  • Password

  • AdditionalData.CourseCredits

The course credits.

String

  • AdditionalData.Created

The date at which the course was created.

DateTime

  • AdditionalData.CreatedByPersonId

The PersonId of the course creator.

Integer

  • AdditionalData.IsEarlyLearner

Specifies if this course is an early learner course or a normal course.

Boolean

  • AdditionalData.LastAccessed

The date at which this course was last accessed by a course participant.

DateTime

  • AdditionalData.LastUpdated

The date at which this course was last updated.

DateTime

  • AdditionalData.TermIds

Array containing the associated term identifiers.

Integer[]

  • AdditionalData.CourseFunctions

Array containing all course functions.

CourseFunction[]

  • AdditionalData.CourseFunctions.FunctionActive

Specifies if the course function is active or not.

Boolean

  • AdditionalData.CourseFunctions.FunctionName

The name of the course function (in English).

String

  • AdditionalData.CourseFunctions.ShareAsTemplate

Array containing course template information

ShareAsTemplate[]

ShareAsTemplate

Name

Description

Type

Scope

Scope

Text

  • NotShared

  • School

  • Site

OrganisationSyncKey

SyncKey of the organisation the template is shared with, if Scope = School or Site

Text

Example #1 - Unfiltered request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:its="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities" xmlns:its1="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities.ReadCourses">
<soapenv:Header/>
<soapenv:Body>
<tem:ReadCourses>
<tem:request></tem:request>
</tem:ReadCourses>
</soapenv:Body>
</soapenv:Envelope>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2013-10-22T07:37:15.075Z</u:Created>
<u:Expires>2013-10-22T07:42:15.075Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<ReadCoursesResponse xmlns="http://tempuri.org/">
<ReadCoursesResult xmlns:a="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities.ReadCourses" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CurrentPageIndex xmlns="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities">0</CurrentPageIndex>
<PageSize xmlns="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities">100</PageSize>
<Total xmlns="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities">4</Total>
<a:Courses>
<a:Course>
<a:AdditionalData i:nil="true"/>
<a:CourseCode>TestCourse</a:CourseCode>
<a:CourseId>1</a:CourseId>
<a:CourseSyncKey>TestCourse</a:CourseSyncKey>
<a:CourseTitle>TestCourse</a:CourseTitle>
<a:OrganisationId>1</a:OrganisationId>
<a:OrganisationName>IMS</a:OrganisationName>
<a:OrganisationSyncKey>autogenerated_IMS_59969085</a:OrganisationSyncKey>
</a:Course>
<a:Course>
<a:AdditionalData i:nil="true"/>
<a:CourseCode>TestCourse3</a:CourseCode>
<a:CourseId>2</a:CourseId>
<a:CourseSyncKey>TestCourse3</a:CourseSyncKey>
<a:CourseTitle>TestCourse3</a:CourseTitle>
<a:OrganisationId>1</a:OrganisationId>
<a:OrganisationName>IMS</a:OrganisationName>
<a:OrganisationSyncKey>autogenerated_IMS_59969085</a:OrganisationSyncKey>
</a:Course>
<a:Course>
<a:AdditionalData i:nil="true"/>
<a:CourseCode/>
<a:CourseId>3</a:CourseId>
<a:CourseSyncKey/>
<a:CourseTitle>TestLuuk4</a:CourseTitle>
<a:OrganisationId>1</a:OrganisationId>
<a:OrganisationName>IMS</a:OrganisationName>
<a:OrganisationSyncKey>autogenerated_IMS_59969085</a:OrganisationSyncKey>
</a:Course>
<a:Course>
<a:AdditionalData i:nil="true"/>
<a:CourseCode>synctest</a:CourseCode>
<a:CourseId>4</a:CourseId>
<a:CourseSyncKey/>
<a:CourseTitle>SyncTest</a:CourseTitle>
<a:OrganisationId>1</a:OrganisationId>
<a:OrganisationName>IMS</a:OrganisationName>
<a:OrganisationSyncKey>autogenerated_IMS_59969085</a:OrganisationSyncKey>
</a:Course>
</a:Courses>
</ReadCoursesResult>
</ReadCoursesResponse>
</s:Body>
</s:Envelope>

Example #2 - Request filtered on OrganisationSyncKey and max response size of 2

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:its="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities" xmlns:its1="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities.ReadCourses">
<soapenv:Header/>
<soapenv:Body>
<tem:ReadCourses>
<tem:request>
<its:PageIndex>0</its:PageIndex>
<its:PageSize>2</its:PageSize>
<its1:Id>autogenerated_IMS_59969085</its1:Id>
<its1:IdType>OrganisationSyncKey</its1:IdType>
<its1:IncludeAdditionalData>true</its1:IncludeAdditionalData>
</tem:request>
</tem:ReadCourses>
</soapenv:Body>
</soapenv:Envelope>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2013-10-22T07:45:19.875Z</u:Created>
<u:Expires>2013-10-22T07:50:19.875Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<ReadCoursesResponse xmlns="http://tempuri.org/">
<ReadCoursesResult xmlns:a="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities.ReadCourses" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CurrentPageIndex xmlns="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities">0</CurrentPageIndex>
<PageSize xmlns="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities">2</PageSize>
<Total xmlns="http://schemas.datacontract.org/2004/07/Itslearning.Integration.ContentImport.Model.ServiceEntities">4</Total>
<a:Courses>
<a:Course>
<a:AdditionalData>
<a:AllowAICC>false</a:AllowAICC>
<a:AllowCourseCatalogue>false</a:AllowCourseCatalogue>
<a:AllowWithdrawal>false</a:AllowWithdrawal>
<a:CourseCatalogueFreeSeats i:nil="true"/>
<a:CourseCatalogueRegistrationSetting i:nil="true"/>
<a:CourseCredits/>
<a:CourseFunctions>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Show Links</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Show Participants</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Show Status and follow-up</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Use Calendar</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Use Assessment Record</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Show Bulletin Board</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Planner</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Use Attendance Reporting</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Use Files In Course</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Portfolio Assessment</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Learning Objectives</a:FunctionName>
</a:CourseFunction>
</a:CourseFunctions>
<a:Created>2013-08-28T11:25:56</a:Created>
<a:CreatedByPersonId>1</a:CreatedByPersonId>
<a:IsEarlyLearner>false</a:IsEarlyLearner>
<a:LastAccessed>2013-10-21T08:56:32</a:LastAccessed>
<a:LastUpdated>2013-10-21T08:56:31</a:LastUpdated>
<a:ShareAsTemplate>
<a:OrganisationSyncKey i:nil="true"/>
<a:Scope>NotShared</a:Scope>
</a:ShareAsTemplate>
<a:TermIds xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<b:int>1</b:int>
</a:TermIds>
</a:AdditionalData>
<a:CourseCode>TestCourse</a:CourseCode>
<a:CourseId>1</a:CourseId>
<a:CourseSyncKey>TestCourse</a:CourseSyncKey>
<a:CourseTitle>TestCourse</a:CourseTitle>
<a:OrganisationId>1</a:OrganisationId>
<a:OrganisationName>IMS</a:OrganisationName>
<a:OrganisationSyncKey>autogenerated_IMS_59969085</a:OrganisationSyncKey>
</a:Course>
<a:Course>
<a:AdditionalData>
<a:AllowAICC>false</a:AllowAICC>
<a:AllowCourseCatalogue>false</a:AllowCourseCatalogue>
<a:AllowWithdrawal>false</a:AllowWithdrawal>
<a:CourseCatalogueFreeSeats i:nil="true"/>
<a:CourseCatalogueRegistrationSetting i:nil="true"/>
<a:CourseCredits/>
<a:CourseFunctions>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Show Links</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Show Participants</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Show Status and follow-up</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Use Calendar</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Use Assessment Record</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Show Bulletin Board</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Planner</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>true</a:FunctionActive>
<a:FunctionName>Use Attendance Reporting</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Use Files In Course</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Portfolio Assessment</a:FunctionName>
</a:CourseFunction>
<a:CourseFunction>
<a:FunctionActive>false</a:FunctionActive>
<a:FunctionName>Learning Objectives</a:FunctionName>
</a:CourseFunction>
</a:CourseFunctions>
<a:Created>2013-08-30T10:42:35</a:Created>
<a:CreatedByPersonId>1</a:CreatedByPersonId>
<a:IsEarlyLearner>false</a:IsEarlyLearner>
<a:LastAccessed i:nil="true"/>
<a:LastUpdated>2013-08-30T10:42:35</a:LastUpdated>
<a:ShareAsTemplate>
<a:OrganisationSyncKey>root</a:OrganisationSyncKey>
<a:Scope>Site</a:Scope>
</a:ShareAsTemplate>
<a:TermIds xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
</a:AdditionalData>
<a:CourseCode>TestCourse3</a:CourseCode>
<a:CourseId>2</a:CourseId>
<a:CourseSyncKey>TestCourse3</a:CourseSyncKey>
<a:CourseTitle>TestCourse3</a:CourseTitle>
<a:OrganisationId>1</a:OrganisationId>
<a:OrganisationName>IMS</a:OrganisationName>
<a:OrganisationSyncKey>autogenerated_IMS_59969085</a:OrganisationSyncKey>
</a:Course>
</a:Courses>
</ReadCoursesResult>
</ReadCoursesResponse>
</s:Body>
</s:Envelope>

Error states

If you request an individual course, the following cases will return an error:

  • The requested course does not exist.

  • The requested course has been deleted.

  • The requested course exists, but belongs to an organisation the requester does not have access to.

If you request all courses from an organisation, the following cases will return an error:

  • The requested organisation does not exist.

  • The requester has no access to the specified organisation.

If you request all courses from a term, the following cases will return an error:

  • The requested term does not exist.

  • The requested term has been deleted.

Additionally, for all requests, the following cases will return an error:

  • IdType is other than Unspecified, but no Id is specified.

  • Id is passed, but no IdType is specified.