Die XSLT Sprache, inspiriert durch funktionelle Programmierkonzepte, wandelt XML Daten in ein anderes Format um, also z.B. in XML, HTML. Alle gängigen Web Browser sowie 4D Software haben die XSLT 1.0 Spezifikation implementiert.
Heutzutage geht der XSLT Trend wieder zurück, da Entwickler die Verwendung und Fehlersuche schwierig finden. Deshalb haben wir beschlossen, das Feature XSL Transformation nicht mehr für 4D 64-bit Versionen zu entwickeln. Jedoch bieten wir unseren Kunden, die noch XSLT in 4D verwenden, die Nutzung der PHP XSL library. Sie enthält ein verständliches API, mit dem Sie alle erforderlichen Operationen zum Ersetzen der XSL Transformation durchführen können. Damit können Sie auch mühelos die Befehle _o_XSLT APPLY TRANSFORMATION, _o_XSLT SET PARAMETER und _o_XSLT GET ERROR ersetzen, nachdem sie entfernt wurden. Ausführliche Informationen zur Verwendung von PHP XSL anstelle der überholten XSLT 4D Befehle finden Sie unter: Download XSLT with PHP technical document (PDF).
Wir empfehlen die Nutzung von 4D TAGS, wenn HTML Seiten dynamisch generiert werden sollen. Denn in den meisten Fällen lässt sich HTML Code leichter als unformatierter Text verwalten. Weitere Informationen dazu finden Sie unter dem Befehl PROCESS 4D TAGS.
Zur Wahrung der Kompatibilität werden XSL Transformationen in 4D noch unterstützt. Wir raten jedoch von einer weiteren Verwendung ab. Die Bearbeitung von XSLT wird in zukünftigen 4D Releases entfernt.
Hinweis zu 4D Server 64-bit OS X: XSLT ist in 4D Server 64-bit für OS X nicht verfügbar. Deshalb wird beim Aufrufen von XSLT Befehlen der Fehler 33 "Befehl oder Funktion ist nicht vorhanden" generiert.
Das PICT Format wird in kommenden Hauptversionen (Major Releases) von 4D nicht mehr unterstützt und darf in 4D v14 oder neuer nicht mehr verwendet werden. Ab Version 13.2 steht via 4D Pack die Funktion AP Is Picture Deprecated zur Verfügung, die Sie beim Migrieren Ihrer Anwendungen unterstützt.
Hinweis: Apple hat das "PICT" Format für Mac schon seit einigen Mac OS Versionen als veraltet deklariert (siehe Beschreibung des PICT Format in Wikipedia).
Das ‘PICT’ Format ist ein sehr altes Mac Format. Vor v11 hat 4D alle Bilder in diesem Format gespeichert, selbst für Windows. PICT ist veraltet, seit QuickDraw veraltet ist (2005).
Zum Verständnis von PICT ist jedoch eins wichtig – Es kann 2 unterschiedliche Hauptinformationen speichern (d.h. “einschließen”):
Die eigentlichen Angaben der Zeichnung (entweder Bitmap oder vektoriell)
Oder ein aktuelleres Format (z.B. JPEG), das über QuickTime in einem PICT gespeichert ist. In der Regel hat der Entwickler den Befehl _o_QT COMPRESS PICTURE mit der Konstante QT Photo compressor aufgerufen.
Das heißt, solche PICTs können JPEG oder andere Formate enthalten, selbst wenn alle Bilder, die vor 4D v14 in den Datendateien gespeichert wurden, PICT sind. PICT Formate können nicht mehr verwendet werden. Nicht nur, weil das Format veraltet ist, sondern, weil 4D zum Lesen von PICT auf Windows Altura benötigt (+ QuickTime bei Verwendung von _o_QT COMPRESS PICTURE): Das ist nicht effizient und außerdem muss QuickTime installiert werden. Es wird unter OS X von Apple nicht mehr unterstützt.
Entwickler sollten beim Migrieren von Versionen vor v11 auf jedes Datenfeld vom Typ Bild die Funktion CONVERT PICTURE anwenden. Beim Migrieren neuerer Versionen empfehlen wir, die Funktion AP Is Picture Deprecated einzusetzen, um die Bilder zu finden, die konvertiert werden müssen.
Codecs für Bilder in einem Format, das QuickTime erfordert, sind überholt.
Die Verwendung von QuickTime ist seit 4D v14 standardmäßig deaktiviert. Als Umstellungshilfe können Sie es bei Bedarf über die neue Option QuickTime Support in den Befehlen SET DATABASE PARAMETER, Get database parameter aktivieren - nach Konvertieren bitte umgehend wieder deaktivieren!
Seit mehreren Jahren hat sich die Bildverwaltung unter der Windows Version von QuickTime nicht weiter entwickelt (nur der Video Bereich entwickelt sich weiter). Wir planen, die Unterstützung dieser spezifischen APIs im nächsten Release zu entfernen.
4D für Windows unterstützt alle gängigen Formate nativ (JPEG, PNG, GIF, TIFF, etc.), dazu gehört auch WIC (Windows Imaging Component). Sollten Ihre Daten unter Windows noch Bilder in einem Format enthalten, das nur von QuickTime erkannt wird, können Sie diese über den Befehl CONVERT PICTURE konvertieren.
Zur Erinnerung: Die 64-bit Version von 4D Server für Windows unterstützt seit 4D v12 keine QuickTime Formate.
In früheren 4D Versionen hat der Web Server automatisch den Wert von Variablen, die über ein Web Formular oder eine URL gesendet wurden, in 4D Variablen kopiert, wenn sie denselben Namen hatten. Dieses Prinzip wird aus Sicherheitsgründen in 4D v14 nicht beibehalten, d.h. der Wert von Web Variablen wird nicht mehr automatisch 4D Variablen zugewiesen. Um über POST oder GET gesendete Variablen zu finden, müssen Sie ausschließlich den Befehl WEB GET VARIABLES verwenden. Um per POST übertragene Dateien zu erhalten, müssen Sie den Befehl WEB GET BODY PART bzw. WEB Get body part count verwenden.
Hinweis: Die dynamische Zuweisung ist in 4D Anwendungen, die mit v13.4 oder höher erstellt wurden, standardmäßig deaktiviert.
Die bisherige Funktionsweise wird zur Wahrung der Kompatibilität standardmäßig in Anwendungen beibehalten, die mit einer Version älter als 13.4 erstellt wurden. Sie können bei Bedarf in den Datenbank-Eigenschaften auf der Seite Kompatibilität die Option Automatische Zuweisung von Variablen deaktivieren.
Da diese Funktionsweise überholt und unsicher ist, empfehlen wir dringend, diese Option in konvertierten Anwendungen zu deaktivieren (und Ihren Code bei Bedarf anzupassen).
QuickDraw Schriften für Mac OS, wie z.B. Geneva, Chicago werden nicht mehr unterstützt. Sie können auch nicht mehr ID Nummern für Schriften verwenden. Zur Wahrung der Kompatibilität sind die Funktionen _o_Font number und _o_Font name in 4D v15 und höher noch verfügbar, werden aber in nachfolgenden Versionen entfernt. Der Befehl OBJECT SET FONT akzeptiert jetzt nur Schriftnamen.
NEU: Die automatische Toolbar, die bisher beim Wechseln in den Anwendungsmodus erschien, wurde entfernt. Die Option Toolbar anzeigen in den Datenbank-Eigenschaften auf der Seite Oberfläche wurde ebenfalls entfernt.
Der Mac OS Toolbar Button von Apple ist seit OS X 10.6 überholt. Konstanten, die dies unterstützt haben, werden mit "_O_" gekennzeichnet und funktionieren nicht mehr:
_O_Has toolbar button Mac unter den Konstantenthemen "Open Form Window" und "Open Window".
_O_On Mac Toolbar Button unter dem Konstantenthema "Formularereignisse".
Altura Mac2Win wurde zur Portierung von 4D auf Windows verwendet. Es besteht aus mehreren APIs, um auf Mac OS geschriebenen Code (vor OS X) auf Windows zu portieren. Es handelt sich um Übersetzungs APIs für das Dateisystem, QuickDraw, Ressourcen, PICT, etc. Das war seinerzeit sehr hilfreich und ermöglichte z.B. Entwicklern, ihre auf Mac erstellten Plug-Ins ohne große Mühe auf Windows zu portieren. Es ist heutzutage veraltet, da es überholte Mac OS APIs emuliert und keine modernen nativen Windows APIs verwendet. Deshalb wurde Mac2Win so weit wie möglich aus dem 4D Code entfernt.
4D ist bis heute noch in gewisser Weise von Altura abhängig, hauptsächlich, um die Kompatibilität alter Datenbanken zu gewährleisten, die z.B. noch Ressourcen, PICT und bestimmte Benutzerereignisse oder Plug-Ins von Drittherstellern verwenden, die mit Altura erstellt wurden.
Wir raten Entwicklern, Ressourcen aus der .RSR Datei zu entfernen, die Dateien im Ordner “Resources” zu trennen und Bilder im PICT-Format mit dem Befehl CONVERT PICTURE in ein anderes Format zu konvertieren, damit sie bereit sind, wenn 4D Altura vollständig aus 4D entfernt wird. Dieser bedeutsame Schritt betrifft aber in erster Linie Entwickler von Plug-Ins. Sie sollten Altura sobald wie möglich nicht mehr verwenden, d.h. sie müssen einige Teile ihres Quellcode in Windows umschreiben. Darauf weisen wir schon seit mehreren Jahren hin.
4D warnt Entwickler schon seit einigen Hauptversionen (Major Releases) davor, Untertabellen zu verwenden. Schon seit 4D v11 lässt sich kein Datenfeld vom Typ Untertabelle mehr anlegen. Unterdatensätze haben einige bekannte Einschränkungen. Sie werden z.B. immer in den Speicher geladen und nicht von den Befehlen SEND RECORD oder DUPLICATE RECORD verwaltet.
Wir planen vorerst nicht, die Unterstützung von Untertabellen zu entfernen. Entwickler sollten aber auf alle Fälle ihre Untertabellen in reguläre N-> Tabellen umwandeln, da sie in einer zukünftigen 4D Hauptversion entfernt werden.
Im allgemeinen gibt es zwei Vorgehensweisen zum Entfernen von Untertabellen. Hier ein ein kurzer Überblick:
Vor der Konvertierung einer Struktur älter als v11: Erstellen Sie in 2004 eine geeignete Viele-Tabelle und das Feld ID in einer 1 Tabelle (falls noch nicht vorhanden). Ändern Sie dann den Code an den erforderlichen Stellen (siehe unten).
Nach der Konvertierung: In diesem Fall hat 4D über eine spezielle Verknüpfung die Untertabelle durch eine Viele-Tabelle ersetzt. So kann die Programmiersprache übergangsweise mit der Unterauswahl und den Unterdatensätzen arbeiten. Der 4D Entwickler muss diese spezielle Verknüpfung entfernen, durch eine normale Verknüpfung ersetzen und den Code an den erforderlichen Stellen ändern (siehe unten).
“den Code an den erforderlichen Stellen ändern” bedeutet im Einzelnen:
Neue Formulare anlegen, eingebundene Formulare aktualisieren
In den Methoden (Projekt, Formular, Objekt, etc.):
Alle Befehle des Kapitels “Untertabellen” mit dem entsprechenden Befehl Selection oder Record ersetzen. Beispiel _o_CREATE SUBRECORD mit CREATE RECORD ersetzen, die ID Felder füllen
Falls erforderlich, die Viele-Datensätze explizit laden
in Formularen ggf. Transaktionen nutzen
Hinweis: Ab 4D v14 R3 können Sie dem speziellen Feld "id_added_by_converter" selbst Werte zuweisen. Dieses Feld fügt 4D automatisch hinzu, wenn eine Anwendung mit Untertabellen konvertiert wird. So können Sie die spezielle Verknüpfung "Untertabelle Verknüpfung" beibehalten und verknüpfte Datensätze ändern oder hinzufügen, als ob sie normale Datensätze wären und müssen nicht mehr überholte Befehle wie _o_CREATE SUBRECORDverwenden. Sind dann all Ihre Methoden aktualisiert, können Sie diese spezielle Verknüpfung durch eine reguläre Verknüpfung ersetzen, ohne Ihren Code zu verändern.
Die Unterstützung des ASCII Modus, auch Nicht-Unicode Modus genannt, führt bei Bearbeitung von Text zu schlechter Performance, da dieser jedes Mal in und aus Mac-Roman konvertiert werden muss. Der ASCII Modus wird in kommenden Hauptversionen entfernt.
Bitte beachten Sie, dass kompilierte Strukturen auf 4D Server 64-bit ausschließlich im Unicode Modus laufen. Wir raten dringend, in konvertierten Strukturen den Unicode Modus zu aktivieren. Weitere Hinweise dazu finden Sie im PDF Dokument 4D v14 Konvertierung.
Außerdem weisen wir darauf hin, dass der ASCII Modus in der 4D Server 64-bit Version für OS X nicht verfügbar ist.
Dies ist eine weitere alte Mac OS Technologie, die seit Mac OS X 10.4 überholt ist (Tiger, 2005). Ressourcen dienten zum Speichern von Strukturdaten, wie Text und Strings zur Lokalisierung, Icons, etc. Im Grunde genommen sind aber nicht die Ressourcen ansich überholt, sondern vielmehr die Unterstützung einer eigenen Datei auf der Festplatte, auch bekannt als Resource Fork. Sie ist Teil des Mac OS Dateisystems, und Apple hat seit Einführung von OS X die Unterstützung dieser Datei eingestellt, da sie mit anderen Dateisystemen, wie Unix oder Windows, nicht kompatibel ist und beim Übertragen von Dateien über das Netzwerk eine Menge Probleme verursachte.
Unter Windows wird dieser Mechanismus emuliert und Mac Ressourcen liegen in einer .RSR Datei.
Wir raten jedoch davon ab, diesen alten Mechanismus weiter zu verwenden - auch wenn es noch APIs zum Verwalten dieser Ressourcen gibt (und Mac OS in Data Forks gespeicherte Ressourcen transparent verwaltet). Dafür gibt es folgende Gründe:
Text und Strings sind in Mac-Roman. Folglich können Sie Text in Unicode nicht in Ressourcen vom Typ TEXT oder STR# speichern
PICT Ressourcen speichern PICTs: Sie sind veraltet, unterstützen keine Transparenz, etc. (siehe Abschnitt oben Bilder in PICT Format)
Anzahl und Größe der Ressourcen sind begrenzt (bis zu 2700 Ressourcen oder 16 MB)
Befehle, die Ressourcen schreiben oder erstellen, werden nicht mehr unterstützt.
Die meisten 4D Applikationen, die Ressourcen nutzen, verwenden String Listen, d.h. ‘STR#’ Ressourcen. 4D bietet Tools, um einfach von STR# zu XLIFF zu wechseln:
Die Komponente 4D Pop kann die XLIFF Dateien automatisch erstellen, d.h. den Inhalt von STR# lesen und übertragen.
Alle Routinen und Ausdrücke, die sich auf STR# beziehen, funktionieren ohne Änderung mit XLIFF. Ist die Bezeichnung einer Schaltfläche oder eines Menüs z.B. “:15000,3” (was heißt “erhalte den dritten Eintrag der STR# ID 15000”), lädt 4D die entsprechende XLIFF Datei (sofern vorhanden).
Für andere Arten von Ressourcen gilt folgendes:
Setzen Sie Ressourcen innerhalb des Ordners in getrennte Dateien und erstellen Sie bei Bedarf Unterverzeichnisse:
Sichern Sie 'TEXT' Ressourcen in XLIFF oder .txt Dateien
Sichern Sie 'PICT' Ressourcen in eigene Dateien, getrennt nach .jpg/.png/etc.
Sichern Sie 'PICT' + MASK’ Ressourcen als .png Dateien
Verwenden Sie (auf Mac) icns anstelle von ICON oder farbigen Icons
Sichern Sie private Ressourcen in passender Form, also z.B. als binäre Datei mit spezifischer Endung
Verwenden Sie den Ordner “Resources” zum Speichern Ihrer Ressourcen. Verwenden Sie Get 4D folder(Current resources folder) um den übergeordneten Pfad zu Ihren Ressourcen dynamisch zu erhalten.
Es gibt zwei Arten: Plug-Ins, die das neue Plug-In API nutzen und solche, die noch das alte mit QuickDraw nutzen.
Für Plug-Ins mit der alten Toolbox (mit QuickDraw) gilt folgendes: Zur Wahrung der Kompatibilität wird das Zeichnen/Rendering nicht mehr – wie in früheren Versionen – direkt in einem QuickDraw Port ausgeführt, sondern über einen GWorld QuickDraw offscreen Bereich, speziell für dieses Plug-Ins.
Deshalb müssen Sie ein paar Regeln beachten, insbesondere dass Plug-Ins nicht den aktuellen Port verändern dürfen, der vom Container gesetzt wird (Formularobjekt).
OBJECT SET FONT akzeptiert für Schrift nicht mehr einen Parameter Lange Ganzzahl: Dieser Parameter ist jetzt ein String und Sie müssen den Schriftnamen angeben.
Kapitel Untertabellen: Alle Befehle
“nnn SUBRECORD” und “nnnSUBSELECTION” mit einer Aktion auf den N-Datensatz oder die N-Auswahl der N-Tabelle in einer N->1 Verknüpfung ersetzen
Überholte Befehle sind solche, die nicht mehr verwendet werden sollen und demzufolge in zukünftigen Versionen des Programms nicht mehr enthalten sind.
In 4D v15 haben alle überholten Befehle für mehr Klarheit die Vorsilbe "_o_" erhalten, sofern das noch nicht der Fall war.
Überholte Befehle sind in 4D Listen nicht mehr verfügbar (siehe Abschnitt Überholte Befehle jetzt ausgeblendet), d.h. Sie können diese nicht mehr auswählen. In vorhandenem Code werden sie nur umbenannt und funktionieren weiterhin, solange sie noch unterstützt werden.
Nachfolgende Tabelle zeigt die überholten Befehle, die in 4D v15 mit "_o_" gekennzeichnet und somit aus den Listen entfernt wurden:
Bisheriger Name
Neuer Name in 4D v15
ADD DATA SEGMENT
_o_ADD DATA SEGMENT
ADD SUBRECORD
_o_ADD SUBRECORD
ALL SUBRECORDS
_o_ALL SUBRECORDS
APPLY TO SUBSELECTION
_o_APPLY TO SUBSELECTION
ARRAY STRING
_o_ARRAY STRING
ARRAY TO STRING LIST
_o_ARRAY TO STRING LIST
Before subselection
_o_Before subselection
C_INTEGER
_o_C_INTEGER
C_STRING
_o_C_STRING
Convert case
_o_Convert case
Create resource file
_o_Create resource file
CREATE SUBRECORD
_o_CREATE SUBRECORD
DATA SEGMENT LIST
_o_DATA SEGMENT LIST
DELETE RESOURCE
_o_DELETE RESOURCE
DELETE SUBRECORD
_o_DELETE SUBRECORD
DISABLE BUTTON
_o_DISABLE BUTTON
During
_o_During
ENABLE BUTTON
_o_ENABLE BUTTON
End subselection
_o_End subselection
FIRST SUBRECORD
_o_FIRST SUBRECORD
Font name
_o_Font name
Font number
_o_Font number
Get component resource ID
_o_Get component resource ID
Get platform interface
_o_Get platform interface
INVERT BACKGROUND
_o_INVERT BACKGROUND
ISO to Mac
_o_ISO to Mac
LAST SUBRECORD
_o_LAST SUBRECORD
Mac to ISO
_o_Mac to ISO
Mac to Win
_o_Mac to Win
MODIFY SUBRECORD
_o_MODIFY SUBRECORD
NEXT SUBRECORD
_o_NEXT SUBRECORD
ORDER SUBRECORDS BY
_o_ORDER SUBRECORDS BY
PICTURE TYPE LIST
_o_PICTURE TYPE LIST
PREVIOUS SUBRECORD
_o_PREVIOUS SUBRECORD
QT COMPRESS PICTURE
_o_QT COMPRESS PICTURE
QT COMPRESS PICTURE FILE
_o_QT COMPRESS PICTURE FILE
QT LOAD COMPRESS PICTURE FROM FILE
_o_QT LOAD COMPRESS PICTURE FROM FILE
QUERY SUBRECORDS
_o_QUERY SUBRECORDS
Records in subselection
_o_Records in subselection
REDRAW LIST
_o_REDRAW LIST
SAVE PICTURE TO FILE
_o_SAVE PICTURE TO FILE
SET PICTURE RESOURCE
_o_SET PICTURE RESOURCE
SET PLATFORM INTERFACE
_o_SET PLATFORM INTERFACE
SET RESOURCE
_o_SET RESOURCE
SET RESOURCE NAME
_o_SET RESOURCE NAME
SET RESOURCE PROPERTIES
_o_SET RESOURCE PROPERTIES
SET STRING RESOURCE
_o_SET STRING RESOURCE
SET TEXT RESOURCE
_o_SET TEXT RESOURCE
USE EXTERNAL DATABASE
_o_USE EXTERNAL DATABASE
USE INTERNAL DATABASE
_o_USE INTERNAL DATABASE
Win to Mac
_o_Win to Mac
EIGENSCHAFTEN
Produkt: 4D
Thema: Änderungen in 4D v15
GESCHICHTE
ARTIKELVERWENDUNG
Überholte und entfernte Funktionalitäten ( 4D v15)