Pearson
Always Learning

Overview

Copies the structure and content of an existing course section into a new course section.

Note: If you prefer to create the new course shell in a separate request, use Create an Empty Course to create a new, empty course section. To copy the content of a course section, use Copy Content into Empty Course. Alternatively, to create an empty template for a course section, use Copy Course without Content.

Accessing the Enterprise Course Service

LearningStudio requires a username and password to access the API web services. Your Strategic Customer Operations (SCO) team should have provided you with the necessary credentials. These credentials are included in the SOAP header.

Element Description
Operation Name CopyCourseSectionAndContent
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

Tip: If you are programming in .NET, use WCF 4.0 for communicating with Terms & Courses services.

Request Header

All requests must include a WS-Security SOAP Header with the username and password for your LearningStudio campus. 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 CopyCourseSectionAndContent 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

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


Element Description Required?
copyCourseRequest Container for course section and content information. Required
copyCourseRequest
    ↳ClientString
LearningStudio Client String for the campus / Education Partner (client). For Strata University, this would be strata. Required
copyCourseRequest
    ↳SourceClientSortString
LearningStudio node sort string where the course you're copying resides. 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
copyCourseRequest
    ↳SourceCourseIdentifier
Container for your system's course identifier for the course you're copying. Required
copyCourseRequest
    ↳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
copyCourseRequest
    ↳SourceCourseIdentifier
            ↳MappingType
How the course section to be copied is identified.
  • CallNumber
  • SourcedID
  • CourseID (version 2.2 only)
Required
copyCourseRequest
    ↳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
copyCourseRequest
    ↳DestinationTermIdentifier
Container for the information that identifies the term in which you are creating this course. Required
copyCourseRequest
    ↳DestinationTermIdentifier
            ↳ID

External identifier for the term in which to place the new course section. This can be either the LearningStudio Term ID returned from 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
copyCourseRequest
    ↳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
copyCourseRequest
    ↳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
copyCourseRequest
    ↳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
copyCourseRequest
    ↳DestinationCourseIdentifiers
            ↳CourseIdentifier
                  ↳MappingType
How the new course section is identified.
  • CallNumber (Recommended)
  • SourcedID
Required
copyCourseRequest
    ↳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
copyCourseRequest
    ↳DestinationCourseIdentifier
            ↳CourseIdentifier
                  ↳CourseCallNumbers
                          ↳CourseCallNumber
                                    ↳ClientCallNumber
The additional call numbers for this course. Repeat this element under CourseCallNumber for each additional call number. Optional
copyCourseRequest
    ↳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
copyCourseRequest
    ↳DestinationSectionTitle
Title for the new course section. The source course title is used if this value is not provided. Optional
copyCourseRequest
    ↳DestinationSectionDescription
Description for the new course section. The source course description is used if this value is not provided. Optional
copyCourseRequest
    ↳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
copyCourseRequest
    ↳DestinationSectionNumber
Section number for the new course section. If used, the value must be numeric and between 0 - 255. Optional
copyCourseRequest
    ↳CopyContentOptions
The only valid value for this element is All. Required
copyCourseRequest
    ↳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 copyCourseSectionAndContent request message:

<copycoursesectionandcontent><copycourserequest><clientstring>gbtestc</clientstring><copycontentoptions>All</copycontentoptions><coursecallnumbersexpireon>2050-12-31</coursecallnumbersexpireon><destinationclientsortstring>gbtestc.two.</destinationclientsortstring><destinationcourseidentifiers><courseidentifier><id>ACCT4480_CCWSv2.2DocFull</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.2</destinationsectiondescription><destinationsectionnumber>10</destinationsectionnumber><destinationsectiontitle>Advanced Business Taxation</destinationsectiontitle><destinationtermid>0</destinationtermid><destinationtermidentifier><id>gbtestc:CCWSv2.2Doc</id><mappingtype>SourcedID</mappingtype></destinationtermidentifier><sourceclientsortstring>gbtestc.two.</sourceclientsortstring><sourcecourseidentifier><id>ACCT4480_IntegrationTestTerm</id><mappingtype>CallNumber</mappingtype></sourcecourseidentifier></copycourserequest></copycoursesectionandcontent>

Response

CopyCourseSectionAndContentResponse response schema overview:

  • CallNumber
  • SourcedID
Element Description
CopyCourseSectionAndContentResponse Top level element
CopyCourseSectionAndContentResponse
    ↳CopyCourseSectionandContentResult
Container for call result
CopyCourseSectionAndContentResponse
    ↳CopyCourseSectionandContentResult
            ↳ID
Container for identifying destination. See Course and Term ID Mapping.
CopyCourseSectionAndContentResponse
    ↳CopyCourseSectionandContentResult
            ↳ID
                  ↳ID
External identifier for the destination section.
CopyCourseSectionAndContentResponse
    ↳CopyCourseSectionandContentResult
            ↳ID
                  ↳MappingType
How the new section is identified. Possible values are:
CopyCourseSectionAndContentResponse
    ↳CopyCourseSectionandContentResult
            ↳JobStatusID
Identifies the system job for the call.
CopyCourseSectionAndContentResponse
    ↳CopyCourseSectionandContentResult
            ↳Status
The success, failure or other status of the call.


Response Body Sample

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

<copycoursesectionandcontentresponse xmlns="urn:eclg:coursecopy:enterprisecourse"><copycoursesectionandcontentresult 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>1397436</jobstatusid><status>Ok</status></copycoursesectionandcontentresult></copycoursesectionandcontentresponse>

2068 reads
Always Learning
Pearson