إنتقل إلى المحتوى الرئيسي

تكامل ServiceNow

يتيح تكامل ServiceNow (الإدارة > الإعدادات > ServiceNow) المزامنة ثنائية الاتجاه بين Turbo EA وقاعدة بيانات الإدارة (CMDB) في ServiceNow الخاصة بك. يغطي هذا الدليل كل شيء بدءًا من الإعداد الأولي وصولًا إلى الوصفات المتقدمة وأفضل الممارسات التشغيلية.

إعدادات تكامل ServiceNow

لماذا تُدمج ServiceNow مع Turbo EA؟

تخدم قاعدة بيانات CMDB في ServiceNow وأدوات هندسة المؤسسة أغراضًا مختلفة لكنها متكاملة:

ServiceNow CMDBTurbo EA
التركيزالعمليات التقنية — ما الذي يعمل، ومن يملكه، وما الحوادث التي وقعتالتخطيط الاستراتيجي — كيف ينبغي أن يبدو المشهد بعد 3 سنوات؟
يُدار بواسطةالعمليات التقنية، إدارة الأصولفريق هندسة المؤسسة، مهندسو الأعمال
نقطة القوةالاكتشاف الآلي، سير عمل ITSM، الدقة التشغيليةسياق الأعمال، تخطيط القدرات، تخطيط دورة الحياة، التقييمات
البيانات النموذجيةأسماء المضيفين، عناوين IP، حالة التثبيت، مجموعات الإسناد، العقودالأهمية للأعمال، الملاءمة الوظيفية، الدَّين التقني، خارطة الطريق الاستراتيجية

Turbo EA هو سجل النظام لمشهد البنية المعمارية لديك — تعيش هنا الأسماء والأوصاف وخطط دورة الحياة والتقييمات وسياق الأعمال. يكمّل ServiceNow أداة Turbo EA ببيانات وصفية تشغيلية وتقنية (أسماء المضيفين، وعناوين IP، وبيانات SLA، وحالة التثبيت) تأتي من الاكتشاف الآلي وسير عمل ITSM. يبقي التكامل هذين النظامين متصلين مع احترام أن Turbo EA هو الرائد.

ما الذي يمكنك فعله

  • مزامنة السحب (Pull) — تعبئة Turbo EA بعناصر التكوين (CIs) من ServiceNow، ثم تولّي ملكيتها. لا تُحدّث عمليات السحب اللاحقة سوى الحقول التشغيلية (عناوين IP، الحالة، اتفاقيات SLA) التي يكتشفها SNOW تلقائيًا
  • مزامنة الدفع (Push) — تصدير البيانات المنسّقة في هندسة المؤسسة عودةً إلى ServiceNow (الأسماء، والأوصاف، والتقييمات، وخطط دورة الحياة) ليرى فرق ITSM سياق هندسة المؤسسة
  • المزامنة ثنائية الاتجاه — يقود Turbo EA معظم الحقول؛ ويقود SNOW مجموعة صغيرة من الحقول التشغيلية/التقنية. ويبقى النظامان متزامنين
  • تعيين الهوية — يضمن التتبّع المرجعي المتقاطع المستمر (sys_id ↔ UUID للبطاقة) بقاء السجلات مرتبطة عبر عمليات المزامنة

بنية التكامل

+------------------+ HTTPS / Table API +------------------+
| Turbo EA | <--------------------------------> | ServiceNow |
| | | |
| Cards | Pull: SNOW CIs -> Turbo Cards | CMDB CIs |
| (Application, | Push: Turbo Cards -> SNOW CIs | (cmdb_ci_appl, |
| ITComponent, | | cmdb_ci_server, |
| Provider, ...) | Identity Map tracks sys_id <-> UUID | core_company) |
+------------------+ +------------------+

يستخدم التكامل Table API الخاص بـ ServiceNow عبر HTTPS. تُشفَّر بيانات الاعتماد عند التخزين باستخدام Fernet (AES-128-CBC) المشتق من SECRET_KEY الخاص بك. تُسجَّل جميع عمليات المزامنة كأحداث تحمل source: "servicenow_sync" لتوفير مسار تدقيق كامل.


التخطيط لتكاملك

قبل تكوين أي شيء، أجِب عن هذه الأسئلة:

1. أي أنواع البطاقات تحتاج إلى بيانات من ServiceNow؟

ابدأ بنطاق صغير. نقاط التكامل الأكثر شيوعًا هي:

الأولويةنوع Turbo EAمصدر ServiceNowالسبب
عاليةApplicationcmdb_ci_business_appالتطبيقات هي جوهر هندسة المؤسسة — تحتوي CMDB على أسماء ومالكين وحالات موثوقة
عاليةITComponent (Software)cmdb_ci_spkgتُغذّي منتجات البرمجيات تتبّع EOL ورادار التقنية
متوسطةITComponent (Hardware)cmdb_ci_serverمشهد الخوادم لتعيين البنية التحتية
متوسطةProvidercore_companyسجل المورّدين لإدارة التكلفة والعلاقات
أقلInterfacecmdb_ci_endpointنقاط نهاية التكامل (غالبًا ما تُدار يدويًا في هندسة المؤسسة)
أقلDataObjectcmdb_ci_databaseمثيلات قواعد البيانات

2. أي نظام هو مصدر الحقيقة لكل حقل؟

هذا هو القرار الأهم. ينبغي أن يكون الإعداد الافتراضي Turbo EA هو الرائد — فأداة هندسة المؤسسة هي سجل النظام لمشهد البنية المعمارية لديك. ينبغي ألّا يقود ServiceNow سوى مجموعة ضيقة من الحقول التشغيلية والتقنية التي تأتي من الاكتشاف الآلي أو سير عمل ITSM. وكل شيء آخر — الأسماء والأوصاف والتقييمات وتخطيط دورة الحياة والتكاليف — مملوك ومنسَّق بواسطة فريق هندسة المؤسسة في Turbo EA.

النموذج المُوصى به — «Turbo EA يقود، وSNOW يكمّل»:

