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/. -
Чтобы добавить вкладку в стандартную компоновку страницы (например, на страницу сведений о задаче или компании), используйте
definePageLayoutTabсSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSизtwenty-sdk/define.
Добавление связи к существующему объекту
Чтобы добавить поле связи (например, связать ваш пользовательский объект со стандартнымPerson), используйте defineField() с FieldType.RELATION. Шаблон тот же, что и для встроенных связей, но с явным указанием objectUniversalIdentifier. Смотрите раздел Relations для двунаправленного шаблона.