> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kayanos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# اختبار الأتمتة وتشغيلها واستكشاف أعطالها

> تحقق من كل أتمتة KayanOS بتشغيل مضبوط غير إنتاجي، ثم شخّص المشغّل والشرط والإجراء والنطاق والسجل الناتج بالترتيب.

## ما الذي يثبته الاختبار الناجح؟

لا يثبت الاختبار الناجح مجرد أن «المسار شُغّل». بل يثبت أن الحدث المقصود قدّم البيانات المقصودة، وأن الشرط اتخذ القرار الصحيح، وأن الإجراء أثر في الهدف المعتمد فقط، وأن المراجع يستطيع العثور على النتيجة.

استخدم مساحة عمل غير إنتاجية معتمدة وسجلاً معزولاً مثل `PERMIT_TEST_001` وأعضاء غير إنتاجيين. لا تتحقق من أتمتة جديدة ببيانات مواطنين حقيقية أو نطاق أدوار إنتاجي أو مستلم خارجي.

## بروتوكول الاختبار

### 1. عرّف المسار المتوقع قبل التشغيل

دوّن الأمور التالية قبل فتح لوحة الاختبار:

| الخطوة            | ما يجب تسجيله قبل الاختبار                                          |
| ----------------- | ------------------------------------------------------------------- |
| المشغّل           | الحدث الدقيق والجدول/النموذج/المهمة المصدر ومعرّف السجل.            |
| الشرط             | القيم التي يجب أن تجعله صحيحاً وتغيراً واحداً يجب أن يجعله خاطئاً.  |
| القراءات          | السجل أو مجموعة السجلات التي ينبغي العثور عليها.                    |
| الكتابات          | الجدول أو السجل أو المهمة أو المستند المحدد الذي قد يُنشأ أو يتغير. |
| الإشعار/الاستجابة | المستلم الداخلي المقصود أو مخطط الاستجابة الأدنى.                   |
| المراجع           | الشخص الذي سيجد النتيجة النهائية ويؤكدها.                           |

إن لم تستطع وصف المسار المتوقع، فلا تمكّن الأتمتة بعد.

### 2. اختبر المشغّل بمعزل

استخدم سجل مصدر واحداً. نفذ الحدث الدقيق: أرسل إجراء النموذج المقصود، أو غيّر الحالة المقصودة، أو أكمل إجراء المهمة المقصود، أو استدع واجهة لوحة المعلومات/النموذج المقصودة. افحص الحمولة الناتجة قبل ربط الحقول اللاحقة.

قد يعرض KayanOS لقيمة حدث السجل حقولاً مثل `data` و`oldData` و`changedFields` و`action`. تحقق من أن الحدث هو المتوقع، وليس مجرد تحديث حدث على السجل نفسه.

### 3. اختبر الشرط في الاتجاهين

شغّل حالة يجب أن تستمر وحالة يجب أن تتوقف. في مسار توجيه معاينة مثلاً، قد تنقل الحالة الإيجابية طلباً مكتملاً إلى `Ready for inspection`، بينما قد تعدّل الحالة السلبية ملاحظة أو تترك المنطقة فارغة. يجب ألا تنشئ الحالة السلبية حالة أو مهمة أو إشعاراً أو مستنداً أو تغيير دور.

### 4. أضف وتحقق من إجراء واحد كل مرة

ابدأ بإجراء قراءة أو بحث. ثم أضف إجراء كتابة أو انتظار أو استجابة أو مستند أو إشعاراً واحداً وأعد الاختبار. بعد كل تشغيل، حدد النتيجة داخل KayanOS بدلاً من الاعتماد على مخرج الأتمتة وحده.

### 5. تحقق من مسار التدقيق كاملاً

في تشغيل ناجح، أكد كل ما يلي:

