defineField() pour ajouter un champ à un objet que vous ne possédez pas — un objet standard de Twenty comme Person ou Company, ou un objet fourni par une autre application installée. Contrairement aux champs en ligne déclarés à l’intérieur de defineObject, les champs autonomes nécessitent un objectUniversalIdentifier pour préciser l’objet qu’ils étendent.
src/fields/company-loyalty-tier.field.ts
Points clés
-
objectUniversalIdentifieridentifie l’objet cible. Pour les objets standard de Twenty, importez la constante depuistwenty-sdk: -
Lorsque vous définissez des champs en ligne dans
defineObject(), vous n’avez pas besoin deobjectUniversalIdentifier— il est hérité de l’objet parent. -
defineField()est la seule manière d’ajouter des champs à des objets que vous n’avez pas créés avecdefineObject(). -
L’emplacement du fichier est à votre discrétion. La convention est
src/fields/\<name>.field.ts, mais le SDK détecte les champs n’importe où danssrc/. -
La
writabilitypeut également être définie par champ :MetadataWritability.APPLICATIONlimite les écritures à la logique interne de votre application,MetadataWritability.SYSTEMest réservé aux données gérées par la plateforme. Lawritabilityd’un champ ne peut être que plus stricte que le niveau de son objet, et les lectures ne sont pas affectées. Voir Objects pour la sémantique complète. -
Pour ajouter un onglet à une mise en page standard (par exemple la page de détail de Task ou de Company), utilisez
definePageLayoutTabavecSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSdepuistwenty-sdk/define.
Ajouter une relation à un objet existant
Pour ajouter un champ de relation (par exemple pour lier votre objet personnalisé à unPerson standard), utilisez defineField() avec FieldType.RELATION. Le modèle est le même que pour les relations en ligne, mais avec objectUniversalIdentifier défini explicitement. Voir Relations pour le modèle bidirectionnel.