ينفذ محول LIS معالجات تستخدمها حزمة التكامل لأنظمة معلومات الطالب لإجراء استدعاءات إلى خدمات LIS التي يستضيفها نظام معلومات الطالب. كل من هذه المعالجات خاصة بـ LIS، ولكن تستخدم واجهة معالج منصة حزمة التكامل لأنظمة معلومات الطالب.
لمحة عن واجهة IBulkCancelRequestHandler
تُستخدم واجهة المكون الإضافي الخاصة بـ IBulkCancelRequestHandler بواسطة BulkManager لدعم إنشاء طلب cancelBulkDataExchange أو ignoreBulkDataExchange.
تنفيذ الواجهة هو D2L.IM.IPSIS.Bulk.Handlers.IBulkCancelRequestHandler.
توفر قائمة التكوين الآتية نقطة بداية لأي تنفيذ لـ LIS:
القالب - الإلغاء المجمع (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.CancelBulkDataExchangeHandler (ترتيب الفرز = 10)
CancelBulkDataExchangeHandler
التنفيذ
D2L.IM.IPSIS.LIS.BDEMS.Default.CancelBulkDataExchangeHandler
السلوك المتوقع
يؤدي المعالج المهام الآتية:
- التحقق من BulkJobStatus لمادة IBulkCancelRequest لتحديد الاتصال بـ cancelBulkDataExchange أو ignoreBulkDataExchange (عبر عميل الوكيل).
- في حالة (BulkRequested || BulkRequestSent)، يقوم المعالج باستدعاء الإلغاء. وبخلاف ذلك، يقوم المعالج باستدعاء التجاهل.
- يرسل الطلب المناسب (إلغاء أو تجاهل).
- يتحقق من نجاح الاستجابة. وإذا لم تنجح الاستجابة، فيقوم المعالج بتحديث حالة العمل المجمع إلى خطأ.
- يخرج نظام المصدر من BulkMode (المعيَّن إلى "ممكّن").
لمحة عن واجهة IBulkFileProcessor
تُستخدم واجهة المكون الإضافي الخاصة بـ IBulkFileProcessor بواسطة BulkManager لتوزيع ملف مجمع تم استلامه وتمرير الطلبات الفردية إلى المحولات للمعالجة وتمرير النتائج إلى أداة إنشاء التقارير.
تنفيذ الواجهة هو D2L.IM.IPSIS.Bulk.Handlers.IBulkFileProcessor.
توفر قائمة التكوين الآتية نقطة بداية لأي تنفيذ لـ LIS:
القالب - معالج الملف المجمع (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.BulkFileProcessor (ترتيب الفرز = 10)
المعالج BulkFileProcessor
يقوم المعالج BulkFileProcessor بتوزيع ملف إدخال واحد ومعالجته، ما يؤدي إلى تمرير النتائج إلى أداة إعادة إنشاء التقارير.
التنفيذ
D2L.IM.IPSIS.LIS.BDEMS.Default.BulkFileProcessor
السلوك المتوقع
يؤدي المعالج المهام الآتية:
- يعمل المعالج BulkFileProcessor بعد تنزيل الملف محليًا، ويتم تمريره في IBulkFileUrl مع موقع الملف.
- إذا كانت مادة النتيجة الممررة أو ReportGenerator خاليًا، يتم إنشاء المثيلات في أثناء عملية ما قبل المعالجة.
- عند بدء المعالجة، يتم تحديث حالة الملف إلى "قيد المعالجة". ويتم تحليل الملف كتدفق، وليس كمستند XML مفرد. ولا يؤدي عدم تحليل الملف بالكامل في الوقت نفسه إلى توفير الذاكرة وقدرة المعالجة.
- إذا تمت معالجة ملف ما جزئيًا وتم اكتشاف خطأ، فلن يقوم D2L بإعادة العمليات التي تمت معالجتها بالفعل.
- يتم تحليل رؤوس صفحات BDEMS باستخدام كود مخصص، ولا يتم إنشاؤها تلقائيًا.
- بمجرد تحديد نوع العملية، يتم فرض النص الأصلي للعملية في مساحة الاسم لإصدار الوقت الحقيقي ويتم إلغاء تسلسله باستخدام كود الوكيل الذي تم إنشاؤه تلقائيًا.
- يتم تعديل الرسالة التي تم إلغاء تسلسلها برؤوس صفحات مزيفة ويتم تمريرها إلى المحولات من أجل الخدمة في الوقت الحقيقي.
- يتم تمرير النتائج إلى معالج reportGenerator.
- يتم تحديث حالة الملف إلى مكتمل.
سلوك الخطأ
- إذا حدث خطأ في أثناء معالجة عملية ما باستخدام محول في الوقت الحقيقي:
- يتم حفظ كود الفشل في reportGenerator عادة.
- تستمر المعالجة في العملية التالية.
- إذا حدث خطأ في FileProcessor نفسه:
- يتم تسجيل الخطأ في قاعدة البيانات.
- يقوم المعالج بتعيين حالة الملف إلى فشل.
- يُظهر فورًا (كود الإرجاع = خطأ)، من دون معالجة أي إدخالات إضافية.
التسجيل
- سجل التصحيح في كل مرة يقوم فيها PreProcess بإنشاء مادة مفقودة حسب الطلب.
- سجل التصحيح عند بدء المعالجة الرئيسية وإنهائها.
- قم بالتصحيح مرة واحدة لكل عملية.
- سجل الأخطاء على أي استثناء يبرز في أثناء المعالجة.
لمحة عن واجهة IBulkRequestDataHandler
تُستخدم واجهة المكون الإضافي الخاصة بـ IBulkRequestDataHandler بواسطة BulkManager لدعم إنشاء طلب requestBulkDataExchange.
تنفيذ الواجهة هو D2L.IM.IPSIS.Bulk.Handlers.IBulkRequestDataHandler.
توفر قائمة التكوين الآتية نقطة بداية لأي تنفيذ لـ LIS:
القالب - الطلب المجمع (LIS)
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler (ترتيب الفرز = 10)
RequestBulkDataExchangeHandler
التنفيذ
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler
السلوك المتوقع
يؤدي المعالج المهام الآتية:
- التحقق من صحة نقطة النهاية وإعداد العميل.
- التحقق من BulkEntityTypeFilters على الطلب الوارد، وإضافة FilterRuleType لكل منها إلى الطلب الصادر.
- إذا لم يتطابق أي من أنواع EntityTypes مع مفردات FilterType التي تعني مجمع (انظر مواصفات BDEMS لتعريف المفردات)، يقوم المعالج بطرح KeyNotFoundException.
- التحقق من أن نقطة الحفظ ذات تنسيق صحيح على النحو الذي تحدده المواصفات. يجب أن تكون كل نقاط النهاية التي تم تمريرها متطابقة، وبالتنسيق "YYYY-MM-DDTHH:MM:SS.NNN". يشير T إلى الحرف T ويشير NNN إلى الملي ثانية.
- في حالة فشل أي من هذه الشروط، يقوم المعالج بطرح InvalidRequestDataException.
- إضافة FilterRuleType إلى الطلب الصادر لنقطة الحفظ.
- إرسال طلب requestBulkDataExchange باستخدام العميل وفحص الاستجابة.
- إذا كانت الاستجابة ناجحة، فإن المعالج يضع نظام المصدر في وضع BulkMode (إذا لم يكن كذلك بالفعل). يتم إرجاع قيمة صحيحة.
- إذا كانت الاستجابة خطأً، فإن المعالج يقوم بإخراج نظام المصدر من BulkMode. يتم تحديث حالة المهمة إلى خطأ ويتم تسجيل الخطأ. يتم إرجاع قيمة خطأ.
لمحة عن واجهة IBulkSendReportHandler
تُستخدم واجهة المكون الإضافي الخاصة بـ IBulkSendReportHandler بواسطة BulkManager لدعم إنشاء طلب reportBulkDataExchange.
تنفيذ الواجهة هو D2L.IM.IPSIS.Bulk.Handlers.IBulkSendReportHandler.
توفر قائمة التكوين الآتية نقطة بداية لأي تنفيذ لـ LIS:
القالب - التقرير المجمع (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.ReportBulkDataExchangeHandler (ترتيب الفرز = 10)
ReportBulkDataExchangeHandler
التنفيذ
D2L.IM.IPSIS.LIS.BDEMS.Default.ReportBulkDataExchangeHandler
السلوك المتوقع
يؤدي المعالج المهام الآتية:
- التحقق من صحة نقطة النهاية وإعداد العميل.
- الحصول على BulkBlockReportType من أداة إنشاء التقارير.
- إذا كان التقرير خاليًا، فإنه يتم إنشاء تقرير أساسي يفي بالحد الأدنى من المتطلبات لمواصفات LIS واستخدامه، ويتم تسجيل خطأ.
- يقوم المعالج بإنشاء reportBulkDataExchangeRequest باستخدام التقرير.
- يتم إرسال reportBulkDataExchangeRequest عبر العميل.
- يتم فحص الاستجابة.
- إذا كانت الاستجابة ناجحة، يتم إرجاع قيمة صحيحة.
- إذا كانت الاستجابة خطأً، فإنه يتم تحديث حالة المهمة إلى خطأ ويتم تسجيل الخطأ. يتم إرجاع قيمة خطأ.
- يتم إخراج نظام المصدر من BulkMode.
لمحة عن واجهة IPushGradesHandler
تُستخدم واجهة المكون الإضافي الخاصة بـ IPushGradHandler بواسطة IpsisManager لدعم عملية دفع العلامات إلى نظام معلومات الطالب باستخدام الطلبات الآتية: replaceLineItem وreplaceResultsForLineItem.
تنفيذ الواجهة هو D2L.IM.IPSIS.Grades.Handlers.IPushGradesHandler.
توفر قائمة التكوين الآتية نقطة بداية لأي تنفيذ لـ LIS:
القالب - استبدال النتيجة (LIS)
D2L.IM.IPSIS.LIS.OMS.Default.ReplaceLineItemHandler (ترتيب الفرز = 10)
ReplaceLineItemHandler
التنفيذ
D2L.IM.IPSIS.LIS.OMS.Default.ReplaceLineItemHandler
السلوك المتوقع
يؤدي المعالج المهام الآتية:
- التحقق من نقطة نهاية النتائج وإعداد العميلين المسؤولين عن إرسال الطلبات.
- LineItemManagerSyncPortTypeClient - يجب استخدام نقطة نهاية النتائج لـ LineItemManagerSyncPortTypeClient.
- ResultManagerSyncPortTypeClient - يجب استخدام نقطة نهاية النتائج 2 لـ ResultManagerSyncPortTypeClient.
- يحصل المعالج على المعلومات الضرورية لإرسال طلب replaceLineItem.
- تأتي هذه المعلومات من IReplaceGradesRequest وتُستخدم للحصول على:
- lineItemSourcedId
- sisOrgUnitIdentifier
- orgUnitType (على سبيل المثال CourseSection)
- lineItemTypeVocabulary
- lineItemTypeLanguage
- GradedType (على سبيل المثال Final)
- يرسل المعالج طلب replaceLineItem باستخدام LineItemManagerSyncPortTypeClient.
- يحصل المعالج على مجموعة سجلات النتائج باستخدام المترجمين ITranslateReadResultIdsForLineItemWithLineItemTypeResponse، وReadGradesResult من IReplaceGradesRequest.
- يتم إرسال طلب replaceResultsForLineItem باستخدام ResultManagerSyncPortTypeClient، ما يؤدي إلى تمرير مجموعة سجلات النتائج التي تم الحصول عليها في الخطوة السابقة
- يحصل المعالج على أكواد حالة النتيجة من الاستجابة لطلب replaceResultsForLineItem.
- يقوم المعالج بتعيين أكواد حالة النتيجة في IReplaceGradesResult إلى الأكواد التي تم الحصول عليها في الخطوة السابقة.
- إرجاع القيمة إلى صحيحة.
سلوك الخطأ
إذا فشل الاتصال بنظام معلومات الطالب (على سبيل المثال بسبب فشل في الشبكة أو انتهاء المهلة وما إلى ذلك)، يقوم المعالج بإعادة المحاولة ثلاث مرات. ينطبق السلوك التالي على عمليات إعادة المحاولة:
- يتم تسجيل تحذير قبل إعادة المحاولة
- يتم تسجيل خطأ في حالة فشل الاتصال بعد ثلاث مرات من إعادة المحاولة
- يتم وضع تأخير بسيط بين المحاولات:
- 5 ثوانٍ في المرة الأولى
- 10 ثوانٍ في المرة الثانية
- 15 ثانية في المرة الأخيرة
تحدث عمليات إعادة المحاولة في CommunicationExceptions وTimeoutExceptions فقط. وتفشل الاستثناءات الأخرى كخطأ.
وبخلاف ذلك، في حالة وجود مشكلة أثناء المعالجة، يتم طرح استثناء إلى جانب أكبر قدر ممكن من المعلومات المفصلة.