Обзор
ИспользуйтеdefineField() для добавления поля к объекту, которым вы не владеете — стандартному объекту Twenty, такому как Person или Company, или объекту, поставляемому другим установленным приложением. В отличие от встроенных полей, объявленных внутри defineObject, отдельные поля требуют objectUniversalIdentifier, чтобы указать, какой объект они расширяют.
src/fields/company-loyalty-tier.field.ts
Основные моменты
-
objectUniversalIdentifierопределяет целевой объект. Для стандартных объектов Twenty импортируйте константу изtwenty-sdk: -
При определении полей непосредственно внутри
defineObject()вам не нуженobjectUniversalIdentifier— он наследуется от родительского объекта. -
defineField()— единственный способ добавить поля к объектам, которые вы не создавали с помощьюdefineObject(). -
SELECTиMULTI_SELECTследуют тем же правилам проверки параметров и цветов, что и встроенные поля. Если цвет не указан или имеет значение null, по умолчанию используетсяgray; неподдерживаемые цвета отклоняются. -
Расположение файла зависит от вас. Принятое соглашение —
src/fields/\<name>.field.ts, но CLI обнаруживает поля в любом месте внутриsrc/. -
isSearchable: trueможно задать дляdefineField()с теми же ограничениями, что и для встроенных полей (целевой объект с возможностью поиска, тип поля, совместимый с текстом), чтобы записи целевого объекта можно было находить по значениям вашего поля с помощью полнотекстового поиска. -
isAuditLogged: falseможно задать вdefineField(), чтобы изменения поля не отображались на временной шкале целевой записи, что особенно важно для полей, которые ваше приложение переписывает по расписанию. -
Чтобы добавить вкладку в стандартную компоновку страницы (например, на страницу сведений о задаче или компании), используйте
definePageLayoutTabсSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSизtwenty-sdk/define.
Добавление связи к существующему объекту
Чтобы добавить поле связи (например, связать ваш пользовательский объект со стандартнымPerson), используйте defineField() с FieldType.RELATION. Шаблон тот же, что и для встроенных связей, но с явным указанием objectUniversalIdentifier. Смотрите раздел Relations для двунаправленного шаблона.