defineField(), um einem Objekt, das Ihnen nicht gehört, ein Feld hinzuzufügen – ein Standard-Twenty-Objekt wie Person oder Company oder ein Objekt, das von einer anderen installierten App bereitgestellt wird. Im Gegensatz zu Inline-Feldern, die innerhalb von defineObject deklariert werden, benötigen eigenständige Felder einen objectUniversalIdentifier, um anzugeben, welches Objekt sie erweitern.
src/fields/company-loyalty-tier.field.ts
Hauptpunkte
-
Der
objectUniversalIdentifieridentifiziert das Zielobjekt. Für Standard-Twenty-Objekte importieren Sie die Konstante austwenty-sdk: -
Wenn Sie Felder inline innerhalb von
defineObject()definieren, benötigen SieobjectUniversalIdentifiernicht – es wird vom übergeordneten Objekt geerbt. -
defineField()ist die einzige Möglichkeit, Felder zu Objekten hinzuzufügen, die Sie nicht mitdefineObject()erstellt haben. -
Der Speicherort der Datei liegt bei Ihnen. Die Konvention ist
src/fields/\<name>.field.ts, aber das SDK erkennt Felder überall insrc/. -
Die
writabilitykann auch pro Feld festgelegt werden:MetadataWritability.APPLICATIONbeschränkt Schreibvorgänge auf die eigenen Logikfunktionen deiner App,MetadataWritability.SYSTEMist für plattformverwaltete Daten reserviert. Die Schreibbarkeit eines Felds kann nur strenger sein als die Ebene seines Objekts, und Lesevorgänge werden nicht beeinträchtigt. Siehe Objekte für die vollständige Semantik. -
Um eine Registerkarte zu einem Standard-Seitenlayout hinzuzufügen (z. B. der Aufgaben- oder Unternehmensdetailseite), verwenden Sie
definePageLayoutTabmitSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSaustwenty-sdk/define.
Hinzufügen einer Relation zu einem bestehenden Objekt
Um ein Relationsfeld hinzuzufügen (z. B. zur Verknüpfung Ihres benutzerdefinierten Objekts mit einer Standard-Person), verwenden Sie defineField() mit FieldType.RELATION. Das Muster ist dasselbe wie bei Inline-Relationen, jedoch mit explizit gesetztem objectUniversalIdentifier. Siehe Relations für das bidirektionale Muster.