نوع الحقلمصدر الحقيقةالسبب
الأسماء والأوصافTurbo يقودينسّق فريق هندسة المؤسسة الأسماء الموثوقة ويكتب أوصافًا استراتيجية؛ وقد تكون أسماء CMDB فوضوية أو مولّدة تلقائيًا
الأهمية للأعمالTurbo يقودالتقييم الاستراتيجي لفريق هندسة المؤسسة — وليس بيانات تشغيلية
الملاءمة الوظيفية / التقنيةTurbo يقوددرجات نموذج TIME هي شأن خاص بهندسة المؤسسة
دورة الحياة (جميع المراحل)Turbo يقودplan وphaseIn وactive وphaseOut وendOfLife — جميعها بيانات تخطيط لهندسة المؤسسة
بيانات التكلفةTurbo يقودتتتبّع هندسة المؤسسة التكلفة الإجمالية للملكية؛ وقد تحتوي CMDB على بنود عقود لكن هندسة المؤسسة تملك العرض الموحَّد
نوع الاستضافة، الفئةTurbo يقودتصنّف هندسة المؤسسة التطبيقات بحسب نموذج الاستضافة لأغراض التحليل الاستراتيجي
البيانات الوصفية التقنيةSNOW يقودعناوين IP، إصدارات نظام التشغيل، أسماء المضيفين، الأرقام التسلسلية — بيانات اكتشاف آلي لا تصونها هندسة المؤسسة
حالة SLA / الحالة التشغيليةSNOW يقودحالة التثبيت، أهداف SLA، مقاييس التوافر — بيانات تشغيلية لـ ITSM
مجموعة الإسناد / الدعمSNOW يقودالملكية التشغيلية المتتبَّعة في سير عمل ServiceNow
تواريخ الاكتشافSNOW يقودأول/آخر اكتشاف، آخر فحص — بيانات وصفية للأتمتة في CMDB

3. كم مرة ينبغي أن تُجري المزامنة؟

السيناريوالتواترملاحظات
الاستيراد الأوليمرة واحدةالوضع الإضافي، راجِع بعناية
الإدارة النشطة للمشهديوميًاآلية عبر cron خلال ساعات خارج أوقات الذروة
تقارير الامتثالأسبوعيًاقبل إنشاء التقارير
عند الحاجةحسب الحاجةقبل مراجعات أو عروض هندسة المؤسسة الكبرى

الخطوة 1: متطلبات ServiceNow المسبقة

إنشاء حساب خدمة

في ServiceNow، أنشئ حساب خدمة مخصصًا (لا تستخدم الحسابات الشخصية أبدًا):

الدورالغرضمطلوب؟
itilوصول للقراءة إلى جداول CMDBنعم
cmdb_readقراءة عناصر التكويننعم
rest_api_explorerمفيد لاختبار الاستعلاماتمُوصى به
import_adminوصول للكتابة إلى الجداول الهدففقط لمزامنة الدفع

أفضل ممارسة: أنشئ دورًا مخصصًا بوصول للقراءة فقط إلى الجداول المحددة التي تخطط لمزامنتها فقط. دور itil واسع — والدور المخصص ذو النطاق المحدود يحدّ من نطاق التأثير.

المتطلبات الشبكية

  • يجب أن تصل الواجهة الخلفية لـ Turbo EA إلى مثيل SNOW الخاص بك عبر HTTPS (المنفذ 443)
  • كوّن قواعد جدار الحماية وقوائم السماح لعناوين IP
  • صيغة عنوان URL للمثيل: https://company.service-now.com أو https://company.servicenowservices.com

اختيار طريقة المصادقة

الطريقةالمزاياالعيوبالتوصية
Basic Authإعداد بسيطتُرسَل بيانات الاعتماد في كل طلبللتطوير/الاختبار فقط
OAuth 2.0قائمة على الرموز، ذات نطاق، ملائمة للتدقيقخطوات إعداد أكثرمُوصى به للإنتاج

لـ OAuth 2.0:

  1. في ServiceNow: System OAuth > Application Registry
  2. أنشئ نقطة نهاية OAuth API جديدة للعملاء الخارجيين
  3. دوّن Client ID وClient Secret
  4. بدّل الأسرار في دورة كل 90 يومًا

الخطوة 2: إنشاء اتصال

انتقل إلى علامة تبويب الإدارة > ServiceNow > Connections.

الإنشاء والاختبار

  1. انقر Add Connection
  2. املأ:
الحقلقيمة المثالملاحظات
الاسمProduction CMDBتسمية وصفية لفريقك
Instance URLhttps://company.service-now.comيجب استخدام HTTPS
Auth TypeBasic Auth أو OAuth 2.0يُوصى بـ OAuth للإنتاج
Credentials(حسب نوع المصادقة)مشفّرة عند التخزين عبر Fernet
  1. انقر Create، ثم انقر أيقونة الاختبار (رمز wifi) للتحقق من الاتصال
  • شريحة «Connected» خضراء — جاهز للانطلاق
  • شريحة «Failed» حمراء — تحقّق من بيانات الاعتماد، والشبكة، وعنوان URL

اتصالات متعددة

يمكنك إنشاء اتصالات متعددة من أجل:

  • مثيلات الإنتاج مقابل التطوير
  • مثيلات SNOW الإقليمية (مثل EMEA، APAC)
  • فرق مختلفة بحسابات خدمة منفصلة

يشير كل تعيين إلى اتصال محدد.


الخطوة 3: تصميم تعييناتك

انتقل إلى علامة تبويب Mappings. يربط التعيين نوع بطاقة واحدًا في Turbo EA بجدول واحد في ServiceNow.

إنشاء تعيين

انقر Add Mapping وكوّن:

الحقلالوصفالمثال
Connectionأي مثيل ServiceNow سيُستخدمProduction CMDB
Card Typeنوع بطاقة Turbo EA المراد مزامنتهاApplication
SNOW Tableاسم Table API في ServiceNowcmdb_ci_business_app
Sync Directionأي العمليات متاحة (انظر أدناه)ServiceNow -> Turbo EA
Sync Modeكيفية التعامل مع عمليات الحذفConservative
Max Deletion Ratioعتبة أمان لعمليات الحذف الجماعية50%
Filter Queryاستعلام ServiceNow المُرمَّز لتقييد النطاقactive=true^install_status=1
Skip Stagingتطبيق التغييرات مباشرة دون مراجعةإيقاف (مُوصى به للمزامنة الأولية)

