Vai al contenuto principale

Panoramica

Usa defineField() per aggiungere un campo a un oggetto che non possiedi — un oggetto standard di Twenty come Person o Company, oppure un oggetto fornito da un’altra app installata. A differenza dei campi inline dichiarati all’interno di defineObject, i campi autonomi richiedono un objectUniversalIdentifier per specificare quale oggetto estendono.
src/fields/company-loyalty-tier.field.ts

Punti chiave

  • objectUniversalIdentifier identifica l’oggetto di destinazione. Per gli oggetti standard di Twenty, importa la costante da twenty-sdk:
  • Quando definisci campi inline dentro defineObject(), non hai bisogno di objectUniversalIdentifier — viene ereditato dall’oggetto padre.
  • defineField() è l’unico modo per aggiungere campi a oggetti che non hai creato con defineObject().
  • SELECT e MULTI_SELECT seguono le stesse regole di convalida delle opzioni e dei colori dei campi in linea. Un colore omesso o null usa per impostazione predefinita gray; i colori non supportati vengono rifiutati.
  • Il percorso del file dipende da te. La convenzione è src/fields/\<name>.field.ts, ma la CLI rileva i campi ovunque in src/.
  • È possibile impostare isSearchable: true su defineField() con gli stessi vincoli dei campi inline (oggetto di destinazione ricercabile, tipo di campo compatibile con il testo), in modo che i record dell’oggetto di destinazione siano individuabili tramite i valori del campo nella ricerca full-text.
  • È possibile impostare isAuditLogged: false su defineField() per escludere le modifiche del campo dalla cronologia del record di destinazione, il che è particolarmente importante per i campi che l’app riscrive secondo una pianificazione.
  • Per aggiungere una scheda a un layout di pagina standard (ad es. la pagina di dettaglio di Task o Company), utilizza definePageLayoutTab con STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS da twenty-sdk/define.

Aggiungere una relazione a un oggetto esistente

Per aggiungere un campo di relazione (ad esempio collegare il tuo oggetto personalizzato a un Person standard), usa defineField() con FieldType.RELATION. Lo schema è lo stesso delle relazioni inline, ma con objectUniversalIdentifier impostato esplicitamente. Vedi Relazioni per lo schema bidirezionale.