Erstellung dynamischer Dokumente mit 4D Write Pro in Qodly Anwendung

Automatisch übersetzt von Deepl

In einem professionellen Umfeld, in dem die Verwaltung und Erstellung von Dokumenten von entscheidender Bedeutung ist, sind leistungsstarke und flexible Werkzeuge unerlässlich. Stellen Sie sich vor, Sie könnten dynamische Dokumentvorlagen direkt von Ihrem Desktop-Client aus entwerfen, Formeln und Daten aus Ihrer Datenbank integrieren und diese Dokumente dann mit einem einzigen Klick über eine intuitive Weboberfläche erstellen. Mit 4D Write Pro und 4D Qodly Pro können Sie genau das tun!

Im Blog dieser Woche zeigen wir Ihnen, wie diese beiden Lösungen einander perfekt ergänzen, um Ihre Dokumentenprozesse zu automatisieren und zu optimieren. Sie erfahren, wie Sie in 4D Write Pro benutzerdefinierte Vorlagen erstellen können und wie Sie mit 4D Qodly Pro die erforderlichen Daten eingeben, die Dokumentenerstellung auslösen und sogar wählen können, ob sie in der Datenbank gespeichert oder über ein berechnetes Attribut zurückgegeben werden sollen.

Um diesen Prozess zu demonstrieren, werden wir die Anwendung Performance Review verwenden, die zum Download zur Verfügung steht. Bereiten Sie sich darauf vor, die Art und Weise, wie Sie Ihre Dokumente erstellen und verwalten, zu verändern und gleichzeitig Ihre Arbeitsabläufe zu vereinfachen und die Effizienz zu steigern.

Anwendung „Leistungsüberprüfung

Vorlagen im Desktop Client erstellen

4D Write Pro ist ein leistungsstarkes Textverarbeitungswerkzeug, dessen größte Stärke in der Möglichkeit liegt, Dokumentvorlagen zu erstellen, die mit Ihrer Datenbank verknüpft sind. Mit dieser Funktionalität können Sie automatisch verschiedene Arten von Dokumenten erstellen: Briefe, Verträge, Rechnungen, Kataloge, Spesenabrechnungen und vieles mehr.

In der Anwendung Performance Review werden je nach Abteilung verschiedene Dokumentvorlagen verwendet. Zum Beispiel:

PO-Vorlage

 

QA-Vorlage

blank

Diese Vorlagen enthalten dynamische Formeln, die direkt mit der Datenbank verknüpft sind und die Erstellung personalisierter Dokumente für jede Abteilung erleichtern.

Ein Formular in der Desktop-Anwendung ermöglicht es Ihnen, diese Vorlagen auf einfache Weise zu erstellen.Um Formeln einfach hinzuzufügen, werden in einer Dropdown-Liste alle für die Vorlage relevanten Formeln vorgeschlagen.

blank

Diese Formeln werden in einer JSON-Datei namens „WPexpression.json“ definiert.

Hier ist ein Auszug:

{
    "expression": [{
            "name": "Nachname",
            "formula": "this.data.review.Employee.Lastname"
        }, {
            "Name": "Vorname",
            "formula": "Diese.Daten.Überprüfung.Mitarbeiter.Vorname"
        }, {
            "name": "MitarbeiterName",
            "formula": "This.data.review.Employee.Firstname+\" \"+Diese.Daten.Überprüfung.Mitarbeiter.Nachname"
        }
    ]
}

Um mehr über 4D Write Pro und ORDA zu erfahren, lesen Sie diesen Blog: ORDA und 4D Write Pro: Das starke Paar!

Um die Erstellung von Tabellen zu vereinfachen, ist der in die 4D Write Pro Interface-Komponente integrierte Tabellenassistent ideal.

blank

Damit er sich nahtlos in unsere Datenbankstruktur einfügt, haben wir Konfigurationsdateien hinzugefügt, die die für die Leistungsüberprüfungsdokumente benötigten Formeln enthalten. Zum Beispiel:

{
    "tableDataSource": "This.data.review.Skills.orderBy(\"Group asc\")",
    "columns": [{
            "check": true,
            "header": "SkillName",
            "source": "This.item.Name"
        }, {
            "check": false,
            "header": "CheckCodeI",
            "source": "Choose(This.item.ID_Score=1; \"X\"; \"\")"
        }, {
            "check": false,
            "header": "CheckCodeP",
            "source": "Choose(This.item.ID_Score=2; \"X\"; \"\")"
        },{
            "check": false,
            "header": "CheckCodeR",
            "source": "Choose(This.item.ID_Score=3; \"X\"; \"\")"
        },{
            "check": false,
            "header": "CheckCodeE",
            "source": "Choose(This.item.ID_Score=4; \"X\"; \"\")"
        },{
            "check": true,
            "header": "ScoreName",
            "source": "This.item.Score.Name"
        },{
            "check": true,
            "header": "ScoreCode",
            "source": "This.item.Score.Code"
        }
    ],
    "breaks": [{
            "label": "SkillGroup",
            "source": "Dieses.Element.Gruppe"
        }
    ],
    "breakFormulas": [{
            "label": "Gruppenname",
            "source": "Dieses.Element.Gruppe"
	}
    ],
    "extraFormeln": [{
            "label": "ScoreSkillName",
            "source": "This.data.review.ScoreSkill.Name"
        },{
            "label": "ScoreSkillCode",
            "source": "Diese.Daten.Überprüfung.ScoreSkill.Code"
        },{
            "label": "CheckSkillScoreCodeI",
            "source": "Choose(This.data.review.ID_ScoreSkill=1; \"X\"; \"\")"
        }, {
            "label": "CheckSkillScoreCodeP",
            "source": "Choose(This.data.review.ID_ScoreSkill=2; \"X\"; \"\")"
        }, {
            "label": "CheckSkillScoreCodeR",
            "source": "Choose(This.data.review.ID_ScoreSkill=3; \"X\"; \"\")"
        }, {
            "label": "CheckSkillScoreCodeE",
            "source": "Choose(This.data.review.ID_ScoreSkill=4; \"X\"; \"\")"
        }
    ]
}

