defineField() لإضافة حقل إلى كائن لا تملكه — كائن Twenty قياسي مثل Person أو Company، أو كائن يتم توفيره بواسطة تطبيق آخر مُثبَّت. على خلاف الحقول المضمّنة داخل defineObject، تتطلّب الحقول المستقلة objectUniversalIdentifier لتحديد الكائن الذي تقوم بتوسيعه.
src/fields/company-loyalty-tier.field.ts
النقاط الرئيسية
-
objectUniversalIdentifierيحدّد الكائن الهدف. بالنسبة لكائنات Twenty القياسية، استورد الثابت منtwenty-sdk: -
عند تعريف الحقول بشكل مضمّن داخل
defineObject()، لا تحتاج إلىobjectUniversalIdentifier— إذ يُورَّث من الكائن الأب. -
defineField()هي الطريقة الوحيدة لإضافة حقول إلى كائنات لم تُنشئها باستخدامdefineObject(). -
موقع الملف متروك لك. المتعارف عليه هو
src/fields/\<name>.field.ts، لكن حزمة SDK تكتشف الحقول في أي مكان داخلsrc/. -
لإضافة علامة تبويب إلى تخطيط صفحة قياسي (مثل صفحة تفاصيل Task أو Company)، استخدم
definePageLayoutTabمعSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSمنtwenty-sdk/define.
إضافة علاقة إلى كائن موجود
لإضافة حقل علاقة (مثل ربط الكائن المخصّص بكائن قياسيPerson)، استخدم defineField() مع FieldType.RELATION. النمط هو نفسه الخاص بالعلاقات المضمّنة لكن مع تعيين objectUniversalIdentifier صراحةً. اطّلع على Relations للنمط ثنائي الاتجاه.