Pearson
Always Learning

Overview

Creates an empty course shell using the settings from another course you're copying. No content is copied. The source course sections must already exist prior to calling this operation.

Note: Use Create an Empty Course to create a new, empty course section.To copy the content of a course section into an empty course, use Copy Content into Empty Course. To copy the structure and content of an existing course section, use Copy a Course with its Content.

Accessing the Enterprise Course Service

LearningStudio requires a username and password to access the API web services. Your Client Services representative should have provided you with the necessary login credentials. These credentials are included in the SOAP header.

Element Description
Operation Name CopyCourseSection
End-point URL https://ccws-services.ecollege.com/EnterpriseServices/v2.2/EnterpriseCourse.svc
WSDL Compressed zip file of WSDL files
WS-Address http://ccws-services.ecollege.com/EnterpriseServices/v2.2/EnterpriseCourse.svc
Learn more about WS-Addressing in Terms & Courses APIs

Request Header

All requests must include a WS-Security SOAP Header with the username and password for your campus' SIS system. Your SOAP library is likely capable of creating this header for you. For more information on the requirements, see SOAP API Security.

Below is a sample createCourseSection header.

<header xmlns:wsa="http://www.w3.org/2005/08/addressing"><security soap:mustunderstand="true" xmlns:wsse="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><usernametoken wsu:id="UsernameToken-1" xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><username>{USERNAME}</username><password type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-usernametoken-profile-1.0#PasswordText">{PLAINTEXT_PASSWORD}</password><nonce encodingtype="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soapmessage-security-1.0#Base64Binary">{RANDOM_VALUE}</nonce><created>{UTC_TIMESTAMP}</created></usernametoken></security><action>{ACTION_DEFINED_BY_WSDL}</action><to>{ADDRESSING_URL}</to></header>

Request Body

CopyCourseContent request schema elements:

The elements of the CopyCourseContent request XML request body are detailed in the following table. The top level element is always CopyCourseSection, and all these elements are children of the top node.



Element Description Required?
courseSectionCopyRequest Container for course section information. Required
courseSectionCopyRequest
    ↳ClientString
LearningStudio Client String for the campus / Education Partner (client). For Strata University, this would be strata. Required
courseSectionCopyRequest
    ↳SourceCourseIdentifier
Container for your system's course identifier for the course you're copying. Required
courseSectionCopyRequest
    ↳SourceCourseIdentifier
            ↳ID

The identifier for the course section you're copying. You will typically use your system's identifier for this course section you're copying. Call Numbers are generally recommended for these kinds of fields, rather than Sourced ID, because you can use the Course APIs or AdminPages to look up call numbers. However if you maintain your own record of Sourced IDs for your courses instead of call numbers, then you can use that identifier here. (Sourced ID is only used by LearningStudio behind the scenes and isn't retrievable in the UI or APIs.)

As of version 2.2 of this service, you can now use the LearningStudio Course ID for the course you're copying, for example: 01234567.

Required
courseSectionCopyRequest
    ↳SourceCourseIdentifier
            ↳MappingType
How the course section to be copied is identified.
  • CallNumber
  • SourcedID
  • CourseID (Version 2.2 only)
Required
courseSectionCopyRequest
    ↳DestinationClientSortString
LearningStudio node sort string where the course you are creating from a copy will reside. It can be the same as the SourceClientSortString. For example, if this is in the business school node at Strata University, this value may be strata.business. (in Client Sort Strings, always include the final period). Required
courseSectionCopyRequest
    ↳DestinationTermIdentifier
Container for the information that identifies the term in which you are creating this course. Required
courseSectionCopyRequest
    ↳DestinationTermIdentifier
            ↳ID

External identifier for the term in which to place the new course section. This can be either the LearningStudio Term ID returned Create a Term, or the Sourced ID you used when creating the term (i.e., the value in the standardTermRequest\ID\ID element).

If you want to use the LearningStudio Term ID, prefix it with ECLG:, for example: ECLG:01234567.

Required
courseSectionCopyRequest
    ↳DestinationTermIdentifier
            ↳MappingType
How the destination term is identified.
  • TermID - If using the LearningStudio Term ID in the previous element.
  • SourcedID - If using your own identifier in the previous element.
Required
courseSectionCopyRequest
    ↳DestinationCourseIdentifiers
            ↳CourseIdentifier
A two-leveled container for your system's course identifier for this course section. Note, you need to nest CourseIdentifier inside DestinationCourseIdentifiers, and then the elements in the next rows under these elements. See the example for clarity. Required
courseSectionCopyRequest
    ↳DestinationCourseIdentifiers
            ↳CourseIdentifier
                  ↳ID

Your system's identifier for this course section. This must be unique for each new course section or copy of a course. We recommend using Call Number for this and the next element - call numbers can be easily managed via Admin Pages and can be used in the LearningStudio Course APIs. Sourced ID is only used by LearningStudio behind the scenes and isn't retrievable in the UI or Course APIs.

Important: When using a call number, do not include dashes (–). Call numbers with dashes can't be used with the RESTful Course APIs.

