البرامج النصية / استيراد البيانات القديمة
«Scripts» هو الحل الشامل الذي تقدمه SKOOR لإنشاء البرامج النصية وتحريرها وتشغيلها، مع العديد من الخيارات لتخصيصها.
صفحة Scripts
تنقسم الصفحة إلى ثلاثة أقسام رئيسية:
الإعدادات
يتضمن هذا القسم الإعدادات العامة للنص البرمجي، مثل:
الإعداد | الوصف |
|---|---|
الاسم | حدد اسم البرنامج النصي SKOOR. |
الوصف | حدد وصف البرنامج النصي SKOOR. |
الوقت المحدد | يحدد مهلة الانتظار الافتراضية لتنفيذ البرنامج النصي، بالثواني. |
الملفات المقبولة | يحدد أنواع MIME المسموح بها لملفات المصدر التي يتم تحميلها. |
تكوين التشغيل الافتراضي | يحدد إعدادات التشغيل الافتراضية التي يعمل بها البرنامج النصي. |
نسخ الرمز المميز وإعادة تعيينه | يسمح للمسؤولين بنسخ رمز الويب هوك وإعادة تعيينه. متاح فقط للمسؤولين (ADMINS). |
تكوينات الجدولة | يسمح بجدولات متعددة مع تكوينات تشغيل مخصصة. اختر أولاً فترة (سنة، شهر، أسبوع، يوم، ساعة، أو دقيقة) – بناءً على اختيارك، ستظهر الحقول ذات الصلة فقط (الأشهر، أيام الشهر، أيام الأسبوع، الساعات، الدقائق). يمكن تحديد خيارات متعددة، ولتشغيل العملية على فترات منتظمة، اضبط الفترة وانقر نقرًا مزدوجًا على الرقم المطلوب. مثال: كل يوم في الساعة 02:30 → الفترة "اليوم"، الساعة 2، الدقيقة 30. مثال: كل 10 دقائق → الفترة "ساعة"، الدقيقة <انقر نقرًا مزدوجًا على 10> |
تشغيل التكوينات | يسمح بتخصيص مهلة الانتظار ومتغيرات البيئة. |
الملفات
يقدم هذا القسم حلاً كاملاً لإدارة الملفات الخاصة بالبرنامج النصي، بما في ذلك محرر متطور للبيانات النصية.
سيتم عرض رابط تنزيل إذا كانت البيانات ثنائية (غير قابلة للتحرير في شكل نصي).
التشغيل
هذا القسم مسؤول عن تشغيل البرنامج النصي ومراقبة عمليات تشغيله. ويوفر منطقة سحب وإفلات صغيرة لتحميل الملفات المصدرية إذا لزم الأمر.
إنشاء برنامج نصي
يمكن إنشاء البرامج النصية يدويًا أو تحميلها عبر ملفات Zip كما هو موضح أدناه:
استيراد البرنامج النصي باستخدام ملف مضغوط
عند استيراد ملف ZIP الخاص بالنص البرمجي، يتم إجراء تحليل، وعليه تظهر علامات مختلفة قبل إتمام عملية الاستيراد الفعلية.
وهذه العلامات هي:
أركان البرنامج النصي
نص التشغيل
يتضمن الملف الرئيسي منطق البرنامج النصي. وهذا يحدد نوع المشغل للبرنامج النصي:
يتوقع برنامج تشغيل Python وجود ملف
main.py.يتوقع برنامج تشغيل Talend وجود ملف
<scriptName>_run.sh.يتوقع برنامج تشغيل Shell وجود ملف
run.sh.
ضع البرنامج النصي الرئيسي في مستوى واحد أسفل الجذر (أو أعلى)، لأن المسح من حيث العرض يستخدم دائمًا البرنامج النصي الأقل عمقًا الذي يعثر عليه.
تظهر الرسالة التالية عند محاولة تشغيل برنامج نصي بدون برنامج نصي رئيسي لـ Runner.
.env
إنه ملف نصي بسيط يتضمن متغيرات البيئة. وبهذه الطريقة، يمكن تعديل المتغيرات المستخدمة في البرنامج النصي وفقًا لحالة الاستخدام.
يجب أن يكون ملف .env في نفس المجلد الذي يوجد فيه البرنامج النصي المشغل (main.py، run.sh … إلخ)
سيؤدي ملف .env التالي إلى إنشاء متغيرات البيئة الموضحة، مما يسمح بتعديلها في تكوينات التشغيل المخصصة.
متغيرات البيئة المُعدة مسبقًا
يتم تمرير بعض التفاصيل المتعلقة بتشغيل البرنامج النصي إلى بيئة البرنامج النصي كمتغيرات بيئة، وهي:
UserId كـ
SKOOR_USER_IDاسم المستخدم كـ
SKOOR_USER_USERNAMEUser’s Fullname كـ
SKOOR_USER_FULLNAME
توضح لقطات الشاشة أدناه كيفية استرداد هذه المتغيرات في مثال بلغة Python مع عرض النتيجة في البرنامج النصي:
import os
source_file = os.environ.get('SKOOR_SOURCE_FILE')
user_id = os.environ.get('SKOOR_USER_ID')
username = os.environ.get('SKOOR_USER_USERNAME')
userFullname = os.environ.get('SKOOR_USER_FULLNAME')
userGroup_id = os.environ.get('SKOOR_USER_USERGROUP_IDS')
userGroup_names = os.environ.get('SKOOR_USER_USERGROUP_NAMES')
print("sourceFile: ", source_file)
print("User ID: ", user_id)
print("Username: ", username)
print("Fullname: ", userFullname)
print("UserGroup ID: ", userGroup_id)
print("UserGroup name: ", userGroup_names)
مثال باستخدام ملف .env
يقرأ البرنامج النصي التالي المتغير foo الموجود في .env ويعرضه على وحدة التحكم، وفيما يلي لقطات شاشة لـ .env وتكوينات التشغيل ذات الصلة.
ملفات المصدر
يمكن تصميم البرامج النصية بحيث تقبل الملفات الخارجية (ملفات المصدر) وتعالجها كجزء من منطق البرنامج النصي.
يمكن الإشارة إلى الملفات المصدرية في البرنامج النصي باستخدام المتغير البيئي SKOOR_SOURCE_FILE كما هو موضح في مقتطف الشفرة التالي:
# IN PYTHON
import os
source_file = os.environ.get('SKOOR_SOURCE_FILE')
print(source_file)
#IN SHELL echo $SKOOR_SOURCE_FILE
يتم دعم أنواع الملفات التالية بشكل افتراضي، ما لم يتم تقييدها في تكوين البرنامج النصي:
نص (منظم)
text/plaintext/csvtext/tab-separated-valuestext/tsvtext/markdowntext/vttapplication/jsonapplication/x-ndjsonapplication/jsonlapplication/xmltext/xmlapplication/yamltext/yamlapplication/x-yamlapplication/sqltext/sql
المستندات
application/pdfapplication/mswordapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.ms-excelapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.ms-powerpointapplication/vnd.openxmlformats-officedocument.presentationml.presentationapplication/vnd.oasis.opendocument.textapplication/vnd.oasis.opendocument.spreadsheetapplication/vnd.oasis.opendocument.presentationapplication/rtfapplication/epub+zip
الأرشيفات
application/parquetapplication/x-parquetapplication/avroapplication/x-avroapplication/vnd.apache.arrow.fileapplication/vnd.apache.arrow.streamapplication/orcapplication/x-orcapplication/zipapplication/x-zip-compressedapplication/gzipapplication/x-gzipapplication/x-bzip2application/x-xzapplication/zstdapplication/x-zstdapplication/x-tarapplication/x-7z-compressed
تشغيل البرامج النصية الفرعية
إذا كانت البرامج النصية الفرعية مطلوبة، فيجب وضعها داخل مجلد bin. حيث إنها ستكون قابلة للتشغيل.
تأكد من وضع البرامج النصية الفرعية دائمًا في مجلد bin.
فيما يلي مثال في Shell:
الناتج من هذا الملف run.sh هو:
الناتج من هذا المجلد «run.sh» هو:
QuickRun
يوفر هذا الخيار زر "QuickRun" الذي يقوم بتشغيل البرنامج النصي دون ملف مصدر وبالقيم الافتراضية لمتغيرات البيئة.
وهو يتيح تشغيل البرنامج النصي بسرعة أثناء تطويره أو استكشاف الأخطاء وإصلاحها، بينما يعرض زر "Latest Job Overview" ناتج وحدة التحكم.
التشغيل
بدء التشغيل
في قسم التشغيل، حدد التكوين المطلوب (وقم بتحميل ملف المصدر إذا لزم الأمر)، ثم انقر فوق «تشغيل البرنامج النصي»
إلغاء التشغيل
يمكن إلغاء عمليات التشغيل الجارية وكذلك العمليات المعلقة بالنقر على أيقونة إلغاء المهمة في قسم "History" (السجل).
إلغاء الاشتراك في Poetry
Poetry هي أداة قوية تُستخدم لإدارة التبعيات وإدارة البيئات الافتراضية في لغة Python. ويتم ذلك كله عن طريق تعريف ملف pyproject.toml في نفس المجلد الذي يوجد فيه البرنامج النصي للتشغيل (main.py، run.sh ... إلخ).
سيؤدي حذف ملف pyproject.toml أو إعادة تسميته إلى إلغاء استخدام Poetry تلقائيًا، واستخدام skoor-python بدلاً منه.
نظرة عامة على المهمة
لعرض التفاصيل الكاملة لأحد المهام، انقر على أحد العناصر في قائمة «السجل» كما هو موضح أدناه:
سجل التشغيل
يعرض قسم "السجل" قائمة بجميع عمليات تشغيل البرنامج النصي. يمكن العثور على تفاصيل كل عملية تشغيل بالنقر عليها.
يُظهر قسم مخصص السجل التفصيلي لأحدث عملية تشغيل للبرنامج النصي (يتخطى عمليات التشغيل المعلقة/الملغاة)
استخدام رموز Webhook لتشغيل المحول
يتيح هذا الخيار تشغيل البرنامج النصي دون الحاجة إلى تسجيل الدخول، وهو الخيار المفضل للمستخدمين التقنيين.
لكل برنامج نصي رمز Webhook فريد، وسيتم نسخ عنوان URL إلى الحافظة بالنقر فوق «Copy Webhook Token» (نسخ رمز Webhook).
مثال على استخدام رموز Webhook
انسخ رمز Webhook من صفحة البرنامج النصي بالنقر على «Copy Webhook Token»؛ وفي هذا المثال، يبدو عنوان URL الخاص بـ Webhook كما يلي:
http://localhost:8090/scripts/8925cfd4-2063-4b07-9d56-956f2b754b47/run?token=6ae51c9f-d292-4d55-b512-4537121b37f5
استخدم عنوان URL لإرسال طلب POST:
باستخدام برنامج واجهة برمجة تطبيقات (API) مثل POSTMAN
تشير استجابة "200" التي تحتوي على كيان المهمة الأولي إلى أن التشغيل قد تم تشغيله كما هو موضح في لقطة الشاشة أدناه:
استخدام cURL في المحطة الطرفية
curl -X POST http://localhost:8090/scripts/8925cfd4-2063-4b07-9d56-956f2b754b47/run?token=6ae51c9f-d292-4d55-b512-4537121b37f5
سيبدو الرد كما يلي
يمكن ملاحظة هذه العملية في لوحة معلومات SKOOR، وتظهر العملية التي أنشأها مستخدم الرمز المميز في السجل.
الحذف
انقر على أيقونة سلة المهملات لحذف البرنامج النصي. ستظهر الأيقونة عند تمرير مؤشر الماوس فوق اسم البرنامج النصي.
تصدير البرنامج النصي كملف مضغوط
انقر على أيقونة الأرشيف لتصدير البرنامج النصي. ستظهر الأيقونة عند تمرير مؤشر الماوس فوق اسم البرنامج النصي.
يتم تضمين ملف «script_metadata.json» داخل ملف ZIP الذي تم تصديره، ويحتوي هذا الملف على الوصف، ووقت الانتظار الافتراضي، وتكوين التشغيل، وتكوين الجدول الزمني للبرنامج النصي.
في متصفح Safari: قم بتعطيل الإعدادات → عام → «فتح الملفات "الآمنة" بعد التنزيل» لمنع الاستخراج التلقائي لملفات ZIP.

































