The ITranslateCourseOffering interface is used to translate LIS Course Offerings into Desire2Learn Course Offerings.
The interface implementation is D2L.IM.IPSIS.LIS.CMS.ITranslateCourseOffering.
The following configuration list provides a starting point for any LIS implementation:
IPSIS, Template configuration
- CourseOfferingRequestBaseTranslator (Sort Order = 10)
- CourseOfferingRequestNameTitleRequiredTranslator (Sort Order = 20)
- CourseOfferingRequestTemplateRequiredTranslator (Sort Order = 30)
- CourseOfferingRequestSemesterOptionalTranslator (Sort Order = 40)
- CourseOfferingRequestDepOrgNameOptionalTranslator (Sort Order = 50)
- CourseOfferingRequestStartDateEndDateOptionalTranslator (Sort Order = 60)
- CourseOfferingRequestStatusOptionalTranslator (Sort Order = 70)
CourseOfferingRequestBaseTranslator
The CourseOfferingRequestBaseTranslator obtains the unique identifier of the course offering from the request.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestBaseTranslator
Expected behavior
The translator performs the following tasks:
- Sets the OrgUnitCode and OrgUnitName to the value provided in the sourcedGUID.sourcedid.
- Processing continues to the next translator.
Entity
Property
|
Translation Result Object
|
LIS Request Mapping
|
Code
|
result.Entity.Code
|
request.sourcedGUID.sourcedId
|
Name
|
result.Entity.Name
|
request.sourcedGUID.sourcedId
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- An LIS Response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration notes
This translator (or an alternative Base translator) must be configured first in the list of translators.
CourseOfferingRequestNameTitleRequiredTranslator
The CourseOfferingRequestNameTitleRequiredTranslator sets the course name based on the Title in the request, and fails if the title is missing.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestNameTitleRequiredTranslator
Expected behavior
The handler performs the following tasks:
- Updates the OrgUnitName to contain the value from the title string in the request, and fails if one is not provided.
- Processing continues to the next translator.
Entity
Property
|
Translation Result Object
|
LIS Request Mapping
|
Name
|
result.Entity.Name
|
request.courseOffering.title.textString
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- An LIS Response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration notes
This translator can be positioned anywhere after the Base translator
CourseOfferingRequestSemesterOptionalTranslator
The CourseOfferingRequestSemesterOptionalTranslator sets the parent semester if one was provided.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestSemesterOptionalTranslator
Expected behavior
The translator performs the following tasks:
- Adds the Semester Parent Mapping if it was provided.
- Processing continues to the next translator.
ParentSisId
Property
|
Translation Result Object
|
LIS Request Mapping
|
Parent SemesterId
|
result.ParentSisIds contains
|
request.courseOffering.academicSession.textString
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- A LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata
Configuration notes
This translator can be positioned anywhere after the Base translator.
CourseOfferingRequestDepOrgNameOptionalTranslator
The CourseOfferingRequestDepOrgNameOptionalTranslator sets the parent department from the orgName if one was provided.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestDepOrgNameOptionalTranslator
Expected behavior
The handler performs the following tasks:
- Adds the Department Parent Mapping if one was provided.
- Processing continues to the next translator.
ParentSisId
Property
|
Translation Result Object
|
LIS Request Mapping
|
Parent Department
|
result.ParentSisIds contains
|
request.courseOffering.org.orgName.textString
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- An LIS Response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration notes
This translator can be positioned anywhere after the Base translator.
CourseOfferingRequestStartDateEndDateOptionalTranslator
The CourseOfferingRequestStartDateEndDateOptionalTranslator maps the start and end dates if they are provided.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestStartDateEndDateOptionalTranslator
Expected behavior
The translator performs the following tasks:
- Sets the start and end dates of the OrgUnit to contain the values from the first timeFrame.begin and timeFrame.end if they are provided in the request.
- Processing continues to the next translator.
Entity
Property
|
Translation Result Object
|
LIS Request Mapping
|
Start Date
|
result.Entity.StartDate
|
request.courseOffering.timeFrame(0).begin
|
End Date
|
result.Entity.EndDate
|
request.courseOffering.timeFrame(0).end
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- An LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration notes
This translator can be positioned anywhere after the Base translator.
CourseOfferingRequestStatusOptionalTranslator
The CourseOfferingRequestStatusOptionalTranslator maps the status if one was provided in the request.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestStatusOptionalTranslator
Expected behavior
The translator performs the following tasks:
- Sets the IsActive property of the OrgUnit to contain the value from the status if it was provided in the request.
- Processing continues to the next translator.
Entity
Property
|
Translation Result Object
|
LIS Request Mapping
|
Status
|
result.Entity.IsActive
|
request.courseOffering.status
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- An LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration notes
This translator can be positioned anywhere after the Base translator.
CourseOfferingRequestStartDateEndDateRequiredTranslator
The CourseOfferingRequestStartDateEndDateRequiredTranslator maps the start and end dates from the request, and fails if they are not provided.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestStartDateEndDateRequiredTranslator
Expected behavior
The translator performs the following tasks:
- Sets the start and end dates of the OrgUnit to contain the values from the timeFrame.begin and timeFrame.end in the request, and fails if they were not provided.
- Processing continues to the next translator
Entity
Property
|
Translation Result Object
|
LIS Request Mapping
|
Start Date
|
result.Entity.StartDate
|
request.courseOffering.timeFrame(0).begin
|
End Date
|
result.Entity.EndDate
|
request.courseOffering.timeFrame(0).end
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- Suspension of all further processing.
- An LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration note
This translator can be positioned anywhere after the Base translator.
CourseOfferingRequestTruncateOrgUnitCodeTranslator
The CourseOfferingRequestTruncateOrgUnitCodeTranslator truncates the org unit code of the result object if the code is longer than 50 characters. The truncated code is set at 50 characters.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.CMS.Default.CourseOfferingRequestTruncateOrgUnitCodeTranslator
Expected behavior
The translator performs the following tasks:
- Checks to see if the result.Entity.Code is longer than 50 characters. If yes, the code is truncated to 50 characters.
- Processing continues to the next translator.
Configuration notes
This translator can be positioned anywhere after the Base translator.