Neues 4D Remote Session Objekt mit Client/Server Verbindung und Stored Procedure

In 4D Anwendungen gibt es vier Arten von Sessions: 4D Remote Session, Stored Procedure Session, Mobile Session und Web Session.

Der Befehl Session gibt bereits Web- oder Mobile-Sessions zurück. Damit haben Sie Zugriff auf eine Vielzahl von Informationen über die Session und ein Objekt, das von allen Prozessen in der Session gemeinsam genutzt wird.

In 4D 20 R5 wurde der Session-Befehl auf die Client/Server-Verbindung und Stored Procedure erweitert.

HDI – Remote Session

4D Session

Unterschiedlicher Typ

Die Definitionen einer Stored-Procedure-Session oder einer Remote-Session sind:

Stored-Procedures-Session

Wenn Sie eine Methode mit dem Execute on server aufrufen, erzeugt 4D einen „Stored Procedure“-Prozess. Alle „Stored Procedure“-Prozesse gehören zur gleichen Session, die für Stored Procedures bestimmt ist.

Remote-Session

Methoden mit der Eigenschaft „Execute on server“ werden im Client-Zwillingsprozess auf dem Server ausgeführt. Alle Client-Zwillingsprozesse werden in der gleichen Session ausgeführt.

Klasse Session

Für eine Remote-Session oder eine Stored-Procedure-Session gibt der Session-Befehl ein 4D.Session Objekt zurück, das die folgenden Eigenschaften enthält:

  • id – Eindeutiger Bezeichner der Session
  • info – Alle Informationen über die Session
  • storage – Ein gemeinsames Objekt, das zum Speichern von Informationen verwendet werden kann, die allen Prozessen der entfernten Session zur Verfügung stehen
  • userName – Der mit der Session verbundene Benutzername

 

Zum Schreiben von generischem Code stehen dieselben Funktionen der Web-Session zur Verfügung. Sie tun jedoch nichts und geben immer denselben Wert zurück. Wir laden Sie ein, die Dokumentation der Klasse Session zu lesen.

Beispiel:

{
   "id": "B022A91187EF46C6B4D58C2A9BDE3C91",
   "info":{
        "type": "remote",
        "userName": "Designer",
        "machineName": "John Computer",
        "SystemBenutzername": "John Doe",
        "IPAdresse": "localhost",
        "hostType": "mac",
        "creationDateTime": "2024-03-27T10:11:31Z",
        "state": "aktiv",
        "ID": "B022A91187EF46C6B4D58C2A9BDE3C91",
        "persistentID": "24336199BADF4BFE945B109E565D1189"
    },
   "storage": {
        "Einstellungen": {
            "text": "test"
        }
    },
   "userName": "Designer"
}

Gemeinsame Nutzung von Daten zwischen Prozessen

Wenn eine neue Session erstellt wird, wird die Eigenschaft „Session.storage“ mit einem leeren gemeinsamen Objekt instanziiert. Dann können Sie alle Daten speichern, die Sie zwischen Prozessen in derselben Session austauschen möchten.

Use (Session.storage)
Session .storage.settings:=New shared object("property"; $value; "property2"; $value2)
End use

Anwendungsfälle

Prozess der Benutzerauthentifizierung und -verifizierung

Sie starten ein Verfahren zur Benutzerauthentifizierung und -verifizierung, wenn ein Client eine Verbindung zum Server herstellt. Dies kann zum Beispiel die Eingabe eines per E-Mail oder SMS gesendeten Codes in die Anwendung beinhalten. Anschließend fügen Sie die Benutzerinformationen dem Sessionspeicher hinzu, so dass der Server den Benutzer identifizieren kann. Auf diese Weise kann der 4D Server für alle Client-Prozesse auf die Benutzerinformationen zugreifen, so dass je nach Rolle des Benutzers (z. B. Manager, HR usw.) maßgeschneiderter Code geschrieben werden kann.

Daten einschränken

Mit diesem neuen Sessionstyp können Sie die Daten einschränken, die dem verbundenen Benutzer angezeigt werden. In einer Kundenverwaltungsanwendung hat zum Beispiel der Vertriebsmitarbeiter nur Zugriff auf seine Kundendaten. Alle Informationen zu dieser neuen Funktion werden in diesem Blog erläutert.

Weiter

Wenn Sie Fragen haben oder uns Ihre Erfahrungen und Anwendungsfälle mitteilen möchten, können Sie dies gerne im 4D Forum tun.

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.