* أن سجل المصدر يحمل العلاقة أو الحالة المتوقعة.
* أن الهدف المنشأ أو المحدث يحمل المعرّف والقيم والمالك المتوقعين.
* عدم وجود سجل أو مهمة أو إشعار أو مستند مكرر.
* عدم تغير أي سجل غير مرتبط.
* أن الإشعار وصل فقط إلى العضو الداخلي أو النطاق المقصود.
* أن المراجع يستطيع تتبع النتيجة من المصدر إلى الهدف والعودة.

### 6. أطلق على مراحل

فعّل أصغر نطاق خدمة أولاً. راقب التشغيلات الحية المعتمدة الأولى، وقارنها بالتصميم المتوقع، واحتفظ بمالك موثق ومسار تعطيل. وسّع فقط بعد تأكيد مالك الخدمة أن التسليم صحيح.

## شخّص الأعطال بالترتيب الصحيح

| العَرَض                       | ما يجب فحصه أولاً                                                                     | التصحيح المعتاد                                                                         |
| ----------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| الأتمتة لا تبدأ أبداً         | نطاق المشغّل، وحدث المصدر، ومرشح النموذج/المهمة/الإجراء، وهل تسبب السجل بالحدث فعلاً. | صحح المشغّل أو ضيّقه، ثم أعد الحدث المصدر نفسه.                                         |
| يبدأ المشغّل لكن المسار يتوقف | مدخلات الشرط وحمولة الاختبار الفعلية.                                                 | قارن القيم الحالية/القديمة والحقول اللازمة ومفاتيح الحقول؛ واجعل الشرط صريحاً.          |
| البحث لا يجد شيئاً            | الجدول والمعرّف والعلاقة وقيم المرشح والوصول إلى الجدول الهدف.                        | اختبر **Get Record** بمعرّف معروف ثم ضيق **Find Records** بقيم ثابتة.                   |
| تُرفض الكتابة                 | مدخلات الإجراء المطلوبة والجدول الهدف وقيم الحقول ونطاق الدور.                        | اربط الحقول المطلوبة بدقة واختبر هدفاً صحيحاً أدنى واحداً.                              |
| يُنشأ تكرار                   | إعادة المحاولة ومشغلات التحديث الواسعة وغياب فحص السجل القائم.                        | أضف حماية انتقال الحالة وفحص **Find Records** قبل **Create Record** أو **Create Task**. |
| ينتظر المسار إلى الأبد        | معرّف الربط أو الحقل المراقب أو جلسة النموذج أو معرّف المهمة أو العمل المجمّع.        | تأكد من أن الحدث اللاحق ينتمي للحالة المصدر نفسها وقادر على تحقيق شرط الانتظار.         |
| يُرفض تنفيذ مهمة/إجراء        | حالة المهمة/العمل/النموذج/الكيان واسم الإجراء وصلاحيات الدور.                         | استخدم مسار حالة/إجراء مسموحاً؛ ولا تحاول الالتفاف على قرار بشري مطلوب.                 |
| الاستجابة غير صالحة           | مدخل الطلب وشكل جسم JSON.                                                             | وثق مخطط الاستجابة وتحقق من الحقول المطلوبة واختبر مسارات الفراغ/غياب النتيجة.          |
| المستند خاطئ                  | نسخة القالب والقيم المربوطة والملف المصدر.                                            | اختبر بقيم اختيارية فارغة ونص طويل ومحتوى عربي وكل نتيجة قرار.                          |
| الإشعار مفقود أو في جهة خاطئة | قيم Member ID/Member Selectors والنوع ونطاق المستلم.                                  | استخدم آلية مستلم واحدة بوعي وتحقق من الجمهور الذي تم حله في تشغيل غير إنتاجي.          |
| تحديث الدور واسع جداً         | النطاق والمحدد والكيان الهدف والعملية.                                                | أوقف المسار وقلص النطاق؛ واحصل على مراجعة صلاحية قبل إعادة الاختبار.                    |

## أنماط تحقق معروفة للمدخلات

