Was ist neu in 4D v18 R5

Klassen Im ORDA datenmodell

REichweite und Ausführungskontext für klassenfunktionen

Im Client/Server Modus werden Klassenfunktionen standardmäßig auf dem Server ausgeführt. Jetzt können Sie festlegen, dass einige davon auf dem Client ausgeführt werden. Dafür verwenden Sie das neue Schlüsselwort local. Sie können auch wählen, ob Klassenfunktionen als API für REST Clients veröffentlicht werden. Dafür verwenden Sie das neue Schlüsselwort exposed

 
 

Shareable entity selections

Manchmal wollen Sie eine Entity-Selection mit einem anderen Prozess teilen oder auch für alle Prozesse verfügbar machen. Hierzu ein Beispiel: Sie führen eine komplexe Suche aus, um alle überfälligen Rechnungen zu finden, dann soll der Benutzer einige davon (oder alle) auswählen können und anschließend eine Zahlungserinnerung als E-Mail versenden. Das Senden der E-Mails wird am besten in einem anderen Prozess ausgeführt, damit der Benutzer nicht blockiert wird. Anstatt eine Liste mit Primärschlüsseln für den neuen Prozess anzulegen, können Sie diesen Vorgang über eine shared Entity-Selection direkt an einen anderen Prozess übergeben. Shared Entity-Selections lassen sich auch dem Storage Objekt zuweisen, um sie mit allen Prozessen zu teilen.

Eine Entity-Selection kann shareable oder non-shareable sein:

  • Eine shareable Entity-Selection lässt sich in einem shared object bzw. shared collection speichern und kann zwischen mehreren Prozessen oder Workern geteilt werden. Sie erlaubt nicht Hinzufügen neuer Entities. Versuchen Sie, eine Entity in einer shared Entity-Selection hinzuzufügen, wird ein Fehler ausgelöst.
  • Eine non-shareable Entity-Selection lässt sich weder zwischen mehreren Prozessen teilen, noch in einem shared object oder shared collection speichern. Versuchen Sie, eine non-shareable Entity-Selection in einem shared object bzw. shared collection zu speichern, wird ein Fehler ausgelöst. Sie erlaubt jedoch Hinzufügen neuer Entities.
 

Formulareditor

CSS vorschau im formulareditor

Sie erhalten eine Vorschau des endgültigen CSS Rendering im Formulareditor. In der Toolbar gibt es ein neues Icon, um Ihr Formular mit oder ohne das CSS anzusehen, und sogar, wie es auf Mac oder Windows aussehen wird. Wie beim Überschreiben einer Eigenschaft erscheint im CSS Modus eine neue Vorschau im Formulareditor (ähnlich wie bei Vorschauen für die Objektmethode oder Eingabereihenfolge). So können Sie leicht erkennen, welche Objekte vom CSS betroffen sind.

Makros

Im Formulareditor sind Makros verfügbar. Damit können Sie folgendes ausführen:

  • Eine Eigenschaft in einem oder mehreren Objekten ändern, löschen oder hinzufügen
  • Eine oder mehrere Formularobjekte mit der jeweils zugeordneten Methode hinzufügen oder löschen
  • Formularobjekte im Editor aus- bzw. abwählen
  • Modalen Dialog zum Eingeben eines Parameters im laufenden Betrieb anzeigen
  • Die ideale Position der Formularobjekte berechnen und diese entsprechend versetzen
  • Eine CSS Klasse aus einem Formularobjekt zur Verwendung als Vorlage erstellen
  • Prüfen, ob Bildpfade im Formular gültig sind
  • CSS Dateien in Ihrem CSS Editor öffnen, anstatt die Dateien auf der Festplatte zu suchen
  • Prüfen, ob XLIFF Referenzen ihre Entsprechung in den XLIFF Dateien haben
  • u.v.m.

Formularmakros sind im Kontextmenü sichtbar. Makros von Host Datenbanken erscheinen zuerst, gefolgt von Makros von Komponenten. Zum Ausführen eines Makros klicken Sie einfach auf den Menüeintrag. Und für die Reihenfolge werden Makros in einer Datei formMacros.json auf der ersten Ebene des Ordners Sources in Ihrem Projekt deklariert.

 

formulareditor Per programmierung öffnen

Mit dem neuen 4D Befehl FORM EDIT können Sie ein Formular im Formulareditor öffnen. Er ist besonders hilfreich für Tools zur Analyse und für Selbsttests.

4D for iOS

Deep linking 