تعيينات جداول SNOW الشائعة

نوع Turbo EAجدول ServiceNowالوصف
Applicationcmdb_ci_business_appتطبيقات الأعمال (الأكثر شيوعًا)
Applicationcmdb_ci_applعناصر تكوين التطبيقات العامة
ITComponent (Software)cmdb_ci_spkgحزم البرمجيات
ITComponent (Hardware)cmdb_ci_serverالخوادم الفعلية/الافتراضية
ITComponent (SaaS)cmdb_ci_cloud_service_accountحسابات الخدمة السحابية
Providercore_companyالمورّدون / الشركات
Interfacecmdb_ci_endpointنقاط نهاية التكامل
DataObjectcmdb_ci_databaseمثيلات قواعد البيانات
Systemcmdb_ci_computerعناصر تكوين الحواسيب
Organizationcmn_departmentالأقسام

أمثلة على استعلام التصفية

صفِّ دائمًا لتجنّب استيراد السجلات القديمة أو المتقاعدة:

# Only active CIs (minimum recommended filter)
active=true

# Active CIs with install status "Installed"
active=true^install_status=1

# Applications in production use
active=true^used_for=Production

# CIs updated in the last 30 days
active=true^sys_updated_on>=javascript:gs.daysAgoStart(30)

# Specific assignment group
active=true^assignment_group.name=IT Operations

# Exclude retired CIs
active=true^install_statusNOT IN7,8

أفضل ممارسة: أدرِج دائمًا active=true كحدّ أدنى. غالبًا ما تحتوي جداول CMDB على آلاف السجلات المتقاعدة أو المستبعَدة من الخدمة التي ينبغي ألّا تُستورد إلى مشهد هندسة المؤسسة لديك.


الخطوة 4: تكوين تعيينات الحقول

يحتوي كل تعيين على تعيينات حقول تحدد كيفية ترجمة الحقول الفردية بين النظامين. يوفّر حقل إدخال Turbo EA Field اقتراحات إكمال تلقائي بناءً على نوع البطاقة المحدد — بما في ذلك الحقول الأساسية، وتواريخ دورة الحياة، وجميع السمات المخصصة من مخطط النوع.

إضافة الحقول

لكل تعيين حقل، تكوّن:

الإعدادالوصف
Turbo EA Fieldمسار الحقل في Turbo EA (يقترح الإكمال التلقائي خيارات بناءً على نوع البطاقة)
SNOW Fieldاسم عمود API في ServiceNow (مثل name وshort_description)
Directionمصدر الحقيقة لكل حقل: SNOW يقود أو Turbo يقود
Transformكيفية تحويل القيم: Direct، Value Map، Date، Boolean
Identity (مربع اختيار ID)يُستخدم لمطابقة السجلات أثناء المزامنة الأولية

مسارات حقول Turbo EA

يجمّع الإكمال التلقائي الحقول حسب القسم. إليك المرجع الكامل للمسارات:

المسارالهدفقيمة المثال
nameاسم عرض البطاقة"SAP S/4HANA"
descriptionوصف البطاقة"Core ERP system for financials"
lifecycle.planدورة الحياة: تاريخ Plan"2024-01-15"
lifecycle.phaseInدورة الحياة: تاريخ Phase In"2024-03-01"
lifecycle.activeدورة الحياة: تاريخ Active"2024-06-01"
lifecycle.phaseOutدورة الحياة: تاريخ Phase Out"2028-12-31"
lifecycle.endOfLifeدورة الحياة: تاريخ End of Life"2029-06-30"
attributes.<key>أي سمة مخصصة من مخطط حقول نوع البطاقةتختلف حسب نوع الحقل

على سبيل المثال، إذا كان نوع Application لديك يحتوي على حقل بالمفتاح businessCriticality، فحدّد attributes.businessCriticality من القائمة المنسدلة.

حقول الهوية — كيف تعمل المطابقة

ضع علامة على حقل واحد أو أكثر باعتباره Identity (أيقونة المفتاح). تُستخدم هذه أثناء المزامنة الأولى لمطابقة سجلات ServiceNow بالبطاقات الموجودة في Turbo EA:

  1. البحث في خريطة الهوية — إذا كان رابط sys_id ↔ UUID للبطاقة موجودًا بالفعل، فاستخدمه
  2. مطابقة اسم دقيقة — المطابقة على قيمة حقل الهوية (مثل المطابقة بحسب اسم التطبيق)
  3. مطابقة تقريبية — إذا لم توجد مطابقة دقيقة، استخدم SequenceMatcher بعتبة تشابه 85%

أفضل ممارسة: ضع دائمًا علامة على حقل name كحقل هوية. إذا اختلفت الأسماء بين النظامين (مثلًا، يتضمن SNOW أرقام إصدارات مثل "SAP S/4HANA v2.1" بينما يحتوي Turbo EA على "SAP S/4HANA")، فنظّفها قبل المزامنة الأولى للحصول على جودة مطابقة أفضل.

بعد أن تنشئ المزامنة الأولى روابط خريطة الهوية، تستخدم عمليات المزامنة اللاحقة خريطة الهوية المستمرة ولا تعتمد على مطابقة الأسماء.


الخطوة 5: تشغيل أول مزامنة لك

انتقل إلى علامة تبويب Sync Dashboard.

تشغيل المزامنة

لكل تعيين نشط، ترى أزرار Pull و/أو Push بحسب اتجاه المزامنة المكوَّن:

  • Pull (أيقونة تنزيل سحابي) — يجلب البيانات من SNOW إلى Turbo EA
  • Push (أيقونة رفع سحابي) — يرسل بيانات Turbo EA إلى ServiceNow

ما الذي يحدث أثناء مزامنة السحب

1. FETCH Retrieve all matching records from SNOW (batches of 500)
2. MATCH Match each record to an existing card:
a) Identity map (persistent sys_id <-> card UUID lookup)
b) Exact name match on identity fields
c) Fuzzy name match (85% similarity threshold)
3. TRANSFORM Apply field mappings to convert SNOW -> Turbo EA format
4. DIFF Compare transformed data against existing card fields
5. STAGE Assign an action to each record:
- create: New, no matching card found
- update: Match found, fields differ
- skip: Match found, no differences
- delete: In identity map but absent from SNOW
6. APPLY Execute staged actions (create/update/archive cards)

