الأتمتة والمراقبة
الأتمتة هي طبقة التكامل في Aptli — وهي الطريقة التي يتفاعل بها نظامك مع ما يحدث داخله ويتصل بالأنظمة الخارجية. وهي تشمل أربعة عناصر: القواعد التي تُطلق الإجراءات عند وقوع الأحداث، والروابط التي ترسل الأحداث إلى أنظمة أخرى، والاستيعاب الذي يسحب بيانات أجهزة الاستشعار والأجهزة إلى الداخل، والمراقبة التي تحول تلك البيانات الواردة إلى قراءات ورسوم بيانية وإنذارات.
تُعد الأتمتة مضمنة في كل خطة. ما يتم احتسابه هو عدد الاتصالات الخارجية التي تقوم بتوصيلها — انظر حد الاتصالات المسموح به أدناه.
نظرة عامة على الصفحات
توجد الأتمتة في مجموعة التنقل الخاصة بها والتي تضم أربع صفحات:
| الصفحة | علامات التبويب | الغرض منها |
|---|---|---|
| الأتمتة | الوصلات · مشغلات الأحداث · الاستيعاب | إنشاء وصلات صادرة وقواعد مدفوعة بالأحداث وموصلات البيانات الواردة. |
| بيانات الاعتماد | بيانات الاعتماد الصادرة · مفاتيح الاستيعاب الواردة | تخزين البيانات السرية التي تستخدمها الإجراءات الصادرة، وإنشاء مفاتيح واجهة برمجة التطبيقات (API) التي يستخدمها المرسلون لإرسال البيانات. |
| عمليات التسليم | عمليات التسليم الصادرة · عمليات التشغيل الواردة | سجل أنشطة للقراءة فقط لكل ما تم إرساله واستلامه. |
| الإنذارات | — | السجل المباشر لإنذارات العتبة والهدوء. |
الـ"هوكس" — الطريقة السريعة لإرسال الأحداث
الهوك هو وجهة موقعة مشتركة في الأحداث التي تختارها. إنه أبسط تكامل صادر: قم بتعيين اسم له، وعنوان URL للوجهة، الأحداث المراد إرسالها، وسر التوقيع (حتى يتمكن المستلم من التحقق من أن الحمولة جاءت منك)، و— اختياريًا — قالب الحمولة. يتم إرسال كل حدث مطابق إلى عنوان URL هذا عبر طلب POST. لا شروط، ولا تفرعات؛ فقط «أرسل هذه الأحداث إلى هناك».
استخدم الهوك عندما يحتاج نظام آخر فقط إلى معرفة أن شيئًا ما قد حدث. استخدم مشغل الحدث (أدناه) عندما تحتاج إلى شروط أو إجراء غير متعلق بالويب هوك.
مشغلات الأحداث — قواعد تقوم بتنفيذ إجراء ما
مشغل الحدث هو المحرك الكامل المشغل → الشروط → الإجراءات. عندما ينطلق حدث وتستوفى الشروط، يتم تنفيذ إجراء واحد أو أكثر. ابدأ واحدًا جديدًا من معرض الوصفات ما الذي يجب أن يحدث تلقائيًا؟، أو انتقل إلى المحرر الكامل.
المشغلات
يتم تجميع المشغلات حسب الجزء من Aptli الذي تأتي منه. فيما يلي مجموعة مختارة:
- العمل —
workOrder.created،workOrder.statusChanged،report.completed،report.validated،report.rejected،validation.statusChanged - المشاريع والمهام —
project.created،project.statusChanged،job.created،job.removed - المخزون —
inventory.created،stock.adjusted،stock.transferred،stock.low - عمليات الاستيراد والإصدارات —
geo.import.completed،geo.import.failed،version.submittedForReview،version.committed - المستخدمون والملفات وطلبات المساعدة —
user.invited،file.uploaded،file.quarantine_failed،helpRequest.created،helpRequest.statusChanged - بيانات المستشعر —
sensor.reading(يتم تشغيله مرة واحدة لكل دفعة استيعاب، حاملاً التجميعات الخاصة بتلك الدفعة — الجسر بين الاستيعاب والأتمتة) - الإنذارات —
alarm.raisedوalarm.resolved(§293). على عكسsensor.reading، تحمل هذه الإشارات مجموعة الإجراءات الكاملة، لذا يمكن لخرق ما أن يؤدي إلى إنشاء أمر عمل، أو تحديث حقل، أو إخطار شخص ما — وليس مجرد تشغيل خطاف - المجدولة —
schedule.daily،schedule.weekly،schedule.monthly - مؤقتات اتفاقية مستوى الخدمة (SLA) —
timer.threshold،timer.expired،timer.escalated(يتم إصدارها عن طريق تشغيل مؤقتات دورة الحياة)
الشروط
تحدد الشروط متى يتم تشغيل المشغل، ويتم تقييمها في سياق الحدث وتُربط معًا بعلامة «و» (يجب استيفاء جميع الشروط):
workOrder.status == 'completed'— عند الاكتمال فقطactor.email endsWith '@myorg.com'— للمستخدمين الداخليين فقطjob.featureCount > 1000— فقط عمليات الاستيراد الكبيرة
الإجراءات
| الإجراء | ماذا يفعل |
|---|---|
| إرسال إشعار / إرسال بريد إلكتروني | إخطار مستخدم أو دور أو منشئ السجل/المكلف به |
| استدعاء webhook | إرسال حمولة JSON موقعة عبر POST إلى عنوان URL خارجي |
| الكتابة إلى Postgres | تنفيذ عملية كتابة معلمة على قاعدة بيانات PostgreSQL خارجية |
| تسليم المخرجات | تصدير السجلات المُحفزة (JSON/CSV/GeoJSON) إلى دليل أو دلو متوافق مع S3 أو ويبهوك. (يمكن اختيار SFTP ولكنه غير فعال حتى الآن — يتم تسجيل أي عملية تسليم إليه على أنها فاشلة.) |
| إنشاء أمر عمل / مهمة / وظيفة | إنشاء سجل تنفيذ |
| تحديث حقل | تعيين قيمة لحقل في السجل المُشغِّل |
| تنفيذ عملية حسابية | تنفيذ قاعدة حسابية مُعدة مسبقًا |
| بدء مؤقت SLA | بدء مؤقت دورة الحياة على السجل (الذي يصدر لاحقًا مشغلات timer.*) |
يحتوي كل مشغل على لوحة تشغيل تجريبي مدمجة — زر واحد يُشغّل القاعدة على سياق عينة مُركّب لمشغله. هناك أمران يجب معرفتهما قبل استخدامه: إنه يتخطى الشروط (حيث يقوم بتنفيذ الإجراءات مباشرةً)، كما أنه ليس تجربة تجريبية — فالإجراءات الصادرة (webhook، Postgres، تسليم الأرتيفاكت) يتم تنفيذها فعليًّا على الوجهات التي قمت بتكوينها، مع وضع علامة «اختبار» عليها في قسم «التسليمات». يتم التحقق من رسائل البريد الإلكتروني دون إرسالها، ويتم تخطي الإجراءات التي تغير السجلات (إنشاء/تحديث). لذا، وجّه الاختبار إلى وجهة آمنة؛ فهو مخصص لتأكيد التوصيلات، وليس لمعاينة غير فعالة.
الاستيعاب — جلب بيانات المستشعرات والأجهزة
موصل الاستيعاب هو مصدر بيانات خارجي يغذي Aptli بالقراءات. لكل موصل وضع:
- السحب (استقصاء مجدول) — يقوم Aptli باستقصاء واجهة برمجة تطبيقات REST الخاصة بالمورد على فاصل زمني (30 ثانية كحد أدنى). تقوم بتعيين عنوان URL وبيانات الاعتماد وتعيين استجابة بسيط (مسار القراءات، مفتاح الطابع الزمني، مفتاح القيمة، مفتاح المقياس) حتى يتمكن Aptli من قراءة ملف JSON الخاص بالمورد.
- الدفع (عمليات النشر من المرسل) — يقوم المرسل بنشر مجموعات JSON إلى نقطة النهاية الواردة الخاصة بالموصل (التي تظهر بمجرد حفظ الموصل)، مع المصادقة باستخدام مفتاح واجهة برمجة التطبيقات للاستيعاب. لا يوجد شيء للاستقصاء؛ حيث يقوم الجهاز أو البوابة بالدفع وفقًا لجدولها الزمني الخاص.
في كلتا الحالتين، يحدد كل موصل معرف ميزة المحطة (ميزة الخريطة التي تنتمي إليها القراءات — انظر المراقبة والإنذارات) والوحدة، وتقوم كل دفعة يتم استيعابها بتشغيل مشغل sensor.reading. كما تعرض علامة التبويب الاستيعاب عرضًا مباشرًا لعمليات الاستقصاء المجدولة (عدد العمليات النشطة أو المتأخرة أو الفاشلة).
بيانات الاعتماد والمفاتيح وحدود الاتصال
بيانات الاعتماد الصادرة
يتم مصادقة الإجراءات الصادرة التي تصل إلى نظام خارجي (webhooks، Postgres، تسليم الأرتيفاكت عبر S3/SFTP) من خلال بيانات اعتماد مخزنة بدلاً من الأسرار المضمنة. قم بإنشاء واحدة مرة واحدة في صفحة بيانات الاعتماد وأشر إليها بالاسم. يتم تشفير الأسرار أثناء التخزين ولا تظهر أبدًا بعد الحفظ؛ بينما تظل التكوينات غير السرية (عناوين URL الأساسية، أسماء المضيفين، المناطق) قابلة للقراءة. الأنواع: bearer / basic / API-key HTTP، S3، SFTP، وPostgres.
مفاتيح الاستيعاب الواردة
مفاتيح حامل آلية تسمح للمرسل بالدفع إلى Aptli. مخصصة للاستيعاب فقط، ومحدودة بنطاق ما يُسمح لها به (دفع القراءات إلى الداخل، أو سحب الإرسالات من البوابة)، ويتم عرض المفتاح الخام مرة واحدة عند الإنشاء — قم بنسخه في ذلك الوقت.
حد الاستخدام للاتصال
مقياس الاستخدام التجاري هو عدد الاتصالات الخارجية، وليس الميزة نفسها. يستهلك كل موصل استيعاب ومفتاح API وخطاف صادر قابل لإعادة الاستخدام وحدة واحدة من المجمع المشترك (قواعد تشغيل الأحداث الداخلية غير محددة الاستخدام). يُظهر مؤشر في صفحتي «الأتمتة» و«بيانات الاعتماد» «{المستخدم} من {الإجمالي} الموصلات/المفاتيح» مع تفصيل للموصلات ومفاتيح واجهة برمجة التطبيقات (API) والوصلات الخارجية. الحد الافتراضي هو 3؛ وعندما تصل إليه، سيطالبك إنشاء موصل آخر بإلغاء موصل غير مستخدم أو الاتصال بالدعم لإضافة المزيد. تستمر الاتصالات الموجودة لديك في العمل حتى إذا انخفضت الحصة المسموح بها لاحقًا.
المراقبة والإنذارات
تقوم عملية الاستيعاب باستقبال بيانات المستشعرات داخل النظام؛ أما المراقبة فهي ما تراه وما يتم تحذيرك بشأنه.
المحطات والقراءات
المحطة هي ببساطة ميزة خريطة يُبلغ عنها المستشعر. بشكل افتراضي، يكون معرف ميزة المحطة الخاص بالموصل هو المعرف الخاص بالميزة نفسها، لذا ترتبط القراءات بها مباشرةً؛ ويمكن ربط المرسلين الذين يستخدمون رموز محطاتهم الخاصة بشكل صريح.
بمجرد بدء تدفق القراءات، يزداد سجل الميزة بقسم قراءات المستشعر: لكل مقياس، أحدث قيمة ووحدة بالإضافة إلى خط بياني مصغر لمدة 7 أيام. إذا توقفت المحطة عن الإرسال ولكن مصدرها لا يزال يرسل تحت معرّفات أخرى (تمت إعادة تسمية جهاز الاستشعار عند المصدر)، يقوم Aptli بتمييزها ويقدم خيار إعادة الربط بنقرة واحدة حتى لا تفقد السجل.
الإنذارات
توجد قواعد الإنذارات في موصل الاستيعاب. قم بتشغيل إطلاق الإنذارات وقم بتعيين:
- إطلاق الإنذار عندما تكون القيمة — أعلى أو أقل من عتبة معينة
- هامش الإلغاء — إلى أي مدى يجب أن تتجاوز القراءة الحد قبل أن يتم إلغاء التنبيه تلقائيًا (التباطؤ، بحيث لا يتذبذب التنبيه عند القيم التي تقع على الحد)
- كتم الإنذار بعد (دقائق) — إصدار إنذار كتم في حالة عدم وصول أي بيانات خلال هذه المدة (كشف تعطل المستشعر)
- مستلمو الإنذارات — من يتم إخطاره
- التصعيد في حالة عدم الإقرار بعد (دقائق) + مستلمو التصعيد — مستوى ثانٍ إذا لم يقم أحد بالإقرار في الوقت المحدد
تُعد صفحة الإنذارات بمثابة السجل المباشر. كل إنذار يكون نشطًا، تم الإقرار به، أو تم حله؛ يمكنك الإقرار به للإشارة إلى أن شخصًا ما يعمل على الأمر وحلّه عند الانتهاء من معالجته (يتم مسح الإنذارات تلقائيًا أيضًا عندما تتجاوز القراءة الحد المسموح به). يتم عرض تنبيهات العتبة وتنبيهات الصمت («لم يتم استلام أي بيانات») بشكل مميز، ويحتوي كل تنبيه على قيمته/عتبته/ذروته، ومن أقر به، و— في حالة تصعيده — سطر «تم تصعيده {التاريخ}» مع شارة حالة التسليم. تعرض بطاقة لوحة التحكم الرئيسية الإنذارات النشطة حتى لا تظل غير مرئية. تكون صفحة «الإنذارات» مرئية لأي مشرف مسجل الدخول، وليس فقط لمسؤولي الأتمتة، بحيث يمكن للأشخاص الذين يراقبون سير العمل مراقبة الإنذارات.
حلقة التذاكر ثنائية الاتجاه
يمكن أن يحمل «الخطاف» عنوان URL للكتابة العكسية مع كل إنذار: يقوم نظام التذاكر الخارجي الخاص بك بإرسال تغييرات الحالة عبر طلب POST لإقرار أو حل الإنذار، ويظهر مرجع التذكرة على الإنذار كرابط. وهذا يغلق الحلقة عندما تتم معالجة الإنذارات في أداة أخرى.
النتائج وروابط المشاركة
في أي مشروع، تعرض علامة التبويب النتائج (Outcomes) سلاسل المقاييس المراقبة مقابل معالم العمل المنجز — انظر المشاريع. يمكنك نشر رابط مشاركة قابل للقراءة فقط ومُرمز لتلك الرسوم البيانية للأطراف الخارجية، وإلغاؤه في أي وقت. تُعرض القراءات في سياقها جنبًا إلى جنب مع تواريخ العمل؛ ولا تدعي Aptli وجود علاقة سببية، كما أن الصفحة لا تُعتبر صراحةً بيانات قياس معتمدة.
عمليات التسليم — سجل الأنشطة
صفحة التسليمات هي سجل للقراءة فقط، مقسم إلى علامتي تبويب:
- التسليمات الصادرة — صف واحد لكل محاولة إرسال: التاريخ، سير العمل، الإجراء، الوجهة، النتيجة (نجاح / فشل / إعادة المحاولة / رسالة ميتة)، عدد المحاولات، المدة، وأي أخطاء. يتم تمييز عمليات التشغيل التجريبية بعلامة.
- عمليات الاستلام — سجل الاستلام: المصدر، والنتيجة، والتاريخ، والمدة، والصفوف، والخطأ.
الاتصال السريع
بالنسبة لعمليات التكامل الشائعة، يرشدك معالج الاتصال السريع عبر وصفة بدلاً من المحرر الأساسي — على سبيل المثال: «إرسال الطلبات الجديدة الواردة عبر البوابة إلى نظامي»، «تنبيه نظامي عند انخفاض المخزون»، «إنشاء تذكرة عند انطلاق إنذار»، أو "تلقي القراءات من أجهزة الاستشعار أو البوابة الخاصة بي". ويقوم بتوصيل الموصل أو الوصلة أو القاعدة نيابة عنك.
الأذونات
لا تستخدم «الأتمتة» شبكة حقوق الإدارة العامة. يتم تقييد الوصول إلى صفحات التكوين الثلاث (الأتمتة، بيانات الاعتماد، عمليات التسليم) من خلال قائمة السماح للمشاهدين/المعدّلين في إعدادات الأتمتة، لذا فإنك تمنح حق الوصول بشكل صريح. صفحة Alarms مفتوحة عمدًا لأي مستخدم مسجل الدخول — فمراقبة الإنذارات هي مهمة تشغيلية، وليست مهمة تكوين. يمتلك أصحاب حق إعدادات التطبيق دائمًا مسارًا للاسترداد إذا كانت القوائم فارغة.