انتقل إلى المحتوى

ترحيل المنصة

يستوعب مستورد ترحيل المنصة (Admin → Settings → Migration) مساحة عمل هندسة مؤسسة كاملة من منصة مصدر مدعومة، ويُنزلها بوصفها بطاقات Turbo EA وعلاقات ووسومًا وأصحاب مصلحة ومستندات وتعليقات ونموذجًا فوقيًا مكتمل المعالم، في عملية واحدة مُدرَجة قابلة للمراجعة.

المصادر المدعومة

المصدر الصيغة
SAP LeanIX مصنف xlsx بصيغة Full Snapshot (Administration → Export → Full Snapshot)

تتصل منصات المصدر الإضافية (Ardoq، Mega HOPEX، BiZZdesign، Avolution Abacus، …) بنفس خط أنابيب الإدراج + التطبيق عبر محوّلات لكل مصدر. عند شحن محوّل جديد، يظهر تلقائيًا في منتقي Source platform في حوار الرفع دون الحاجة إلى أي تهيئة إدارية.

لمن هذا؟

العملاء الذين ينتقلون من إحدى منصات المصدر المدعومة إلى Turbo EA. لكل مصدر محوّله الخاص الذي يترجم الشكل الأصلي للمصدر (fact sheets / components / objects / elements …) إلى بطاقات Turbo EA.

LeanIX

يقبل محوّل LeanIX مصنف xlsx بصيغة Full Snapshot — التصدير متعدد الأوراق بورقة واحدة لكل نوع fact sheet، وورقة واحدة لكل نوع علاقة، إضافةً إلى TagGroups وTags وDocuments وComments وTypes، وورقة مرجعية ReadMe. تُرفض الملفات التي تفشل في فحص الحمولة للمحوّل عند خطوة الرفع برسالة خطأ واضحة.

كيفية الحصول على التصدير

في LeanIX، افتح Administration → Export → Full Snapshot. يُنتج هذا مصنف XLSX واحدًا يحتوي على كل fact sheet نشط، إضافةً إلى علاقاته ومجموعات وسومه ووسومه ومستنداته (تُسمّى resources في LeanIX) وتعليقاته.

لا تُضمَّن fact sheets المؤرشَفة في Full Snapshot — استعدها في LeanIX أولًا إن كنت بحاجة إلى أن تنزل في Turbo EA.