عند تفعيل Skip Staging، تندمج الخطوتان 5 و6 — تُطبَّق الإجراءات مباشرة دون كتابة سجلات مرحلية.

مراجعة نتائج المزامنة

يعرض جدول Sync History بعد كل تشغيل:

العمودالوصف
Startedمتى بدأت المزامنة
DirectionPull أو Push
Statuscompleted أو failed أو running
Fetchedإجمالي السجلات المُسترجَعة من ServiceNow
Createdالبطاقات الجديدة المنشأة في Turbo EA
Updatedالبطاقات الموجودة المُحدَّثة
Deletedالبطاقات المؤرشَفة (محذوفة حذفًا ناعمًا)
Errorsالسجلات التي فشلت في المعالجة
Durationالوقت الزمني الفعلي

انقر أيقونة القائمة على أي تشغيل لفحص السجلات المرحلية الفردية، بما في ذلك الفرق على مستوى الحقل لكل تحديث.

إجراء المزامنة الأولى المُوصى به

1. Set mapping to ADDITIVE mode with staging ON
2. Run pull sync
3. Review staged records — check creates look correct
4. Go to Inventory, verify imported cards
5. Adjust field mappings or filter query if needed
6. Run again until satisfied
7. Switch to CONSERVATIVE mode for ongoing use
8. After several successful runs, enable Skip Staging

فهم اتجاه المزامنة مقابل اتجاه الحقل

هذا هو المفهوم الأكثر شيوعًا في سوء الفهم. هناك مستويان من الاتجاه يعملان معًا:

مستوى الجدول: اتجاه المزامنة

يُضبط على التعيين نفسه. يتحكم في أي عمليات المزامنة متاحة على Sync Dashboard:

اتجاه المزامنةزر Pull؟زر Push؟يُستخدم عندما...
ServiceNow -> Turbo EAنعملاتكون CMDB هي المصدر الرئيسي، وأنت تستورد فقط
Turbo EA -> ServiceNowلانعمتُثري أداة هندسة المؤسسة CMDB بالتقييمات
Bidirectionalنعمنعميساهم كلا النظامين بحقول مختلفة

مستوى الحقل: الاتجاه

يُضبط لكل تعيين حقل. يتحكم في أي قيمة لأي نظام تفوز أثناء تشغيل المزامنة:

اتجاه الحقلأثناء السحب (SNOW -> Turbo)أثناء الدفع (Turbo -> SNOW)
SNOW يقودتُستورَد القيمة من ServiceNowتُتخطّى القيمة (لا تُدفَع)
Turbo يقودتُتخطّى القيمة (لا يُكتب فوقها)تُصدَّر القيمة إلى ServiceNow

كيف يعملان معًا — مثال

التعيين: Application ↔ cmdb_ci_business_app، Bidirectional

الحقلالاتجاهيفعل السحب...يفعل الدفع...
nameTurbo يقوديتخطّى (هندسة المؤسسة تنسّق الأسماء)يدفع اسم هندسة المؤسسة -> SNOW
descriptionTurbo يقوديتخطّى (هندسة المؤسسة تكتب الأوصاف)يدفع الوصف -> SNOW
lifecycle.activeTurbo يقوديتخطّى (هندسة المؤسسة تدير دورة الحياة)يدفع تاريخ الانطلاق -> SNOW
attributes.businessCriticalityTurbo يقوديتخطّى (تقييم هندسة المؤسسة)يدفع التقييم -> حقل SNOW مخصص
attributes.ipAddressSNOW يقوديستورد IP من الاكتشافيتخطّى (بيانات تشغيلية)
attributes.installStatusSNOW يقوديستورد الحالة التشغيليةيتخطّى (بيانات ITSM)

رؤية أساسية: يحدد الاتجاه على مستوى الجدول أي الأزرار تظهر. ويحدد الاتجاه على مستوى الحقل أي الحقول تنتقل فعليًا أثناء كل عملية. التعيين ثنائي الاتجاه حيث يقود Turbo EA معظم الحقول ويقود SNOW الحقول التشغيلية/التقنية فقط هو أقوى تكوين.

أفضل ممارسة: اتجاه الحقل حسب نوع البيانات

ينبغي أن يكون الإعداد الافتراضي Turbo يقود للأغلبية العظمى من الحقول. لا تضبط SNOW يقود إلا للبيانات الوصفية التشغيلية والتقنية التي تأتي من الاكتشاف الآلي أو سير عمل ITSM.

فئة البياناتالاتجاه المُوصى بهالمبرّر
الأسماء، تسميات العرضTurbo يقودينسّق فريق هندسة المؤسسة أسماء موثوقة ونظيفة — أسماء CMDB غالبًا مولّدة تلقائيًا أو غير متسقة
الوصفTurbo يقودتلتقط أوصاف هندسة المؤسسة السياق الاستراتيجي وقيمة الأعمال والأهمية المعمارية
الأهمية للأعمال (نموذج TIME)Turbo يقودتقييم أساسي لهندسة المؤسسة — وليس بيانات تشغيلية
الملاءمة الوظيفية/التقنيةTurbo يقودتقييم وتصنيف خارطة طريق خاصان بهندسة المؤسسة
دورة الحياة (جميع المراحل)Turbo يقودplan وphaseIn وactive وphaseOut وendOfLife جميعها قرارات تخطيط لهندسة المؤسسة
بيانات التكلفةTurbo يقودتتتبّع هندسة المؤسسة التكلفة الإجمالية للملكية وتخصيص الميزانية
نوع الاستضافة، التصنيفTurbo يقودتصنيف استراتيجي يصونه المهندسون
معلومات المورّد/المزوّدTurbo يقودتدير هندسة المؤسسة استراتيجية المورّدين والعقود والمخاطر — قد يكون لدى SNOW اسم مورّد لكن هندسة المؤسسة تملك العلاقة
البيانات الوصفية التقنية (نظام التشغيل، IP، اسم المضيف)SNOW يقودبيانات اكتشاف آلي — لا تصونها هندسة المؤسسة
أهداف SLA، مقاييس التوافرSNOW يقودبيانات تشغيلية من سير عمل ITSM
حالة التثبيت، الحالة التشغيليةSNOW يقودتتتبّع CMDB ما إذا كان عنصر التكوين مثبّتًا أو متقاعدًا، إلخ
مجموعة الإسناد، فريق الدعمSNOW يقودالملكية التشغيلية المُدارة في ServiceNow
البيانات الوصفية للاكتشاف (أول/آخر ظهور)SNOW يقودالطوابع الزمنية للأتمتة في CMDB

