Was ist neu in 4D v18 R5

ORDA-Datenmodellklassen

Umfang und Ausführungskontext für Funktionen

Im Client/Server-Modus werden die Funktionen standardmäßig auf dem Server ausgeführt. Dank eines neuen Schlüsselworts können Sie nun wählen, ob einige Funktionen auf dem Client ausgeführt werden sollen: local. Außerdem können Sie mit dem neuen Schlüsselwort exposed festlegen, welche Funktionen als APIs für REST-Clients veröffentlicht werden sollen (oder nicht).

Gemeinsam nutzbare Entitätsauswahlen

Manchmal möchten Sie eine Entitätsauswahl mit einem anderen Prozess gemeinsam nutzen oder sie für alle Prozesse verfügbar machen. Stellen Sie sich zum Beispiel vor, Sie führen eine komplexe Abfrage durch, um alle überfälligen Rechnungen zu finden, den Endbenutzern die Möglichkeit zu geben, einige (oder alle) davon auszuwählen und eine Zahlungserinnerung per E-Mail zu senden. Das Versenden von E-Mails erfolgt am besten in einem anderen Prozess, damit der Benutzer nicht blockiert wird. Anstatt eine Liste von Primärschlüsseln zu erstellen, die an den anderen Prozess weitergegeben wird, kann eine gemeinsame Entitätsauswahl direkt an einen anderen Prozess weitergegeben werden. Gemeinsame Entitätsauswahlen können sogar an das Storage-Objekt angehängt werden, damit sie von allen Prozessen genutzt werden können.

Kurz gesagt, eine Entitätsauswahl kann gemeinsam genutzt oder nicht gemeinsam genutzt werden:

  • Eine gemeinsam nutzbare Entitätsauswahl kann in einem gemeinsam genutzten Objekt oder einer gemeinsam genutzten Sammlung gespeichert werden und kann von mehreren Prozessen oder Workern gemeinsam genutzt werden. Sie erlaubt nicht das Hinzufügen von neuen Entitäten. Der Versuch, eine Entität zu einer gemeinsam nutzbaren Entitätsauswahl hinzuzufügen, führt zu einem Fehler.
  • Eine nicht-teilbare Entitätsauswahl kann nicht zwischen Prozessen geteilt werden, noch kann sie in einem gemeinsamen Objekt oder einer gemeinsamen Sammlung gespeichert werden. Der Versuch, eine nicht gemeinsam nutzbare Entitätsauswahl in einem gemeinsamen Objekt oder einer gemeinsamen Sammlung zu speichern, führt zu einem Fehler. Eine nicht gemeinsam nutzbare Entitätsauswahl lässt jedoch das Hinzufügen neuer Entitäten zu.

Formular-Editor

CSS-Vorschau im Formular-Editor

Sie können jetzt eine Vorschau des endgültigen CSS-Renderings im Formulareditor anzeigen. In der Symbolleiste steht ein neues Symbol zur Verfügung, mit dem Sie Ihr Formular mit oder ohne CSS-Rendering betrachten können. Es zeigt sogar an, wie es mit einem bestimmten CSS-Rendering auf Mac oder Windows aussehen würde. Für das Überschreiben von Eigenschaften im CSS-Modus wird im Formulareditor ein neuer Schildtyp angezeigt (ähnlich den Schildern für Objektmethode oder Eingabereihenfolge). Jetzt ist es einfach zu sehen, welche Objekte von einem CSS betroffen sind.

Makros

Makros sind jetzt im Formulareditor verfügbar. Mit einem Formularmakro können Sie:

  • Ändern, Löschen oder Hinzufügen einer Eigenschaft zu einem oder mehreren Objekten
  • Hinzufügen oder Löschen eines oder mehrerer Formularobjekte mit der zugehörigen Methode
  • Formularobjekte im Editor auswählen oder die Auswahl aufheben
  • einen modalen Dialog anzeigen, um einen Parameter spontan einzugeben
  • Berechnen der idealen Position von Formularobjekten und Verschieben derselben
  • Erstellen einer CSS-Klasse aus einem Formularobjekt zur Verwendung als Vorlage
  • Prüfen, ob die Bildpfade im Formular gültig sind
  • Öffnen Sie CSS-Dateien in Ihrem CSS-Editor, anstatt Dateien auf der Festplatte zu suchen
  • Prüfen, ob XLIFF-Referenzen in den XLIFF-Dateien ihre Entsprechung haben
  • und vieles mehr!

Formularmakros sind über das Kontextmenü verfügbar. Makros für die Host-Datenbank werden zuerst angezeigt, gefolgt von Makros für Komponenten. Um ein Makro auszuführen, klicken Sie einfach auf den entsprechenden Menüpunkt. Um Formularmakros zu erstellen, deklarieren Sie sie einfach in einer formMacros.json-Datei auf der ersten Ebene des Ordners „Sources“ in Ihrem Projekt.