تفيد هذه الأنماط عند تفسير خطأ إجراء:

1. **Send Notification:** عند توجيه إشعار إلى `Member ID` محدد، اترك `Member Selectors` فارغاً ما لم يكن الإجراء مضبوطاً عمداً لاستخدام المحددات. قد يؤدي وضع قيمة نصية غير مرتبطة في عنصر المحدد الاختياري إلى رفض التحقق.
2. **معرّفات Create Record:** استخدم تنسيق المعرّف الذي يقبله الجدول الهدف. في تشغيل غير إنتاجي تم التحقق منه، قُبلت الأحرف والأرقام والشرطات السفلية، بينما رُفضت قيمة مسبوقة بالجدول تتضمن نقطتين. استخدم معرّفاً حيادياً مثل `PERMIT_TEST_001`؛ ولا تنسخ اصطلاح تسمية داخلياً فقط إلى منطق الإنتاج.

مخرج الخطأ الدقيق من التشغيل هو الدليل الأساسي. سجّل المشغّل والمدخلات المربوطة ورسالة الخطأ وأصغر تغيير يحل المشكلة.

## قالب تقرير عطل قابل للتكرار

عندما يفشل مسار، سجّل ما يلي قبل تغيير أي شيء:

```text theme={null}
الأتمتة: <الاسم والإصدار>
وقت التشغيل: <الوقت والمنطقة الزمنية>
حدث المصدر: <المشغّل ومعرّف السجل غير الإنتاجي>
الشرط المتوقع: <صحيح/خاطئ والسبب>
حقول الحمولة الفعلية المستخدمة: <أسماء الحقول فقط إذا كانت البيانات حساسة>
آخر خطوة ناجحة: <مشغّل/قراءة/إجراء>
الخطوة الفاشلة والخطأ: <رسالة الخطأ الآمنة الدقيقة>
الهدف المتأثر: <معرّف السجل/المهمة/المستند، إن وجد>
تكرار أو أثر خارجي: <نعم/لا>
المراجع والقرار التالي: <الاسم/الدور والإجراء>
```

يساعد ذلك على تمييز مشكلة التكوين من مشكلة الصلاحية أو البيانات أو دورة الحياة من دون كشف بيانات شخصية أو خدمية غير لازمة.

## التعافي بعد تشغيل غير آمن أو مكرر

1. عطّل الأتمتة إذا كان يمكن أن تكرر الأثر نفسه.
2. حدد كل هدف أُنشئ أو تغير بفعل التشغيل باستخدام علاقة المصدر ومخرج التشغيل والطابع الزمني.
3. لا تحذف السجلات لإخفاء المشكلة؛ اتبع إجراء التصحيح أو الإلغاء المعتمد.
4. صحح المشغّل أو الشرط أو حماية التكرار أو ربط الهدف في مساحة العمل غير الإنتاجية.
5. أعد الاختبار الإيجابي والسلبي.
6. اطلب مراجعة المالك قبل إعادة تمكين المسار.

<Warning>لا تعامل استجابة ناجحة من لوحة الاختبار كإتمام. يكتمل الاختبار فقط عندما يستطيع المراجع المسؤول العثور على نتيجة KayanOS المقصودة والتحقق منها بلا تكرار أو أثر جانبي غير مقصود.</Warning>

![سجل تشغيلات اختبار أتمتة KayanOS لمسار مضبوط.](https://kayanos.app/docs-images/ar/build/automations-test-run-and-troubleshoot.png)

## متابعة البناء

* راجع [مشغلات أتمتة KayanOS](/ar/build/automations-triggers) و[إجراءات أتمتة KayanOS](/ar/build/automations-actions) عند تصحيح المسار.
* طبّق [وصفات أتمتة KayanOS](/ar/build/automations-recipes) في نطاق غير إنتاجي معتمد.
* راجع [الصلاحيات والإتاحة](/ar/reference/permissions-and-availability) قبل توسيع الوصول.
