← يتطلب: ObjectScript المتقدمة التكامل متوسط ⏱ 6 ساعات الدورة 11

مقدمة في محرك التكامل

Interoperability Engine

🎯 أهداف التعلم

1فهم بنية محرك التكامل
2إنشاء Business Operations
3تصميم مسارات الرسائل
4معالجة الأخطاء

01 مكونات محرك التكامل

محرك التكامل يعمل كوسطاء رسائل يتلقى الرسائل من مصادر مختلفة.

  • Business Services: تتلقى الرسائل من مصادر خارجية
  • Business Processes: تعالج وتحول الرسائل
  • Business Operations: ترسل الرسائل إلى أنظمة خارجية
Class MyApp.Service.HTTPService Extends EnsLib.REST.Service {
  Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";
  Method OnProcessInput(pInput, Output pOutput) As %Status {
    Set request = ##class(MyApp.Request).%New()
    Set request.Data = pInput.Read()
    Set sc = ..SendRequestSync("MyApp.Process.Main", request, .response)
    Set pOutput = response
    Return sc
  }
}

02 مسارات الرسائل

يمكنك تصميم مسارات معقدة باستخدام Business Processes.

Class MyApp.Process.Routing Extends EnsLib.MsgRouter.Process {
  XData RuleDefinition {
    
      
        
          
        
      
    
  }
}

03 Monitoring والمراقبة

مراقبة Production وتدفق الرسائل أمر أساسي لضمان التشغيل الصحيح.

// مراقبة حالة Production
ClassMethod CheckProductionStatus() {
  Set status = ##class(Ens.Director).GetProductionStatus(.productionName)
  Write "Production: ", productionName, !
  Write "Status: ", status, !
  
  // قائمة Business Hosts
  Set rs = ##class(Ens.Config.Production).GetConfigItems(productionName)
  While rs.%Next() {
    Set name = rs.%Get("Name")
    Set type = rs.%Get("BusinessType")
    Set enabled = rs.%Get("Enabled")
    Write type, ": ", name, " (", $Select(enabled:"Active", 1:"Disabled"), ")", !
  }
}

// عرض إحصائيات الرسائل
ClassMethod GetMessageStats() {
  &sql(SELECT COUNT(*) INTO :total FROM Ens.MessageHeader)
  &sql(SELECT COUNT(*) INTO :errors FROM Ens.MessageHeader WHERE Status = 'Error')
  Write "إجمالي الرسائل: ", total, !
  Write "الأخطاء: ", errors, !
}

📝 اختبار التحقق

1. ما هي المكونات الثلاثة لمحرك التكامل؟

محرك التكامل يتكون من Services و Processes و Operations

كيف يمكن مراقبة حالة Production؟

يمكن استخدام Ens.Director.GetProductionStatus() للحصول على حالة Production الحالية

كيف يتم تعريف Production في IRIS؟
💡 الشرح

Production يُعرف كفئة تمتد Ens.Production مع XData ProductionDefinition

💡 النقاط الرئيسية

  • محرك التكامل يربط الأنظمة المختلفة عبر Production
  • Business Services تستقبل البيانات
  • Business Processes تعالج وتحول البيانات
  • Business Operations ترسل البيانات للأنظمة الخارجية
  • الإنتاج (Production) يضم جميع المكونات