001c2097a3
Created by Github action <!-- mintlify-editor-comments:start --> Mintlify --- 0 threads from 0 users in Mintlify - No unresolved comments <!-- mintlify-editor-comments:end --> <!-- mintlify-comment--> <a href="https://dashboard.mintlify.com/twenty/twenty/editor/i18n-docs?source=pr_comment" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg"><img src="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg" alt="Open in Mintlify Editor"></picture></a> <!-- /mintlify-comment --> Co-authored-by: github-actions <github-actions@twenty.com>
226 lines
12 KiB
Plaintext
226 lines
12 KiB
Plaintext
---
|
|
title: استيراد العلاقات بين الكائنات عبر CSV
|
|
description: دليل كامل خطوة بخطوة لربط السجلات أثناء استيراد CSV.
|
|
---
|
|
|
|
## نظرة عامة
|
|
|
|
يأخذك هذا الدليل خلال استيراد العلاقات بين الكائنات—على سبيل المثال، ربط الأشخاص بالشركات، أو الفرص بالأشخاص.
|
|
|
|
<Note>**ما الذي يمكن استيراده:** العلاقات من واحد إلى متعدد التي تشير إلى نوع كائن واحد فقط. العلاقات التي تشير إلى أنواع كائنات متعددة (مثل ملاحظات مرتبطة بالأشخاص والشركات معًا) غير مدعومة للاستيراد بعد.</Note>
|
|
|
|
## فهم العلاقات
|
|
|
|
### ما هي علاقة "واحد إلى متعدد"؟
|
|
|
|
في علاقة واحد إلى متعدد:
|
|
|
|
* **شركة واحدة** لديها **العديد** من الأشخاص (الموظفين)
|
|
* **شركة واحدة** لديها **العديد** من الفرص
|
|
* **شخص واحد** لديه **العديد** من المهام
|
|
|
|
جانب "الواحد" هو **الأصل**. جانب "المتعدد" هو **التابع**.
|
|
|
|
### العلاقات الشائعة في Twenty
|
|
|
|
| علاقة | جانب "الواحد" (الأصل) | جانب "المتعدد" (التابع) |
|
|
| ------------------- | --------------------- | ----------------------- |
|
|
| الشركات → الأشخاص | الشركة | الأشخاص |
|
|
| الشركات → الفرص | الشركة | الفرص |
|
|
| الأشخاص → المهام | شخص | المهام |
|
|
| الأشخاص → الملاحظات | شخص | الملاحظات |
|
|
|
|
## الخطوة 1: تحديد جانبي "الواحد" و"المتعدد"
|
|
|
|
قبل الاستيراد، حدّد أي الكائنات هو الأصل وأيها التابع.
|
|
|
|
**اسأل نفسك:** "هل لدى كائن واحد من [Object A] العديد من [Object B]؟"
|
|
|
|
* شركة واحدة → العديد من الأشخاص ✓ (الشركة هي الأصل)
|
|
* شخص واحد → العديد من الشركات ✗ (هذا خطأ — الشخص ينتمي إلى شركة واحدة)
|
|
|
|
## الخطوة 2: استيراد سجلات الأصل أولًا
|
|
|
|
يجب أن يكون الأصل (جانب "الواحد") موجودًا في Twenty قبل أن تتمكّن من الإشارة إليه.
|
|
|
|
**ترتيب الاستيراد:**
|
|
|
|
1. **الشركات** أولًا (من دون تبعيات)
|
|
2. **الأشخاص** ثانيًا (مرتبطون بالشركات)
|
|
3. **الفرص** ثالثًا (مرتبطة بالشركات و/أو الأشخاص)
|
|
4. **المهام/الملاحظات** (مرتبطة بأي مما سبق)
|
|
|
|
<Warning>
|
|
**إذا كان سجل الأصل غير موجود، فسيفشل الاستيراد.**
|
|
|
|
تحقّق دائمًا من استيراد الشركات قبل استيراد الأشخاص الذين لديهم مراجع للشركات.
|
|
</Warning>
|
|
|
|
## الخطوة 3: تدوين المعرّف الفريد للأصل
|
|
|
|
تحتاج إلى الإشارة إلى سجل الأصل باستخدام **مُعرّف فريد**. الخيارات المتاحة:
|
|
|
|
| كائن الأصل | المُعرّفات الفريدة المتاحة |
|
|
| --------------------- | ---------------------------------------------------- |
|
|
| **الشركات** | `id` (UUID)، `domain` (موصى به)، أو أي حقل فريد مخصص |
|
|
| **الأشخاص** | `id` (UUID)، `email`، أو أي حقل فريد مخصص |
|
|
| **أعضاء مساحة العمل** | `id` (UUID)، `email` (ليس الاسم) |
|
|
| **كائنات مخصصة** | `id` (UUID)، أو أي حقل مميز كفريد |
|
|
|
|
<Note>**موصى به:** استخدم `domain` للشركات و`email` للأشخاص. هذه مقروءة للبشر وسهلة التحقّق منها في جدول البيانات الخاص بك.</Note>
|
|
|
|
### العثور على المعرّف
|
|
|
|
إذا كنت تحتاج إلى `id`:
|
|
|
|
1. صدّر سجلات الأصل من Twenty
|
|
2. يتضمن التصدير عمود `id`
|
|
3. استخدم هذه المعرّفات في ملف سجلات التابع
|
|
|
|
## الخطوة 4: التحقّق من وجود حقل العلاقة
|
|
|
|
قبل الاستيراد، تأكّد من وجود حقل العلاقة بين كائناتك.
|
|
|
|
**للتحقّق أو الإنشاء:**
|
|
|
|
1. اذهب إلى **الإعدادات → نموذج البيانات**
|
|
2. اختر كائن التابع الخاص بك (مثلًا، الأشخاص)
|
|
3. ابحث عن حقل علاقة يشير إلى الأصل (مثلًا، الشركة)
|
|
4. إذا لم يكن موجودًا، فقم بإنشائه:
|
|
* انقر **+ إضافة حقل**
|
|
* اختر نوع **العلاقة**
|
|
* اختر كائن الأصل
|
|
|
|
## الخطوة 5: جهّز ملف CSV الخاص بك
|
|
|
|
أضِف عمودًا إلى ملف CSV للتابع يشير إلى الأصل باستخدام مُعرّفه الفريد.
|
|
|
|
### مثال: ربط الأشخاص بالشركات
|
|
|
|
**ملف CSV الخاص بالأشخاص لديك:**
|
|
|
|
```csv
|
|
firstName,lastName,email,jobTitle,companyDomain
|
|
John,Smith,john@acme.com,CEO,https://acme.com
|
|
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
|
|
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
|
|
```
|
|
|
|
يشير عمود `companyDomain` إلى نطاق الشركة.
|
|
|
|
### متطلبات التنسيق
|
|
|
|
| معرّف | التنسيق | مثال |
|
|
| ----------------- | ------------------- | -------------------------------------- |
|
|
| النطاق | تنسيق عنوان URL | `https://acme.com` |
|
|
| البريد الإلكتروني | بريد إلكتروني قياسي | `john@acme.com` |
|
|
| المعرف | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
|
|
|
|
<Warning>
|
|
**تنسيق النطاق مهم!**
|
|
|
|
استخدم `https://domain.com` (وليس فقط `domain.com`). هذا يتوافق مع طريقة تخزين Twenty لنطاقات الشركات ويمنع أخطاء المطابقة.
|
|
</Warning>
|
|
|
|
### قواعد مهمة
|
|
|
|
1. **تطابق تام مطلوب** — يجب أن تتطابق القيمة تمامًا مع سجل الأصل
|
|
2. **قم بتعيين مُعرّف فريد واحد فقط** — لا تُدرج كلًّا من `companyId` و`companyDomain`
|
|
3. **حسّاس لحالة الأحرف** — `Acme.com` ≠ `acme.com`
|
|
|
|
## الخطوة 6: ارفع الملف وعيّن العلاقة
|
|
|
|
1. انتقل إلى كائن التابع (مثلًا، الأشخاص)
|
|
2. انقر **⋮** → **Import records**
|
|
3. ارفع ملف CSV الخاص بك
|
|
4. في خطوة تعيين الحقول:
|
|
* اعثر على عمود العلاقة الخاص بك (مثلًا، `companyDomain`)
|
|
* طابقه مع حقل علاقة **Company**
|
|
5. أكمل التعيينات المتبقية
|
|
6. راجع الأخطاء وأكّد
|
|
|
|
سيقوم Twenty بربط كل سجل تابع تلقائيًا بالأصل المطابق.
|
|
|
|
## الخطوة 7: التحقّق من الاستيراد
|
|
|
|
بعد الاستيراد:
|
|
|
|
1. افتح عددًا قليلًا من سجلات التابع (مثلًا، الأشخاص)
|
|
2. تحقّق من أن حقل العلاقة يعرض الأصل الصحيح (مثلًا، الشركة)
|
|
3. افتح سجل الأصل وتفقّد قسم السجلات المرتبطة
|
|
|
|
## أخطاء شائعة يجب تجنّبها
|
|
|
|
| الخطأ | المشكلة | الحل |
|
|
| ------------------------- | ---------------------------------------------- | ----------------------------------------------------------- |
|
|
| **ترتيب استيراد خاطئ** | استيراد الأشخاص قبل الشركات | استورد دائمًا الأصول أولًا، ثم التوابع |
|
|
| **تنسيق نطاق غير صحيح** | استخدام `acme.com` بدلًا من `https://acme.com` | استخدم تنسيق عنوان URL الكامل مع `https://` |
|
|
| **حقول فريدة متعددة** | تعيين كلٍّ من `companyId` و`companyDomain` | قم بتعيين مُعرّف فريد واحد فقط |
|
|
| **حقل علاقة مفقود** | حقل العلاقة غير موجود في نموذج البيانات | قم بإنشائه ضمن **الإعدادات → نموذج البيانات** قبل الاستيراد |
|
|
| **سجلات غير موجودة** | سجل الأصل غير موجود في Twenty | استورد سجلات الأصل أولًا، أو تحقّق من الأخطاء الإملائية |
|
|
| **عدم تطابق حالة الأحرف** | `Acme.com` في الملف ولكن `acme.com` في Twenty | تأكّد من تطابق حالة الأحرف تمامًا |
|
|
|
|
## الربط بأعضاء مساحة العمل
|
|
|
|
عند الربط بأعضاء مساحة العمل (فريقك):
|
|
|
|
* استخدم **عنوان بريدهم الإلكتروني**، وليس اسمهم
|
|
* مثال: `owner@yourcompany.com`، وليس "John Smith"
|
|
|
|
```csv
|
|
taskName,assignedTo
|
|
Follow up with client,john@yourcompany.com
|
|
Review proposal,jane@yourcompany.com
|
|
```
|
|
|
|
## الأسئلة الشائعة
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="ماذا لو لم يكن لدى سجل الأصل نطاق أو بريد إلكتروني؟">
|
|
لديك خياران:
|
|
1. استخدم `id` الخاص بـ Twenty (صدّر سجلات الأصل للحصول على معرّفاتها)
|
|
2. أنشئ حقلًا فريدًا مخصصًا في نموذج البيانات لتخزين معرّف خارجي من نظامك السابق
|
|
</Accordion>
|
|
|
|
<Accordion title="هل يمكنني تحديث العلاقات على السجلات الموجودة؟">
|
|
نعم! ضمّن المُعرّف الفريد لسجل التابع (مثلًا، `email` للأشخاص) وقيمة العلاقة الجديدة. سيقوم الاستيراد بتحديث العلاقة.
|
|
</Accordion>
|
|
|
|
<Accordion title="هل يمكنني استيراد علاقات عديدة-إلى-عدة؟">
|
|
العلاقات عديدة-إلى-عدة غير مدعومة للاستيراد بعد. هذا مُخطّط للنصف الأول من عام 2026.
|
|
</Accordion>
|
|
|
|
<Accordion title="هل يمكنني الربط بأنواع كائنات متعددة (مثل ربط الملاحظات بالأشخاص والشركات معًا)؟">
|
|
العلاقات التي تشير إلى أنواع كائنات متعددة غير مدعومة للاستيراد/التصدير بعد. هذا على خارطة الطريق لدينا.
|
|
</Accordion>
|
|
|
|
<Accordion title="ماذا يحدث إذا كان سجل الأصل غير موجود؟">
|
|
سيعرض الاستيراد خطأً لذلك الصف. يمكنك إما:
|
|
* استورد سجل الأصل أولًا، ثم أعد الاستيراد
|
|
* أصلِح قيمة المرجع
|
|
* أزل الصف من الاستيراد
|
|
</Accordion>
|
|
|
|
<Accordion title="لماذا لا يتم ربط العلاقة بشكل صحيح؟">
|
|
أسباب شائعة:
|
|
* تنسيق غير صحيح (استخدم `https://domain.com` للنطاقات)
|
|
* عدم تطابق حالة الأحرف (تحقّق من التهجئة الدقيقة)
|
|
* الأصل غير موجود (استورد الأصول أولًا)
|
|
* تعيين عدة مُعرّفات (استخدم واحدًا فقط)
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
<Warning>
|
|
**تذكير: السجلات المحذوفة حذفًا ناعمًا تُحتسب ضمن التفرد.**
|
|
|
|
إذا كنت تتلقى أخطاء "not found" ولكن يبدو أن السجل موجود، فتحقّق من قائمة الأوامر → عرض السجلات المحذوفة. قد يكون السجل الأصل قد حُذِف حذفًا منطقيًا.
|
|
</Warning>
|
|
|
|
## استكشاف الأخطاء وإصلاحها
|
|
|
|
هل تواجه مشكلات؟ اطّلع على:
|
|
|
|
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
|
|
* [قدرات استيراد العلاقات](/l/ar/user-guide/data-migration/capabilities/import-relations)
|
|
* [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
|