Mit diesen Formeln ist es sehr einfach, eine Tabelle mit Fähigkeiten und Ergebnissen zu erstellen.Nachdem Sie die Tabelle angepasst haben, sehen Sie hier das Ergebnis:

blank

Weitere Informationen über die Konfiguration und die Möglichkeiten des Tabellenassistenten finden Sie hier:

Ausfüllen von Daten im Web Client

Sobald die Vorlage erstellt ist, geben die Benutzer die erforderlichen Daten über eine intuitive Weboberfläche ein. Dank 4D Qodly Pro lässt sich dieser Schritt nahtlos in Ihre Datenbank integrieren, um sicherzustellen, dass die eingegebenen Informationen mit den in Ihren Vorlagen definierten Feldern übereinstimmen.

Weitere Details zum Einrichten dieser Schnittstellen finden Sie in unseren früheren Blogs unter:

Generierung des endgültigen Dokuments

Das endgültige Dokument wird direkt aus der Weboberfläche generiert. Wenn ein Benutzer auf die entsprechende Schaltfläche klickt, löst das Ereignis „On Click“ die Funktion „selectedReview.generatePDF()“ aus.

blank

 

Nachfolgend der Code, der die Generierung des PDF-Dokuments steuert:

Function generateDocument()->$doc: Object
var $context : Object
var $template : cs.TemplateEntity

// Create context
$context :=This.createContext()

// Load template
$template :=This.Employee.Departement.Template.Template

// Create 4D Write Pro document
$doc:=WP New($template)
WP SET DATA CONTEXT ($doc; $context)
WP COMPUTE FORMULAS ($doc)

return $doc

exposed Function generatePDF ()
var $WPdoc : Object
var $blob : 4D.Blob

// Generate WP document
$WPdoc:=This.generateDocument()

// Convert to PDF
WP EXPORT VARIABLE ($WPdoc; $blob; wk pdf)

// Save in database
This.DocumentPDF:=$blob
This.save()

Erlaubnis

In der Webanwendung haben die Benutzer keinen Zugriff auf die Tabelle „Template“. Die Funktion „Review.generatePDF“ muss jedoch auf diese Daten zugreifen, um das PDF-Dokument zu erzeugen. Um dies zu erreichen, haben wir eine „Beförderung“ für die Funktion eingerichtet.

  • Erstellen des „generatePDF“-Privilegs: Auf der Seite „Rolle und Berechtigung“ definieren wir eine neue Berechtigung namens generatePDF.

 

A dark-themed user interface section with two tabs: "Roles" and "Privileges," with "Privileges" currently selected in purple. Below, a "Privileges" section lists three privilege items:

    "guest" with an info icon.
    "createReview" with edit and delete icons.
    "generatePDF" with edit and delete icons, highlighted with a purple border.

A plus (+) button in the top right allows adding new privileges.

  • Erteilen von Leserechten: Wir gewähren Leserechte für die Datenklassen Abteilung und Vorlage. Diese Rechte sind wichtig, um die Write Pro-Vorlage zu finden, die für die Erstellung des Dokuments benötigt wird.
  • Heraufstufen der Funktion „Review.generatePDF“: Wir weisen der Funktion „Review.generatePDF“ die Option Promote zu. Wenn die Funktion auf dem Server aufgerufen wird, erwirbt sie automatisch das generatePDF-Recht und kann auf die typischerweise eingeschränkten Daten zugreifen.

 

A dark-themed user interface panel titled "Include a privilege." At the top, several privilege tags such as "createReview," "none," "authentify," "user," and "hr" are displayed. Below, there is a search bar labeled "Search available permissions" and a button to create a permission. Two buttons, "Reset" (red) and "Clear" (purple), are present.

A table lists different permissions with columns for Read, Create, Update, Delete, Execute, and Promote.

    "Department" has no checkboxes selected.
    "Review.generatePDF" has Read and Promote checked.
    "Template" has only Read checked.

On the right, a toggle switch labeled "Show inherited permissions" is set to off.

Dieser Mechanismus stellt sicher, dass nur autorisierte Prozesse ihre Rechte vorübergehend erweitern können, um bestimmte Aufgaben auszuführen, während gleichzeitig eine hohe Sicherheit und Kontrolle über den Datenzugriff gewährleistet ist.

Voilà!

blank

Nächster Schritt

Durch die Kombination von 4D Write Pro und 4D Qodly Pro können Sie die Generierung dynamischer Dokumente automatisieren, indem Sie vordefinierte Vorlagen und Echtzeitdaten zusammenführen. Dieser Ansatz bietet viele Vorteile:

  • Automatisierung von Dokumenten: Reduzieren Sie manuelle Aufgaben durch dynamische Vorlagen.
  • Optimierung des Arbeitsablaufs: Klare Trennung der Vorlagenerstellung (Desktop-Client) von der Dateneingabe (Web-Client).
  • Zeitersparnis und höhere Qualität: Eine praktische Lösung, die die Produktivität und die Qualität der erstellten Dokumente verbessert.

 

Wir laden Sie ein, diesen Ansatz in Ihren Projekten auszuprobieren und die Vorteile der Integration von 4D Write Pro mit 4D Qodly Pro zu entdecken. Teilen Sie uns Ihr Feedback mit oder schauen Sie sich unsere anderen Ressourcen an, um Ihr Wissen zu erweitern.

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.