Mit Deep Linking lässt sich eine URL teilen, d.h. der Klick auf die URL öffnet direkt einen spezifischen Datensatz in einer 4D for iOS App. In Kombination mit Push Notification können Sie einen Vertriebsmitarbeiter über ein neues Angebot informieren, einen Versicherungsvertreter über einen neuen Versicherungsfall. Durch einfachen Klick öffnet sich direkt die Anwendung und zeigt diesen Datensatz in der App an.

 

schnellere datensynchronisation 

Die Synchronisierung der Daten für 4D for iOS wurde optimiert und läuft jetzt 25 mal schneller ab.

features zum programmieren

parameternamen für klassenfunktionen und methoden Setzen

Parameter und Rückgabewerte können jetzt frei benannt werden, wie z. B. $Rechnungsnummer statt $1. Dies wird bei allen Methodentypen unterstützt, wie:

  • Projektmethode
  • Trigger
  • Datenbankmethode
  • Formularmethode
  • Constructor einer Klasse
  • Klassenfunktion

Remote debugger

Sie können jetzt Server-Code direkt auf einem remote 4D debuggen. Der 4D Debugger öffnet sich nach Wunsch auf dem 4D Server oder einem Client.

Es gibt client- und server-seitig zwei neue Menüeinträge zum Zuweisen des Debugger:

  • Debugger anfügen / entfernen: Debugger direkt Ihrem Client oder Server zuweisen oder abkoppeln.
  • Remote Debugger beim Startup anfügen: Weist den Debugger beim Starten Ihres Client oder Server zu. 

Beachten Sie, dass sich der Debugger jeweils nur einem 4D zuweisen lässt. Versuchen Sie beispielsweise den Debugger Ihrem Server zuzuweisen, ohne ihn vom Client abzukoppeln, erscheint eine entsprechende Fehlermeldung.

Damit Sie besser unterscheiden können, ob der Debugger und die Bereiche mit Fehlern vom Server oder vom Client stammen, haben wir auch die Darstellung angepasst: Auf einem remote Rechner zeigt das Debugger-Fenster ein spezifisches Server Icon und einen blauen Hintergrund.

 

features für Deployment

4D cache folder für eingebundenen 4D server

Wenn Sie auf Ihrem Rechner mehrere mit Build Application erstellte Server Anwendungen betreiben, die mit verschiedenen 4D Versionen erstellt wurden (wie z. B. alte Version im Produktionseinsatz, neue Version für Tests), kann es Probleme in Bezug auf den gemeinsam genutzten (shared) 4D Strukturordner geben. Damit dieser Systemordner nicht zwischen den verschiedenen 4D Versionen geteilt wird, können Sie jetzt während dem Erstellen der Server Anwendung den Ordnernamen mit dem neuen Schlüssel buildApp fixieren und Ihren eigenen Strukturordner setzen.

 

4D cache ordner für eingebundene 4D client anpassen

Wenn Sie die gleiche Remote Anwendung zur Nutzung mehrerer Server verwenden, wird für jeden Server ein eigener lokaler Cache Ordner angelegt, was unnötig Festplattenplatz und Netzwerk beansprucht. Mit dem neuen Schlüssel buildApp können Sie einen eigenen Namen setzen und so den gleichen lokalen Ordner für alle Server gemeinsam nutzen.

logbuch ohne abbruch beim ersten Fehler integrieren

Beim 4D Server im laufenden Betrieb sollte alles vollautomatisch ablaufen und kein Administrator erforderlich sein. Das ist besonders wichtig mit Auto Update und im headless Modus. Nach einer Stromunterbrechung oder Absturz können auch kleine Fehler beim Integrieren des Logbuchs einen automatisch wieder gestarteten 4D Server stoppen. Mit der neuen Option automatischer Reparaturmodus können Sie nicht-kritische Fehler übergehen (sie werden in einem Log protokolliert) und so die Ausfallzeit des Systems gering halten.

E-mails (IMAP)

E-mails suchen und laden

Über eine Suche lassen sich E-Mails der aktuellen Mailbox nach bestimmten Suchkriterien auflisten, wie z.B. alle ungelesenen E-Mails  einer bestimmten Person oder alle E-Mails der letzten 4 Wochen. Die neue IMAP_transporter Funktion gibt eine Collection der Mail-IDs zurück, die dann die neue IMAP_transporter Methode getMails direkt zum Laden der Mails verwenden kann.

 

e-mails kopieren, verschieben und löschen

