Während dem R-Release Zyklus wurden verschiedene von 4D verwendete Libraries und Komponenten aktualisiert, bestehende Verhaltensweisen verändert und bekannte Probleme dokumentiert. Diese Angaben wurde bisher für jede R-Version separat veröffentlicht. Sie sind nun auf dieser Seite zusammengefasst.
4D v18 R6 enthält ein Update der ICU library (siehe unten), das einen automatischen Neuaufbau von Indices forciert. Dieser Vorgang kann, je nach Größe der Datendatei, eine Weile dauern und muss evtl. entsprechend geplant werden.
Wenn Sie Komponenten verwenden, die mit 4D v19.0 für Silicon (Apple ARM CPUs) kompiliert wurden und den Befehl Count parameters aufrufen, empfehlen wir Ihnen, diese mit 4D v19.1 (oder v19 R3) neu zu kompilieren, um Kompatibilität mit 4D v19 R3 und zukünftigen Versionen zu gewährleisten. Wenn eine Komponente nicht für Silicon kompiliert ist, ist eine Neukompilierung nicht erforderlich.
Der 4D Compiler wurde in 4D v19 aktualisiert, mit den folgenden Konsequenzen:
Wenn Sie eine kompilierte Version eines v18 Rx Projekts mit 4D v19 oder höher verwenden wollen, müssen Sie das Projekt vorher mit 4D v19 neu kompilieren.
Punktnotation und Speichermethoden in Unicode sind jetzt obligatorisch, um eine Datenbank zu kompilieren. Beim Versuch, eine Datenbank mit einer dieser Einstellungen zu kompilieren, die deaktiviert ist, wird ein Kompilierungsfehler erzeugt. Entsprechende Optionen müssen auf der Seite Kompatibilität der Einstellungen eingeschaltet werden.
Unter Windows erfordert das Erstellen einer Client/Server-Anwendung, die automatische Updates für macOS-Clients auslöst, nun die Auswahl einer zuvor auf der macOS-Seite generierten .4darchive-Datei.
4D v19 ist die erste Universal Binary Version von 4D unter macOS. Eine Universal Binary sieht nicht anders aus als eine reguläre App, aber ihre ausführbare Datei enthält zwei Versionen: eine Version läuft nativ auf Apple-Silicon und die andere läuft nativ auf Intel-basierten Mac-Computern.
Das Attribut SameSite von skalaren Web-Session-Cookies ist ab 4D v19 standardmäßig auf "Strict" gesetzt (die sicherste Einstellung). In früheren Versionen wurde dieses Attribut nicht vom Webserver gesetzt; daher verwendeten die Browser standardmäßig eine "Lax"-Konfiguration. Siehe developer.4d.com für weitere Informationen.
4D v19 und höher enthalten interne Änderungen bezüglich der Verschlüsselungsfunktionen. Daher kann eine Datendatei, die mit 4D v19 oder höher mit einem Befehl wie Encrypt data file oder der MSC verschlüsselt wurde, nicht mit einer früheren Version wieder geöffnet werden (außer 4D v18.5, das die Änderungen enthält).
Hinweis: Die Verschlüsselung wird auch durch Verdichtungs- oder Reparaturvorgänge ausgelöst.
Es ist jedoch weiterhin möglich, die Datendatei mit einer früheren 4D Version wieder zu öffnen, wenn die Verschlüsselung in 4D v19.x vorher entfernt wird.
Es sind nur verschlüsselte Datendateien betroffen. Wenn Sie keine Verschlüsselung verwenden, kann die Datendatei wie gewohnt wieder geöffnet werden.
For consistency, the MailAttachment.path property now returns the attachment file path with a POSIX syntax. Use the new MailAttachment.platformPath property to get the attachment file path with a platform syntax.
Für mehr Klarheit und um in Neuentwicklungen die auf Projekten basierende Architektur zu fördern, wurde die Terminologie in 4D angepasst und die Oberfläche vereinfacht:
Im Menü Datei/Ablage>Neu bzw. in der Werkzeugleiste unter dem Icon Neu erscheint nur die Option Neu > Projekt Struktur... .
Anwendungen im binären Modus lassen weiterhin über dieses Menü bzw. die Werkzeugleiste erstellen. Dazu müssen Sie aber erst in den 4D Einstellungen die Option Anwendungen im Binär-Format erzeugen markieren.
Zur Konsistenz mit Funktionen von Collections geben die Funktionen entitySelection.min( ), entitySelection.max( ) und entitySelection.average( ) jetzt Undefiniert zurück, wenn sie auf leere Entity-Selections angewendet werden. In Releases vor v18 R6 haben sie in diesem Fall Null zurückgegeben.
Ab 4D v18 R5 werden vorhandene Klassenfunktionen des ORDA Datenmodell (eingeführt in 4D v18 R4) für REST Anfragen nicht automatisch freigegeben. Sie müssen jede Funktion, die aus REST-Anfragen verfügbar sein soll, explizit als exponiert deklarieren. Weitere Informationen dazu finden Sie unter Data Model Classes documentation auf developer.4d.com.
Bei shareable Entity-Selections lassen sich keine neuen Entities hinzufügen. Folglich können Aufrufe von entitySelection.add() Fehler in Ihrem vorhandenen Code erzeugen. Um wieder eine fehlerlose Ausführung herzustellen, können Sie folgendes ausführen:
Bei der manuellen Wiederherstellung einer Backup Datei wird der Inhalt der Datendatei (Dateien und Ordner Settings) jetzt automatisch in einem Unterordner Data innerhalb des Zielordners wiederhergestellt.
Die Backup / DataBase XML-Keys sind in der Datei "backup.4DSettings" nicht mehr verfügbar (DatabaseName, LastBackupPath, LastBackupLogPath, CurrentBackupSet, LastBackupDate, LastBackupTime). Informationen und Berichte über die letzte Backup-Operation können jetzt in der Datei "backupHistory.json" gefunden werden.
Der Server-Port 19815 wird jetzt automatisch von 4D Server verwendet, wenn der Remote Debugger aktiviert ist (Standard-Portnummer). Weitere Informationen finden Sie im Abschnitt 4D Server und Port Nummern.
Ab 4D v18 R6 werden die Ereignisse On Clicked und On Double Clicked generiert, wenn in einer Zelle für Texteingabe während dem Bearbeiten der Zelle ein Klick auftritt. Auf diese Weise können Sie z.B. Pop-Up Menüs nach einem Contextual click anzeigen. Das Ereignis wird in der Spalte und im Listbox Objekt generiert (in dieser Reihenfolge).
In bisherigen Releases ließen sich diese Ereignisse in Zellen für Texteingabe nur generieren, wenn sie nicht in Bearbeitung waren. Zur Vermeidung unerwarteter Effekte in vorhandenen Oberflächen können Sie in Ihrem Code folgenden Test hinzufügen:
//Methode für Listbox Objekt oder Listbox Spalte If(FORM Event.code=On Clicked) //oder On Double Clicked If(Not(Is editing text)) //hinzugefügter Test //bisheriger Code End if End if
Ab 4D v18 R4 sind die fortgeschrittenen Features für alle 4D Benutzer frei verfügbar. Bisher war dafür eine 4D View Pro Lizenz erforderlich. Das gilt für:
Diese Befehle wurden in 4D v18 R4 aktualisiert. Ein paar nicht-dokumentierte Verhaltensweisen wurden geändert, was in vorhandenen Anwendungen zu Kompatibilitätsproblemen führen kann.
Beide Befehle haben bisher (undokumentiert) die Systemvariable OK verändert; nun setzen sie diese Variable nicht mehr.
Hatte BASE64 DECODE in einem einzelnen Blob Parameter ein ungültiges Base64 Format aufgerufen, war das Ergebnis undefiniert, das Blob blieb meist unverändert. Jetzt gibt der Befehl ein leeres Blob zurück.
In Anlehnung an die Empfehlungen von Apple liefert 4D jetzt signierte und notarisierte 4D Volume Desktop und Plug-Ins. Deshalb wird das Signieren Ihrer Anwendungen auf macOS zwingend, andernfalls liefert der Erstellungsprozess Pakete mit kaputten Signaturen. Im Dialogfenster zum Erstellen der Anwendung ist die Option Signiere Anwendung standardmäßig markiert. Entwickler ohne Zertifikat zur Weitergabe müssen ein selbstsigniertes Zertifikat verwenden. Zur Vereinfachung wurde dazu im Dialogfenster die Schaltfläche Generiere selbstsigniertes Zertifikat hinzugefügt.
Außerdem lässt sich eine macOS Client Anwendung nicht mehr direkt auf der Windows Plattform erstellen. Sie müssen das macOS Archiv auf einem Mac erstellen und dann in das endgültige Paket kopieren.
Hinweis: 4D kontrolliert jetzt während dem Signieren, ob die Struktur von third-party Plug-Ins und Anwendungen den neuesten Apple Anforderungen entspricht (aktualisiert im Februar 2020). Deshalb kann es passieren, dass 4D auch ein bisher notarisiertes Element zurückweist. Das spart Zeit, da u.U. die ganze Notarisierung fehlschlagen kann. In diesem Fall müssen Sie beim Hersteller des Plug-In oder der Anwendung eine aktualisierte Version anfordern.
In Anwendungen im Projektmodus nutzt 4D bei Anmeldung an 4D Server auf demselben Rechner jetzt eigene interne Komponenten und Plug-Ins und nicht die von 4D Server, d.h. Server Plug-Ins werden nicht in die 4D Anwendung geladen. Wir raten davon ab, Plug-Ins oder Komponenten in der 4D oder 4D Server Anwendung zu installieren. Weitere Informationen dazu finden Sie unter Project Management.
Das 4D Internet Commands Plugin wird in 4D ab 4D v19 nicht mehr standardmäßig installiert. Es muss explizit ausgewählt/heruntergeladen und im Plugins-Ordner Ihrer Datenbank installiert werden, wenn diese es noch verwendet. Weitere Informationen finden Sie unter Installation and Software Requirements.
Wie unter *** Neue Website für Dokumentation *** mitgeteilt, wurden Kapitel der 4D Dokumentation in die Plattform developer.4d.com/docs verschoben. Diese neue Website bietet neuen Inhalt, übernimmt aber auch nach und nach aktualisiertes Material aus doc.4d.com.
Damit keine Verwirrung entsteht, haben wir Kapitel, die inzwischen auf developer.4d.com übertragen wurden, in doc.4d.com entfernt. Bei den entfernten Kapiteln finden Sie eine Umleitung auf die neue Website, zum Beispiel:
Beim Import von Dokumenten aus dem bisherigen Plug-In 4D Write verwendet 4D Write Pro jetzt als Dezimaltrenner für Dezimaltabs standardmäßig den Trenner des Betriebssystems (zurückgegeben von GET SYSTEM FORMAT). Sie können diesen Parameter mit dem Befehl WP SET ATTRIBUTES ändern.
Ab 4D Write Pro v18 R2 werden Methoden und Befehle in Formeln nicht mehr gefiltert -- 4D Write Pro unterstützt Formeln jetzt als Objekte anstatt als Strings. Jede erstellte Formel lässt sich einfügen und berechnen, selbst wenn sie nicht erlaubte Methoden aufruft. Folgende 4D Features zum Filtern werden jetzt beim Bewerten von Formeln in 4D Write Pro ignoriert:
Option Filtern von Befehlen und Projektmethoden ... auf der Seite in the "Sicherheit" des Dialogfensters Datenbankeigenschaften.
In bisherigen Versionen hat der Befehl ST FREEZE EXPRESSIONS Ausdrücke immer vor dem Ausführen in 4D Write Pro Dokumenten berechnet. Ab 4D v18 R2 berechnet er Ausdrücke nur, wenn sie nicht bereits berechnet wurden (außer bei Verwendung des Parameters *).
Ab 4D v18 R2 müssen Sie Dateien (libraries) für 4D for OCI in /usr/local/lib installieren (andere Speicherorte werden nicht unterstützt). Weitere Informationen dazu finden Sie auf der Seite Installation (Windows).