سير العمل

  1. ارفع اللقطة في Settings → Migration → New migration. اختر منصة المصدر (LeanIX هي الخيار الوحيد اليوم)، وأعطِ الترحيل تسمية، وأرفِق ملف اللقطة. يبقى الملف على قرص الخادم؛ تحمل قاعدة البيانات البيانات الوصفية فقط. يجري التحليل في الخلفية وتنتقل الحالة عبر uploaded → parsed تلقائيًا.

  2. راجع كل نوع كيان في العرض المتعدد التبويبات. يحمل كل صف مُدرَج إجراءً:

    • create — سيُضاف إلى Turbo EA
    • update — موجود بالفعل؛ ستُدمج الحقول المختلفة
    • skip — موجود بالفعل دون تغييرات
    • conflict — نقطة نهاية مفقودة، نوع غير مُعيَّن، تصادم مع مدمج، بريد إلكتروني مشوّه، إلخ — انظر عمود Note لنص السبب الكامل

    يعرض كل تبويب صفًا من أزرار التصفية فوق الجدول — زر لكل نوع بطاقة عند الانطباق، وإلا فلكل إجراء — فتستطيع تضييق قائمة كبيرة (مئات البطاقات، عشرات أنواع fact sheets) إلى شريحة واحدة في كل مرة. يعرض تبويب Cards اسم البطاقة المُحلّ إلى جانب UUID المصدر. يعرض عمود Note سبب التعارض الكامل، وتعرض صفوف التحديث أسماء الحقول المتغيّرة مع تلميح يشرح انتقال old → new.

    تُظهِر تبويبات New types وCustom fields وNew relations النموذج الفوقي المخصّص للمستأجِر من مساحة عمل المصدر لديك. افتراضيًا، تُقبَل هذه كما هي وتُنشئ أنواع بطاقات / حقول / أنواع علاقات غير مدمجة مطابقة في Turbo EA.

  3. عيّن الحقول المستوردة (اختياري، في تبويب Custom fields). لكل عمود مخصّص في منصة المصدر، اختر إحدى ثلاث نتائج من القائمة المنسدلة بجوار الصف:

    • Import as new custom field (الافتراضي) — ينزل العمود حقلًا جديدًا على نوع البطاقة الهدف، تحت قسم اصطناعي Imported from {source}.
    • Map to an existing Turbo EA field — وجّه القيمة إلى حقل مدمج على نوع البطاقة الهدف (مثلًا أرسِل businessCriticality من LeanIX إلى خانة businessCriticality الخاصة بـ TEA). عندئذ يُتجاوز صف حقل النموذج الفوقي عند التطبيق، فلا يُنشأ عمود يتيم.
    • Map to a lifecycle phase — لأعمدة التواريخ، وجّه القيمة إلى الخانة القياسية plan / phaseIn / active / phaseOut / endOfLife في card.lifecycle. تُحوَّل قيم التاريخ / الوقت والتاريخ تلقائيًا إلى YYYY-MM-DD (تُزال لاحقة T00:00:00 التي تكتبها بعض المنصات لخلايا التاريخ والوقت)؛ تُسقَط القيم غير القابلة للتحليل حتى لا تُفسد خريطة دورة الحياة.
    • Do not import this field — يُتجاوز العمود كليًا، سواء كسمة أو كحقل في النموذج الفوقي.

    التعيين خاص بكل ترحيل ويمكن تحريره في أي وقت تكون فيه الحالة parsed أو previewed. تُسرد الأعمدة الأساسية لمنصة المصدر التي يوجّهها المحوّل مباشرةً إلى خانات Turbo EA القياسية (مثل name وdisplayName وdescription وstatus وcategory → subtype وlifecycle:* وqualitySeal وcompletion في LeanIX) في أعلى التبويب ضمن لافتة معلومات للقراءة فقط — فتلك ليس لها قرار تعيين.

  4. طبّق عندما تكون راضيًا. يُنفّذ خط أنابيب التطبيق 12 تمريرة مرتّبة بحسب التبعيات (أنواع النموذج الفوقي ← حقول النموذج الفوقي ← أنواع علاقات النموذج الفوقي ← المستخدمون ← البطاقات ← مجموعات الوسوم ← الوسوم ← روابط بطاقة-وسم ← العلاقات ← الاشتراكات ← المستندات ← التعليقات) داخل نقاط حفظ فردية — فلا يُفسد صف فاشل واحد بقية الاستيراد. تنتقل الحالة عبر applying → applied (أو failed إن تجاوزت الأخطاء عتبة الأمان).

    إن احتوت اللقطة المُحلّلة على أي صفوف conflict، تظهر لافتة تحذير فوق تبويبات الإدراج (مع شارات قابلة للنقر تقفز إلى التبويب المتأثّر)، ويفتح النقر على Apply حوار تأكيد يوضّح أي الأنواع تحمل تعارضات. عليك أن تُقرّ صراحةً بأن الصفوف المتعارضة ستُتجاوز قبل تشغيل التطبيق. تعرض نتيجة Apply result بعد التطبيق شارة conflicts مخصّصة إلى جانب created / updated / skipped / errors — فالتعارضات ليست تخطّيات صامتة، بل نتيجة من الدرجة الأولى يراها المسؤول في سجل الترحيل.

ما الذي يُستورد

