Zum Hauptinhalt springen
Unsere App benötigt zwei benutzerdefinierte Objekte: Dokumentvorlagen (was geschrieben werden soll) und Dokumente (das generierte Ergebnis). Legen wir sie fest. Jede Entitäts-Datei mit dem CLI entpacken — es erzeugt eine gültige UUID und den richtigen -Ordner für Sie:
Unten zeigen wir die fertigen Dateien.
Jede *_UNIVERSAL_IDENTIFIER Konstante lebt in src/constants/universal-identifiers.ts und wird importiert, wo verwendet. Die Snippets unten lassen diese importieren, um kurz zu sein – halten Sie sie in Ihren eigenen Dateien.

Das Template-Objekt

Eine Vorlage hat einen name, einen body mit {{placeholders}}, und ein target, das sagt, ob es für eine Person oder ein Unternehmen geschrieben wurde. Das Feld body ist ein RICH_TEXT Feld. Zwanzig gibt ihm also einen vollwertigen Rich-Text-Editor.
SELECT Option Werte muss UPPER_CASE (PERSON, nicht person) sein und die defaultValue ist in extra Anführungszeichen eingewickelt: `'PERSON'`. Das label ist das, was Benutzer sehen.

Das Dokumentenobjekt

Das generierte Dokument speichert den gerenderten content und einen status. Definiere es auf die gleiche Weise, mit einer status Auswahl von DRAFT / GENERATED. Vollständige Datei: document.object.ts.

Verknüpfung mit einer Beziehung

Jedes Dokument sollte auf die Vorlage verweisen, aus der es stammt. Beziehungen sind bidirectional — Sie definieren beide Seiten, jede in ihrer eigenen Felddatei.
Die andere Seite (template-documents-relation.field.ts) ist ein RelationType.ONE_TO_MANY Feld mit dem Namen documents, das den entgegengesetzten Weg weist. Siehe Relations für das vollständige Muster.

Sehen Sie es in 20

Wenn yarn twenty dev läuft, öffnen Sie Einstellungen → Datenmodell. Beide Objekte erscheinen , markiert mit deiner App.
Datenmodell-Einstellungen zeigen Dokumente und Dokumentvorlagen an

Beide benutzerdefinierte Objekte, die der Document Generator App gehören.

Erstellen Sie eine Vorlage zum Testen mit — Name sie Verkaufsvorschlag, setzen Sie Ziel auf Person, und fügen Sie einen Körper mit ein paar Platzhaltern ein:
Ein Verkaufsvorschlagvorlagen-Eintrag mit Platzhalterkörper

Ein Vorlageneintrag. Der Körper behält seine Platzhalter bis ein Dokument generiert ist.

Nach diesem Schritt: hast du documentTemplate und document Objekte, verlinkt von eine Relation, aus der eine Vorlage generiert werden kann. Als nächstes folgt die Logik, die sie ausfüllt.

Weiter: Dokumente generieren →

Schreibe die logische Funktion, die das Template füllt.