Der IMAP_transporter hat die neuen Funktionen copy()move() und delete() erhalten. Damit können Sie alle oder eine Auswahl von E-Mails der aktuellen Mailbox kopieren, verschieben oder löschen.

Listbox

Verbessertes type ahead

Normalerweise erhält eine Listbox Ereignisse bei Verwenden der Tastatur nur im Bearbeitungsmodus. Das verhindert jedoch, dass die Liste automatisch gefiltert oder eine Eingabe gewählt wird, wenn ein Benutzer die Tastatur und eine nicht-eingebbare Listbox verwendet. hat.

Jetzt wird das Ereignis On before Keystroke erzeugt, sobald die Listbox den Fokus hat und ein Zeichen getippt wird, selbst wenn keine Daten in eine Zelle eingegeben werden. So kann 4D erkennen, welche Tasten gedrückt wurden und dann per Programmierung ermöglichen, wie es weitergehen soll – beispielsweise eine neue Suche starten oder die aktuelle Auswahl ändern.

Der neue Befehl Is editing text dient hauptsächlich dazu, festzustellen, ob es sich bei Auslösen von On before keystroke um eine aktuelle Dateneingabe handelt. Er ermöglicht z.B., dass eine Listbox editierbar ist – und unterstützt die type-ahead Funktionen. Schließlich unterstützen die beiden Ereignisse On before keystroke und On after keystroke Hilfemeldungen des Systems, um diakritische Zeichen wie é, ä oder asiatische Zeichen auszuwählen. Das Ereignis wird verzögert, bis der Endbenutzer die endgültigen Zeichen auswählt. Sie müssen sich nicht selbst darum zu kümmern.

 

4D Write Pro

zeichen für dezimaltabs wählen

Bei Dokumenten aus verschiedenen Quellen sind u.U. die Zahlen nicht in korrekter Weise formatiert. Jetzt können Sie in 4D Write Pro diese Einstellung für jedes Dokument angeben. Es gibt folgende Optionen beim Ausrichten der Nummern nach Dezimaltabs:

  1. Punkt
  2. Komma
  3. erstes gefundenes Zeichen
  4. vom Betriebssystem definierter Dezimaltrenner

Für größtmögliche Kompatibilität (insbesondere mit MS Word) wird beim Erstellen neuer Dokumente standardmäßig das erste gefundene Zeichen gewählt und beim Migrieren von 4D Write Dokumenten in 4D Write Pro der vom Betriebssystem definierte Dezimaltrenner. 

 

weiche Trennung verwalten

Neue Standardaktionen und neue Schaltflächen in den Widgets der 4D Write Pro Oberfläche vereinfachen das Einfügen von weicher Trennung (soft-hyphens).

Dafür gibt es die beiden neuen Standardaktionen:

  • insertSoftHyphen
  • removeSoftHyphens

Diese Funktionalität ist auch in den Widgets (Toolbar und Sidebar) der 4D Write Pro Oberfläche enthalten.

 

SEiten des 4D Write pro Widget Ausblenden

Das 4D Write Pro Widget kann auf Wunsch nur bestimmte Seiten anzeigen, auch deren Reihenfolge ist frei wählbar. So können Sie nicht genutzte Features weglassen und die Handhabung für den Endanwender vereinfachen. Werden z.B. nur Stilattribute benötigt, muss nicht die gesamte Palette der Features erscheinen. Das 4D Write Pro Widget bietet mit der neuen Komponent Methode WP ShowTabPages die Möglichkeit, die Seiten zum Anzeigen auszuwählen. Sie übergeben den Namen des Widget und eine Collection der Seiten, die beim Aufrufen der Methoden angezeigt werden sollen. Auf diese Weise zeigt 4D nur die Seiten der Collection in der hier vorgegebenen Reihenfolge.

 

4D View Pro

4D formeln in spreadsheets

VP SET CUSTOM FUNCTIONS erstellt für Sie eigene Funktionen in 4D View Pro, die eine 4D Formel ausführen können. Damit müssen Sie keine Methode mehr anlegen, um eine einfache Variable in 4D View Pro zu verwenden, sondern können sie einfach als Parameter in Formula übergeben. Zusätzlich erleichtert der Befehl das type-ahead für Endnutzer (durch Anzeigen von Hilfetext und Parameternamen). Und letztendlich ist er in sehr umfangreichen Strukturen viel schneller als der generische Befehl SET FIELD TITLES.

 

Sie wollen mehr wissen? Lesen Sie alle Blog Posts zu 4D v18 R5