LeanIX Turbo EA
Application، ITComponent، Business Capability، Business Context، Process، DataObject، Interface، Provider، TechCategory، Platform، Objective، Project / Initiative تعيين مباشر 1:1 لنوع البطاقة
User Group Organization بنوع فرعي team، موسومة بـ leanix_origin=UserGroup
مراحل دورة الحياة (plan / phaseIn / active / phaseOut / endOfLife) تُحمَل حرفيًا إلى cards.lifecycle
التسلسل الهرمي (childParentRelation) يُطوى ضمن Card.parent_id
حواف الخلف / السلف (*SuccessorRelation) تُخزَّن علاقات؛ يُقلب الاتجاه عند الاستيراد ليطابق اصطلاح Turbo EA "المصدر يخلف الهدف" دلالة LeanIX "X له الخلف Y". تحمل أنواع بطاقات المستأجِر الجديدة has_successors=true ليُعرَض عرض النسب.
العلاقات (أكثر من 50 نوع حافة افتراضي في LeanIX، بكلا الأسلوبين: أسماء بنمط xlsx applicationITComponentRelation وأسماء بنمط GraphQL relApplicationToITComponent) علاقات Turbo EA الأصلية بسمات الحافة
أنواع العلاقات المعرّفة للمستأجِر (Server↔Application، lxSystem، lxDora، microservice، ESG، إلخ) صفوف relation_types جديدة غير مدمجة، تُنشأ تلقائيًا في تمريرة الاستيراد نفسها بحيث تنزل كل حافة فعليًا
الوسوم (مجموعات single / multi) مجموعات وسوم + وسوم + روابط لكل بطاقة
الاشتراكات (واحد لكل دور RESPONSIBLE / OBSERVER) صفوف أصحاب مصلحة؛ يُنشأ المستخدمون تلقائيًا معطّلين (is_active=false)
المستندات (URL) مرفقات مستندات
التعليقات (المستوى الأعلى + الردود، مُسطّحة) صفوف تعليقات
أنواع fact sheets المخصّصة للمستأجِر (مثل ESGCapability وServer وSystem وTechPlatform وTechnicalStack) أنواع بطاقات جديدة غير مدمجة بـ has_hierarchy=true وhas_successors=true وقسم حقول Imported from LeanIX مُعبّأ مسبقًا
الحقول المخصّصة للمستأجِر تُلحَق بـ fields_schema للنوع الهدف تحت قسم اصطناعي Imported from LeanIX. يُستخلَص نوع الحقل وقائمة خيارات enum الكاملة من ورقة ReadMe المرجعية في المصنف — بحيث ينزل currentMaturity كاختيار مفرد بجميع القيم الخمس (adHoc, repeatable, defined, managed, optimized) حتى عندما تستخدم البيانات واحدة فقط
أنواع العلاقات المخصّصة للمستأجِر أنواع علاقات جديدة غير مدمجة، تُترجَم أنواع نقاط النهاية عبر خريطة النوع LX↔TEA (UserGroup → Organization، إلخ)

لماذا تهمّ ورقة ReadMe

الورقة الأولى في الـ xlsx (ReadMe) هي مرجع حقول LeanIX الموثوق: كل عمود موثّق بنوعه (String، Integer، Percent، Datetime، Boolean، String list)، وحيثما ينطبق، بقيد enum الكامل (Possible values: one of A, B, C.). يقرأ المستورد هذه الورقة أولًا ويستخدمها مصدر الحقيقة الأساسي للبيانات الوصفية للحقول — ولا يعود إلى ورقة Types داخل البيانات إلا عندما لا يغطي ReadMe عمودًا ما. هذا هو الفرق بين حقل مستورَد يكون مُدخَل نص حر وحقل يكون قائمة منسدلة سليمة بالخيارات الصحيحة.

ما الذي لا يُستورد

لا تحمل اللقطة هذه — يُظهِر المستورد ما هو مفقود في عمود Note لكل صف:

  • ملفات المستندات الثنائية — في اللقطة عناوين URL فقط؛ يُنشئ المستورد صفوف مستندات بنمط الرابط. أعد رفع الملفات الثنائية يدويًا.
  • تسلسل التعليقات — تُسطّح الردود إلى تعليقات في المستوى الأعلى للحفاظ على النص؛ إذ تتطلّب آباء السلاسل بيانات وصفية من واجهة LeanIX ليست في اللقطة.
  • كلمات مرور المستخدمين وروابط SSO — ينزل المستخدمون المُنشأون تلقائيًا معطّلين. ادعهم أو اربطهم بـ SSO لاحقًا.
  • سجل التدقيق قبل الاستيراد — يبدأ سجل Turbo EA عند طابع وقت التطبيق.
  • المخططات / عروض الملصقات / لوحات المعلومات / عمليات البحث المحفوظة / تفضيلات الإشعارات / رموز API / webhooks — لا مكافئ لها في Turbo EA، أو لا نظير لها في اللقطة.

إعادة تشغيل استيراد

عدم التكرار مدمج. يسجّل جدول migration_identity_map معرّف الجهة المصدر ← UUID في Turbo EA لكل كيان جرى استيراده (مفتاحه (source_id, entity_kind, source_type) بحيث يمكن للمعرّف الخارجي نفسه أن يوجد مشروعًا في استيرادين من مصدرين مختلفين). تكتشف إعادة رفع اللقطة نفسها (أو لقطة محدّثة من مساحة العمل نفسها) الكيانات الموجودة وتكتب صفوفًا مُدرَجة update / skip بدلًا من تكرار create. يحمل external_id للبطاقة معرّف الجهة المصدر (factSheetId في LeanIX، معرّف مكوّن Ardoq، …) بحيث يبقى الرابط قائمًا حتى إن مُحيت خريطة الهوية.