Skip Staging — متى تستخدمه

افتراضيًا، تتبع عمليات السحب سير عمل التهيئة ثم التطبيق:

Fetch -> Match -> Transform -> Diff -> STAGE -> Review -> APPLY

تُكتب السجلات إلى جدول مرحلي، مما يتيح لك مراجعة ما سيتغيّر قبل التطبيق. هذا مرئي في Sync Dashboard ضمن "View staged records."

وضع Skip Staging

عند تفعيل Skip Staging على تعيين، تُطبَّق السجلات مباشرة:

Fetch -> Match -> Transform -> Diff -> APPLY DIRECTLY

لا تُنشأ أي سجلات مرحلية — تحدث التغييرات فورًا.

Staging (افتراضي)Skip Staging
خطوة المراجعةنعم — افحص الفروق قبل التطبيقلا — تُطبَّق التغييرات فورًا
جدول السجلات المرحليةمملوء بمدخلات create/update/deleteغير مملوء
مسار التدقيقالسجلات المرحلية + سجل الأحداثسجل الأحداث فقط
الأداءأبطأ قليلًا (يكتب صفوفًا مرحلية)أسرع قليلًا
التراجعيمكن الإجهاض قبل التطبيقيجب التراجع يدويًا

متى تستخدم كلًا منهما

السيناريوالتوصية
الاستيراد لأول مرةاستخدم Staging — راجِع ما يُنشأ قبل التطبيق
تعيين جديد أو متغيّراستخدم Staging — تحقّق من أن تحويلات الحقول تُنتج مخرجات صحيحة
تعيين مستقر ومُختبَر جيدًاSkip Staging — لا حاجة لمراجعة كل تشغيل
عمليات مزامنة يومية آلية (cron)Skip Staging — لا يمكن للتشغيلات غير المراقبة انتظار المراجعة
CMDB كبيرة (10,000+ عنصر تكوين)Skip Staging — يتجنّب إنشاء آلاف الصفوف المرحلية
بيئة حساسة للامتثالاستخدم Staging — احفظ مسار تدقيق كاملًا في الجدول المرحلي

أفضل ممارسة: ابدأ بتفعيل Staging لعدة عمليات مزامنة أولى. وبمجرد أن تثق في أن التعيين يُنتج نتائج صحيحة، فعّل Skip Staging للتشغيلات الآلية.


أوضاع المزامنة وأمان الحذف

أوضاع المزامنة

الوضعالإنشاءالتحديثالحذفالأنسب لـ
Additiveنعمنعمأبدًاالاستيراد الأولي، البيئات منخفضة المخاطر
Conservativeنعمنعمفقط البطاقات المنشأة بواسطة المزامنةالافتراضي لعمليات المزامنة المستمرة
Strictنعمنعمجميع البطاقات المرتبطةنسخ مطابق كامل لـ CMDB

Additive لا يزيل البطاقات من Turbo EA أبدًا، مما يجعله الخيار الأكثر أمانًا للاستيراد لأول مرة وللبيئات التي يحتوي فيها Turbo EA على بطاقات غير موجودة في ServiceNow (بطاقات منشأة يدويًا، بطاقات من مصادر أخرى).

Conservative (الافتراضي) يتتبّع ما إذا كانت كل بطاقة منشأة في الأصل بواسطة محرّك المزامنة. فقط تلك البطاقات يمكن أرشفتها تلقائيًا إذا اختفت من ServiceNow. أما البطاقات المنشأة يدويًا في Turbo EA أو المستوردة من مصادر أخرى فلا تُمَسّ أبدًا.

Strict يؤرشف أي بطاقة مرتبطة لم يعد عنصر التكوين المقابل لها في ServiceNow يظهر في نتائج الاستعلام، بغضّ النظر عمّن أنشأها. استخدم هذا فقط عندما يكون ServiceNow هو مصدر الحقيقة المطلق وتريد أن يعكسه Turbo EA بدقة.

Max Deletion Ratio — شبكة الأمان

كشبكة أمان، يتخطّى المحرّك جميع عمليات الحذف إذا تجاوز العدد النسبة المكوَّنة:

deletions / total_linked > max_deletion_ratio -> SKIP ALL DELETIONS

مثال على 10 سجلات مرتبطة وعتبة 50%:

السيناريوعمليات الحذفالنسبةالنتيجة
إزالة 3 عناصر تكوين بشكل طبيعي3 / 10 = 30%تحت العتبةتمضي عمليات الحذف
إزالة 6 عناصر تكوين دفعةً واحدة6 / 10 = 60%فوق العتبةتُتخطّى جميع عمليات الحذف
يُرجع SNOW نتيجة فارغة (انقطاع)10 / 10 = 100%فوق العتبةتُتخطّى جميع عمليات الحذف

يمنع هذا فقدان البيانات الكارثي الناتج عن تغييرات استعلام التصفية، أو انقطاعات ServiceNow المؤقتة، أو أسماء الجداول المكوَّنة بشكل خاطئ.

أفضل ممارسة: أبقِ نسبة الحذف عند 50% أو أقل للجداول التي تحتوي على أقل من 100 سجل. أما للجداول الكبيرة (1,000+)، فيمكنك ضبطها بأمان عند 25%.

التدرّج المُوصى به

Week 1: ADDITIVE mode, staging ON, run manually, review every record
Week 2-4: CONSERVATIVE mode, staging ON, run daily, spot-check results
Month 2+: CONSERVATIVE mode, staging OFF (skip), automated daily cron

الوصفات المُوصى بها حسب النوع

الوصفة 1: التطبيقات من CMDB (الأكثر شيوعًا)

الهدف: استيراد مشهد التطبيقات من ServiceNow، ثم تولّي ملكية الأسماء والأوصاف والتقييمات ودورة الحياة في Turbo EA. لا يقود SNOW سوى الحقول التشغيلية.

التعيين:

