Qodly Seiten in einen 4D Webbereich ohne zusätzliche Kosten einbetten

Automatisch übersetzt von Deepl

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.

HDI_Share_C-S_Web_Session

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.

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. 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. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.