The plug-in interface for IBulkRequestDataHandler is used by BulkManager to support producing a requestBulkDataExchange request.
The interface implementation is D2L.IM.IPSIS.Bulk.Handlers.IBulkRequestDataHandler.
The following configuration list provides a starting point for any LIS implementation:
Template - Bulk Request (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataDefaultJobIdHandler (Sort Order = 10)
- D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler (Sort Order = 20)
RequestBulkDataExchangeHandler
Implementation
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler
Expected behavior
The handler performs the following tasks:
- Validates the endpoint and sets up the client.
- Checks the BulkEntityTypeFilters on the incoming request, and adds a FilterRuleType for each to the outgoing request. If any of the EntityTypes do not match the FilterType vocabulary for bulk (see the BDEMS spec for the vocabulary definition) then the handler throws a KeyNotFoundException.
- Validates that the save point is of the correct format as defined by the spec. All passed endpoints must be identical, and of the format "YYYY-MM-DDTHH:MM:SS.NNN". T is the letter T and NNN is the milliseconds. If either of these conditions fail, then the handler throws an InvalidRequestDataException.
- Adds a FilterRuleType to the outgoing request for the savepoint.
- Sends the requestBulkDataExchange request using the client.
- Examines the response.
- If the response back is a success, the handler puts the source system in BulkMode (if it wasn't already) and returns true.
- If the response back is an error, the handler takes the source system out of BulkMode, updates the status of the job to Error, logs the error, and returns false.
RequestBulkDataDefaultJobIdHandler
This handler adds extra information to the IMJobId, which is later used to set the MessageId, to make Bulk messages easier to track and troubleshoot.
Implementation
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataDefaultJobIdHandler
Expected behavior
If the BulkJob has an IMJobId, the handler concatenates the SIS Name for the source system onto the front of the IMJobId (prepend).
Configuration note
This handler should be configured before RequestBulkDataExchangeHandler.
RequestBulkDataTruncateJobIdHandler
Peoplesoft does not handle Bulk messageIds that are more than 20 characters long. This handler truncates the IMJobId, which is later used to set the MessageId, to ensure that the value is as unique as possible, while staying within a 20-character limit.
Implementation
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataTruncateJobIdHandler
Expected behavior
If the BulkJob has an IMJobId, the handler strips out the hyphens from the IMJobId, then truncates the IMJobId to 20 characters.
Configuration notes
- This handler should be configured before RequestBulkDataExchangeHandler.
- This handler should only be used as a workaround to the Peoplesoft bug that restricts them to a 20-char maximum.