Skip to main content
Usa 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

  • objectUniversalIdentifier identifica el objeto de destino. Para los objetos estándar de Twenty, importa la constante desde twenty-sdk:
  • Al definir campos en línea dentro de defineObject(), no necesitas objectUniversalIdentifier — se hereda del objeto padre.
  • defineField() es la única forma de añadir campos a objetos que no creaste con defineObject().
  • 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 de src/.
  • La writability también se puede configurar por campo: MetadataWritability.APPLICATION restringe las escrituras a las funciones lógicas de tu propia app, MetadataWritability.SYSTEM está 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 definePageLayoutTab con STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS de twenty-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 un Person 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.