Required
courseSectionCopyRequest
    ↳DestinationCourseIdentifiers
            ↳CourseIdentifier
                  ↳MappingType
How the new course section is identified.
  • CallNumber (Recommended)
  • SourcedID
Required
courseSectionCopyRequest
    ↳DestinationCourseIdentifier
            ↳CourseIdentifier
                  ↳CourseCallNumbers
                              ↳CourseCallNumbers
A two-leveled container for any additional call numbers you wish to assign to this course. Note, you need to nest CourseCallNumber inside CourseCallNumbers, and then nest the element in the next row under these elements. See the example for clarity. This functionality was added in version 2.2 of this service. Optional
courseSectionCopyRequest
    ↳DestinationCourseIdentifier
            ↳CourseIdentifier
                  ↳CourseCallNumbers
                          ↳CourseCallNumber
                                    ↳ClientCallNumber
The additional call numbers for this course. Repeat this element under CourseCallNumber for each additional call number. Optional
courseSectionCopyRequest
    ↳CourseCallNumbersExpireOn
Date the call number for the new course section expires. The max date this value can be set to is 6/6/2079. However, to instead set this value to NULL, simply omit this element from the request. Optional
courseSectionCopyRequest
    ↳DestinationSectionTitle
Title for the new course section. The source course title is used if this value is not provided. Optional
courseSectionCopyRequest
    ↳DestinationSectionDescription
Description for the new course section. The source course description is used if this value is not provided. Optional
courseSectionCopyRequest
    ↳DestinationDisplayCourseCode
Display course code for the new course section, e.g. "MATH-101". The source course section display course code is used if this value is not provided. Optional
courseSectionCopyRequest
    ↳DestinationSectionNumber
Section number for the new course section. Optional
courseSectionCopyRequest
    ↳IsACrossList
Boolean that flags the new course section as being crossed listed or not. Optional
courseSectionCopyRequest
    ↳DestinationTermID
This is a legacy element from a retired workflow, and it has nothing to do with the DestinationTermIdentifier element above. Always set this value to 0 (zero). Required

Request Body Sample

Here is a text view of the body from a sample CopyCourseSection request message:

<copycoursesection><coursesectioncopyrequest><clientstring>gbtestc</clientstring><coursecallnumbersexpireon>2050-12-31</coursecallnumbersexpireon><destinationclientsortstring>gbtestc.two.</destinationclientsortstring><destinationcourseidentifiers><courseidentifier><id>ACCT4480_CCWSv2.1Doc</id><mappingtype>CallNumber</mappingtype><coursecallnumbers><coursecallnumber><clientcallnumber>ACCT4430_Fall12Accelerated_Bus2</clientcallnumber><clientcallnumber>ACCT4430_Fall12Accelerated_Bus3A</clientcallnumber></coursecallnumber></coursecallnumbers></courseidentifier></destinationcourseidentifiers><destinationdisplaycoursecode>ACCT4480</destinationdisplaycoursecode><destinationsectiondescription>via Course Service v2.1</destinationsectiondescription><destinationsectionnumber>5</destinationsectionnumber><destinationsectiontitle>Advanced Business Taxation</destinationsectiontitle><destinationtermid>0</destinationtermid><destinationtermidentifier><id>ECLG: 91042</id><mappingtype>TermID</mappingtype></destinationtermidentifier><isacrosslist>0</isacrosslist><sourcecourseidentifier><id>ACCT4480_IntegrationTestTerm</id><mappingtype>CallNumber</mappingtype></sourcecourseidentifier></coursesectioncopyrequest></copycoursesection>

Response

CopyCourseSection response schema overview:

Element Description
CopyCourseSectionResponse Top level element
CopyCourseSectionResponse
    ↳CopyCourseSectionResult
Container for call result
CopyCourseSectionResponse
    ↳CopyCourseSectionResult
            ↳ID
Container for identifying destination.
CopyCourseSectionResponse
    ↳CopyCourseSectionResult
            ↳ID
                   ↳ID
External identifier for the destination section.
CopyCourseSectionResponse
    ↳CopyCourseSectionResult
            ↳ID
                   ↳MappingType
How the new section is identified. Possible values are:

  • CallNumber
  • SourcedID
CopyCourseSectionResponse
    ↳CopyCourseSectionResult
            ↳JobStatusID
Identifies the system job for the call.
CopyCourseSectionResponse
    ↳CopyCourseSectionResult
            ↳Status
The success, failure or other status of the call.

Result Body Sample

Here is a text view of the body from a sample CopyCourseSection response message:

<copycoursesectionresponse xmlns="urn:eclg:coursecopy:enterprisecourse"><copycoursesectionresult xmlns:b="http://CCWSServices.eCollege.com/EnterpriseServices/Types/v2.1/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><id><id>ACCT4480_IntegrationTestTerm</id><mappingtype>CallNumber</mappingtype></id><jobstatusid>n/a</jobstatusid><status>Ok</status></copycoursesectionresult></copycoursesectionresponse>

2694 reads
Always Learning
Pearson