De LIS-adapter implementeert handlers die door IPSIS worden gebruikt om aanroepen naar LIS-services te initiëren die door het SIS worden gehost. Elk van deze handlers is specifiek voor LIS, maar maakt gebruik van een handlerinterface voor het IPSIS-platform.
Info over de IBulkCancelRequestHandler-interface
De plug-in-interface voor IBulkCancelRequestHandler wordt door BulkManager gebruikt om het produceren van een cancelBulkDataExchange- of ignoreBulkDataExchange-aanvraag te ondersteunen.
De interface-implementatie is D2L.IM.IPSIS.Bulk.Handlers.IBulkCancelRequestHandler.
De volgende configuratielijst biedt een startpunt voor elke LIS-implementatie:
Sjabloon - Bulkgewijs annuleren (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.CancelBulkDataExchangeHandler (sorteervolgorde = 10)
CancelBulkDataExchangeHandler
Implementatie
D2L.IM.IPSIS.LIS.BDEMS.Default.CancelBulkDataExchangeHandler®
Verwacht gedrag
De handler voert de volgende taken uit:
- Controleert de BulkJobStatus van het IBulkCancelRequest-object om te bepalen of cancelBulkDataExchange of ignoreBulkDataExchange (via de proxy-client) moet worden aangeroepen.
- Als (BulkRequested || BulkRequestSent), worden de handler-aanroepen geannuleerd. Anders worden de handler-aanroepen genegeerd.
- Hiermee verzendt u de juiste aanvraag (annuleren of negeren).
- Controleert of de respons een succes is. Als de respons geen succes is, werkt de handler de status van de bulktaak bij naar Fout.
- Haalt het bronsysteem uit de BulkMode (ingesteld op Enabled (ingeschakeld)).
Info over de IBulkFileProcessor-interface
De plug-in-interface voor IBulkFileProcessor wordt door BulkManager gebruikt om een ontvangen bulkbestand te parseren, individuele aanvragen door te geven aan de adapters voor verwerking en resultaten door te geven aan een rapportgenerator.
De interface-implementatie is D2L.IM.IPSIS.Bulk.Handlers.IBulkFileProcessor.
De volgende configuratielijst biedt een startpunt voor elke LIS-implementatie:
Sjabloon - Bulk File Processor (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.BulkFileProcessor (sorteervolgorde = 10)
BulkFileProcessor
De BulkFileProcessor parseert en verwerkt een enkel invoerbestand, waarbij de resultaten worden doorgegeven aan een rapportgenerator.
Implementatie
D2L.IM.IPSIS.LIS.BDEMS.Default.BulkFileProcessor®
Verwacht gedrag
De handler voert de volgende taken uit:
- De BulkFileProcessor wordt uitgevoerd nadat het bestand lokaal is gedownload, en wordt doorgegeven in een IBulkFileUrl met de bestandslocatie.
- Als het doorgegeven resultaatobject of de ReportGenerator null is, worden er instanties gemaakt tijdens de voorverwerking.
- Aan het begin van de verwerking wordt de bestandsstatus bijgewerkt naar Verwerken. Het bestand wordt geparseerd als een stream, niet als een enkel XML-document. Als niet het hele bestand tegelijk wordt geparseerd, worden geheugen en verwerkingskracht bespaard.
- Als een bestand gedeeltelijk wordt verwerkt en er een fout wordt ontdekt, worden de reeds verwerkte transacties niet teruggedraaid door D2L®.
- De BDEMS-kopteksten worden geparseerd met aangepaste code en worden niet automatisch gegenereerd.
- Zodra het type transactie is geïdentificeerd, wordt de transactielichaam gedwongen in de naamruimte voor de realtime versie en gedeserialiseerd met behulp van automatisch gegenereerde proxycode.
- Het gedeserialiseerde bericht wordt verpakt in nepkopteksten en doorgegeven aan de adapters voor de realtime service.
- De resultaten worden doorgegeven aan de rapportgenerator.
- De bestandsstatus wordt bijgewerkt naar Voltooid.
Foutgedrag
- Als er een fout optreedt tijdens het verwerken van een transactie, met behulp van een realtime adapter:
- De foutcode wordt normaal opgeslagen in de rapportgenerator.
- De verwerking gaat door met de volgende transactie.
- Als er een fout optreedt in FileProcessor zelf:
- Wordt er een fout in de database geregistreerd.
- Stelt de processor de bestandsstatus in op Mislukt.
- Wordt onmiddellijk een respons geretourneerd (met retourcode = false), zonder verdere invoer te verwerken.
Registreren in logboek
- Voer foutopsporing in logboek uit telkens wanneer de voorverwerking een ontbrekend object creëert voor de aanvraag.
- Voer foutopsporing in logboek uit aan het begin en einde van de hoofdverwerking.
- Voer eenmaal per transactie foutopsporing uit.
- Er wordt een fout gemeld bij elke uitzondering die tijdens de verwerking wordt gemeld.
Info over de interface van IBulkRequestDataHandler
De plug-in-interface voor IBulkRequestDataHandler wordt door BulkManager gebruikt om het produceren van een requestBulkDataExchange-aanvraag te ondersteunen.
De interface-implementatie is D2L.IM.IPSIS.Bulk.Handlers.IBulkRequestDataHandler.
De volgende configuratielijst biedt een startpunt voor elke LIS-implementatie:
Sjabloon - Bulkaanvraag (LIS)
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler (sorteervolgorde = 10)
RequestBulkDataExchangeHandler
Implementatie
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler®
Verwacht gedrag
De handler voert de volgende taken uit:
- Valideert het eindpunt en stelt de client in.
- Controleert de BulkEntityTypeFilters op de inkomende aanvraag en voegt voor elk van deze filters een FilterRuleType toe aan de uitgaande aanvraag.
- Als een van de entiteitstypen niet overeenkomt met het Filtertype-vocabulaire voor bulk (zie de BDEMS-specificatie voor de vocabulairedefinitie) genereert de handler een KeyNotFoundException.
- Valideert dat het opslagpunt (savepoint) de juiste notatie heeft, zoals gedefinieerd door de specificatie. Alle gepasseerde eindpunten moeten identiek zijn en de notatie "YYYY-MM-DDTHH:MM:SS.NNN" hebben. T is de letter T en NNN is de waarde voor de milliseconden.
- Als een van deze voorwaarden mislukt, genereert de handler een InvalidRequestDataException.
- Voegt een FilterRuleType toe aan de uitgaande aanvraag voor het savepoint.
- Verzendt de requestBulkDataExchange-aanvraag via de client en onderzoekt de respons.
- Als de respons een succes is, stelt de handler het bronsysteem in op de bulkmodus (als dat nog niet was gebeurd). True wordt geretourneerd.
- Als de respons een fout is, haalt de handler het bronsysteem uit de bulkmodus. De status van de taak wordt bijgewerkt naar Fout en de fout wordt geregistreerd. Retourneer 'false'.
Info over de IBulkSendReportHandler-interface
De plug-in-interface voor IBulkSendReportHandler wordt door Bulkbeheer gebruikt om het produceren van een reportBulkDataExchange-aanvraag te ondersteunen.
De interface-implementatie is D2L.IM.IPSIS.Bulk.Handlers.IBulkSendReportHandler.
De volgende configuratielijst biedt een startpunt voor elke LIS-implementatie:
Sjabloon - Bulkrapport (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.ReportBulkDataExchangeHandler (sorteervolgorde = 10)
ReportBulkDataExchangeHandler
Implementatie
D2L.IM.IPSIS.LIS.BDEMS.Default.ReportBulkDataExchangeHandler®
Verwacht gedrag
De handler voert de volgende taken uit:
- Valideert het eindpunt en stelt de client in.
- Haalt het BulkBlockReportType op uit de rapportgenerator.
- Als het rapport null is, wordt een basisrapport gemaakt en gebruikt dat voldoet aan de minimale vereisten voor de LIS-specificatie, en wordt er een fout geregistreerd.
- De handler maakt de reportBulkDataExchangeRequest aan de hand van het rapport.
- De reportBulkDataExchangeRequest wordt via de client verzonden.
- De respons wordt onderzocht.
- Als de respons een succes is, retourneer dan 'true'.
- Als de respons een fout is, wordt de status van de taak bijgewerkt naar fout en wordt de fout geregistreerd. Retourneer 'false'.
- Het bronsysteem wordt uit de BulkMode gehaald.
Info over de IPushGradesHandler-interface
De plug-in interface voor IPushGradesHandler wordt door IPSIS-beheer gebruikt om het proces van het doorgeven van scores aan een studentinformatiesysteem te ondersteunen met behulp van de volgende aanvragen: replaceLineItem en replaceResultsForLineItem.
De interface-implementatie is D2L.IM.IPSIS.Grades.Handlers.IPushGradesHandler.
De volgende configuratielijst biedt een startpunt voor elke LIS-implementatie:
Sjabloon - Resultaat vervangen (LIS)
D2L.IM.IPSIS.LIS.OMS.Default.ReplaceLineItemHandler (sorteervolgorde = 10)
ReplaceLineItemHandler
Implementatie
D2L.IM.IPSIS.LIS.OMS.Default.ReplaceLineItemHandler®
Verwacht gedrag
De handler voert de volgende taken uit:
- Valideert het eindpunt van de resultaten en stelt de twee clients in die verantwoordelijk zijn voor het verzenden van de aanvragen.
- LineItemManagerSyncPortTypeClient - Resultaat eindpunt moet worden gebruikt voor de LineItemManagerSyncPortTypeClient.
- ResultManagerSyncPortTypeClient - Resultaat 2 eindpunt moet worden gebruikt voor de ResultManagerSyncPortTypeClient.
- De handler haalt de benodigde informatie op voor het verzenden van de replaceLineItem-aanvraag.
- Deze informatie komt van de IReplaceGradesRequest en wordt gebruikt om het volgende te verkrijgen:
- LineItemSourcedId
- SisOrgUnitIdentifier
- OrgUnitType (bijv. CourseSection)
- LineItemTypeVocabulary
- LineItemTypeLanguage
- gradetype (bijv. Final)
- De handler verzendt de replaceLineItem-aanvraag met behulp van LineItemManagerSyncPortTypeClient.
- De handler haalt de resultaatrecordset op met behulp van de ITranslateReadResultIdsForLineItemWithLineItemTypeResponse-omzettingsprogramma's, en de ReadGradesResult uit de IReplaceGradesRequest.
- De replaceResultsForLineItem-aanvraag wordt verzonden met behulp van de ResultManagerSyncPortTypeClient, waarbij de resultaatrecordset die in de vorige stap is verkregen, wordt doorgegeven
- De handler haalt de resultaatstatuscodes op uit de respons voor de replaceResultsForLineItem-aanvraag.
- De handler stelt de resultaatstatuscodes op de IReplaceGradesResult in op de codes die in de vorige stap zijn verkregen.
- Retourneert true.
Foutgedrag
Als de communicatie met het SIS mislukt (bijv. netwerkstoring, time-out, enz.), probeert de handler maximaal drie keer opnieuw. Het volgende gedrag is van toepassing op nieuwe pogingen:
- Er wordt een waarschuwing geregistreerd voordat u het opnieuw probeert
- Er wordt een fout geregistreerd als de communicatie na drie pogingen mislukt
- Er wordt een kleine vertraging tussen pogingen ingebracht:
- 5 seconden de eerste keer
- 10 seconden de tweede keer
- 15 seconden de laatste keer
Nieuwe pogingen komen alleen voor bij CommunicationExceptions en TimeoutExceptions. Andere uitzonderingen mislukken als een fout.
Anders: als zich een probleem voordoet tijdens de verwerking, wordt er een uitzondering gegenereerd, samen met zoveel mogelijk gedetailleerde informatie.