The ITranslateMembership interface is used to translate a LIS membership record into a Brightspace enrollment.
The interface implementation is D2L.IM.IPSIS.LIS.MMS.ITranslateMembership.
The following configuration list provides a starting point for any LIS implementation.
Template, IPSIS
- MembershipRequestBaseTranslator (Sort Order = 10)
- MembershipRequestCollectionRequiredTranslator (Sort Order = 20)
- MembershipRequestUserPersonRequiredTranslator (Sort Order = 30)
- MembershipRequestRoleTypeAndStatusRequiredTranslator (Sort Order = 40)
MembershipRequestBaseTranslator
The MembershipRequestBaseTranslator maps the Enrollment Identifier.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.MMS.Default.MembershipRequestBaseTranslator
Expected behavior
The translator performs the following tasks:
- Set the IMEnrollmentId to the value provided in the sourcedGUID.sourcedid.
- Processing continues to the next translator.
Property
|
Translation Result Object
|
LIS Request Mapping
|
Enrollment Message ID
|
result.LISMembershipId
|
membershipRecord.sourcedGUID.sourcedId
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- The suspension of all further processing.
- A LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration note
This translator (or an alternative Base translator) must be configured first in the list of translators.
MembershipRequestCollectionRequiredTranslator
The MembershipRequestCollectionRequiredTranslator requires and maps the enrollment collection (typically LIS section).
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.MMS.Default.MembershipRequestCollectionRequiredTranslator
Expected behavior
The translator performs the following tasks:
- The collectionSourcedId is added to the result object.
- Processing continues to the next translator.
Property
|
Translation Result Object
|
LIS Request Mapping
|
Section Code
|
result.Entity.IMOrgUnitIdentifier
|
membershipRecord.membership.collectionSourcedId
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- The suspension of all further processing.
- A LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration note
This translator can be positioned anywhere after the Base translator.
MembershipRequestUserPersonRequiredTranslator
The MembershipRequestUserPersonRequiredTranslator requires and maps a user.
Expected behavior
The translator performs the following tasks:
- Adds the person Id to the result object.
- Processing continues to the next translator.
Property
|
Translation Result Object
|
LIS Request Mapping
|
UserId
|
result.Entity.IMUserIdentifier
|
membershipRecord.membership.member.personSourcedId
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- The suspension of all further processing.
- A LIS response header containing:
- CodeMajor = failure.
- Severity = status.
- CodeMinor = invaliddata.
Configuration note
This translator can be positioned anywhere after the Base translator.
MembershipRequestRoleTypeAndStatusRequiredTranslator
The MembershipRequestRoleTypeAndStatusRequiredTranslator requires and maps a roleType and status.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.MMS.Default.MembershipRequestRoleTypeStatusRequiredTranslator
Expected behavior
The translator performs the following tasks:
- Adds the role and status to the result object.
- Multiple role objects may be provided; they are passed to the handlers as an IEnumerable.
- If a role is present, but missing either a type or a status, then an IncompleteRequestException is thrown.
- Processing continues to the next translator.
Property
|
Translation Result Object
|
LIS Request Mapping
|
Role
|
result.Entity.Roles{*}.role
|
membershipRecord.membership.member.role{*}.roleType
|
Enrollment Status
|
results.Entity.Roles{*}.status
|
membershipRecord.membership.member.role{*}.status
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- The 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.
- This translator is typically not configured with MembershipRequestSubRoleAndStatusRequiredTranslator.
- This translator is typically not configured with MembershipRequestRoleTypeRequiredTranslator.
MembershipRequestSubRoleAndStatusRequiredTranslator
The MembershipRequestSubRoleAndStatusRequiredTranslator translator requires and maps a SubRole and status.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.MMS.Default.MembershipRequestSubRoleStatusRequiredTranslator
Expected Behavior
The translator performs the following tasks:
- Adds the subrole and status to the result object.
- Multiple subrole objects may be provided; they are passed to the handlers as an IEnumerable.
- If a subrole is present, but missing either a type or a status, an IncompleteRequestException is thrown.
- Processing continues to the next translator.
Property
|
Translation Result Object
|
LIS Request Mapping
|
Role
|
result.Entity.Roles{*}.role
|
membershipRecord.membership.member.role{*}.subRole
|
Enrollment Status
|
results.Entity.Roles{*}.status
|
membershipRecord.membership.member.role{*}.status
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- The 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.
- This translator is typically not configured with MembershipRequestRoleTypeAndStatusRequiredTranslator.
- This translator is typically not configured with MembershipRequestRoleTypeRequiredTranslator.
MembershipRequestRoleTypeRequiredTranslator
The MembershipRequestRoleTypeRequiredTranslator requires and maps a RoleType and maps status if available. This should only be used if there is a chance that the status might not be set.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.MMS.Default.MembershipRequestRoleTypeRequiredTranslator
Expected behavior
The translator performs the following tasks:
- For each role, the translator adds the role type to the result object and adds the status if available (null if not).
- Multiple role objects may be provided; they are passed to the handlers as an IEnumerable.
- If a role is present, but missing the type, an IncompleteRequestException is thrown.
- Processing continues to the next translator.
Property
|
Translation Result Object
|
LIS Request Mapping
|
Role
|
result.Entity.Roles{*}.role
|
membershipRecord.membership.member.role{*}.subRole
|
Enrollment Status
|
results.Entity.Roles{*}.status
|
membershipRecord.membership.member.role{*}.status
|
Error behavior
If there is a problem during processing, an IncompleteRequestException is thrown. This results in:
- The 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.
- This translator is typically not configured with MembershipRequestRoleTypeAndStatusRequiredTranslator.
- This translator is typically not configured with MembershipRequestSubRoleAndStatusRequiredTranslator.