الإعدادالقيمة
Card TypeApplication
SNOW Tablecmdb_ci_business_app
DirectionBidirectional
ModeConservative
Filteractive=true^install_status=1

تعيينات الحقول:

Turbo EA FieldSNOW FieldDirectionTransformID؟
namenameTurbo يقودDirectنعم
descriptionshort_descriptionTurbo يقودDirect
lifecycle.activego_live_dateTurbo يقودDate
lifecycle.endOfLiferetirement_dateTurbo يقودDate
attributes.businessCriticalitybusines_criticalityTurbo يقودValue Map
attributes.hostingTypehosting_typeTurbo يقودDirect
attributes.installStatusinstall_statusSNOW يقودDirect
attributes.ipAddressip_addressSNOW يقودDirect

تكوين Value map لـ businessCriticality:

{
"mapping": {
"1 - most critical": "missionCritical",
"2 - somewhat critical": "businessCritical",
"3 - less critical": "businessOperational",
"4 - not critical": "administrativeService"
}
}

نصيحة المزامنة الأولى: في أول عملية سحب، تملأ قيم SNOW جميع الحقول (بما أن البطاقات غير موجودة بعد). وبعد ذلك، تصبح الحقول التي يقودها Turbo مملوكة لفريق هندسة المؤسسة — ولا تُحدّث عمليات السحب اللاحقة سوى الحقول التشغيلية التي يقودها SNOW (حالة التثبيت، IP)، بينما يدير فريق هندسة المؤسسة كل شيء آخر مباشرة في Turbo EA.

بعد الاستيراد: نقّح أسماء التطبيقات، واكتب أوصافًا استراتيجية، وعيّنها إلى قدرات الأعمال، وأضِف تقييمات الملاءمة الوظيفية/التقنية، واضبط مراحل دورة الحياة — كل هذا مملوك الآن لـ Turbo EA وسيُدفَع عودةً إلى ServiceNow في عمليات الدفع.


الوصفة 2: مكوّنات تقنية (خوادم)

الهدف: استيراد البنية التحتية للخوادم لأغراض تعيين البنية التحتية وتحليل التبعيات. الخوادم أكثر طابعًا تشغيليًا من التطبيقات، لذا تأتي حقول أكثر من SNOW — لكن Turbo EA لا يزال يقود الأسماء والأوصاف.

التعيين:

الإعدادالقيمة
Card TypeITComponent
SNOW Tablecmdb_ci_server
DirectionBidirectional
ModeConservative
Filteractive=true^hardware_statusNOT IN6,7

تعيينات الحقول:

Turbo EA FieldSNOW FieldDirectionTransformID؟
namenameTurbo يقودDirectنعم
descriptionshort_descriptionTurbo يقودDirect
attributes.manufacturermanufacturer.nameTurbo يقودDirect
attributes.operatingSystemosSNOW يقودDirect
attributes.ipAddressip_addressSNOW يقودDirect
attributes.serialNumberserial_numberSNOW يقودDirect
attributes.hostnamehost_nameSNOW يقودDirect

ملاحظة: بالنسبة للخوادم، تأتي الحقول التشغيلية/الاكتشافية مثل نظام التشغيل، وIP، والرقم التسلسلي، واسم المضيف بشكل طبيعي من الاكتشاف الآلي لـ SNOW. لكن فريق هندسة المؤسسة لا يزال يملك اسم العرض (الذي قد يختلف عن اسم المضيف) والوصف للسياق الاستراتيجي.

بعد الاستيراد: اربط المكوّنات التقنية بالتطبيقات باستخدام العلاقات، مما يغذّي مخطط التبعيات وتقارير البنية التحتية.


الوصفة 3: منتجات البرمجيات مع تتبّع EOL

الهدف: استيراد منتجات البرمجيات ودمجها مع تكامل endoflife.date في Turbo EA. يقود Turbo EA الأسماء والأوصاف والمورّد — الإصدار حقل واقعي يمكن أن يقوده SNOW.

التعيين:

الإعدادالقيمة
Card TypeITComponent
SNOW Tablecmdb_ci_spkg
DirectionBidirectional
ModeConservative
Filteractive=true

تعيينات الحقول:

Turbo EA FieldSNOW FieldDirectionTransformID؟
namenameTurbo يقودDirectنعم
descriptionshort_descriptionTurbo يقودDirect
attributes.versionversionSNOW يقودDirect
attributes.vendormanufacturer.nameTurbo يقودDirect

بعد الاستيراد: انتقل إلى الإدارة > EOL واستخدم Mass Search لمطابقة المكوّنات التقنية المستوردة تلقائيًا مع منتجات endoflife.date. يمنحك هذا تتبّعًا آليًا لمخاطر EOL يجمع بين مخزون CMDB وبيانات دورة الحياة العامة.


الوصفة 4: المورّدون / المزوّدون (ثنائي الاتجاه)

الهدف: إبقاء سجل المورّدين متزامنًا. يملك Turbo EA أسماء المورّدين وأوصافهم والسياق الاستراتيجي. يكمّل SNOW ببيانات الاتصال التشغيلية.

التعيين:

الإعدادالقيمة
Card TypeProvider
SNOW Tablecore_company
DirectionBidirectional
ModeAdditive
Filtervendor=true

تعيينات الحقول:

Turbo EA FieldSNOW FieldDirectionTransformID؟
namenameTurbo يقودDirectنعم
descriptionnotesTurbo يقودDirect
attributes.websitewebsiteTurbo يقودDirect
attributes.contactEmailemailSNOW يقودDirect

لماذا يقود Turbo معظم الحقول: ينسّق فريق هندسة المؤسسة استراتيجية المورّدين، ويدير العلاقات، ويتتبّع المخاطر — يشمل ذلك اسم عرض المورّد ووصفه وحضوره على الويب. لا يقود SNOW إلا في بيانات الاتصال التشغيلية التي قد تُحدَّث بواسطة فرق المشتريات أو إدارة الأصول.


الوصفة 5: دفع تقييمات هندسة المؤسسة عودةً إلى ServiceNow

الهدف: تصدير التقييمات الخاصة بهندسة المؤسسة إلى حقول ServiceNow المخصصة ليتمكن فرق ITSM من رؤية سياق هندسة المؤسسة.

