4D v16Die Wakanda Applikation konfigurieren |
||||||||||||||||||||||||||||||||
|
4D v16
Die Wakanda Applikation konfigurieren
|
Parameter | Typ | Beschreibung |
localName | String | Lokaler Name des remote Catalog |
ipAddress | String | Adresse des remote Data Servers (HTTPS für zusätzliche Sicherheit verwenden) |
userName | String | Benutzername zum Öffnen der Session |
password | String | Kennwort zum Öffnen der Session |
jsFilePath | String | (optional) Relativer Pfadname der JavaScript Datei, die im gleichen Ordner wie das Model liegt (siehe Externe Datei ändern) |
timeout | Num | (optional) für Client Verbindung zur 4D Anwendung in Minuten (standardmäßig 60) |
Weitere Informationen dazu finden Sie unter der Methode mergeOutsideCatalog() im Wakanda Handbuch Server-Side API.
Das Objekt model gibt das aktuelle "Modell" der Wakanda Applikation an, d.h. die Collection der "Datastore Klassen" (Tabellen) und Methoden. In einer 4D Mobile Architektur kann das Wakanda Modell leer sein. Enthält die Wakanda Applikation bereits Objekte, werden die Klassen und Methoden aus der remote 4D Anwendung mit dem lokalen Modell zusammengelegt, wenn Sie die Methode mergeOutsideCatalog() verwenden.
Ist die Verbindung erfolgreich hergestellt, erscheinen die freigegebenen 4D Tabellen in der Liste der Klassen für das Modell auf der Wakanda Seite. In Wakanda Enterprise Studio sehen Sie die remote Tabellen in der Liste der Klassen im lokalen model.
Externe Elemente werden mit roten Pfeilen gekennzeichnet:
Der externe Catalog wird auch in Wakanda Studio angezeigt, über einen spezifischen Catalog mit Namen localName.waRemoteCatalog. Er wird auch mit einem roten Pfeil gekennzeichnet:
Hinweis: Dateierweiterungen lassen sich in Wakanda Studio ausblenden.
Doppelklicken Sie auf diese Datei, sehen Sie den externen Catalog im model-Editor des Wakanda Studio:
model.mergeOutsideCatalog("base4D","localhost:80", "admin", "123456");
model.mergeOutsideCatalog("base4D", { hostname: "http://localhost:8050", user: "wak", password: "123456", jsFile: "Model2.js" timeout: 15 });
Die Methoden openRemoteStore() und addRemoteStore() sind Alternativen zum Einrichten dynamischer Verbindungen zwischen einer Wakanda Applikation und einer 4D Anwendung.
Sie bieten wie mergeOutsideCatalog() dynamischen Zugriff auf die Daten von 4D Anwendungen, arbeiten aber in anderer Weise:
openRemoteStore() gibt eine gültige Referenz nur im aktuellen JavaScript Kontext zurück, während addRemoteStore() die Referenz während der Session beibehält.
Weitere Informationen dazu finden Sie in der Beschreibung zu den Methoden openRemoteStore() und addRemoteStore() in der Wakanda Dokumentation.
Sie können die Verbindung mit dem remote 4D datastore auf zwei Wegen herstellen (über den Befehl "Connect to Remote Datastore" von Wakanda Studio oder durch Ausführen einer JavaScript Methode). Dabei müssen Sie jedem Fall angeben, ob die remote Klassen (Tabellen) mit dem aktiven model verknüpft oder in ein eigenes model gelegt werden sollen.
Folgende Tabelle zeigt die Übersicht:
Für... | Mit aktivem model verknüpfen | eigenes model verwenden |
Dialogfenster "Connect to Remote Datastore" | Merge with active Model aktivieren | Merge with active Model deaktivieren |
JavaScript Methode | mergeOutsideCatalog() | openRemoteStore() oder addRemoteStore() |
Verknüpfen Sie remote 4D Tabellen mit dem aktiven model, werden sie als lokale Klassen in das Standardmodell der Applikation (datastore ist das ds Objekt) gesetzt. Der Zugriff ist wie folgt:
var invoiceList = ds.INVOICES.all(); //Standard Zugriff auf die Tabelle INVOICES des Catalog
Diese Funktionsweise vereinfacht die Entwicklung von 4D Mobile Applikationen, können aber zu Namenskonflikten zwischen Tabellen führen, insbesondere, wenn die Web Applikation mehrere Datastores aufruft. In diesem Fall ist es u.U. besser, die remote Elemente in ein eigenes model zu legen.
Remote 4D Tabellen, die nicht mit dem aktiven Model verknüpft sind, verwenden ein "dediziertes" model. Dann verwenden remote Klassen einen Namensbereich, der exakt zu der Datastore passt, mit der die Anwendung verbunden ist und sind nicht im ds Objekt zugänglich. So lassen sich mehrere Tabellen mit demselben Namen in unterschiedlichen Datastores verwenden:
var invoiceList = my4Dstore.INVOICES.all(); //Zugriff auf die Tabelle INVOICES des Datastore my4Dstore
Diese Vorgehensweise hat jedoch in der aktuellen Version von Wakanda Enterprise gewisse Einschränkungen:
Im allgemeinen wird empfohlen, für remote Datastores den Verknüpfungsmodus (merged mode) zu verwenden, wenn Ihre Client Applikationen direkt auf die Daten der 4D remote Tabellen zugreifen müssen.
Mit Wakanda Enterprise können Sie bestimmte Merkmale in der lokalen Version des externen Modells verändern. Das können Anpassungen, Optimierung oder Sicherheitsaspekte sein.
Dazu müssen Sie in eine .js Datei passenden JavaScript Code setzen. Diese Datei muss denselben lokalen Namen wie der Catalog plus die Endung .js haben und im gleichen Ordner wie das Modell liegen. Beispiel: Ist der Name des lokalen Catalog Emp4D.waRemoteModel, müssen Sie im Ordner des Modells eine Datei mit Namen Emp4D.js verwenden.
Hinweise:
Wakanda führt diese Datei aus, wenn der externe Catalog initialisiert ist. Sie können mit dieser Datei folgendes ausführen:
model.className.attributeName.scope ="publicOnServer"
model.className.calcAtt = new Attribute("calculated", "string"); model.className.calcAtt.onGet = function(); model.className.calcAtt.onSet = function();
model.className.newAlias = new Attribute("alias", "number", "Link_15.cinteger");
model.DerivedClass = new DataClass("Emps", "public", "My4DTable")
model.DerivedClass = new DataClass("Emps", "public", "My4DTable") model.DerivedClass.removeAttribute("salary"); model.DerivedClass.removeAttribute("comments"); model.DerivedClass.removeAttribute("...");
Weitere Informationen über JavaScript Code zum Arbeiten mit Modellen finden Sie im Kapitel Model API des Wakanda Handbuchs Server Side API.
Sie können für Wakanda Server spezifische Rechte setzen: Überall für das remote Model bzw. für jede Klasse individuell. Weitere Information dazu finden Sie im Abschnitt Assigning Group Permissions der Wakanda Dokumentation.
Produkt: 4D
Thema: Die Wakanda Applikation konfigurieren
4D Mobile ( 4D v16)