إن احتجت إلى إعادة الاستيراد (مثلًا حذفت البطاقات المستورَدة بالجملة في الواجهة وتريد إنزالها من جديد)، استخدم أيقونة سلة المهملات في صف الترحيل لحذفه، ثم أعد الرفع. عمليات الترحيل applied قابلة للحذف؛ وفعل ذلك يحرّر قفل عدم التكرار (file_hash, source_type) بحيث يمكن رفع اللقطة نفسها مرة أخرى. تُقلَّم تلقائيًا صفوف migration_identity_map المتدلّية التي تشير إلى بطاقات لم تعد موجودة عند تمريرة الإدراج التالية، فلا يلزم أبدًا تنظيف خريطة الهوية يدويًا.

الإذن

هذه الصفحة محمية بإذن admin.migrate. لا يحمله افتراضيًا إلا دور admin؛ امنحه صراحةً لأدوار أخرى في Settings → Roles إن أردت أن يقود الترحيلَ غيرُ المسؤول.

القيود التي يجب التخطيط لها

  • ترحيل واحد قيد التنفيذ لكل زوج (file_hash, source_type). إعادة رفع البايتات نفسها بالضبط لنفس المصدر بينما لا يزال ترحيل نشطًا تُعيد سجل الترحيل الموجود (تجزئة SHA-256 + مفتاح المصدر هي مفتاح عدم التكرار الطبيعي). احذف سجل الترحيل أولًا إن كنت تريد فعلًا استيعابًا جديدًا للملف نفسه. رفع التجزئة نفسها تحت مفتاح مصدر مختلف (إن فعلت ذلك يومًا) ينزل ترحيلًا منفصلًا.
  • مساحات العمل الكبيرة (أكثر من 10 آلاف fact sheet): المحلّل تدفّقي، لكن خط أنابيب التطبيق يكتب الصفوف بمعاملة واحدة لكل تمريرة. خطّط لنحو 15 دقيقة للاستيرادات الكبيرة جدًا.
  • الحقول والقيم والوسوم المخصّصة محتمَلة، لا مُعيَّنة مسبقًا. أي عمود من LeanIX ليس في النموذج الفوقي المدمج لـ Turbo EA ينزل على خريطة attributes للبطاقة المستورَدة حرفيًا ويُظهَر في تبويب Custom fields ليتمكّن المسؤول من ترقيته (توجيهه إلى حقل TEA موجود، أو مرحلة دورة حياة، أو تخطّيه — انظر عيّن الحقول المستوردة في سير العمل أعلاه). الأمر نفسه لمجموعات الوسوم المعرّفة للمستأجِر ولأنواع العلاقات التي أضافتها منصات المصدر (مثل lxSystemSystem* و*Lx*Dora* وmicroservice* وeSGCapability*) — تظهر في تبويبَي New types / New relations دون تغيير، جاهزة لقرار المسؤول.
  • يمكن أن تستخدم رسائل بريد الاشتراكات أيًا من الفاصلين. يفصل تصدير LeanIX بصيغة "Full Snapshot" بين رسائل البريد داخل خلايا subscriptions:<RoleType>[:<RoleName>] بـ ;؛ ويستخدم تصدير GraphQL CSV الفاصلة ,. يقبل المحلّل أيًا منهما. تُدرَج الصفوف التي يكون بريدها مشوّهًا (مفقودًا منه @، أو فاصل لم يُقسَّم تسلّل خلسةً) بوصفها conflict بسبب واضح بدلًا من إنشائها كمستخدمين زائفين — صحّح تصدير المصدر وأعد الرفع.

التنظيف

يؤدي حذف سجل ترحيل (Settings → Migration → أيقونة سلة المهملات) إلى إزالة كلٍّ من صفوف قاعدة البيانات لذلك الترحيل (تتعاقب الصفوف المُدرَجة) وملف اللقطة على القرص. عمليات الترحيل uploaded وparsed وpreviewed وfailed وaborted وapplied قابلة للحذف جميعها؛ أما ترحيل applying فيجب أن ينتهي (أو يفشل) قبل أن يُزال.