Mit 4D 21 eröffnet sich eine neue Möglichkeit: Sie können eine Qodly Seite nahtlos in einen Webbereich eines 4D Formulars einbetten , ohne eine zusätzliche 4D Client Lizenz zu benötigen. Mit 4D Qodly Pro haben Sie jetzt vollen Zugang zu einer neuen Generation von modernen, dynamischen Benutzeroberflächen. Sie müssen sich nicht mehr zwischen Desktop- und Webformularen entscheiden: Kombinieren Sie beides, und entwickeln Sie sich in Ihrem eigenen Tempo weiter.
4D Qodly Pro ist sofort in 4D verfügbar und bietet alle Werkzeuge, die Sie benötigen, um Webformulare für Ihre 4D Anwendung zu entwerfen, zu erstellen und auszuführen.
Die Erstellung von Qodly Seiten basiert auf skalierbaren Web Sessions, die erforderlich sind, um den Session Befehl zu verwenden und das Session Objekt abzurufen. Dieses Session-Objekt ist ein Eckpfeiler von 4D Qodly Pro: Es dient als Session-Speicher für benutzerspezifische Daten und spielt eine zentrale Rolle bei der Verwaltung von Benutzerrechten.
In einer Client-Server 4D Anwendung verwaltet 4D Server auch eine Remote User Session für jeden Benutzer. Dies ist sehr praktisch, da diese Sitzung auch den Sitzungsspeicher bereitstellt!
Ab 4D 21 können diese Remote-Benutzersitzungen nun auch Qodly Pages bedienen. Für Entwickler besteht der unmittelbare Vorteil in der Möglichkeit, eine Qodly Seite in einen Webbereich eines 4D Formulars einzubetten , ohne dass eine zusätzliche 4D Client Lizenz erforderlich ist. Die Lizenz, die der Benutzer bereits für die Anzeige des 4D Formulars verwendet hat, wird dank der Remote User Session für das Rendern der eingebetteten Qodly Seite wiederverwendet.
Ein konkretes Beispiel
Auf 4D Formularen können Webbereiche Qodly Seiten rendern, so dass es einfach ist, Web-Inhalte in Ihre 4D Server Anwendung einzubinden, wenn Sie es wünschen. Auf diese Weise können Sie alle Vorteile von 4D Qodly Pro nutzen, insbesondere das moderne, weborientierte Design.
Für den Zugriff auf ein 4D Formular oder eine Qodly Seite ist eine 4D Client Lizenz erforderlich, für beide Umgebungen gelten die gleichen Lizenzierungsregeln.
Dank des OTP-Mechanismus kann jedoch eine einzige Lizenz sowohl für ein 4D Formular als auch für eine eingebettete Qodly Seite innerhalb eines internen Webbereichs verwendet werden.
Das Ergebnis? Ein 4D Formular, das nahtlos traditionelle 4D UI Komponenten mit modernen 4D Qodly Pro Widgets kombiniert.

Sie sehen, dass die Sitzungsnummer sowohl im 4D Formular (unter Verwendung der Remote-Benutzersitzung) als auch im Webbereich, der eine Qodly Seite anzeigt, dieselbe ist.
Wie man das macht
Der otp-Mechanismus
OTP steht für One-Time-Passcode. In einer 4D Qodly Pro Anwendung können Sie mit OTP eine bestehende Sitzung wiederherstellen, wenn Sie von einem Gerät oder Browser zu einem anderen wechseln oder wenn Sie Workflows mit externen Systemen implementieren (z. B. Kontoerstellung per E-Mail, APIs von Drittanbietern usw.)
Zusammengefasst:
- Holen Sie sich ein OTP für eine bestimmte Sitzung, indem Sie die Funktion Session.createOTP() aufrufen .
- Verwenden Sie es in jedem Browser mit einer URL wie https://my4Dapp/$lib/renderer/?w=myQodlyPage&$4DSID=“+OTP
Die ursprüngliche Sitzung wird mit dem angegebenen OTP abgerufen .
Mit 4D 21 ist Session.createOTP() nicht mehr auf Web-Sessions beschränkt, sondern funktioniert jetzt auch mitRemote User Sessions!
Um eine bestehende Remote-Benutzersitzung abzurufen und zu verwenden, ist der Mechanismus derselbe: Geben Sie den OTP-Wert im Parameter $4DSID der Web-Anfrage an, und die entsprechende Remote-Benutzersitzung wird verwendet.
Implementierung
Erstellen Sie eine getOTP-Projektmethode, eine Singleton-Funktion oder eine ORDA-Funktion. Stellen Sie nur sicher, dass dieser Code auf dem Server ausgeführt wird. Das Ausführen des Session-Befehls auf einem Client gibt null zurück.
// In Client Server:
// ----------------
// This method is executed on the server because the session object is on the server
// The Session object is Null on the client
//
#DECLARE() : Text
return Session.createOTP()
Laden Sie eine Qodly-Seite (hier unten ‚Produkte‘) in einem Webbereich.
Form.otp:=getOTP
Form.url:="http://localhost/$lib/renderer/?w=Products&$4DSID="+Form.otp
WA OPEN URL(*; "QodlyPage"; Form.url)
Umgang mit Privilegien
Jedes benötigte Privileg für Ihre Qodly-Seite kann vorher in der Session gesetzt werden, bevor Sie die URL im Webbereich mit der setPrivileges() Funktion.
Wenn die Funktion in einer entfernten Benutzersitzung aufgerufen wird, fügt sie der Sitzung Berechtigungen für nachfolgende Webzugriffe hinzu.
Entwickeln und testen Sie Ihre Client-Server Anwendung in einer 4D Entwicklungsumgebung
Da der OTP-Mechanismus auch in einer 4D Entwicklungsumgebung unterstützt wird, kann Ihre Client-Server-Anwendung problemlos in einer 4D Entwicklungsumgebung entwickelt und getestet werden.
In dieser Entwicklungsumgebung gibt es jetzt eine echte Standalone-Sitzung , die in der Lage ist, ein OTP zu erzeugen, um den Web-Zugriff zu handhaben, genau wie eine Remote-Benutzer-Sitzung.
Spielen Sie das beigefügte HDI sowohl in einer Client-Server-Umgebung als auch in einer 4D Entwicklungsumgebung ab .Es gibt keinen Unterschied, und das Verhalten ist dasselbe.
Wie oben gezeigt, lautet die Erfolgsformel: 4D Qodly Pro = 4D, so dass es ein Kinderspiel ist, moderne und dynamische Schnittstellen in Ihre 4D Server Anwendungen zu bringen.
Der Weg ist frei, Sie brauchen nichts weiter, und der Einstieg in 4D Qodly Pro ist einfacher denn je.
