defineField() para añadir un campo a un objeto que no te pertenece — un objeto estándar de Twenty como Person o Company, u otro objeto proporcionado por otra aplicación instalada. A diferencia de los campos en línea declarados dentro de defineObject, los campos independientes requieren un objectUniversalIdentifier para especificar qué objeto extienden.
src/fields/company-loyalty-tier.field.ts
Puntos clave
-
objectUniversalIdentifieridentifica el objeto de destino. Para los objetos estándar de Twenty, importa la constante desdetwenty-sdk: -
Al definir campos en línea dentro de
defineObject(), no necesitasobjectUniversalIdentifier— se hereda del objeto padre. -
defineField()es la única forma de añadir campos a objetos que no creaste condefineObject(). -
La ubicación del archivo depende de ti. La convención es
src/fields/\<name>.field.ts, pero el SDK detecta campos en cualquier lugar desrc/. -
La
writabilitytambién se puede configurar por campo:MetadataWritability.APPLICATIONrestringe las escrituras a las funciones lógicas de tu propia app,MetadataWritability.SYSTEMestá reservado para los datos gestionados por la plataforma. La capacidad de escritura de un campo solo puede ser más estricta que el nivel de su objeto, y las lecturas no se ven afectadas. Consulta Objetos para ver la semántica completa. -
Para agregar una pestaña a un diseño de página estándar (por ejemplo, la página de detalles de la Tarea o de la Empresa), usa
definePageLayoutTabconSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSdetwenty-sdk/define.
Añadir una relación a un objeto existente
Para añadir un campo de relación (por ejemplo, vinculando tu objeto personalizado a unPerson estándar), usa defineField() con FieldType.RELATION. El patrón es el mismo que para las relaciones en línea, pero con objectUniversalIdentifier establecido explícitamente. Consulta Relaciones para conocer el patrón bidireccional.