Neuer Befehl zum Öffnen des Formular-Editors

Es gibt einen neuen 4D Befehl zum Öffnen eines Formulars im Formular-Editor. Dies kann besonders für Analyse- oder Introspektionswerkzeuge nützlich sein. Der neue Befehl heißt: FORM EDIT.

4D für iOS

Tiefe Verknüpfung

Mit Deep Linking können Sie eine URL freigeben. Ein Klick auf die URL öffnet direkt einen bestimmten Datensatz in einer 4D für iOS App. In Kombination mit Push-Benachrichtigungen können Sie Vertriebsmitarbeiter über ein neues Angebot oder Versicherungsvertreter über einen neuen Fall informieren. Ein einziger Klick öffnet direkt die App und zeigt den entsprechenden Datensatz an.

Optimierte Datensynchronisation

Der Prozess der Datensynchronisation in 4D für iOS wurde optimiert, so dass die Daten bis zu 25 Mal schneller synchronisiert werden können.

Programmierbezogene Funktionen

Benennung von Parametern für Funktionen und Methoden

Sie müssen nicht mehr über eine Zwischenvariable gehen, sondern können jetzt Ihre Parameter und Ergebnisse beim Deklarieren einer:

  • Projektmethode,
  • Trigger,
  • Datenbank-Methode,
  • Formular-Methode,
  • Klassenkonstruktor,
  • Klassenfunktion.

Ferngesteuerter Debugger

Mit dieser Funktion können Sie entscheiden, wo Sie Ihren Servercode debuggen möchten (auf der Client- oder der Serverseite).

Es wurden zwei neue Menüpunkte hinzugefügt (auf beiden Seiten), um die Debugger-Anbindung zu verwalten:

  • Debugger anhängen / abhängen: Binden Sie den Debugger sofort an Ihren Client oder Server an oder lösen Sie ihn ab.
  • Debugger beim Starten anhängen: Hängen Sie den Debugger an, wenn Sie Ihren Client oder Server starten.

Beachten Sie, dass der Debugger immer nur an eine Instanz von 4D angehängt werden kann. Wenn Sie z.B. versuchen, den Debugger an Ihren Server anzuhängen, ohne ihn vom Client zu trennen, erscheint eine Fehlermeldung mit Informationen über den Besitzer des Debuggers.

Und damit Sie leichter unterscheiden können, ob der Debugger oder die Fehlerfenster vom Server oder vom Client stammen, haben wir das Aussehen dieser Fenster geändert.

Einsatzbezogene Funktionen

Anpassen des 4D Cache-Ordners für zusammengeführte 4D Server

Wenn auf Ihrem Rechner eine zusammengeführte Serveranwendung mit verschiedenen 4D Versionen läuft, kann es zu Problemen mit dem gemeinsamen 4D Strukturordner kommen. Um die gemeinsame Nutzung dieses Systemordners durch mit verschiedenen 4D Versionen erstellte Merged Server Anwendungen zu vermeiden, können Sie jetzt den Ordnernamen während des Build Application Prozesses mit dem neuen buildApp Schlüssel definieren, um Ihren eigenen Strukturordner festzulegen.

Anpassen des 4D Cache-Ordners für zusammengeführte 4D Clients

Wenn Sie Ihre Remote-Anwendung mit mehreren Servern verbinden, kann es vorkommen, dass Sie einen großen lokalen Ressourcenordner im System erhalten, der Zeit, Volumen und Netzwerk beansprucht. Jetzt haben Sie die Möglichkeit, denselben lokalen Ressourcenordner für alle identischen Server mit dem neuen buildApp-Schlüssel zur gemeinsamen Nutzung des lokalen Ressourcenordners freizugeben.

Journal einbinden, ohne beim ersten Fehler abzubrechen

Wenn Sie 4D Server in der Produktion einsetzen, sollte alles vollautomatisch ablaufen, ohne dass ein Administrator erforderlich ist. Dies ist besonders wichtig bei Auto-Update und dem Betrieb im Headless-Modus. Nach einem Stromausfall oder Absturz können kleine Fehler im Journal einen automatisch neu gestarteten 4D Server stoppen. Eine neue Option erlaubt es nun, unkritische Fehlermeldungen zu unterdrücken (sie aber dennoch in einem Protokoll zu melden), um die Ausfallzeit des Systems zu reduzieren.

E-Mails (IMAP)

Emails suchen und herunterladen

Die Suche ermöglicht das Abrufen einer Liste von Nachrichten anhand von Kriterien wie z. B. alle ungelesenen E-Mails oder alle E-Mails von einer bestimmten Person innerhalb der letzten 4 Wochen. Der Befehl gibt eine Sammlung von E-Mail-IDs zurück, die direkt von der neuen getMails-Methode verwendet werden können, um sie herunterzuladen.