التعيين:

الإعدادالقيمة
Card TypeApplication
SNOW Tablecmdb_ci_business_app
DirectionTurbo EA -> ServiceNow
ModeAdditive

تعيينات الحقول:

Turbo EA FieldSNOW FieldDirectionTransformID؟
namenameSNOW يقودDirectنعم
attributes.businessCriticalityu_ea_business_criticalityTurbo يقودValue Map
attributes.functionalSuitabilityu_ea_functional_fitTurbo يقودValue Map
attributes.technicalSuitabilityu_ea_technical_fitTurbo يقودValue Map

مهم: تتطلب مزامنة الدفع إلى الحقول المخصصة (المسبوقة بـ u_) أن تكون تلك الأعمدة موجودة بالفعل في ServiceNow. اعمل مع مسؤول ServiceNow لديك لإنشائها قبل تكوين تعيين الدفع. يحتاج حساب الخدمة إلى دور import_admin للوصول للكتابة.

لماذا يهم هذا: يرى فريق ITSM تقييمات هندسة المؤسسة مباشرة في سير عمل الحوادث/التغييرات في ServiceNow. عندما يقع حادث في تطبيق "Mission Critical"، يمكن لقواعد تصعيد الأولوية استخدام درجة الأهمية المقدَّمة من هندسة المؤسسة.


مرجع أنواع التحويل

Direct (الافتراضي)

يمرّر القيمة دون تغيير. استخدمه للحقول النصية التي لها نفس الصيغة في كلا النظامين.

Value Map

يترجم القيم المُعدَّدة بين الأنظمة. كوّنه بتعيين JSON:

{
"mapping": {
"1": "missionCritical",
"2": "businessCritical",
"3": "businessOperational",
"4": "administrativeService"
}
}

ينعكس التعيين تلقائيًا عند الدفع من Turbo EA إلى ServiceNow. على سبيل المثال، أثناء الدفع، يصبح "missionCritical" هو "1".

Date Format

يقتطع قيم التاريخ والوقت في ServiceNow (2024-06-15 14:30:00) إلى تاريخ فقط (2024-06-15). استخدمه لتواريخ مراحل دورة الحياة حيث يكون الوقت غير ذي صلة.

Boolean

يحوّل بين قيم ServiceNow المنطقية النصية ("true" و"1" و"yes") والقيم المنطقية الأصلية. مفيد للحقول مثل "is_virtual" و"active"، إلخ.


أفضل ممارسات الأمان

إدارة بيانات الاعتماد

الممارسةالتفاصيل
التشفير عند التخزينتُشفَّر جميع بيانات الاعتماد عبر Fernet (AES-128-CBC) المشتق من SECRET_KEY. إذا بدّلت SECRET_KEY، فأعِد إدخال جميع بيانات اعتماد ServiceNow.
الامتياز الأدنىأنشئ حساب خدمة SNOW مخصصًا بوصول للقراءة فقط إلى جداول محددة. لا تمنح وصول الكتابة إلا عند استخدام مزامنة الدفع.
تفضيل OAuth 2.0يُرسل Basic Auth بيانات الاعتماد في كل استدعاء API. يستخدم OAuth رموزًا قصيرة العمر بقيود نطاق.
تدوير بيانات الاعتمادبدّل كلمات المرور أو أسرار العميل كل 90 يومًا.

أمان الشبكة

الممارسةالتفاصيل
فرض HTTPSتُرفض عناوين HTTP وقت التحقق. يجب أن تستخدم جميع الاتصالات HTTPS.
التحقق من اسم الجدولتُتحقَّق أسماء الجداول مقابل ^[a-zA-Z0-9_]+$ لمنع الحقن.
التحقق من sys_idتُتحقَّق قيم sys_id كسلاسل سداسية عشرية مكوّنة من 32 حرفًا.
قوائم السماح لعناوين IPكوّن ServiceNow IP Access Control للسماح فقط بعنوان IP لخادم Turbo EA الخاص بك.

التحكم بالوصول

الممارسةالتفاصيل
محكوم بـ RBACتتطلب نقاط نهاية ServiceNow للقراءة فقط إذن servicenow.view؛ وتتطلب جميع التغييرات إذن servicenow.manage.
مسار التدقيقتنشر جميع التغييرات المنشأة بواسطة المزامنة أحداثًا تحمل source: "servicenow_sync"، مرئية في سجل البطاقة.
عدم كشف بيانات الاعتمادلا تُرجَع كلمات المرور والأسرار أبدًا في استجابات API.

قائمة مراجعة الإنتاج

  • حساب خدمة ServiceNow مخصص (وليس حسابًا شخصيًا)
  • OAuth 2.0 مع منحة بيانات اعتماد العميل
  • جدول تدوير بيانات الاعتماد (كل 90 يومًا)
  • حساب الخدمة مقيّد بالجداول المعيَّنة فقط
  • قائمة السماح لعناوين IP في ServiceNow مكوَّنة لعنوان IP خادم Turbo EA
  • نسبة الحذف القصوى مضبوطة عند 50% أو أقل
  • مراقبة تشغيلات المزامنة بحثًا عن أعداد أخطاء أو حذف غير معتادة
  • تتضمن استعلامات التصفية active=true كحد أدنى

كتيّب التشغيل

تسلسل الإعداد الأولي

1. Create ServiceNow service account with minimum required roles
2. Verify network connectivity (can Turbo EA reach SNOW over HTTPS?)
3. Create connection in Turbo EA and test it
4. Verify metamodel types have all fields you want to sync
5. Create first mapping with ADDITIVE mode, staging ON
6. Use the Preview button (via API) to verify mapping produces correct output
7. Run first pull sync — review staged records in the Sync Dashboard
8. Apply staged records
9. Verify imported cards in the Inventory
10. Adjust field mappings if needed, re-run
11. Switch mapping to CONSERVATIVE mode for ongoing use
12. After several successful runs, enable Skip Staging for automation

العمليات المستمرة

المهمةالتواترالكيفية
تشغيل مزامنة السحبيوميًا أو أسبوعيًاSync Dashboard > زر Pull (أو cron)
مراجعة إحصاءات المزامنةبعد كل تشغيلتحقّق من أعداد الأخطاء/الحذف
اختبار الاتصالاتشهريًاانقر زر الاختبار على كل اتصال
تدوير بيانات الاعتمادفصليًاحدّث في كل من SNOW وTurbo EA
مراجعة خريطة الهويةفصليًاتحقّق من المدخلات اليتيمة عبر إحصاءات المزامنة
تدقيق سجل البطاقةحسب الحاجةصفِّ الأحداث حسب مصدر servicenow_sync

إعداد عمليات المزامنة الآلية

يمكن تشغيل عمليات المزامنة عبر API لأغراض الأتمتة:

# Daily pull sync at 2:00 AM
0 2 * * * curl -s -X POST \
-H "Authorization: Bearer $TURBOEA_TOKEN" \
"https://turboea.company.com/api/v1/servicenow/sync/pull/$MAPPING_ID" \
>> /var/log/turboea-sync.log 2>&1

أفضل ممارسة: شغّل عمليات المزامنة خلال ساعات خارج أوقات الذروة. لجداول CMDB الكبيرة (10,000+ عنصر تكوين)، توقّع 2-5 دقائق بحسب زمن استجابة الشبكة وعدد السجلات.

تخطيط السعة

حجم CMDBالمدة المتوقعةالتوصية
< 500 عنصر تكوين< 30 ثانيةالمزامنة يوميًا، Staging اختياري
500-5,000 عنصر تكوين30 ثانية - دقيقتانالمزامنة يوميًا، تخطّي Staging
5,000-20,000 عنصر تكوين2-5 دقائقالمزامنة ليليًا، تخطّي Staging
20,000+ عنصر تكوين5-15 دقيقةالمزامنة أسبوعيًا، استخدم استعلامات التصفية للتقسيم

استكشاف الأخطاء وإصلاحها

مشكلات الاتصال

العَرَضالسببالإصلاح
Connection failed: [SSL]شهادة موقّعة ذاتيًا أو منتهيةتأكّد من أن SNOW يستخدم شهادة CA عامة صالحة
HTTP 401: Unauthorizedبيانات اعتماد خاطئةأعِد إدخال اسم المستخدم/كلمة المرور؛ تحقّق من أن الحساب غير مقفل
HTTP 403: Forbiddenأدوار غير كافيةامنح itil وcmdb_read لحساب الخدمة
Connection failed: timed outحظر جدار الحمايةتحقّق من القواعد؛ أضِف عنوان IP لـ Turbo EA إلى قائمة السماح في SNOW
الاختبار ناجح لكن المزامنة تفشلأذونات على مستوى الجدولامنح وصول القراءة إلى جدول CMDB المحدد

مشكلات المزامنة

العَرَضالسببالإصلاح
جُلب 0 سجلجدول أو تصفية خاطئةتحقّق من اسم الجدول؛ بسّط استعلام التصفية
جميع السجلات "create"عدم تطابق الهويةضع علامة على name كهوية؛ تحقّق من تطابق الأسماء بين النظامين
عدد أخطاء مرتفعفشل التحويلاتتحقّق من السجلات المرحلية بحثًا عن رسائل الخطأ
تُخطّى عمليات الحذفتجاوز النسبةارفع العتبة أو حقّق في سبب اختفاء عناصر التكوين
التغييرات غير مرئيةذاكرة المتصفح المؤقتةحدّث بشكل قسري؛ تحقّق من سجل البطاقة بحثًا عن الأحداث
بطاقات مكرّرةتعيينات متعددة لنفس النوعاستخدم تعيينًا واحدًا لكل نوع بطاقة لكل اتصال
رُفضت تغييرات الدفعأذونات SNOW مفقودةامنح دور import_admin لحساب الخدمة

أدوات التشخيص

# Preview how records will map (5 samples, no side effects)
POST /api/v1/servicenow/mappings/{mapping_id}/preview

# Browse tables on the SNOW instance
GET /api/v1/servicenow/connections/{conn_id}/tables?search=cmdb

# Inspect columns for a table
GET /api/v1/servicenow/connections/{conn_id}/tables/cmdb_ci_business_app/fields

# Filter staged records by action or status
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=create
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=update
GET /api/v1/servicenow/sync/runs/{run_id}/staged?status=error

مرجع API (سريع)

تتطلب جميع نقاط النهاية Authorization: Bearer <token>. تتطلب نقاط النهاية للقراءة فقط إذن servicenow.view، بينما تتطلب نقاط نهاية التعديل إذن servicenow.manage. المسار الأساسي: /api/v1.

الاتصالات

الطريقةالمسارالوصف
GET/servicenow/connectionsسرد الاتصالات
POST/servicenow/connectionsإنشاء اتصال
GET/servicenow/connections/{id}الحصول على اتصال
PATCH/servicenow/connections/{id}تحديث اتصال
DELETE/servicenow/connections/{id}حذف الاتصال + جميع التعيينات
POST/servicenow/connections/{id}/testاختبار الاتصال
GET/servicenow/connections/{id}/tablesتصفّح جداول SNOW
GET/servicenow/connections/{id}/tables/{table}/fieldsسرد أعمدة الجدول

التعيينات

الطريقةالمسارالوصف
GET/servicenow/mappingsسرد التعيينات مع تعيينات الحقول
POST/servicenow/mappingsإنشاء تعيين مع تعيينات الحقول
GET/servicenow/mappings/{id}الحصول على تعيين مع تعيينات الحقول
PATCH/servicenow/mappings/{id}تحديث التعيين (يستبدل الحقول إن قُدّمت)
DELETE/servicenow/mappings/{id}حذف التعيين
POST/servicenow/mappings/{id}/previewمعاينة تجريبية (5 سجلات عينة)

عمليات المزامنة

الطريقةالمسارالوصف
POST/servicenow/sync/pull/{mapping_id}مزامنة السحب (?auto_apply=true افتراضي)
POST/servicenow/sync/push/{mapping_id}مزامنة الدفع
GET/servicenow/sync/runsسرد سجل المزامنة (?limit=20)
GET/servicenow/sync/runs/{id}الحصول على تفاصيل التشغيل + الإحصاءات
GET/servicenow/sync/runs/{id}/stagedسرد السجلات المرحلية لتشغيل
POST/servicenow/sync/runs/{id}/applyتطبيق السجلات المرحلية المعلّقة