E-Mails kopieren, verschieben und löschen

Drei neue Funktionen wurden dem IMAP-Transporter hinzugefügt: copy(), move() und delete().

Listbox

Verbesserter Typ voraus

Normalerweise empfängt eine Listbox nur Tastendruckereignisse im Bearbeitungsmodus. Dies verhindert jedoch, dass es zum automatischen Filtern der Liste oder zum Auswählen eines Eintrags verwendet werden kann, wenn ein Benutzer die Tastatur und ein nicht eingabefähiges Listenfeld verwendet hat.

Jetzt wird das Ereignis On before Keystroke erzeugt, sobald das Listenfeld den Fokus hat und eine Taste gedrückt wird, auch wenn keine Daten in eine Zelle eingegeben werden. Dadurch weiß 4D, welche Tasten gedrückt wurden und kann (durch Programmierung) Entscheidungen treffen, wie z. B. eine neue Suche starten oder die aktuelle Auswahl ändern.

Der neue Befehl Wird Text bearbeitet wurde hinzugefügt, um festzustellen, ob eine laufende Eingabe vorliegt, wenn das Ereignis Ein vor Tastendruck erzeugt wird. So kann z. B. ein Listenfeld bearbeitet werden – und unterstützt dabei weiterhin die Tippen-vorher-Funktionen. Die Ereignisse „Vor dem Tastendruck “ und „Nach dem Tastendruck“ unterstützen jetzt Systemhilfedialoge zur Auswahl diakritischer Zeichen wie é, ä oder asiatischer Zeichen. Das Ereignis wird so lange verzögert, bis der Endbenutzer die letzten Zeichen auswählt. Sie müssen dies nicht mehr selbst erledigen.

4D Write Pro

Zeichen für Dezimaltabellen auswählen

Wenn Sie Dokumente aus verschiedenen Quellen haben, kann es sein, dass die Zahlen für Ihre Bedürfnisse nicht richtig formatiert sind. Mit 4D Write Pro können Sie diese Einstellung jetzt für jedes Dokument festlegen. Sie können wählen, ob Sie die Zahlen ausrichten möchten an:

  • dem Punkt,
  • dem Komma,
  • dem ersten gefundenen Trennzeichen (Punkt oder Komma),
  • oder an dem im Betriebssystem definierten Trennzeichen.

Um die Kompatibilität (insbesondere mit MS Word) zu maximieren, wird bei der Erstellung neuer Dokumente standardmäßig die Option #3 verwendet. Bei der Migration von 4D Write Dokumenten nach 4D Write Pro wird standardmäßig das vom System definierte Trennzeichen verwendet.

Verwalten von weichen Trennstrichen

Das Einfügen von Bindestrichen wurde durch neue Standardaktionen und neue Schaltflächen in den Widgets der 4D Write Pro Oberfläche vereinfacht.

Zwei neue Standard-Aktionen stehen Ihnen zur Verfügung:

  • insertSoftHyphen
  • removeSoftHyphens

Die Funktionalität wurde auch den 4D Write Pro Interface Widgets hinzugefügt, sowohl dem Toolbar Widget als auch dem Sidebar Widget.

Anzuzeigende Seiten auswählen

4D zeigt nur die in der Sammlung erwähnten Seiten an, und zwar in der Reihenfolge der Sammlung. Dies ermöglicht es, den Funktionsumfang zu reduzieren, um ihn für den Endbenutzer zu vereinfachen. Wenn nur Stiloptionen benötigt werden, ist es besser, alle anderen Funktionen gar nicht erst anzuzeigen. Das 4D Write Pro Widget bietet jetzt die Möglichkeit, die anzuzeigenden Seiten mit der neuen Komponentenmethode WP ShowTabPages auszuwählen. Übergeben Sie einfach den Namen des Widgets und eine Sammlung von Seiten, die angezeigt werden sollen, wenn Sie die Methode aufrufen.

4D Ansicht Pro

4D Formeln in Tabellenkalkulationen

Mit dem Befehl VP SET CUSTOM FUNCTIONS können Sie in 4D View Pro benutzerdefinierte Funktionen erstellen, um eine 4D Formel auszuführen. Es ist nicht notwendig, eine Methode zu erstellen, um eine einfache Variable in 4D View Pro zu verwenden, sondern sie einfach als Parameter an Ihre Formel zu übergeben. Darüber hinaus vereinfacht der Befehl die Eingabe für den Endanwender, indem er Hilfetext und Parameternamen bereitstellt. In großen Strukturen ist dieser Befehl viel schneller als der allgemeine Befehl SET FIELD TITLES.

Möchten Sie mehr wissen? Alle Blogbeiträge über 4D v18 R5 lesen