Dieses Dokument hebt alle neuen Funktionen von 4D 21 LTS hervor, die von 4D 20 R2 bis 4D 21 hinzugefügt wurden. Jede Funktion enthält direkte Links zu ihrem Blogbeitrag für praktische Beispiele und zur Dokumentation für vollständige technische Details.
Die Abschnitte mit dem Tag
konzentrieren sich speziell auf die Neuerungen seit 4D 20 R10.
Dieses Dokument ist in fünfzehn Abschnitte unterteilt:
4D 21: IHRE KI-ENGINE
4D 21 verwandelt 4D in eine eigene KI-Engine und bietet ein voll funktionsfähiges KI-Toolkit für reale Geschäftsanwendungen. Sie können mit Cloud- oder lokal gehosteten Modellen kommunizieren, Vektoren generieren und speichern, die semantische Suche nativ in ORDA ausführen und Ihre Geschäftslogik direkt mit KI-gesteuerten Konversationen verbinden – alles ohne externe Wrapper, fragmentierte Prozesse oder größere Architekturänderungen.
KI wird zu einer natürlichen Erweiterung Ihres bestehenden Codes, unabhängig davon, ob Ihre Anwendung brandneu oder Jahrzehnte alt ist. Mit nativer Vektorunterstützung, optimierter Modellkommunikation und Werkzeugen zur Einbettung von intelligentem Verhalten in alltägliche Arbeitsabläufe macht 4D 21 die Integration von KI reibungslos, praktisch und sofort nutzbar.
Hinzufügen von KI-Funktionen mit der integrierten 4D AIKit-Komponente
4D AIKit ist eine integrierte 4D Komponente, die OpenAI-kompatible Funktionen direkt in Ihre 4D Umgebung bringt. Mit nur wenigen Zeilen Code können Sie Prozesse automatisieren, Benutzererfahrungen bereichern und intelligente Funktionen in die Geschäftslogik integrieren, ohne 4D verlassen zu müssen.
AIKit umfasst über 30 Klassen, die Folgendes unterstützen:
-
Texterstellung und Chat-basierte Schnittstellen
-
Image Tagging, Objekterkennung und beschreibende Analyse
-
Sprache-zu-Text-Transkription
-
Visuelle Generierung aus Aufforderungen
-
Moderation von Textinhalten
AIKit ermöglicht außerdem fortschrittliche Workflows, die sowohl cloudbasierte als auch lokal gehostete Modelle kombinieren. Sie können Tools zur Automatisierung von sozialen Medien, KI-gestützte Inhaltspipelines oder dynamische Lernerfahrungen erstellen, indem Sie Text- und Bildanalysen in einem einzigen Ablauf kombinieren.
NATIVE VEKTORUNTERSTÜTZUNG FÜR KI-EINBETTUNGEN UND SEMANTISCHE SUCHE
Intelligente Funktionen beginnen mit einem grundlegenden Element: Vektoren. Ob Sie eine semantische Suche, ein Empfehlungssystem, eine Dokumentenklassifizierung oder eine Bildgruppierung erstellen, Vektoren sind die Struktur, die Bedeutung repräsentiert. Mit 4D 21 werden Vektoren ein nativer, erstklassiger Bestandteil der Plattform.
4D.Vector ist eine neue integrierte Klasse, die speziell für die Speicherung und Bearbeitung von KI-Einbettungen entwickelt wurde. Sie speichert hochdimensionale numerische Daten in einem speichereffizienten Format und unterstützt wichtige Ähnlichkeitsoperationen wie Kosinusähnlichkeit, Punktprodukt und euklidische Distanz direkt in 4D. Dies macht semantische Abfragen schnell, präzise und vollständig in Ihr Datenmodell integriert.
Sie können Vektoren in Ihrer Datenbank speichern, sie in klassentypischen Attributen verwenden und Funktionen erstellen, die Daten auf der Grundlage von Bedeutungen und nicht von exakten Übereinstimmungen sortieren, vergleichen oder clustern. Dies ist das Rückgrat moderner KI-gestützter Workflows, die jetzt nativ in 4D enthalten sind.
Ergänzend dazu führt 4D AIKit die native Vektorgenerierung über OpenAIs Embeddings API ein. Die neue Methode OpenAIEmbeddingsAPI.create() wandelt Strings oder Sammlungen in 4D.Vector Instanzen in einem einzigen Aufruf, ohne Token-Handling, ohne HTTP-Plumbing, ohne JSON-Parsing. Einmal generiert, fließen Vektoren nahtlos in Ähnlichkeitsscoring, semantische Filterung, Ranking-Systeme oder ORDA-Abfragen ein.
Zusammen bilden 4D.Vector und AIKit Embeddings eine komplette Pipeline für semantische Intelligenz:
- Erzeugen von Einbettungen
- Speichern Sie sie effizient
- Vergleichen und bewerten Sie sie nativ
- Ausführen semantischer Abfragen direkt in 4D
Es handelt sich um eine KI-fähige Architektur, die in die Sprache und die Datenschicht integriert ist.
SEMANTISCHE ABFRAGEN 
Sie können jetzt die semantische Suche direkt in Ihre ORDA-Abfragen integrieren. Anstatt sich auf separate Prozesse zu verlassen, können Sie das Vektorfeld eines Datensatzes mit einem Referenzvektor vergleichen und sofort die relevantesten Ergebnisse zurückgeben, und zwar innerhalb derselben ORDA-Grammatik, die Sie bereits verwenden.
Die Abfrage akzeptiert ein einfaches Parameterobjekt mit einem erforderlichen vector und optionalen Attributen wie der Ähnlichkeit metric (standardmäßig Cosinus) und einer Ähnlichkeit threshold.
// Step 1: Define the kind of profile you want to match semantically
$searchText:="senior project manager with strong HR background, based in France"
// Step 2: Create an AI client (local baseURL optional)
$client:=cs.AIKit.OpenAI.new("YourApiKey")
$client.baseURL:="http://127.0.0.1:1234/v1"
// Step 3: Generate an embedding vector for the search text
$embedResult:=$client.embeddings.create($searchText; "text-embedding-mxbai-embed-large-v1")
$semanticVector:=$embedResult.vector
// Step 4: Build the semantic query object with similarity options
$semanticQuery:={vector: $semanticVector; metric: "cosine"; threshold: 0.4}
// Step 5: Run the query — combine semantic match with traditional filter
$results:=ds.Profiles.query("yearsOfExperience >= 5 & expertise >= :1"; $semanticQuery)
Vektorielle Bedingungen fügen sich nahtlos in die klassische ORDA-Logik ein, so dass Sie semantische Ähnlichkeit mit traditionellen Filtern in einer einzigen Abfrage kombinieren können. Durch die Anpassung des Schwellenwerts können die Ergebnisse von breit und verrauscht zu eng und präzise werden, so dass Sie aussagekräftige, kontextbezogene Ergebnisse erhalten, ohne die Komplexität zu erhöhen. Der gesamte Prozess bleibt innerhalb der ORDA-Grammatik, die Sie bereits kennen, so dass Ihre Abfragen sauber, aussagekräftig und einfach zu pflegen sind.
AI-Tool-Aufrufe und Antwortformate 
AI Tool Calling und strukturierte Antwortformate erweitern 4D AIKit um die Möglichkeit, geschäftsspezifische Funktionen direkt in AI-gesteuerte Konversationen zu integrieren. Tool Calling ermöglicht es Ihnen, ausgewählte Funktionen aus Ihrer Anwendung, wie z.B. „verfügbare Produktkategorien auflisten“ oder „meistverkaufte Produkte abrufen„, als aufrufbare Tools bereitzustellen. Wenn ein KI-Modell feststellt, dass ein Tool benötigt wird, leitet 4D AIKit den Aufruf automatisch an Ihre registrierten 4D Funktionen weiter und integriert das Ergebnis zurück in die Antwort. Auf diese Weise müssen keine großen Datensätze hochgeladen oder neu trainiert werden, während die KI gleichzeitig in der Lage ist, Benutzeranfragen mit aktuellen, anwendungsspezifischen Daten zu beantworten. In der Praxis bedeutet dies, dass Sie einen Chat-Assistenten in Ihre Anwendung einbetten können, und wenn ein Benutzer fragt : „Was sind die 10 meistverkauften Produkte nach Kategorie?“, kann das Modell Ihre Funktionen aufrufen, echte Geschäftsdaten abrufen und die Antwort in natürlicher Sprache zurückgeben.
Darüber hinaus unterstützt 4D AIKit jetzt strukturierte Antwortformate, was die Integration mit nachgelagerten Prozessen zuverlässiger macht. Neben reinem Text können Antworten als strikte JSON-Objekte angefordert oder gezwungen werden, einem von Ihnen definierten JSON-Schema zu entsprechen. Dies ist besonders nützlich, wenn unstrukturierte Eingaben von Benutzern in vorhersehbare Daten umgewandelt werden müssen oder wenn KI-generierte Inhalte ohne manuelle Bereinigung in automatisierte Workflows einfließen sollen.
Semantische Abfragen, Tool-Aufrufe und strukturierte Antwortformate machen KI in 4D nicht nur zu einer Konversationsebene, sondern zu einer vollständig integrierten Systemkomponente, die in der Lage ist, relevante Geschäftsdaten abzurufen, Logik sicher innerhalb Ihrer Anwendung anzuwenden und strukturierte Ausgaben zu liefern, die sich nahtlos in Ihre Workflows einfügen. Und jetzt, da AIKit als Open Source verfügbar ist, erhalten Sie vollständige Transparenz und die Möglichkeit, es nach Ihren eigenen Geschäftsanforderungen zu gestalten, zu erweitern und weiterzuentwickeln.
NETZWERK
4D 21 definiert die Netzwerkschicht mit einer modernen, leistungsorientierten Grundlage neu, die den heutigen Anforderungen an Konnektivität gerecht wird. Ganz gleich, ob Sie Client/Server-Workloads mit hoher Latenz ausführen, Netzwerke mitten in der Sitzung umschalten, Geräte über TCP oder UDP integrieren oder wiederholte HTTP-Aufrufe optimieren, der gesamte Stack ist darauf ausgelegt, schnellere Verbindungen, höhere Ausfallsicherheit und bessere Kontrolle zu bieten. QUIC wird zum empfohlenen Transportprotokoll für reibungslosere Remote-Sitzungen mit niedriger Latenz, TCP erhält asynchrone APIs mit TLS und feinkörniger Timeout-Behandlung, UDP kommt mit einer neuen ereignisgesteuerten Socket-API und HTTP-Anfragen profitieren von einer dauerhaften Verbindungsverwaltung durch spezielle Agenten. Zusammen bringen diese Upgrades Geschwindigkeit, Stabilität und Flexibilität für jede Ebene der Netzwerkkommunikation Ihrer Anwendung.
QUIC: BELASTBARERE CLIENT/SERVER-KONNEKTIVITÄT
QUIC ist eine moderne Netzwerkschicht, die 4D Client/Server-Verbindungen belastbarer und zuverlässiger macht, insbesondere bei schwankender Netzwerkqualität. Mit 4D 21 können Sie QUIC direkt in den Struktur-, Benutzer- oder Datenbankeinstellungen aktivieren, sogar in kompilierten Anwendungen, was das Testen und Bereitstellen ohne Neuaufbau erleichtert.
In realen Workloads liefert QUIC eine bessere Leistung als ServerNet und kann instabile Verbindungen oder Verbindungen mit hoher Latenz besser verarbeiten. Das bedeutet schnellere Interaktionen für die Benutzer, reibungslosere Arbeit über Wi-Fi oder mobile Netzwerke und eine insgesamt stabilere Erfahrung.
ServerNet wird weiterhin unterstützt, aber QUIC ist jetzt die empfohlene Wahl für neue Bereitstellungen, die von den heutigen Internet-Transportstandards profitieren wollen. Bevor Sie eine bestehende Umgebung migrieren, sollten Sie sich vergewissern, dass Ihre Infrastruktur UDP unterstützt, da einige Netzwerke dies einschränken.
Nahtloses Netzwerk-Switching mit QUIC 
Mit QUIC unterbricht das Umschalten zwischen Netzwerkschnittstellen nicht mehr Ihre 4D Remote Verbindung. Egal, ob Sie von Ethernet auf Wi-Fi umschalten, Adapter wechseln oder einen Laptop in einem anderen Netzwerk aufwecken, der Client baut automatisch seine Sitzung mit 4D Server wieder auf und setzt die Ausführung ohne Datenverlust fort. QUIC ermöglicht schnelle, stabile Verbindungen bei wechselnden Netzwerkbedingungen, so dass die Ausführung auch in mobilen oder instabilen Umgebungen reibungslos funktioniert.
Ihr Workflow bleibt intakt: Der Ausführungskontext bleibt erhalten, und die Prozesse werden genau dort fortgesetzt, wo sie unterbrochen wurden. Auf der Serverseite wird die IP-Adresse des Clients in Echtzeit im Administrationsdialog, in den Diagnoseprotokollen und in den Sitzungsattributen aktualisiert, so dass Administratoren vollständige Transparenz erhalten. Dies macht 4D Remote wesentlich robuster, wenn sich die Netzwerkbedingungen häufig ändern.
MODERNES SICHERES TCP-NETZWERK (CLIENTS, SERVER & TLS)
4D 21 bietet einen kompletten, modernen TCP Netzwerk-Stack, der die alten 4D Internet Commands durch einen schnelleren, saubereren und vollständig asynchronen Ansatz ersetzt.
Die TCPConnection Klasse handhabt die clientseitige Kommunikation mit einer objektorientierten API und Callbacks wie onConnection, onData, onShutdown und onError. Sie können Blobs oder Text senden, auf Ereignisse reagieren, sobald sie eintreten, und mühelos eine Verbindung zu externen Geräten, Diensten oder benutzerdefinierten Protokollen herstellen.
Die TCPListener Klasse fügt die Serverseite hinzu. Mit ihr können Sie an einem Port lauschen, eingehende Verbindungen annehmen oder ablehnen und jeden angenommenen Client an eine dedizierte Instanz von TCPConnection weiterleiten. So erhalten Sie ein konsistentes Modell für den Aufbau von leichtgewichtigen Diensten oder Geräte-Gateways direkt in 4D.
Um alles zu sichern, unterstützen TCP-Verbindungen jetzt native TLS/SSL-Verschlüsselung. Wenn Sie das Attribut TLS im neuen Parameter options von 4D.TCPConnection.new() aktivieren, bauen Sie automatisch verschlüsselte Sitzungen auf, mit TLS 1.3 als Standardprotokoll. Standard- und sichere Ports können parallel ausgeführt werden, und die verschlüsselte Kommunikation beginnt, sobald der Handshake abgeschlossen ist.
TCP-Verbindungen verfügen außerdem über die Eigenschaft.connectionTimeout , mit der Sie direkt steuern können, wie lange gewartet werden soll, bevor eine blockierte oder nicht reagierende Verbindung abgebrochen wird. Auf diese Weise können Sie Latenzschwellenwerte einstellen, bei schlechten Netzwerkbedingungen schnell ausfallen und ein Einfrieren der Benutzeroberfläche oder endlose Wartezeiten vermeiden.
Zusammen bieten diese Funktionen eine moderne, flexible und sichere Grundlage für die Implementierung von benutzerdefinierten TCP-Protokollen und die Entwicklung von Client- und Server-Netzwerklösungen in 4D.
NEUE UDP-BEFEHLE
Die neue Klasse 4D.UDPSocket gibt Entwicklern die volle Kontrolle über die ereignisgesteuerte Echtzeit-Kommunikation über das UDP-Protokoll. Sie unterstützt sowohl den Client- als auch den Servermodus und ist für die schnelle, verbindungslose Datenübertragung in Anwendungsfällen wie IoT-Messaging, Echtzeit-Geräteüberwachung oder interne Signalisierung optimiert.
Diese Klasse ist vollständig ereignisgesteuert und unterstützt Rückrufe wie onData, onError und onTerminate. Entwickler können Pakete mit send() senden und empfangen, Paket-Metadaten über 4D.UDPEvent analysieren und den Datenverkehr in der einheitlichen Datei 4DTCPUDPLog.txt protokollieren.
Mit Unterstützung für präemptive Threads läuft die UDPSocket-Klasse effizient in Umgebungen mit hoher Parallelität und ersetzt das alte Internet Commands Plugin durch eine moderne, objektorientierte Alternative.
OPTIMIEREN SIE IHRE HTTP-VERBINDUNGEN MIT HTTP-AGENTEN
4D 21 führt HTTP Agenten ein , die Ihnen mehr Kontrolle darüber geben, wie sich Ihre Anwendung mit HTTP Servern verbindet. Agenten verwalten die Aufrechterhaltung und Wiederverwendung von Verbindungen und vermeiden so den Overhead, der durch die Neuaushandlung einer neuen Verbindung, insbesondere TLS/SSL, bei jeder Anfrage entsteht.
Standardmäßig verwenden alle HTTPRequest Befehle jetzt einen eingebauten Agenten, der die Verbindungen aufrechterhält. Wenn Sie mehr Kontrolle benötigen, können Sie Ihren eigenen Agenten erstellen, um das Verhalten fein abzustimmen, z. B.:
-
Keep-Alive-Behandlung
-
maximale Anzahl gleichzeitiger Verbindungen
-
Verbindungs-Timeouts
-
TLS/SSL-Konfiguration auf Agentenebene
Die Verwendung eines Agenten ist einfach: Sie erstellen ihn einmal und übergeben ihn über Ihre Anfrageoptionen. Da es sich bei HTTPAgent um ein gemeinsam genutztes Objekt handelt, können Sie auch einen einzigen Agenten für alle Anfragen an denselben Server verwenden oder ihn sogar auf mehreren Servern wiederverwenden, wobei jeder seinen eigenen Verbindungspool unterhält.
HTTP-Agenten machen wiederholte Aufrufe schneller, vorhersehbarer und einfacher zu verwalten, insbesondere in Anwendungen, die stark mit externen APIs interagieren.
ORDA
4D 21 erweitert ORDA um eine tiefere Lebenszykluskontrolle und eine verfeinerte Datenverarbeitung, die es Entwicklern ermöglicht, eine saubere, in sich geschlossene Geschäftslogik zu erstellen. Mit neuen Lebenszyklusereignissen, Konstruktorunterstützung, intelligenter Entity-Filterung und Speicherbereinigungsfunktionen wird die Datenschicht nicht nur zu einem Speichersystem, sondern zu einer reaktionsschnellen, regelbasierten Engine, die direkt in Ihr Modell integriert ist.
KOMPLETTES MODELL für Entity-Lebenszyklusereignisse 
4D 21 führt ein komplettes, einheitliches Lebenszyklusmodell für ORDA-Entitäten ein, das Ihnen die volle Kontrolle darüber gibt, wie sich Daten von der Erstellung bis zur Löschung verhalten. Anstatt Regeln über Formulare, APIs oder Trigger zu verstreuen, definieren Sie jetzt Ihre gesamte Geschäftslogik direkt in Ihren Datenklassen: sauberer, zentraler und einfacher zu pflegen.
Dieser Lebenszyklus beginnt in dem Moment, in dem eine Entität erstellt wird. Mit Entitätskonstruktoren können Sie Standardwerte zuweisen, kontextspezifische Logik initialisieren (z. B. den aktuellen Benutzer oder die Sitzung) oder Attribute automatisch ausfüllen. Sobald eine Entität im Speicher geändert wird, reagiert das Ereignis onTouch in Echtzeit auf diese Änderungen, so dass es einfach ist, Werte zu normalisieren, Regeln durchzusetzen oder abhängige Aktualisierungen vorzubereiten, bevor ein Speichervorgang beginnt.
Wenn eine Entität gespeichert wird, führt 4D 21 nun eine dreistufige Sequenz aus: validateSave, saving, und afterSave. Auf diese Weise können Sie ungültige Operationen frühzeitig blockieren, Geschäftslogik während des Speichervorgangs anwenden und Folgeaktionen auslösen, sobald der Vorgang abgeschlossen ist. Die gleiche Drei-Phasen-Pipeline gibt es für Löschungen mit validateDrop, dropping und afterDrop, so dass Sie unberechtigte Löschungen verhindern, die zugehörigen Daten bereinigen und die Logik nach der Löschung konsistent ausführen können.
Alle Ereignisse sind sowohl auf Entitäts- als auch auf Attributsebene verfügbar. Validierungsereignisse können Operationen blockieren, wenn die Regeln nicht erfüllt sind, während Post-Events immer ausgeführt werden, auch wenn die Operation fehlschlägt, wodurch ein zuverlässiges, vorhersehbares Verhalten in Ihrem gesamten Modell gewährleistet wird.
Durch die Konsolidierung dieser Logik in Ihren ORDA-Datenklassen wird das Verhalten der Entitäten vorhersehbar, in sich geschlossen und in der gesamten Anwendung konsistent. Geschäftsregeln werden nicht mehr in Triggern versteckt. Externe Systeme können über native Ereignis-Hooks sauber integriert werden. Und in ORDA-basierten Projekten sind herkömmliche Trigger nicht mehr erforderlich, da die Lifecycle-Ereignisse die volle Leistungsfähigkeit von ORDA in einer sauberen, besser wartbaren Architektur bieten.
Einschränkung von Daten bei der Auswahl von Entitäten
Die Kontrolle darüber, wer welche Daten sieht, ist in Geschäftsanwendungen von entscheidender Bedeutung. Jetzt können Sie diese Regeln einmalig, sauber und direkt in Ihrem Datenmodell definieren.
Während das bestehende Berechtigungssystem in 4D steuert, ob Benutzer auf eine gesamte Datenklasse zugreifen können, verfeinert die neue Funktion restrict(), die in 4D 21 eingeführt wurde, diesen Zugriff noch weiter. Mit ihr können Sie kontextbezogene Filter für die Auswahl von Entitäten auf der Grundlage von Sitzungswerten, Benutzerrollen oder einer anderen Laufzeitlogik erzwingen.
Anstatt Filter manuell in Ihrem Code anzuwenden, definieren Sie sie einmal innerhalb der Datenklasse mit der Funktion restrict(). So kann beispielsweise ein Vertriebsmitarbeiter nur die von ihm verwalteten Kunden sehen, während Administratoren weiterhin den gesamten Datensatz sehen, was bei jedem Lesevorgang wie query() oder all() automatisch festgelegt wird.
Dieser zentrale Ansatz erhöht nicht nur die Sicherheit, sondern sorgt auch dafür, dass Ihre Logik sowohl im Web- als auch im Client-Server-Kontext sauber und konsistent bleibt.
SAUBERE ENTITY-AUSWAHLEN MIT AUTOMATISCHER LÜCKENENTFERNUNG
Wenn Benutzer Entitäten aus einer Auswahl löschen, ist die Benutzeroberfläche oft mit leeren Platzhaltern überladen. Das unterbricht den Fluss, sorgt für Reibungsverluste und lässt Ihre Benutzeroberfläche weniger reaktionsschnell erscheinen.
Mit 4D 21 löst die neue Funktion clean() dieses Problem in einer einzigen Zeile. Nach dem Ablegen eines Objekts rufen Sie einfach .clean() für die Objektauswahl auf, um automatisch alle Lücken zu entfernen, die durch gelöschte Objekte entstanden sind. Die Funktion ist nahtlos und effizient und stellt eine ausgefeilte, ununterbrochene Ansicht wieder her, ohne dass Sie sie manuell neu aufbauen müssen.
Dieser kleine Zusatz bedeutet eine große Verbesserung der Schnittstellenqualität und der Benutzerfreundlichkeit. Und das beschränkt sich nicht nur auf die Benutzeroberfläche: Die $entityset REST-API unterstützt auch den Parameter clean, so dass Ihre API-Antworten auch nach dem Löschen saubere, lückenlose Daten zurückgeben.
Unabhängig davon, ob Sie eine Desktop-Oberfläche entwickeln oder mit Web-Clients arbeiten, sorgt diese Funktion für aufgeräumte Datenansichten und reibungslose Benutzerinteraktionen.
4D Qodly Pro
Mit 4D Qodly Pro können Sie Ihre Geschäftsanwendungen um moderne browserbasierte Schnittstellen erweitern, ohne eine einzige Zeile HTML oder JavaScript schreiben zu müssen. Mit einem visuellen Drag-and-Drop-Editor können Sie responsive Webformulare erstellen und diese direkt mit Ihrer 4D Geschäftslogik verbinden.
Qodly-Seiten können über einen Webbereich direkt in klassische 4D Formulare eingebettet werden. Aus der Sicht des Benutzers fühlt sich alles wie eine einzige, einheitliche Oberfläche an. Es besteht keine Notwendigkeit für separate Fenster oder zusätzliche Lizenzen. Die eingebettete Qodly Seite nutzt dieselbe Sitzung und Lizenz wie der 4D Remote Client, so dass die Nutzung transparent und ohne zusätzliche Kosten erfolgt.
Wenn Sie sehen möchten, wie schnell dies in der Praxis funktioniert, können Sie sich das offizielle 4D Qodly Pro Webinar ansehen, in dem gezeigt wird, wie Sie browserbasierte Formulare zu einer echten 4D Anwendung hinzufügen.
ERSTELLEN SIE MODERNE WEB-OBERFLÄCHEN, OHNE IHRE ANWENDUNG NEU ZU SCHREIBEN
Mit 4D Qodly Pro können Sie moderne, browserbasierte Oberflächen direkt auf Ihrer bestehenden 4D Anwendung erstellen, ohne Web Frameworks zu erlernen, Logik umzuschreiben oder separate Codebases zu verwalten. Sie entwerfen Seiten visuell, binden Daten visuell, sichern den Zugriff visuell und stellen APIs visuell zur Verfügung, während Sie in Ihrem vertrauten 4D Workflow bleiben. Das Ergebnis ist ein schnellerer Weg ins Web mit weniger Code, weniger Komplexität und ohne Unterbrechung der Verbindung zwischen Ihrer Benutzeroberfläche und Ihrer Geschäftslogik.
-
Erweitern oder verschieben Sie Ihre Desktop-Anwendungen ins Web, ohne Ihre Architektur umzustrukturieren: Qodly Pages setzt auf Ihrem bestehenden ORDA-Modell und Ihren Serverklassen auf. Ihre Logik, Datenbank und Sicherheitsregeln bleiben genau dort, wo sie sind.
-
Erstellen Sie mit wiederverwendbaren Komponenten visuell ansprechende Oberflächen: Sie ziehen Komponenten auf den Canvas, konfigurieren sie über Seitenpanels und binden sie ohne Code an qodlysources. Mit vorgefertigten Komponenten und Templates können Sie Bildschirme schnell und mit einheitlichem Styling zusammenstellen.
-
Beschleunigen Sie die Entwicklung durch Beseitigung der Komplexität des Frontends: Datenbindung, Formatierung, bedingte Zustände, Ereignisse und Navigation sind alle visuell. Sie benötigen kein HTML, CSS oder JavaScript, sondern nur 4D Logik und die Panels von Qodly Studio.
-
Nutzen Sie die 4D Client Lizenz, die Sie bereits besitzen: Wenn eine Qodly Seite in einen Webbereich eines 4D Remote Clients eingebettet wird, läuft sie unter der gleichen Sitzung und Lizenz. Die Benutzer sehen eine einheitliche Oberfläche, und die Bereitstellung bleibt einfach und kostengünstig.
-
Halten Sie Ihre Teams mit einer vertrauten Drag-and-Drop-Erfahrung produktiv: Qodly Studio ist dem 4D Formular-Editor nachempfunden, was neuen Entwicklern den Einstieg in das Projekt erleichtert und erfahrenen 4D Teams ein schnelleres Arbeiten ermöglicht.
-
Design, Logik und Daten befinden sich alle in der gleichen Umgebung: Qodly Studio kümmert sich um das Layout, Qodly Pages definiert die Struktur, und Ihre Geschäftsregeln befinden sich in Ihren Klassen. Nichts ist über externe Dateien oder unzusammenhängende Frameworks verstreut.
-
Bauen Sie dynamisches Verhalten visuell auf: Mit bedingten und nicht bedingten Zuständen können sich Seiten an Benutzerrollen, Datenänderungen oder Interaktionen auf der Benutzeroberfläche anpassen, die alle über geführte Panels konfiguriert werden. Sie sehen genau, wann und warum Elemente erscheinen, sich ändern oder reagieren.
-
Definieren Sie Rollen, Berechtigungen und Zugriffsregeln visuell: Über eine spezielle Oberfläche können Sie Rollenhierarchien erstellen, Berechtigungen zuweisen und die endgültigen Berechtigungen auf einen Blick überprüfen. Es wird klargestellt, wer jeden Teil Ihrer Anwendung lesen, aktualisieren, löschen oder ausführen darf.
-
Stellen Sie die Serverlogik als einfache, visuelle HTTP-Handler dar: Sie wählen eine Klasse und eine Methode aus, definieren ein URL-Muster, und Qodly übernimmt das Routing. Auf diese Weise können Sie auf einfache Weise APIs veröffentlichen oder externe Systeme ohne zusätzliche Schichten oder Frameworks integrieren.
-
Debuggen Sie Seiten direkt auf Ihrem 4D Server: Sie können UI-Änderungen sofort in der Vorschau anzeigen, qodlysources inspizieren und den 4D Debugger in Qodly Pro verwenden – und zwar genau dort, wo die Logik ausgeführt wird.
Benutzerdefinierte Komponenten: Erweitern Sie Qodly mit Ihren eigenen Bausteinen
4D Qodly Pro unterstützt auch benutzerdefinierte Komponenten, mit denen Sie die Benutzeroberfläche erweitern können, wenn Sie etwas benötigen, das über das integrierte Toolkit hinausgeht.
-
Fügen Sie neue Funktionen mit Ihren eigenen React-Komponenten hinzu: Komplexe Widgets, spezielle Visualisierungen oder einzigartige Interaktionen können als React-Komponenten erstellt und direkt in Qodly Studio hochgeladen werden.
-
Sie können sie projektübergreifend wiederverwenden oder innerhalb der Community teilen: Benutzerdefinierte Komponenten verhalten sich nach der Installation wie systemeigene Komponenten. Sie lassen sich per Drag-and-Drop verschieben, binden Daten, wenden Stile an und lösen Ereignisse auf genau dieselbe Weise aus.
-
Halten Sie die Entwicklung effizient: Anstatt eine spezielle Benutzeroberfläche jedes Mal neu zu erstellen, installieren Sie eine Komponente einmal und verwenden sie überall.
-
Die Komponente fügt sich nahtlos in den Rest Ihrer Benutzeroberfläche ein: Sie bestimmen das Erscheinungsbild, das Verhalten und die Integration, während Qodly sicherstellt, dass die Komponenten innerhalb seiner Laufzeitumgebung effizient laufen.
Und mit einer aktiven Community, die ständig benutzerdefinierte Komponenten austauscht, können Sie Ihre Toolbox erweitern, ohne alles selbst entwickeln zu müssen.
Automatische Einrichtung von Qodly Studio 
Wenn Sie Qodly Studio zum ersten Mal aus dem 4D Design Modus starten, wird ein automatischer Einrichtungsassistent gestartet. Alle erforderlichen Einstellungen: REST-Server-Aktivierung, skalierbare Sitzungen, Webserver-Ports, werden erkannt und mit einer Aufforderung zur Aktivierung versehen.
Wird dies akzeptiert, werden die Dienste bei Bedarf neu gestartet und Qodly Studio wird im Browser geöffnet. Wird dies abgelehnt, treten keine Änderungen auf. Der Arbeitsablauf ist reibungslos, schnell und für neue Benutzer einfach zu handhaben.
GEMEINSAME SITZUNGEN & INTERAKTIONEN zwischen Client/Server-Anwendungen und 4D Qodly Pro 
Wenn eine Qodly Seite in einem Webbereich eines 4D Remote Clients angezeigt wird, läuft sie unter der gleichen Sitzung und der gleichen Lizenz. Das bedeutet, dass keine zusätzliche Lizenz verbraucht wird und derselbe Sitzungskontext nahtlos zwischen dem Desktop Formular und der 4D Qodly Pro Seite fließt.
Authentifizierung und Berechtigungen werden automatisch beibehalten, und Sitzungsdaten können weitergegeben werden, um die Webseite mit dem Kontext des Desktops zu initialisieren, z.B. um Details der aktuell ausgewählten Entität anzuzeigen.
Neben der gemeinsamen Nutzung von Sessions ermöglichen 4D Qodly Pro Aktionen eine direkte Zwei-Wege-Interaktion zwischen 4D Formularen und 4D Qodly Pro Seiten. Von einer Qodly Seite aus können Entwickler 4D Funktionen über das $4d Objekt aufrufen, das zuvor mit dem WA SET CONTEXT Befehl initialisiert wurde. Umgekehrt kann ein 4D Formular die Qodly Quellen direkt aktualisieren, so dass ein synchronisierter Zustand und Logik in beiden Umgebungen gewährleistet ist.
Zusammengenommen machen es diese Erweiterungen einfach, klassische 4D Formulare mit modernen Qodly Seiten in einer einzigen Anwendung zu kombinieren, Sessions, Interaktionen und Kontext zu vereinheitlichen und gleichzeitig redundante Logins, zusätzliche Lizenzen oder komplexe Integrationsarbeit zu vermeiden.
Eingebaute Internationalisierung (i18n) 
4D Qodly Pro enthält eine integrierte Internationalisierung (i18n), so dass sich Ihre Anwendungen nahtlos an mehrere Sprachen und regionale Einstellungen anpassen können.
Unterstützte Sprachen werden als Gebietsschemata im neuen Bereich Lokalisierung definiert, wo Übersetzungsschlüssel und -werte verwaltet und an Komponenten gebunden werden können. Die Sprachauswahl wird von der integrierten UserLanguage Qodly Source übernommen, die die Auswahl des Benutzers in Echtzeit umsetzt.
Automatische Fallbacks decken Sitzungsdaten, Browser-Standardeinstellungen oder ein primäres Gebietsschema ab, während die native Rechts-nach-Links-Unterstützung (RTL) Sprachen wie Arabisch natürlich erscheinen lässt. Bei einem Sprachwechsel werden die Inhalte sofort aktualisiert, sodass ein reibungsloses, personalisiertes Erlebnis entsteht.
Auf diese Weise können Sie in neue Märkte expandieren, die Reibungsverluste bei der Einführung reduzieren und das Vertrauen der Benutzer stärken, ohne Ihre Benutzeroberfläche umzugestalten oder die Komplexität zu erhöhen. Ganz gleich, ob Sie Ihr Produkt lokal oder global einführen, Ihr Produkt ist bereit, die Sprache Ihrer Nutzer zu sprechen.
Qodly-Seite Ereignisbericht 
Der Ereignisbericht bietet eine klare, einheitliche Sicht auf alle Ereignisse auf Ihrer Seite, unabhängig davon, ob sie von Standardaktionen, Navigationsaktionen, Klassenfunktionen oder Dialogaktionen stammen. Er zeigt, welche Ereignisse deklariert sind, wo sie implementiert sind und in welcher Reihenfolge sie ausgeführt werden.
Durch die Transparenz des Ereignisflusses wird die Fehlersuche beschleunigt, Überschneidungen oder fehlende Handler werden sofort aufgedeckt, und die Optimierung ist einfach. Teams können leichter zusammenarbeiten, und Sie gewinnen die Gewissheit, dass Sie genau wissen, wie sich Ihre Seite verhält.
Es ist ein einfacher Weg, um Klarheit, Genauigkeit und Effizienz in die Ereignisverwaltung zu bringen, egal ob Sie eine kleine Anwendung oder eine umfangreiche Lösung entwickeln.
CANVAS-ZOOM-STEUERUNG 
Der 4D Qodly Pro Seiteneditor enthält Canvas-Zoom-Steuerelemente, die die Arbeit mit komplexen Layouts erleichtern. Entwickler können jetzt direkt über die Symbolleiste die Ansicht vergrößern, verkleinern oder zurücksetzen, wobei Tastaturkürzel und Mausradnavigation unterstützt werden.
Die aktuelle Zoomstufe wird in der Benutzeroberfläche angezeigt, so dass Entwickler genau steuern können, wie sie die Komponenten auf dem Canvas anzeigen und anordnen.
Diese Erweiterungen verbessern die Navigation, die Designgenauigkeit und die allgemeine Benutzerfreundlichkeit und passen den Seiteneditor an die Standards moderner visueller Designtools an.
DATENBANK
4D 21 stärkt das Fundament Ihres Datenmodells mit Funktionen, die mehr Struktur, mehr Zuverlässigkeit und bessere Leistung bei der Skalierung bieten. Sie können jetzt Klassen direkt Objektfeldern zuweisen, um eine garantierte Formvalidierung und sicherere, typisierte Modelle zu erhalten. Die Datensatzauswahl bleibt auch dann konsistent, wenn sich die Daten im Hintergrund ändern, was stabile Ergebnisse für lang laufende Operationen gewährleistet. Und mit der neuen Unterstützung für UUID v7 werden Ihre Bezeichner zeitlich geordnet und indexfreundlich, so dass sich große Datensätze leichter sortieren und schneller über verteilte Systeme abfragen lassen.
OBJEKTFELDER MIT KLASSENTYP IM STRUKTUREDITOR
Im Struktur-Editor können Objektfelder jetzt einer bestimmten Klasse zugewiesen werden. Dabei handelt es sich nicht nur um Metadaten, sondern um einen Vertrag, den 4D auf mehreren Ebenen durchsetzt.
Weisen Sie einem Objektfeld eine Benutzerklasse zu und Sie erhalten:
-
Autovervollständigung auf Eigenschaftsebene
-
Syntaxprüfung zur Kompilierungszeit
-
Validierung der Objektform zur Laufzeit
Wenn das Objekt nicht mit der deklarierten Klasse übereinstimmt, meldet 4D einen Fehler. Struktur wird zum Schema, Ihre Daten bleiben sauber, und in Kombination mit 4D.Vector bedeutet die Definition eines typisierten Vektorattributs innerhalb Ihrer Klasse, dass jede Entität ihren eigenen semantischen Fingerabdruck trägt, bereit für Ähnlichkeitsscoring, KI-gesteuerte Sortierung oder intelligente Empfehlungen.
DATENSATZAUSWAHLEN KONSISTENT HALTEN
4D 21 stärkt die Zuverlässigkeit der Daten, indem es sicherstellt, dass die Datensatzauswahl stabil bleibt, auch wenn Datensätze gelöscht und neue im Hintergrund erstellt werden.
In früheren Versionen konnte durch das Entfernen eines Datensatzes ein interner Slot frei werden, der später von einem neu erstellten Datensatz wiederverwendet werden konnte, wodurch eine bestehende Auswahl unerwartet Daten enthielt, die nicht den ursprünglichen Kriterien entsprachen.
Jetzt bleibt eine einmal erstellte Auswahl während ihrer gesamten Lebensdauer konsistent. Gelöschte Datensätze verschwinden einfach aus der Auswahl, und neu erstellte Datensätze rutschen nicht hinein. Dies gilt sowohl für klassische QUERY-Auswahlen als auch für ORDA-Entity-Auswahlen.
Mit diesem Update verhalten sich Schleifen, Seriendrucke, Hintergrundaufgaben und langlebige Selektionen genau so, wie es beabsichtigt ist: keine Überraschungen, keine zusätzlichen Prüfungen, nur zuverlässige Ergebnisse.
UNTERSTÜTZUNG FÜR UUIDS DER VERSION 7
Die UUID-Generierung ist jetzt noch intelligenter. Generate UUID unterstützt jetzt die Version 7 der Identifikatoren. Das bedeutet, dass Ihre UUIDs nicht nur universell eindeutig sind, sondern auch chronologisch sortierbar, datenbankfreundlich und für moderne verteilte Systeme ausgelegt sind.
Intern betten UUIDs der Version 7 Zeitstempeldaten ein, wodurch sie sich ideal für die geordnete Speicherung eignen und leichter indiziert werden können. Eine kleine Änderung mit großen Auswirkungen auf Skalierung und Abfrageleistung.
4D-Komponente
4D 21 bringt zwei große Fortschritte für die Komponentenentwicklung: einen modernen Abhängigkeitsmanager und eine nahtlose projektinterne Komponentenbearbeitung. Mit der optionalen Komponentenverwaltung können Sie „nur das laden, was Sie brauchen“, Komponenten direkt von GitHub beziehen, alles automatisch mit Ihrer 4D Version abgleichen und sich darauf verlassen, dass 4D rekursive Abhängigkeiten auflöst und Konflikte verhindert. Gleichzeitig können Sie den Komponentencode direkt in Ihrem Host-Projekt anzeigen, bearbeiten und debuggen, was die komponentenbasierte Entwicklung schneller, sauberer und viel einfacher macht. Zusammen schaffen diese Änderungen einen optimierten, vorhersehbaren Arbeitsablauf für die Erstellung, gemeinsame Nutzung und Skalierung von Komponenten in Teams und Projekten.
NAHTLOSE PROJEKTINTERNE KOMPONENTENINTEGRATION 
Die Komponentenentwicklung in 4D hat einen großen Schritt nach vorne gemacht. Methoden und Klassen einer Komponente, ob gemeinsam genutzt oder nicht, können jetzt direkt im Host-Projekt angezeigt und bearbeitet werden, ohne dass die Komponente separat geöffnet oder der Fokus während der Entwicklung unterbrochen werden muss. Alle Methoden können jetzt an Ort und Stelle bearbeitet werden, und ganze Komponenten können von der Host-Oberfläche aus erstellt, mit Namespace, Dateien und Struktur initialisiert und dann sofort im interpretierten Modus bearbeitet werden.
Über den Code hinaus wurde die Sichtbarkeit auf schreibgeschützte Formulare, Ordner, Konstanten, Befehle, Plug-ins und sogar einen komponentenspezifischen Papierkorb erweitert. Konstanten behalten die Verknüpfung zu ihren Ausgangskomponenten bei und sorgen so für Konsistenz in der gesamten Anwendung, während neue Erstellungsabläufe automatisch Abhängigkeiten verdrahten und eine Struktur sowohl für den verwalteten als auch den Legacy-Modus einrichten.
Insgesamt wird dadurch die Iteration von Komponenten schneller, die Modularisierung reibungsloser und die Projekte sauberer und transparenter. Dies ist ein bedeutender Meilenstein bei der Annäherung von Komponenten an den Arbeitsablauf des Host-Projekts, wobei weitere Verbesserungen noch auf der Roadmap stehen.
OPTIONALE KOMPONENTENVERWALTUNG 
4D 21 enthält keine Standard 4D Komponenten mehr. Stattdessen melden Sie Ihren Bedarf über den Dialog Abhängigkeiten hinzufügen an, und 4D holt und installiert sie automatisch bei Bedarf. Von dort aus können Sie direkt auf den kompletten Katalog der 4D Komponenten zugreifen, einschließlich 4D AI Kit, 4D NetKit, 4D View Pro, SVG und mehr, die alle als Open Source auf GitHub veröffentlicht sind. Das gibt Ihnen die Flexibilität, nur das zu installieren, was Sie brauchen, und erleichtert es Ihnen gleichzeitig, das Innenleben der Komponenten zu erforschen, zu Verbesserungen beizutragen und Ihre Projekte an die sich entwickelnden Anforderungen anzupassen.
-
Fokussierte Abhängigkeiten: Es werden nur die benötigten Komponenten installiert.
-
Versionsanpassung: Die Abhängigkeiten folgen standardmäßig Ihrer aktuellen 4D Version, so dass die Kompatibilität ohne manuelle Prüfungen gewährleistet ist.
Beim Upgrade auf 4D 21 können bestehende Projekte die erforderlichen Komponenten automatisch herunterladen, während binäre Datenbanken weiterhin über den Installer oder das Download-Portal auf sie zugreifen.
Automatisieren Sie die Kompatibilität von Abhängigkeiten mit Follow 4D Version
Die Follow 4D Version Regel vereinfacht das Abhängigkeitsmanagement, indem sie Ihre Abhängigkeiten automatisch mit Ihrer 4D Umgebung synchronisiert. Dies reduziert Kompatibilitätsprobleme und spart Ihnen Zeit.
- Automatische Kompatibilität: Abhängigkeiten werden mit Ihrer 4D Version abgeglichen, eine manuelle Nachverfolgung ist nicht erforderlich.
- Mühelose Updates und Downgrades: Abhängigkeiten werden bei Upgrades oder Downgrades von 4D automatisch aktualisiert.
- Zuverlässige Auflösung von Abhängigkeiten: Das System löst Abhängigkeiten basierend auf strukturierten Tag-Namenskonventionen für LTS- und R-Releases auf.
GITHUB-NATIVE KOMPONENTENINTEGRATION UND ABHÄNGIGKEITSKONTROLLE
Die Komponentenintegration in 4D 21 ist auf die Art und Weise ausgelegt, wie Entwicklung heute tatsächlich stattfindet. Teams tauschen Code aus. Interne Bibliotheken entwickeln sich weiter. Öffentliche Komponenten werden verbessert. Und alles läuft über GitHub. Das neue Abhängigkeitssystem verbindet Ihr Projekt direkt mit diesen Repositories, so dass Komponenten ohne manuelle Eingriffe installiert und aktualisiert werden und mit ihrem Quellcode übereinstimmen.
Sobald eine Komponente referenziert wird, bezieht 4D sie direkt von GitHub und wendet semantische Versionsregeln an, so dass Sie genau entscheiden können, wie eng oder locker Sie Updates verfolgen möchten. Sie können eine Version einfrieren, wenn Stabilität wichtig ist, innerhalb eines sicheren Bereichs bleiben, wenn Sie kontrollierte Upgrades wünschen, oder der neuesten Version folgen, wenn Sie schnell iterieren. Wenn eine neue Version auf GitHub verfügbar ist, hebt 4D sie sofort hervor, so dass Sie eine einzelne Komponente oder das gesamte Set in einem Schritt aktualisieren können.
Private Repositories passen genau hinein. Sie fügen einmalig ein Token hinzu und 4D erledigt den Rest, indem es die internen Komponenten genauso reibungslos abruft wie die öffentlichen.
So entsteht ein sauberer, vorhersehbarer Ablauf. Jede Komponente ist nachvollziehbar. Jede Aktualisierung ist gewollt. Jede Abhängigkeit bleibt mit der Codebasis verbunden, die sie definiert. Die Übernahme wird einfacher, die Wartung wird leichter, und die gemeinsame Nutzung von Code durch verschiedene Teams wird zu einem natürlichen Bestandteil Ihres Workflows.
REKURSIVE AUFLÖSUNG UND VERWALTUNG VON ABHÄNGIGKEITEN
Der Component Manager versteht jetzt den gesamten Baum. Sobald sich eine Komponente in Ihrem Projekt befindet, analysiert 4D jede Abhängigkeit, von der sie abhängt, lädt die erforderlichen automatisch und prüft auf Konflikte, bevor diese auftreten.
Das rekursive Laden stellt sicher, dass keine Unterabhängigkeiten verloren gehen. Versionsbereiche werden auf intelligente Weise aufgelöst, so dass mehrere Komponenten von derselben Bibliothek abhängen können, ohne dass Ihr Build beschädigt wird. Und wenn ein Zyklus auftritt, blockiert 4D ihn an der Wurzel, um Ihr Projekt stabil zu halten.
Sie erhalten einen klaren Einblick in die Struktur: deklarierte Abhängigkeiten, indirekte Abhängigkeiten und genau, welche Komponente was benötigt. Jedes Hinzufügen, Aktualisieren oder Entfernen von Komponenten wird durch den Baum propagiert, so dass Ihr Projekt ohne manuelle Bereinigung kohärent bleibt.
Hinzufügen und Entfernen von lokalen Komponenten
Die Verwaltung lokaler Komponenten in 4D 21 ist jetzt wesentlich einfacher und berechenbarer. Über die Schnittstelle für Projektabhängigkeiten können Sie an einer einzigen Stelle Komponenten hinzufügen, entfernen und organisieren, ohne das Dateisystem zu berühren oder die Projekteinstellungen zu durchsuchen.
Alles wird von zwei Dateien gesteuert: dependencies.json, in der alle Projektabhängigkeiten aus Konsistenzgründen zentralisiert werden, und environment4d.json, die anpassbare Komponentenpfade verwaltet. Wenn Sie eine lokale Komponente hinzufügen, schreibt 4D automatisch den richtigen Eintrag. Befindet sich die Komponente an einem anderen Ort, werden beide Dateien aktualisiert, damit das Projekt auf jedem Rechner, ob unter macOS oder Windows, sauber geöffnet werden kann. Das Entfernen einer Komponente erfolgt auf die gleiche Weise, mit Bestätigungsaufforderungen, um versehentliche Unterbrechungen zu vermeiden, und einer automatischen Bereinigung, um Ihre Konfiguration stabil zu halten.
Damit die Änderungen wirksam werden, ist ein Neustart erforderlich, und 4D führt Sie mit klaren Benachrichtigungen. Der gesamte Prozess reduziert Reibungsverluste, verkürzt die Einrichtungszeit und ermöglicht Ihnen einen schnelleren und zuverlässigeren Zugriff auf die Komponenten, auf die Sie angewiesen sind.
KLASSEN KOMPONENTENÜBERGREIFEND MIT DEKLARIERTEN NAMESPACES VERWENDEN
4D 21 macht die Interaktion zwischen Komponenten viel einfacher. Wenn eine Komponente einen Namespace deklariert, werden alle ihre Klassen automatisch für jede andere Komponente im selben Host-Projekt verfügbar.
Dies macht spezielle Konfigurationen oder Workarounds überflüssig. Sie müssen nur die benötigten Komponenten einbinden und können deren Klassen über cs.<namespace> direkt in Ihrem Code verwenden.
Dieser Ansatz macht die komponentenbasierte Entwicklung modularer, vorhersehbarer und einfacher zu pflegen.
AKTUALISIERTE KOMPONENTENSTRUKTUR FÜR DIE SILICON-MACOS-BEGLAUBIGUNG
4D 21 führt eine neu gestaltete Komponentenstruktur ein, die mit Apples Notarisierungsanforderungen für Silicon-basierte Macs übereinstimmt. Die Komponenten folgen nun demselben Layout wie eine vollständige 4D Anwendung, was die Notarisierung zuverlässiger macht und die strukturellen Probleme beseitigt, mit denen Entwickler bei älteren Formaten konfrontiert waren.
Metadaten werden jetzt automatisch zur Erstellungszeit generiert. Felder wie CFBundleDisplayName, CFBundleShortVersionString, CFBundleVersion und Copyright-Informationen werden direkt aus Ihren Build-Einstellungen ausgefüllt. Bei Verwendung von Build4D stammen diese Werte aus Ihren buildApp.4DSettings, so dass die Komponenten ohne zusätzliche Konfiguration korrekt verpackt werden.
Beachten Sie, dass die aktualisierte Struktur nicht mit älteren 4D Versionen wie 4D 20 R7 oder 20 LTS kompatibel ist. Komponenten, die mit 4D 20 R8 gebaut wurden, haben diese neue Struktur eingeführt und können ältere Komponenten immer noch laden, aber ältere Versionen können keine Komponenten laden, die mit dem aktualisierten Layout gebaut wurden.
4D NetKit & Mailing
4D NetKit hat sich von einer Reihe von Microsoft 365- und Google-Dienstprogrammen zu einem umfassenden Authentifizierungs- und Kommunikations-Framework entwickelt. Es ermöglicht Ihrer Anwendung Single Sign-On über Microsoft 365 und erweitert diese Fähigkeit mit vollständiger OpenID Connect-Unterstützung, was die Tür zu einer breiten Palette von Identitätsanbietern öffnet: Google, Okta, IAM-Systeme von Unternehmen, alles, was diesen Standard beherrscht.
Das Ergebnis ist eine Umgebung, in der sich Anmeldevorgänge, Token-Verarbeitung, E-Mail-Vorgänge und Kalenderintegrationen nicht mehr wie externe Systeme anfühlen, die von außen angeschraubt werden. Sie werden Teil der Grundlage Ihrer Anwendung: sicher, modern und vorhersehbar.
KOMPLETTES GMAIL NACHRICHTEN- UND LABEL-MANAGEMENT
Die Gmail Integration in 4D 21 entwickelt sich von einem einfachen „Send Mail“-Einstiegspunkt zu einem vollständigen, programmierbaren Postfach. Sobald sich Ihre Anwendung über OAuth 2.0 authentifiziert hat, verhält sich Gmail wie eine weitere Schicht Ihrer Logik und nicht wie ein entfernter Dienst, mit dem Sie sich herumschlagen müssen.
Es beginnt mit dem Senden. Sie erstellen strukturierte E-Mails und stellen sie über die Google Mail-API zu, wobei die Anfälligkeit von SMTP-Relays und älteren Protokollen umgangen wird. Das ist sauber, vorhersehbar und sicher.
Von dort aus öffnet sich der Posteingang. Sie können ihn lesen, gestalten, umorganisieren und bereinigen, und zwar mit der gleichen Präzision, die Sie auf Ihre eigenen Datenstrukturen anwenden.
Das können Sie jetzt:
-
Abrufen der vollständigen Label-Liste von Google Mail, einschließlich System- und benutzerdefinierter Labels
-
Nachrichten-IDs für jedes Label abrufen (Posteingang, Papierkorb, ungelesen, Ordner)
-
den gesamten E-Mail-Inhalt bei Bedarf laden
-
Löschen oder Löschen von Nachrichten mit einem einzigen Aufruf
-
Abrufen mehrerer E-Mails auf einmal, bis zu 100 pro Anfrage
-
Zuweisen oder Entfernen von Kennzeichnungen, einschließlich Kombinationen wie Arbeit + WICHTIG
-
Programmatische Erstellung, Aktualisierung und Löschung von Labels
-
Abrufen von Label-Metadaten wie Anzahl der ungelesenen und der gesamten Nachrichten
Damit haben Sie keinen „E-Mail-Zugang“, sondern eine E-Mail-Automatisierung.
GMAIL-ENTWÜRFE ERSTELLEN UND VERWALTEN
Mit 4D 21 können Sie Gmail Entwürfe direkt im Postfach erstellen und unter einem beliebigen Label ablegen, ohne etwas zu versenden. Auf diese Weise können Sie wiederverwendbare Vorlagen genau dort aufbewahren, wo sie hingehören, nämlich in Google Mail, um sie im richtigen Moment abzurufen, zu bearbeiten und zu versenden.
Mithilfe der Google Mail-API können Sie eine Nachricht als Entwurf anhängen (mit dem Standardetikett ENTWURF oder Ihrem eigenen benutzerdefinierten Etikett), sie später erneut öffnen, ändern und über den Standard-Gmail-Fluss versenden. Sobald ein Entwurf nicht mehr benötigt wird, können Sie ihn sauber entfernen.
MICROSOFT 365 MAIL-EIGENSCHAFTEN AKTUALISIEREN
Mit 4D 21 haben Sie direkte Kontrolle über Microsoft 365 Nachrichten und können die Eigenschaften von empfangenen oder entworfenen E-Mails über Office365.mail.update(). Die Anforderung, das isRead-Flag zu ändern, hat die Tür geöffnet, aber die Funktion geht noch weiter.
Über Microsoft Graph können Sie Attribute wie Lesestatus, Kategorien oder Wichtigkeit anpassen. Und wenn Sie mit Entwürfen arbeiten, können Sie sogar tiefere Elemente wie den Betreff oder den Text aktualisieren. Dies ist eine saubere Methode, um den Postfachstatus mit Ihren Arbeitsabläufen synchron zu halten, ohne manuelle Bearbeitung oder externe Tools.
Sie entscheiden, wie Ihre Anwendung reagiert: Markieren Sie eine Nachricht als verarbeitet, kennzeichnen Sie sie zur Überprüfung, klassifizieren Sie sie auf der Grundlage von Geschäftsregeln neu oder bereiten Sie einen Nachrichtenentwurf für eine spätere Bearbeitung vor. Alles bleibt unter einer API, einem Authentifizierungsfluss und einem einheitlichen Modell.
SCHNELLERER ÜBERBLICK ÜBER UNGELESENE E-MAILS IN MEHREREN POSTFÄCHERN
Mit 4D 21 ist die Überprüfung der Anzahl ungelesener E-Mails wesentlich effizienter. Die Funktion IMAPTransporter.getBoxList() kann nun die Postfach-Eigenschaften und die Anzahl der ungelesenen E-Mails in einer einzigen Anfrage zurückgeben, was die Antwortzeiten erheblich verbessert.
Wenn Sie sich einen Überblick über alle Postfächer verschaffen wollen, einschließlich der Anzahl der ungelesenen, der gesamten und der letzten E-Mails, können Sie die Option „withBoxInfo“ aktivieren und alles auf einmal abrufen:
ZUGRIFF AUF GOOGLE BENUTZER- UND VERZEICHNISINFORMATIONEN
4D 21 bietet Ihrer Anwendung direkten Zugriff auf Google-Nutzerdaten und erleichtert so die Personalisierung von Oberflächen, die Automatisierung von Kommunikationsabläufen und die Arbeit mit domänenweiten Verzeichnissen. Nach der Authentifizierung über OAuth 2.0 können Sie vom Basisprofil des aktuellen Nutzers bis hin zu vollständigen Kontaktlisten und Organisationsdatensätzen alles abrufen.
Sie können abrufen:
-
Die Details des aktuell authentifizierten Benutzers
-
Domänenprofile und Kontaktverzeichnisse
-
Bestimmte Benutzerdatensätze über einen Ressourcennamen und Feldmasken
Mit diesen Funktionen kann sich Ihre Anwendung an die Benutzer anpassen, indem sie anzeigt, wer angemeldet ist, automatisch die richtigen Empfänger abruft oder organisatorische Daten ohne manuelle Nachforschungen synchronisiert.
VOLLSTÄNDIGE KALENDERVERWALTUNG FÜR GOOGLE & MICROSOFT 365
Mit den neuen Klassencs.NetKit.Office365.calendar und cs.NetKit.Google.calendar wird die Kalenderverwaltung in 4D 21 von der einfachen Abfrage zur vollständigen Kontrolle. Ihre Anwendung kann Kalender lesen, Ereignisse abrufen und den gesamten Lebenszyklus eines Meetings verwalten, unabhängig davon, ob es in Google Calendar oder Microsoft 365 stattfindet. Eine OAuth 2.0-Verbindung, und plötzlich fühlen sich Ihre Planungsworkflows nicht mehr wie externe Systeme an, sondern verhalten sich wie Erweiterungen Ihrer Anwendung.
Sie können jeden mit einem Konto verknüpften Kalender abrufen, denjenigen auswählen, der für Ihre Logik von Bedeutung ist, und dessen Ereignisse mit Filtern für Bereiche, Grenzen oder Wiederholungen laden. Von dort aus können Sie das Meeting selbst gestalten: Start- und Endzeiten, Teilnehmer, Erinnerungen, Kategorien, Wiederholungsregeln, sogar Videokonferenz-Links wie Teams oder Google Meet.
Das Erstellen, Aktualisieren oder Löschen von Ereignissen wird zu einem einzigen Anruf. Wenn eine Veranstaltung abgesagt wird, werden die Teilnehmer automatisch benachrichtigt. Bei einer Aktualisierung kümmert sich die Plattform um das erneute Senden der Details. Ihre Aufgabe ist die Gestaltung des Arbeitsablaufs, nicht die Verwaltung von HTTP-Aufrufen oder die Abstimmung von API-Unterschieden zwischen Ökosystemen.
In der Praxis können Sie:
-
Abrufen von Kalendern in Google und Microsoft 365
-
Ereignisse mit Zeitfenstern, Filtern und optionalen Erweiterungen laden
-
Meetings mit Teilnehmern, Beschreibungen, Erinnerungen und Links erstellen
-
nur die wichtigen Felder aktualisieren, ohne den Termin neu zu erstellen
-
Sauberes Löschen von Ereignissen, wobei die Plattform die Benachrichtigungen übernimmt
ERWEITERTE OAUTH2, OPENID CONNECT & AUTHENTIFIZIERUNGSKONTROLLE
Die Authentifizierung in 4D 21 wird reibungsloser, sicherer und flexibler. 4D NetKit verwaltet jetzt den gesamten OAuth2- und OpenID-Datenfluss mit den wichtigsten Anbietern, Microsoft, Google, GitHub, Okta und jedem OAuth2-kompatiblen Server, während Sie die volle Kontrolle über Sicherheit, Präsentation und Callback-Verhalten haben, ohne zusätzliche Code-Ebenen hinzuzufügen.
4D NetKit wickelt den gesamten Austausch automatisch ab: Client-ID, Redirect URI, Scopes, Token-Abruf und Rückfluss. Nach erfolgreicher Authentifizierung kann Ihre Anwendung dem Benutzer direkt eine eigene HTML-Seite anzeigen, so dass das Erlebnis sauber und vollständig integriert bleibt.
Im Folgenden finden Sie alle Verbesserungen, die in einer einheitlichen Funktion zusammengefasst sind:
-
Verbesserter OAuth2-Autorisierungsfluss: 4D NetKit verwaltet jetzt den kompletten OAuth2-Austausch für Anbieter wie Microsoft, Google, GitHub oder jeden beliebigen OAuth2-Server, indem es die Client-ID, die Redirect-URI, die Bereiche, den Token-Abruf und die endgültige Rückgabe verwaltet. Dies sorgt für ein reibungsloseres Onboarding-Erlebnis ohne umständliche Systemseiten, ohne verwirrende Übergänge und mit einer sauberen Übergabe direkt in Ihre Anwendung. Sobald die Authentifizierung erfolgreich ist, können Sie Ihre eigene HTML-Seite anzeigen, sodass der Ablauf integriert und modern wirkt und vollständig unter Ihrer Kontrolle steht.
-
PKCE-Schutz (Proof Key for Code Exchange) für eine sicherere Autorisierung: Durch die Aktivierung von PKCEEnabled in cs.NetKit.OAuth2Provider wird jeder Austausch von Autorisierungscodes kryptografisch abgesichert. Dies schützt Ihre Anwendung vor Abhör- oder Wiederholungsangriffen, was besonders für Desktop- und native Anwendungen wichtig ist, da sichergestellt wird, dass der zurückgegebene Autorisierungscode nur von dem ursprünglich anfragenden Client verwendet werden kann. Sie erhalten ein wichtiges Sicherheitsupgrade, ohne selbst kryptografischen Code schreiben zu müssen.
-
Zertifikatsbasierte OAuth2-Authentifizierung für Sicherheit auf Unternehmensniveau: Anstatt sich auf Client-Geheimnisse zu verlassen, können Sie sich mit einem privaten Schlüssel und einem Zertifikats-Thumbprint authentifizieren . 4D NetKit erstellt und signiert die Assertion automatisch, wodurch die Risiken drastisch reduziert werden und moderne Sicherheitspraktiken in Unternehmen, wie sie beispielsweise von der Microsoft Identity Platform gefordert werden, eingehalten werden. Indem Sie die Berechtigung auf Service setzen und .privateKey und .thumbprint auf Ihrem cs.NetKit.OAuth2Provider Objekt zur Verfügung stellen, werden der vollständige Zertifikats-Handshake und der Token-Austausch sicher und konsistent in allen Umgebungen ausgeführt.
-
Benutzerdefinierte Anzeigesteuerung für OAuth-Anmeldeströme: Wenn Sie browserAutoOpen in Ihren cs.NetKit.OAuth2Provider -Anmeldedaten auf False setzen, haben Sie die volle Kontrolle darüber, wo der Anmeldebildschirm angezeigt wird. Sie können ihn in einem Webbereich anzeigen, in ein Dialogfeld einbetten oder ihn in einen geführten Workflow integrieren, der zu Ihrer Benutzeroberfläche passt. Der Sicherheitsablauf wird weiterhin von 4D NetKit verwaltet, aber die Darstellung wird von Ihnen bestimmt. So entsteht ein Anmeldeerlebnis, das sich nativ und nicht extern anfühlt, ideal für Markenanwendungen oder reibungslose Onboarding-Abläufe.
-
Verwenden Sie den Host-Webserver für OAuth2-Callbacks: OAuth-Antworten können jetzt direkt über die eigenen Ports des Host-Webservers zurückgegeben werden. 4D NetKit wählt anhand Ihrer Redirect-URI automatisch den richtigen Server aus: Passende Ports gehen an den Host-Server, Standard-Ports wie 80 oder 443 werden standardmäßig an ihn weitergeleitet, alles andere fällt auf den internen NetKit-Server zurück. Wenn der Host-Server verwendet wird, fügen Sie einfach einen HTTP-Handler hinzu, um den Callback abzufangen, und NetKit.OAuth2Authorization.getResponse schließt den Austausch ab. Dadurch werden sekundäre Listener, Portkonflikte und komplexe Einstellungen vermieden, wodurch die Authentifizierungsabläufe sauberer und einfacher zu implementieren sind.
-
OpenID Connect-Konformität mit Status- und Nonce-Behandlung
: Der Authentifizierungsfluss unterstützt jetzt state und nonce vollständig, so dass Ihre Anwendung die Integrität des Redirects validieren und die Einzigartigkeit des Tokens automatisch erzwingen kann. state schützt vor CSRF-ähnlichen Manipulationen, indem es sicherstellt, dass die Antwort mit der Anfrage übereinstimmt, während nonce Replay-Angriffe verhindert, indem es garantiert, dass die Token frisch und eindeutig sind. Da 4D NetKit beide Parameter intern verwaltet, können Sie mit modernen OpenID-Anbietern wie Google, Microsoft und Okta zusammenarbeiten, ohne eigene Validierungsschichten zu erstellen. -
Benutzerdefinierte URLs für Erfolgs- und Fehlerergebnisse der Authentifizierung
: Die Attribute authenticationPage und authenticationErrorPage im Befehl cs.NetKit.OAuth2Provider.new() akzeptieren jetzt vollständige URLs, so dass Sie die volle Kontrolle darüber haben, was der Benutzer nach der Authentifizierung sieht. Ihre Erfolgs- oder Fehlerseiten können überall gehostet werden, in einer 4D Qodly Pro Anwendung, auf Ihrem eigenen Webserver oder auf einem Drittanbieterdienst, anstatt auf lokale HTML-Dateien beschränkt zu sein. Auf diese Weise können Sie dynamische, markenbezogene und kontextabhängige Antworten liefern, die unabhängig von Ihrer 4D Anwendung aktualisiert werden können, ohne dass Implementierungen oder Rebuilds erforderlich sind.
HTTP-SERVER
4D 21 erweitert den HTTP-Server zu einer leistungsfähigeren, sichereren und entwicklerfreundlicheren Schicht. Sie können Antwortregeln global definieren, Anfragen über saubere Handler-Mappings weiterleiten, strukturierte Web-Inhalte zurückgeben und externe Systeme integrieren, ohne die Offenlegung von Sitzungen zu riskieren. Die Kommunikation in Echtzeit wird durch die vollständige Unterstützung von WebSocket-Clients vereinfacht, und die Lizenznutzung bleibt dank intelligenter Optionen für den Authentifizierungsfluss unter Ihrer Kontrolle. Alles ist darauf ausgerichtet, das Routing zu vereinfachen, die Sicherheit zu erhöhen und die Kommunikation Ihrer Web-Endpunkte zu optimieren.
Benutzerdefinierte http-Antwortregeln 
HTTP-Antwort-Header in 4D sind jetzt auf Server-Ebene konfigurierbar. Mit einer neuen HTTPRules.json Datei oder dem settings.rules Parameter während des Starts können Entwickler Antwortregeln definieren, die auf URL-Muster abgestimmt sind. Zu den unterstützten Regeln gehören:
-
removedHeaders: Entfernen unerwünschter Header (z. B. Entfernen des Server-Headers für strengere Audits).
-
addedHeaders: Einfügen von Sicherheits-Headern wie Content-Security-Policy, X-Frame-Options oder Permissions-Policy.
-
denyAccess: Blockieren Sie den Zugriff auf sensible Pfade mit einem 403-Status.
-
redirection: Leiten Sie Anfragen für Bilder, CSS oder JavaScript an ein CDN weiter.
-
status: Definieren Sie explizit den Statuscode der Antwort.
Durch die direkte Bearbeitung von Headern in 4D wird die Infrastruktur schlanker und ist weniger abhängig von externen Reverse Proxies oder manueller Header-Injection. Die Konsistenz wird verbessert, und Richtlinien werden auf Framework-Ebene für alle Web-Antworten, einschließlich REST, durchgesetzt.
STRUKTURIERTES HTTP-ROUTING MIT REQUEST HANDLERS
4D 21 führt HTTP Request Handler ein, eine saubere und modulare Methode, um zu entscheiden, wie Ihr Server auf eingehende Webanfragen reagiert. Statt große On Web Connection-Blöcke zu schreiben, ordnen Sie URL-Muster Klassenfunktionen zu, wodurch Ihr Routing einfacher zu organisieren, zu testen und zu pflegen ist.
Mit den neuen 4D.IncomingMessage und 4D.OutgoingMessage Klassen können Sie URLs, Header, Parameter und Body-Inhalte untersuchen und dann strukturierte Antworten zurückgeben, unabhängig davon, ob Sie Benutzer authentifizieren, Dateien bereitstellen, auf Seiten umleiten oder Uploads verarbeiten.
Alles wird über HTTPHandlers.json konfiguriert, wo jeder Eintrag definiert wird:
-
Das zu übereinstimmende URL-Muster
-
Die zu akzeptierenden HTTP-Verben
-
Die Singleton-Klasse und -Methode, die die Anfrage bearbeiten
Dadurch erhalten Sie eine präzise Kontrolle über die Weiterleitung von Anfragen, eine saubere Trennung der Geschäftslogik und integrierte Unterstützung für Szenarien wie Authentifizierungsumleitung, Dateiverarbeitung und sogar die Weiterleitung von Benutzern an Qodly-Seiten.
SICHERE, SESSION-SICHERE INTEGRATIONEN MIT ONE-TIME PASSCODES
4D 21 bietet One-Time Passcodes (OTPs) und Tools zur Sitzungswiederherstellung, die es einfacher machen, Ihre Webanwendungen mit Systemen von Drittanbietern zu verbinden, ohne Sitzungscookies preiszugeben oder den Benutzerfluss zu unterbrechen.
Mit Session.createOTP()erzeugen Sie einen Einmal-Passcode, der mit der aktuellen Web-Sitzung verknüpft ist. Sie können dieses OTP sicher an externe Dienste senden, z. B. in Links zur E-Mail-Bestätigung oder in Callbacks zur Bestandsverarbeitung, ohne das 4D Session-Cookie preiszugeben. Wenn die Anfrage zurückkommt, stellt 4D automatisch die korrekte Sitzung wieder her:
-
$4DSID in der URL, wenn erlaubt
-
Session.restore()wenn der Anbieter nur einen Zustandsparameter unterstützt
Auf diese Weise bleibt der Benutzerkontext bei mehrstufigen Prozessen intakt, Abhörrisiken werden vermieden und die Integration mit externen APIs wird vereinfacht.
WEBSOCKET-CLIENT-UNTERSTÜTZUNG FÜR ECHTZEITKOMMUNIKATION
Echtzeit-Updates sind in modernen Anwendungen unerlässlich, von Dashboards bis hin zu IoT-Schnittstellen. Um dies zu unterstützen, führt 4D 21 die 4D.WebSocket Klasse ein, mit der Sie auf einfache Weise WebSocket-Clients erstellen können, die sich mit jedem WebSocket-Server verbinden.
WebSockets stellen eine Voll-Duplex-Verbindung her, mit der Sie Nachrichten sofort senden und empfangen können. Mit 4D.WebSocketServer konnten Sie bereits Ihren eigenen WebSocket-Server hosten; jetzt können Sie sich auch mit externen Servern verbinden, Nachrichten austauschen und auf Serverereignisse reagieren.
Definieren Sie einfach eine Handler-Klasse mit Callbacks wie onMessage, onOpen, onTerminate und onError und erstellen Sie dann Ihren Client mit:
Form.webSocket := 4D.WebSocket.new($url; cs.WSConnectionHandler.new())
Von dort aus kann Ihre App auf eingehende Nachrichten warten und Updates in Echtzeit pushen – perfekt für Chat-Funktionen, Live-Dashboards, IoT-Geräte und vieles mehr.
CUSTOM Websocket-Client-Header
Wenn Sie während eines WebSocket Handshakes zusätzliche Informationen wie Sicherheits-Token, App-Metadaten oder benutzerdefinierte Identifikatoren übergeben müssen, können Sie mit 4D 21 benutzerdefinierte Header direkt in Ihrem WebSocket Client definieren.
Sie fügen einfach ein headers Attribut zu Ihrer WebSocket Handler-Klasse hinzu. Dieses Objekt funktioniert genau wie die Standard-HTTP-Header, indem es Schlüssel/Wert-Paare verwendet:
This.headers := New object("x-authorization"; $token)
This.headers.Cookie := "yummy_cookie=choco; tasty_cookie=strawberry"
Diese Header werden automatisch gesendet, wenn die Verbindung geöffnet wird, und geben Ihnen eine flexible Möglichkeit, Ihre WebSocket-Sitzungen zu authentifizieren, zu personalisieren oder zu konfigurieren, ohne den Servercode zu ändern.
Perfekt für Token-basierte Sicherheit, Multi-Tenant-Setups oder jeden Workflow, bei dem sich der Client vorstellen muss, bevor die Daten fließen.
BENUTZERDEFINIERTE WEB-INHALTE MIT DER OUTGOINGMESSAGE-KLASSE BEREITSTELLEN
4D 21 führt die Klasse OutgoingMessage ein, mit der es viel einfacher ist, benutzerdefinierte Inhalte wie Dateien, Bilder oder Binärdaten von Ihren Web- oder REST-Endpunkten zurückzugeben. Anstatt auf skalare Werte oder ORDA-Entitäten beschränkt zu sein, können Sie nun vollständige, webfähige Antworten direkt an den Browser senden.
Mit dieser Klasse können Sie Header festlegen, den Antwortkörper definieren und den HTTP-Statuscode auswählen, so dass Sie die vollständige Kontrolle darüber haben, wie der Inhalt übermittelt wird. Sie ist ideal für Anwendungsfälle wie das Herunterladen von PDFs, das Bereitstellen von Bildern oder die Rückgabe beliebiger binärer Nutzdaten.
Um dies noch reibungsloser zu gestalten, unterstützt 4D jetzt das Schlüsselwort onHTTPGet. Wenn es zu einer exponierten Funktion hinzugefügt wird, wird diese Funktion durch eine einfache GET-Anfrage des Browsers aufrufbar, perfekt für benutzerfreundliche Links oder direkte Dateidownloads.
KONTROLLE DER LIZENZNUTZUNG MIT FORCE LOGIN
4D 21 führt Force Login ein, einen Modus, der verhindert, dass REST Anfragen eine 4D Client Lizenz verbrauchen, bis sich der Benutzer tatsächlich authentifiziert. Das Laden einer Qodly Seite, das Anzeigen eines Formulars oder das Auslösen von beschreibenden REST-Aufrufen bindet keine Lizenz mehr, sondern nur noch die erfolgreiche Authentifizierung.
Dies verhindert, dass Anmeldebildschirme Ressourcen blockieren, reduziert unnötige Lizenznutzung und gibt Ihnen die volle Kontrolle darüber, wann Lizenzen zugewiesen werden. Sobald sich der Benutzer abmeldet, wird die Lizenz sofort freigegeben.
4D Write Pro
4D Write Pro macht einen großen Schritt nach vorn mit neuen Werkzeugen, die das Erstellen von Dokumenten einfacher, das Formatieren intelligenter und das Automatisieren leistungsfähiger machen. Tabellen passen sich intelligent an Ihre Daten an, Layouts lassen sich leichter visuell oder programmatisch gestalten, Dokumente lassen sich mühelos auf Tausende von Zeilen skalieren, der Export wird durch PDF/A, Anhänge und Unterstützung für elektronische Rechnungen noch leistungsfähiger. Und zum ersten Mal hilft Ihnen ein integrierter KI-Assistent beim Schreiben, Verfeinern und Verbessern Ihrer Inhalte direkt in 4D Write Pro.
KI-GESTÜTZTER SCHREIBASSISTENT FÜR 4D WRITE PRO
4D Write Pro verfügt jetzt über einen KI-gesteuerten Schreibassistenten, der Sie direkt in 4D Write Pro beim Verfassen, Bearbeiten und Verfeinern Ihrer Dokumente unterstützt. Sobald Sie mit der OpenAI API verbunden sind, erhalten Sie Unterstützung in Echtzeit, um die Klarheit zu verbessern, Fehler zu korrigieren, Text umzuformen oder einfach die richtigen Worte zu finden.
Sie aktivieren die AI-Funktionen, indem Sie Ihren API-Schlüssel mit WP SetAIKey festlegen. Danach wird eine neue KI-Schaltfläche in der Benutzeroberfläche angezeigt, über die Sie schnell auf hilfreiche Tools zugreifen können.
Sie können mit dem Assistenten chatten, um Ideen zu sammeln, die Formulierung zu verbessern oder eine Schreibblockade zu überwinden. Mit vordefinierten Aktionen geht es noch schneller: Inhalte zusammenfassen, Text übersetzen, Grammatik prüfen oder Abschnitte für einen besseren Lesefluss umschreiben.
Beim Einfügen von KI-generierten Inhalten können Sie wählen, wie diese angewendet werden sollen: als reiner Text, vollständig gestylt oder zur späteren Verwendung kopiert. Mit dem integrierten Anforderungsverlauf können Sie auf frühere Aufforderungen zurückblicken, zu früheren Antworten springen und Ergebnisse wiederverwenden, ohne den Überblick über Ihre Arbeit zu verlieren.
PDF/A EXPORT, ANHÄNGE & E-INVOICE UNTERSTÜTZUNG
4D 21 erweitert 4D Write Pro um ein komplettes Toolset zur Erstellung archivierungsfähiger PDFs, zur Einbettung von Anhängen und zur Erstellung elektronischer Rechnungen. Im Mittelpunkt dieser Verbesserungen steht die Unterstützung der PDF/A-Familie, einer auf Archivierung ausgerichteten Version von PDF, die dafür sorgt, dass Dokumente jahrzehntelang lesbar bleiben und gleichzeitig neue Workflows wie die elektronische Rechnungsstellung ermöglicht.
Für Teams in allen Branchen – Recht, Medizin, Technik, Buchhaltung, Bauwesen, öffentliche Verwaltung usw. – zeichnet sich PDF/A-3 dadurch aus, dass Sie Anhänge direkt in das Dokument einbetten können. Mit der neuen Option für den Dateiexport können Sie Textdateien, Bilder, XML- oder andere Dokumente in einer einzigen, dauerhaften PDF-Datei zusammenfassen.
Der Export erfolgt wie gewohnt: über die Benutzeroberfläche oder programmgesteuert, wobei Sie zwischen den Formaten PDF/A-2 und PDF/A-3 wählen können. Bei der Verwendung von PDF/A-3 werden Anhänge einfach über die Exportoptionen eingefügt, was ideal ist, wenn Sie ein in sich geschlossenes Archiv wünschen, in dem alle zugehörigen Informationen zusammengefasst sind.
Diese Erweiterung ermöglicht auch die Erstellung elektronischer Rechnungen. Moderne elektronische Rechnungen basieren in der Regel auf PDF/A-3 in Kombination mit einer strukturierten XML-Datei, die Rechnungsdetails in standardisierten Formaten wie FACTUR-X (Frankreich) oder ZUGFeRD (Deutschland) enthält. In 4D Write Pro erstellen Sie diese Hybrid-Rechnungen, indem Sie die XML-Datei über das facturX-Objekt und die Dateisammlung beim Export hinzufügen.
ERWEITERTE ABSCHNITTSKONTROLLE ÜBER SCHNITTSTELLE UND CODE
Mit 4D 21 haben Sie viel mehr Kontrolle darüber, wie Ihre Dokumente atmen und fließen. Abschnitte und Unterabschnitte sind keine versteckten Mechanismen mehr, sondern werden zu Werkzeugen, die Sie visuell über die Benutzeroberfläche oder präzise im Code gestalten können.
Die Steuerelemente für Abschnitte bieten jetzt über einfache Menüs eine Vielzahl von Optionen, mit denen Sie Umbrüche einfügen, verschiedene erste Seiten definieren, linke und rechte Seiten aufteilen oder Kopf- und Fußzeilen aus bestimmten Bereichen entfernen können. Was früher ein langes Suchen in den Attributen erforderte, ist jetzt nur noch ein kurzer Klick in dem Moment, in dem Sie es brauchen.
Auf der Programmierseite ermöglichen neue Befehle zur Abschnittsverwaltung das saubere Entfernen oder Zurücksetzen von Strukturelementen, ohne den Rest des Dokuments zu stören.
-
WP DELETE SECTION entfernt einen gesamten Abschnitt, dessen Inhalt, Kopf- und Fußzeilen sowie verankerte Elemente, ohne dass die Formatierung zusammenbricht oder Indizes in unvorhersehbarer Weise verschoben werden.
-
WP DELETE SUBSECTION löscht Attribute, die an „unterschiedliche erste Seite“ oder „unterschiedliche linke/rechte Seiten“ gebunden sind, einschließlich verankerter Bilder und Textfelder.
-
WP RESET ATTRIBUTES löscht Überschreibungen entweder auf Abschnitts- oder Unterabschnittsebene, so dass Sie in einem Schritt zur geerbten Formatierung zurückkehren können.
Zusammengenommen bieten diese Verbesserungen einen reibungslosen Top-Down-Workflow: intuitive Bearbeitung über die Benutzeroberfläche bei der Gestaltung des Layouts und präzise programmatische Steuerung, wenn Ihre Logik Abschnitte bei Bedarf zurücksetzen, beschneiden oder neu aufbauen muss.
EINSTELLEN DER SEITENGRÖSSE IN EINEM SCHRITT MIT wk page size
4D 21 fügt ein neues 4D Write Pro Dokumentattribut wk page size hinzu, mit dem sich die Gesamtgröße eines Dokuments viel einfacher festlegen lässt. Anstatt Breite und Höhe separat einzustellen, können Sie nun beide Werte gleichzeitig mit einem einzigen Wert anwenden.
Sie können wählen zwischen:
-
Integrierte Druckerformate
-
Ihren eigenen benutzerdefinierten Formaten
-
Eine vollständige Palette von ISO-Formaten (A0-A10, B-Serie, C-Serie, DL, Legal, Tabloid und mehr)
Das bedeutet, dass Sie Dokumente für den Druck oder Export entwerfen können, ohne sich Gedanken darüber machen zu müssen, welcher Drucker gerade ausgewählt ist. Ganz gleich, ob Sie Briefe, Rechnungen, Broschüren oder benutzerdefinierte Layouts erstellen, die Einstellung des richtigen Formats ist jetzt einfacher, schneller und konsistenter.
Umbruch von Text um Bilder und Textrahmen
Mit 4D 21 können Bilder und Textrahmen jetzt mit Text umbrochen werden, was mehr Flexibilität bei der Gestaltung von Dokumentenlayouts ermöglicht. Mit den neuen Ankermodi können Anwender Text um Bilder und Textrahmen herumführen und so optisch ansprechende Dokumente ohne Einschränkungen erstellen.
Die Benutzeroberfläche von 4D Write Pro wurde verbessert, so dass Sie nun selbst entscheiden können, wie Bilder und Textfelder angezeigt werden sollen. Neue Werte für die Standardaktionen image/anchorLayout und textBox/anchorLayout sind verfügbar. Sie können diese Einstellungen auch über die Programmierung mit Hilfe der neuen Attribute anpassen: wk text wrap top bottom, wk text wrap square, wk text wrap square left, wk text wrap square right, und wk text wrap square largest.
Diese Umbrucheinstellungen werden auch beim Export in SVG, PDF und eingebettetes HTML sowie beim Import und Export von Word-Dokumenten beibehalten.
INTELLIGENTES TABELLENDESIGN UND ZELLZUSAMMENFÜHRUNG
4D 21 bringt zwei wichtige Verbesserungen, die das Erstellen und Formatieren von Tabellen in 4D Write Pro sowohl für Entwickler als auch für Endanwender deutlich vereinfachen.
Mit dem Tabellenassistenten können Anwender Tabellen aus Datenbankdaten generieren, ohne Datenquellen oder Formeln verstehen zu müssen. Mit Hilfe der vom Entwickler bereitgestellten Vorlagen können sie Felder auswählen, Beschriftungen übersetzen, geschäftsspezifische Formeln vorbereiten und Grafikstile anwenden – alles über eine geführte Oberfläche.
Sobald die Tabelle erstellt ist, geben Ihnen die neuen Funktionen zum Zusammenführen von Zellen die volle Kontrolle über Layout und Struktur. Sie können Zellen horizontal, vertikal oder in Blöcken zusammenführen, unabhängig davon, ob die Tabelle automatisch oder manuell ausgefüllt wird. Zusammenführungen können über die Benutzeroberfläche (Schaltflächen in der Symbolleiste und Kontextmenüs), über Standardaktionen(Zelle/Zusammenführen, Zelle/Teilen) oder per Code mit den neuen Befehlen WP TABLE MERGE CELLS und WP TABLE SPLIT CELLS durchgeführt werden.
Zusammengenommen erleichtern diese Werkzeuge die Gestaltung sauberer, flexibler Tabellen, die sich an jede Art von Dokument oder Datenpräsentation anpassen lassen.
Unbegrenzte Anzahl von Tabellenzeilen und -spalten
4D 21 hebt das bisherige Limit von 1.000 Zeilen in 4D Write Pro Tabellen auf. Tabellen können jetzt so groß werden, wie es der verfügbare Speicher Ihres Rechners zulässt. So können Sie lange Rechnungen, Kataloge, Verzeichnisse und andere datengesteuerte Dokumente ohne künstliche Einschränkungen erstellen.
Wenn eine Tabelle mit einer Datenquelle verknüpft ist, kann jetzt jedes Element in der Entitätsauswahl oder -sammlung eine Zeile erzeugen, selbst wenn Kopfzeilen, Sortierumbrüche, zusätzliche Zeilen oder Übertragungen beteiligt sind. Dies gibt Ihnen die volle Freiheit, große Dokumente zu erstellen und gleichzeitig Ihre Layouts strukturiert zu halten.
Leere Datenquellen verwalten
4D 21 gibt Ihnen mehr Kontrolle darüber, wie Tabellen erscheinen, wenn die verknüpfte Datenquelle keine Daten enthält. Mit dem neuen Attribut wk empty datasource können Sie genau festlegen, was in dieser Situation geschehen soll, damit Ihre Dokumente immer gezielt und ausgefeilt aussehen.
Sie können Folgendes wählen:
-
Anzeigen der Datenzeile (Standard)
-
Ausblenden der Datenzeile unter Beibehaltung der Kopfzeilen und aller folgenden Zeilen
-
die gesamte Tabelle ausblenden, wenn sie keinen sinnvollen Inhalt mehr liefert
-
eine Platzhalterzeile anzeigen, die speziell für leere Zustände entwickelt wurde
Temporäre Sichtbarkeit für ausgeblendete Tabellenränder
4D 21 erleichtert die Arbeit mit Tabellen durch die Einführung der Eigenschaft visibleTableBorders, einer Ansichtsoption, die verdeckte Ränder vorübergehend als gepunktete Linien anzeigt. Dies hilft Ihnen, die Struktur Ihrer Tabelle zu erkennen, insbesondere wenn Zellen zusammengeführt werden, ohne das endgültige Aussehen des Dokuments zu verändern.
Sie können diese Option direkt von der Symbolleiste oder der Seitenleiste aus einschalten. So erhalten Sie eine klarere Ansicht während der Bearbeitung und können sicherstellen, dass die Layouts präzise und einfach zu verwalten sind.
Formeln Namen zuweisen
Formeln spielen in 4D Write Pro Dokumenten eine große Rolle, aber bisher konnten ihre Anzeige, Werte, Ausdrücke oder Symbole die Lesbarkeit von Vorlagen erschweren. Mit 4D 21 können Sie den Formeln Namen zuweisen, so dass die Benutzer besser verstehen, wofür die einzelnen Formeln stehen, und die Dokumente leichter zu pflegen sind.
Statt die Formel selbst anzuzeigen, können Sie eine einfache, aussagekräftige Beschriftung einblenden. Dadurch werden Vorlagen wesentlich intuitiver, insbesondere wenn die Formeln komplexer werden.
Zwei Befehle wurden aktualisiert, um diese Verbesserung zu unterstützen:
-
WP INSERT FORMULA akzeptiert jetzt ein Objekt, das sowohl die Formel als auch ihren Namen enthält.
-
WP GET FORMULAS gibt jede Formel zusammen mit ihrem Namen zurück, was die Überprüfung und Verwaltung von Formeln in einem Dokument erleichtert.
Verbesserungen der Befehlssyntax
4D 21 bringt eine Reihe von Verbesserungen in 4D Write Pro, die das Schreiben und die Wartung Ihres Codes erleichtern und die Flexibilität erhöhen. Viele Befehle akzeptieren jetzt moderne Parametertypen wie Objekte und Sammlungen, mehrere Befehle wurden in Funktionen umgewandelt, die nützliche Ergebnisse liefern, und neue Hilfsfunktionen vereinfachen die Arbeit mit Abschnitten, Seiten und Tabellen.
Hier ein kurzer Blick auf die Neuerungen:
- Bessere Behandlung von Attributen: Sie können jetzt ein einziges Objekt an WP SET ATTRIBUTES übergeben und so mehrere Formatierungseigenschaften auf einmal anwenden.
- Flexiblere Tabellenoperationen: WP TABLE APPEND ROW akzeptiert jetzt Formeln, benannte Formeln und sogar komplette Wertesammlungen.
- Die Handhabung von Bildern wurde vereinfacht: WP INSERT PICTURE ist jetzt eine Funktion, die das eingefügte Bildelement zurückgibt. Sie akzeptiert auch 4D.File -Werte, so dass Sie mehr Möglichkeiten haben, wie Bilder gespeichert und geladen werden können.
- Modernisierte Import/Export-Befehle: Befehle wie WP IMPORT DOCUMENT,WP EXPORT DOCUMENT und WP Add picture arbeiten jetzt nahtlos mit 4D.File zusammen. Außerdem wurde WP INSERT DOCUMENT umbenannt in WP Insert document body um seine Funktion besser wiederzugeben.
- Befehle, die endlich Bereiche zurückgeben: Sie erhalten jetzt einen brauchbaren Bereich zurück, wenn Sie Formeln, Umbrüche oder Dokumentkörper einfügen.
- Einfacher Zugriff auf die Dokumentstruktur: Neue Funktionen wie This.sectionIndex, This.sectionName, und This.pageIndex ermöglichen es Ihnen, innerhalb von Formeln direkt auf den aktuellen Abschnitt oder die aktuelle Seite zu verweisen.
Steuern Sie die E-Mail-Formatierung mit benutzerdefinierten Leerzeichenoptionen
Sorgen Sie für eine saubere und konsistente E-Mail-Formatierung, indem Sie beim MIME-Export den CSS-Wert für den Leerraum wählen. Diese Option hilft, unerwünschte Zeilenumbrüche zu vermeiden, die durch die Fehlinterpretation von white-space:pre-wrap durch bestimmte E-Mail-Clients verursacht werden, und ermöglicht es Ihnen, stattdessen white-space:normal zu verwenden, um eine bessere Anzeigekompatibilität zu erreichen.
4D VIEW Pro
4D View Pro wurde mit neuen Möglichkeiten für den Umgang mit großen Tabellen, intelligenteren Excel-Workflows und reaktionsschnelleren, entwicklerfreundlichen Funktionen erheblich verbessert. Komprimierte Formate sorgen dafür, dass schwere Dokumente schneller geladen und gespeichert werden können, benutzerdefinierte Funktionen werden leistungsfähiger, SpreadJS-Upgrades erweitern Ihre Möglichkeiten und verbesserte Import-/Export-Optionen sorgen dafür, dass Ihre Daten präzise und einfach zu kontrollieren sind.
KOMPRIMIERTE DOKUMENTENFORMATE FÜR BESSERE LEISTUNG
4D 21 bietet zwei Möglichkeiten, große, komplexe 4D View Pro Dokumente effizienter zu bearbeiten: das neue komprimierte Dateiformat .sjs und die Unterstützung für den Import und Export von Dokumenten als BLOBs.
Das .sjs Format ist eine leichtgewichtige, komprimierte Struktur, die aus mehreren kleinen JSON Dateien besteht, ähnlich wie das XML Layout von Excel. Es reduziert die Dateigröße, beschleunigt das Laden und handhabt große Tabellenkalkulationen zuverlässiger. Sie können es genau wie eine Standard- .4vp-Datei mit VP IMPORT DOCUMENT und VP EXPORT DOCUMENT importieren und exportieren.
Ergänzend dazu unterstützt 4D jetzt ein komprimiertes BLOB-Format, das Ihnen die gleichen Leistungsvorteile direkt in Ihrer Datenbank bietet. Verwenden Sie VP EXPORT TO BLOB, um ein Dokument als BLOB asynchron zu speichern, und laden Sie es dann jederzeit mit VP IMPORT FROM BLOB wieder. Dies erleichtert das Speichern, Abrufen und Verarbeiten umfangreicher View Pro-Dokumente, ohne auf das Dateisystem angewiesen zu sein.
Beide Formate wurden entwickelt, um die Leistung zu verbessern, die Speicherung zu optimieren und einen reibungslosen Umgang mit großen View Pro-Inhalten zu gewährleisten.
Erweiterung der benutzerdefinierten Funktionen
4D 21 ermöglicht benutzerdefinierte Berechnungen von Spalten- oder Zeileninhalten innerhalb eines Arbeitsblatts, ohne dass die Anzahl der betroffenen Zellen bekannt sein muss. Dies wird dadurch ermöglicht, dass mehrere Zellbereiche oder Objekte an benutzerdefinierte Formeln übergeben werden können, so dass eine Sammlung oder ein Objekt mit allen Zellinhalten innerhalb einer 4D Methode abgerufen werden kann.
SPREADJS 16.2 UPDATES & RIBBON-VERBESSERUNGEN
4D 21 führt mit der Integration von SpreadJS 16.2 und einer aktualisierten Multifunktionsleiste, die die Vorteile der neuen Funktionen nutzt, ein wichtiges Upgrade von 4D View Pro ein.
Nachfolgend finden Sie die neuen Funktionen für SpreadJS:
-
Formel-Editor-Panel zum leichteren Lesen, Bearbeiten und Debuggen von langen Formeln.
-
Manueller Berechnungsmodus zur Steuerung der Neuberechnung von Formeln.
-
Blattübergreifende Verweise bei der Bearbeitung von Formeln.
-
Verbesserung der PivotTable: Setzen von Zwischensummenpositionen pro Feld.
-
Neue Diagrammwerkzeuge: Wasserfalldiagramme, glatte Linienformatierung und Diagramme, die aus Mehrfachauswahlbereichen erstellt wurden.
-
Lollipop Variance Sparkline für kompakte Abweichungsvisualisierung.
-
Ziehen Sie Überschriften, um Zeilen und Spalten zu verschieben oder einzufügen.
-
Zusätzliche Einfüge-Spezialoptionen (Kommentare, Validierung, Breiten, Formate…).
-
Sheet-Tab-Styling mit anpassbaren Farben und Symbolen.
-
Pixelbasierter Bildlauf für flüssigeres Feedback.
-
Excel-Import behält die Sortierbedingungen für konsistente Ergebnisse bei.
-
Arbeitsmappenverbesserungen: Nullen anzeigen/ausblenden, passwortgeschützte Blätter, Standardzellenwerte und Einfügen von ausgeschnittenen Zellen in Tabellen.
Nachfolgend finden Sie die neuen Funktionen für die aktualisierte Multifunktionsleiste:
-
Direkte Ribbon-Steuerungen für die Bearbeitung von Formeln, Themen, Farben und Schriftarten.
-
Optionen zum Verschieben/Einfügen von Zeilen und Spalten bei aktivierter Drag-to-move-Funktion.
-
Aktualisierte Diagrammsteuerungen für die schnelle Erstellung und Formatierung mit den neuen SpreadJS-Funktionen.
Excel Import/Export VERBESSERUNGEN
4D 21 macht die Arbeit mit Excel-Dateien in 4D View Pro flexibler, indem es die Import- und Exportoptionen erweitert, die in VP EXPORT DOCUMENT und VP IMPORT DOCUMENT.
Beim Export können Sie jetzt genau festlegen, was in die generierte Arbeitsmappe aufgenommen werden soll, wie z. B. verbindliche Quellen, Stile, Formeln, zusammengeführte Zellen, Berechnungsdaten, nicht verwendete Namen und sogar, ob sich Kopfzeilen wie eingefrorene Zeilen oder Spalten verhalten sollen. Sie können auch einen Kennwortschutz hinzufügen und das Laden der Arbeitsmappe durch Einbeziehung zwischengespeicherter Berechnungsdaten beschleunigen.
Beim Import helfen neue Optionen dabei, Formatierungen, Formeln, eingefrorene Kopfzeilen und Stile beizubehalten, während Sie gleichzeitig die Kontrolle über Neuberechnungen, dynamische Referenzen und Öffnungsmodi (normal, träge, inkrementell) erhalten. So wird sichergestellt, dass Excel-Dateien sauber und konsistent in Ihre 4D View Pro Oberfläche geladen werden.
Alle Einstellungen sind in einem einzigen excelOptions-Objekt organisiert, wodurch Ihr Code einfacher zu lesen und zu pflegen ist und mit bestehenden Projekten kompatibel bleibt.
ZUVERLÄSSIGE IMPORTE MIT UNTERSTÜTZUNG FÜR BENUTZERDEFINIERTE FUNKTIONEN
4D 21 stellt sicher, dass Importbefehle wie VP IMPORT DOCUMENT, VP IMPORT FROM BLOB, und VP IMPORT FROM OBJECT ihren Callback erst dann auslösen , wenn alle Berechnungen der benutzerdefinierten Funktionen abgeschlossen sind. Dies gibt Ihnen ein vorhersehbares Timing für Folgeaktionen wie Drucken, Exportieren oder Speichern.
Die Aktualisierung erweitert auch VP FLUSH COMMANDS die jetzt einen asynchronen Callback akzeptiert, der ausgeführt wird, sobald alle anstehenden Berechnungen abgeschlossen sind. So können Sie Operationen sicher in eine Warteschlange stellen, ohne die Schnittstelle zu blockieren oder unvollständige Ergebnisse zu riskieren.
Zusammengenommen erleichtern diese Verbesserungen die Arbeit mit Dokumenten, die auf benutzerdefinierten Formeln beruhen, reduzieren Fehler und sorgen für einen reibungslosen Arbeitsablauf vom Import bis zur endgültigen Ausgabe.
Sicherheit
4D 21 stärkt die Sicherheit auf jeder Ebene, von der verschlüsselten Kommunikation bis hin zur sicheren Datenverarbeitung und intelligenter Zertifikatsverwaltung. Automatische TLS-Zertifikate vereinfachen die Bereitstellung, die erweiterte Unterstützung von RSA- und ECDSA-Schlüsseln modernisiert Ihre kryptografischen Optionen, und neue CA-Validierungstools schützen den Client-Server-Verkehr in nicht vertrauenswürdigen Netzwerken. HTTPS-Anfragen können jetzt Anmeldeinformationen direkt vom Betriebssystem abrufen, die kryptografische Signierung funktioniert sowohl mit Text- als auch mit Binärdaten, und die Sitzungsüberwachung bietet Administratoren eine einheitliche Echtzeitansicht aller aktiven Webaktivitäten. Selbst alltägliche Aufgaben wie das Einfügen von Formeln profitieren von sichereren Standardeinstellungen, während umfangreiche Bibliotheks-Upgrades sicherstellen, dass Ihre Anwendungen auf einer aktuellen, abgesicherten Grundlage laufen.
Automatisch generierte SSL/TLS-Zertifikate für Client-Server-Kommunikation
4D 21 vereinfacht die sichere Bereitstellung, indem es die alten Standard-SSL/TLS-Zertifikate, die mit 4D Server gebündelt waren, entfernt. Wenn ein Server eine Anwendung mit verschlüsselten Verbindungen startet, wird stattdessen der Ressourcen-Ordner auf vom Benutzer bereitgestellte Zertifikate überprüft. Wenn keine gefunden werden, generiert 4D automatisch ein temporäres SSL/TLS Zertifikat.
Das bedeutet, dass Sie keine Zertifikate mehr bereitstellen müssen, um eine verschlüsselte Client-Server-Kommunikation zu ermöglichen. Bei jedem Neustart des Servers wird ein neues Zertifikat erzeugt, was die Sicherheit erhöht und die Einrichtungsschritte reduziert.(Hinweis: Dies gilt nicht für den Webserver, der aus Gründen der Browserkompatibilität weiterhin CA-validierte Zertifikate benötigt).
Erweiterte SSL/TLS-Zertifikatsunterstützung mit ECDSA
4D unterstützt seit langem RSA Zertifikate zur Absicherung der SSL/TLS Kommunikation. Mit 4D 21 können Sie jetzt auch ECDSA-Zertifikate verwenden und haben damit eine moderne Alternative, die von vielen Plattformen zunehmend genutzt wird.
Ganz gleich, ob Sie die Client-Server-Kommunikation oder HTTPS-Anfragen absichern, 4D 21 akzeptiert jetzt sowohl RSA als auch ECDSA, ohne dass Änderungen am Workflow erforderlich sind. Legen Sie einfach Ihre key.pem und cert.pem Dateien an den erwarteten Stellen ab, und 4D erledigt den Rest.
Verbesserte Validierung der Zertifizierungsstelle für Client-Server SECURITY
4D 21 stärkt die Client-Server-Sicherheit, indem es Clients ermöglicht, Serverzertifikate anhand von vertrauenswürdigen Zertifizierungsstellen (CAs) zu überprüfen. Dies stellt sicher, dass der Server, mit dem Sie sich verbinden, authentisch ist und hilft, Man-in-the-Middle-Angriffe (MITM) zu verhindern.
Um die CA-Validierung zu aktivieren, geben Sie zwei Werte in buildApp.4DSettings an:
-
den Pfad zu einer Datei, die vertrauenswürdige CA-Signaturen enthält
-
den erwarteten Domänennamen des Serverzertifikats
Wenn mehrere Server beteiligt sind, können Sie auch eine Liste der zulässigen Domänennamen angeben. Anhand dieser Informationen überprüft der Client, ob das Zertifikat des Servers von einer gültigen Zertifizierungsstelle signiert ist und mit der gewünschten Domäne übereinstimmt; andernfalls wird die Verbindung abgelehnt.
Dies stellt eine wichtige Schutzebene für Implementierungen dar, die über öffentliche oder nicht vertrauenswürdige Netzwerke laufen.
Verwendung des Windows-Zertifikatspeichers anstelle von lokalen Dateien 
HTTPS-Anfragen können jetzt Zertifikate direkt aus dem Windows-Schlüsselbund abrufen, indem der Parameter storeCertificateName in den Klassen HTTPRequest und HTTPAgent verwendet wird. Damit entfällt die Notwendigkeit, Zertifikatsdateien lokal zu speichern und zu verwalten.
Schutz auf Systemebene und zentralisierte Verwaltung ersetzen das manuelle Jonglieren mit Dateien. Die Handhabung von Zertifikaten wird sicherer, konsistenter und lässt sich einfacher über Teams und Rechner hinweg verwalten.
FORCE LOGIN ALS NEUER STANDARD FÜR DIE RESTAUTHENTIFIZIERUNG
4D 21 ermöglicht jetzt Force Login als Standard-Sicherheitsmodell für den REST-Zugang. Anstatt sich auf ältere Authentifizierungsmechanismen zu verlassen, erfordert jede REST-Anfrage jetzt eine explizite Anmeldung über die Funktion ds.authentify.
Neue Projekte enthalten automatisch eine Datei roles.json, in der forceLogin auf true gesetzt ist, was bedeutet, dass kein REST-Zugriff erlaubt ist, solange keine Privilegien zugewiesen sind. Bestehende Projekte können über eine spezielle Schaltfläche im Dialogfeld „Struktureinstellungen“ zu diesem Modell wechseln, das die alten Konfigurationen aktualisiert und bei Bedarf eine roles.json-Datei erstellt.
Mit diesem Update werden alle Projekte auf ein modernes, privilegienbasiertes Sicherheitsmodell umgestellt, das einfacher zu pflegen und wesentlich präziser ist. Sie können nun Berechtigungen mit dem Qodly Studio Roles & Privileges-Editor verwalten und genau definieren, welche Teile Ihres Datenspeichers und Funktionen offengelegt werden.
Force Login stellt sicher, dass REST-APIs standardmäßig geschützt sind und gibt Ihnen eine klare, konsistente Möglichkeit, den Zugriff auf Ihre gesamte Anwendung zu steuern.
VEREINFACHTE KRYPTOGRAFISCHE SIGNIERUNG UND VERIFIZIERUNG MIT BLOB-UNTERSTÜTZUNG
4D 21 rationalisiert kryptografische Arbeitsabläufe durch Erweiterung 4D.CryptoKey.sign() und 4D.CryptoKey.verify() erweitert, um sowohl Text- als auch Blob-Eingaben zu akzeptieren. Sie müssen Binärdaten nicht mehr in Text umwandeln oder umgekehrt, bevor Sie sie signieren oder verifizieren.
Dies erleichtert die Arbeit mit Dateien, binären Nutzdaten und strukturierten Daten und sorgt dafür, dass Ihr Signier- und Verifizierungscode sauber und direkt bleibt.
Einheitliches Session Management für REST und 4DACTION 
Mit 4D 21 haben Sie jetzt eine umfassende Möglichkeit, alle offenen Web-Sessions zu überprüfen, unabhängig davon, ob sie von REST-Verbindungen, SOAP-Aufrufen oder 4DACTION-Anfragen herrühren.
-
Alle aktiven Sitzungen werden in Echtzeit aufgelistet, so dass Administratoren einen transparenten Überblick über die Aktivitäten und die Ressourcennutzung erhalten.
-
Sitzungen können über Session.setPrivilege() mit Benutzernamen versehen werden, was die Identifizierung verbundener Benutzer, die Verfolgung von Aktionen und die Verwaltung von Lizenzen erleichtert.
-
Die Sitzungen sind thread-sicher und werden automatisch optimiert, um eine effiziente Ressourcennutzung und eine zuverlässige Leistung auch bei hoher Belastung zu gewährleisten.
Dies sorgt für eine reibungslosere API-Ausführung im großen Maßstab und bietet Entwicklern und Administratoren eine klarere Überwachung, stärkere Prüfungen und verbesserte Stabilität.
SICHERES PASTING für Formeln
Um Ihre Daten bei der Arbeit in verschiedenen Umgebungen zu schützen, fügt 4D Formeln aus externen Quellen jetzt nur noch als Werte ein.
Dies gilt für Multi-Style Textfelder und 4D Write Pro Dokumente:
-
Wenn die kopierte Formel noch nie ausgeführt wurde, wird ihre Quelle als reiner Text eingefügt.
-
Wenn sie ausgewertet wurde, wird nur der resultierende Wert (Text oder Bild) eingefügt, niemals die zugrunde liegende Logik.
Formeln, die innerhalb derselben Anwendung kopiert werden, werden weiterhin normal eingefügt. Wenn Sie jedoch Inhalte zwischen verschiedenen Anwendungen oder Umgebungen verschieben, entfernt 4D automatisch Formeln, um einen unbeabsichtigten Zugriff auf sensible Daten zu verhindern.
Core Library und Dependency Upgrades 
Mit 4D 21 LTS haben wir Xerces, libldap, ICU, Chromium (CEF), OpenSSL, libZip, LZMA, ZLib, Libuv, BoringSSL und PDFWriter aktualisiert und damit den gesamten Stack modernisiert, um die Sicherheit zu erhöhen, die Stabilität zu verbessern und die Kompatibilität mit den heutigen Plattformen zu gewährleisten.
4D Sprache
Die Programmiersprache 4D hat eine ihrer bisher größten Entwicklungen durchlaufen. Mit den Feature Releases, die zu 4D 21 LTS führen, erhält sie eine klarere Syntax, eine sicherere Fehlerbehandlung, moderne Klassenfunktionen, eine stärkere Typisierung, Code-Validierung in Echtzeit und umfangreichere Werkzeuge für REST, Sessions, HTTP, Datensynchronisation und mehr.
Ganz gleich, ob Sie Webservices erstellen, Daten manipulieren, Code strukturieren oder Arbeitsabläufe optimieren – die neuen Sprachfunktionen beseitigen Standardformulierungen, erhöhen die Sicherheit und machen die tägliche Entwicklung schneller und berechenbarer.
Code Live Prüfer
4D 21 führt den Code Live Checker ein, ein Echtzeit-Validierungssystem, das Fehler während des Schreibens aufspürt. Es prüft Syntax, Klassennamen, Funktionsnamen, Parameterlisten und Typkompatibilität und hilft Ihnen, Tippfehler, Unstimmigkeiten und ungültige Referenzen zu erkennen, bevor sie zu Laufzeitfehlern werden.
Der Checker läuft im Hintergrund, während Sie tippen und während der Syntaxprüfung oder Kompilierung. Er arbeitet mit Klassen, die die Punktnotation verwenden, und wendet dieselben Regeln auf Komponentenklassen an, die eine Syntaxdatei enthalten. Sie erhalten Warnungen bei inkonsistentem Code und Fehlermeldungen, wenn etwas zur Laufzeit scheitern würde, was Ihren Code sicherer und einfacher zu pflegen macht.
SINGLETONS IN IHRER ANWENDUNG, IN SITZUNGEN UND IM REST
4D 21 führt Singletons ein, eine neue Möglichkeit, ein Objekt zu erstellen, auf das Sie überall zugreifen können. Singletons können prozessübergreifende Werte und zentrale Hilfsprogramme beherbergen oder sogar als Bausteine für Muster wie Factories dienen und bieten Ihnen einen sauberen und zuverlässigen Ort, um gemeinsame Logik zu zentralisieren.
Sie können zwei Kerntypen definieren:
-
Prozess-Singletons, eindeutig für jeden Prozess
-
Gemeinsame Singletons, die für die gesamte Anwendung eindeutig sind
Die Erstellung ist ganz einfach: Fügen Sie das Schlüsselwort singleton zu einem Klassenkonstruktor hinzu (oder ein Shared Singleton für eine Shared Version). Von da an ist die Singleton-Instanz immer über das me -Attribut verfügbar und gibt Ihrer Anwendung eine einzige Quelle der Wahrheit für alles, was diese Klasse verwaltet.
4D 21 fügt auch Session Singletons hinzu, die jedem Benutzer seine eigene isolierte Instanz zur Verfügung stellen. Sie sind ideal für Web- und Client-Server-Umgebungen, in denen mehrere Prozesse Anfragen für denselben Benutzer bearbeiten. Mit Session Singletons werden Aufgaben wie die Verwaltung eines Warenkorbs oder einer benutzerspezifischen Arbeitsliste einfach und sicher, da jede Session ihren eigenen Zustand behält.
Darüber hinaus lassen sich Shared Singletons jetzt nahtlos in REST-APIs und Qodly Pages integrieren. Jede exponierte Funktion eines gemeinsam genutzten Singletons kann direkt über REST aufgerufen oder als Ereignisaktion in Qodly Studio ausgewählt werden, genau wie Methoden von Datenklassen. Der Zugriff wird weiterhin vollständig über Rollen und Privilegien gesteuert, wodurch Sicherheit und Klarheit in der Funktionsweise Ihrer APIs gewährleistet werden.
Mit diesen Funktionen erhalten Sie eine konsistente, skalierbare Methode zur Verwaltung globaler Werte, benutzerspezifischer Daten und gemeinsamer Anwendungslogik auf allen Ebenen Ihrer Lösung.
Vereinfachung von Methodenparameter-Deklarationen
4D 21 vereinfacht die Deklaration von Methodenparametern. Durch die Verwendung von #DECLARE Prototypen müssen Sie Parameterdeklarationen nicht mehr in separaten compiler_ Methoden wiederholen. Der Compiler behandelt jetzt Prototypendeklarationen auf die gleiche Weise wie Klassenfunktionssignaturen, wodurch Redundanz reduziert und die Typsicherheit erhöht wird.
Bestehender Code funktioniert weiterhin wie bisher, aber nicht übereinstimmende Typen zwischen Prototypen und Legacy-Deklarationen lösen jetzt Fehler aus, so dass Sie Probleme früher erkennen können. Es werden auch Warnungen angezeigt, wenn Parameter doppelt deklariert werden oder wenn eine Methode mit mehr Argumenten aufgerufen wird, als der Prototyp zulässt.
Diese Aktualisierung spart Zeit, beseitigt Unordnung und hilft, Laufzeitfehler bei der Kompilierung zu vermeiden.
EINZEILIGE DEKLARATION UND INITIALISIERUNG FÜR VARIABLEN UND EIGENSCHAFTEN
4D 21 rationalisiert Ihren Code, indem es Ihnen ermöglicht, Variablen und Klasseneigenschaften in einer einzigen Zeile zu deklarieren und zu initialisieren. Dadurch wird die Deklaration überflüssig und die Absicht wird auf einen Blick klarer.
Sie können 4D den Typ aus dem Wert ableiten lassen:
SIMPLIFIED Variadic Function DECLARATION
4D 21 macht es viel einfacher, Funktionen zu schreiben, die eine flexible Anzahl von Parametern akzeptieren. Sie können jetzt das Symbol „…“ als letzten Parameter in Ihrer Deklaration verwenden, um anzugeben, dass die Funktion eine beliebige Anzahl von Argumenten akzeptiert.
Sie können auch einen Typ angeben, damit 4D überprüfen kann, ob jeder eingehende Parameter Ihren Erwartungen entspricht:
#DECLARE(... : Real) : Real
Oder lassen Sie ihn untypisiert, wenn Sie alles akzeptieren wollen:
MODERNE, STRUKTURIERTE FEHLERBEHANDLUNG (TRY-CATCH, TRY(), THROW)
4D 21 bietet Ihnen eine saubere, vorhersehbare Art, Fehler in Ihrem Code zu verwalten. Sie können jetzt Fehler gezielt auslösen, sie genau dort abfangen, wo sie auftreten, und sie anständig beheben – ohne globale Handler oder unerwartete Dialoge, die den Fluss unterbrechen.
-
Try-Catch-Blöcke für kontrollierte Wiederherstellung: Wickeln Sie mehrere Anweisungen in Try … Catch … End try ein. Wenn etwas innerhalb des Try-Blocks fehlschlägt, springt die Ausführung direkt zu Catch. Es werden keine Dialoge angezeigt, und ON ERR CALL wird nicht ausgelöst. Auf diese Weise können Sie die Arbeit zurücksetzen, Details protokollieren oder mit einem Fallback-Pfad auf strukturierte, lesbare Weise fortfahren.
-
Try(Expression) für die Inline-Fehlerbehandlung: Führen Sie einen einzelnen Ausdruck aus und behandeln Sie Fehler direkt neben dem Code, der sie verursacht hat. Try() gibt das Ergebnis zurück, wenn es erfolgreich ist, oder undefiniert, wenn ein Fehler auftritt. Sie können Last errors sofort überprüfen, indem Sie die gleichen Variablen und den gleichen Kontext verwenden und die Fehlerlogik eng und lokal halten.
-
throw zum Auslösen eigener Fehler: Verwenden Sie den neuen Befehl throw, um Probleme genau in dem Moment zu signalisieren, in dem sie auftreten, ungültige Zustände, fehlerhafte Annahmen oder Geschäftsregeln, die die Ausführung stoppen müssen. Diese Fehler verhalten sich genau wie native 4D Fehler und können mit Try(), Try–Catch oder ON ERR CALL abgefangen werden. Sie können einfache Meldungen auslösen oder XLF-basierte Fehlerdefinitionen mit Platzhaltern wiederverwenden.
Zusammen bieten Ihnen diese Werkzeuge ein einheitliches, modernes Fehlermodell, das sauber zu schreiben, einfach zu befolgen und sicher für jeden Teil Ihrer Anwendungslogik ist.
Inkrementelle Synchronisierung mit Global Stamps
4D 21 erweitert das globale Stempelsystem, das ursprünglich für 4D for Mobile eingeführt wurde, auf jeden Workflow, der eine inkrementelle Synchronisation benötigt. Anstatt ganze Datensätze zu übertragen, können Sie jetzt nur die Datensätze synchronisieren, die sich seit der letzten Aktualisierung geändert haben.
Sobald die Verfolgung von Datenänderungen aktiviert ist, weist 4D jedem erstellten, geänderten oder gelöschten Datensatz automatisch einen Stempel zu. Zwei Funktionen geben Ihnen die volle Kontrolle:
-
.getGlobalStamp(): Abrufen des aktuellen Änderungsstempels des Datenspeichers, so dass Sie verfolgen können, was sich im Laufe der Zeit geändert hat.
-
.setGlobalStamp(): Ermöglicht Ihnen die manuelle Aktualisierung der Stempelwerte, wenn Sie das Standardverhalten außer Kraft setzen wollen.
Da Stempel jede Datenänderung widerspiegeln, erleichtern sie die Abfrage von Änderungen, die Erkennung von gelöschten Datensätzen und die schnelle, zuverlässige inkrementelle Synchronisierung über den 4D REST Server, ohne auf eine vollständige SQL-Replikation angewiesen zu sein.
MEHRERE SAMMLUNGEN MIT MULTISORT() SYNCHRONISIEREN
Die Arbeit mit mehreren zusammenhängenden Kollektionen, insbesondere wenn die Daten von außerhalb von 4D kommen, kann das Sortieren und Ausrichten aller Daten zu einer Herausforderung machen. In 4D 21 löst die neue Funktion multiSort() dieses Problem, indem sie es Ihnen ermöglicht, mehrere Sammlungen mit einem einzigen Aufruf synchron zu sortieren.
Sie können:
-
Eine Sammlung sortieren und die anderen automatisch entsprechend neu anordnen
-
Benutzerdefinierte Sortierformeln anwenden
-
Mehrstufige Sortierregeln definieren
-
Sowohl mit einfachen Werten als auch mit Objekten arbeiten
-
Beibehaltung einer stabilen Reihenfolge bei gleichen Werten
Ganz gleich, ob Sie von externen Systemen empfangene Arrays abgleichen oder mehrere Sammlungen in Ihrer Anwendung koordinieren, multiSort() macht den gesamten Prozess schneller, sauberer und zuverlässiger.
SIMPLE Referenzvergleich für Objekte und Sammlungen
4D 21 macht es viel einfacher zu prüfen, ob zwei Objekte oder Sammlungen auf dieselbe Referenz im Speicher verweisen. Sie können jetzt die Operatoren = und # verwenden, um Referenzen direkt zu vergleichen, anstatt den Inhalt zu vergleichen.
So können Sie schnell feststellen, ob zwei Variablen auf genau dasselbe Objekt oder dieselbe Sammlung verweisen, was besonders hilfreich ist, wenn Sie mit gemeinsamen Referenzen, verschachtelten Strukturen oder Arrays von Objekten arbeiten.
Sie können diese Vergleiche auch in Array-Funktionen, Abfragen und anderen Operationen verwenden, wodurch die Referenzbehandlung in der gesamten Sprache konsistenter wird.
GEMEINSAME OBJEKTE MIT GEMEINSAMEN KLASSEN VEREINFACHEN
4D 21 führt Shared Classes ein, eine vereinfachte Methode, um mit Shared Objects zu arbeiten, ohne Use…End use Blöcke manuell zu verwalten.
Durch Hinzufügen des Schlüsselworts shared zu einem Klassenkonstruktor wird bei jedem Aufruf von new() automatisch ein gemeinsames Objekt erstellt. Sie können auch Klassenfunktionen als „shared“ markieren, um anzuzeigen, dass sie das zugrunde liegende Shared Object verändern. Wenn Sie dies tun, wickelt 4D den Locking-Workflow automatisch ab, so dass sich Code mit gemeinsam genutzten Objekten genauso natürlich anfühlt wie die Arbeit mit normalen Objekten.
Gemeinsam genutzte Klassen erleichtern die Ausführung von Aufgaben in Workern, die Koordinierung von Zuständen zwischen Prozessen oder die sichere Speicherung gemeinsamer Ergebnisse. Denken Sie daran, dass nicht gemeinsam genutzte Klassen zwar von gemeinsam genutzten Klassen erben können, der umgekehrte Fall jedoch nicht zulässig ist, planen Sie also Ihre Klassenhierarchie entsprechend.
UNTERSTÜTZUNG VON CLIENT/SERVER-SITZUNGEN MIT DEM BEFEHL SESSION
4D 21 erweitert den Befehl Session um Client/Server Verbindungen und Stored Procedures, zusätzlich zu den bestehenden Web und Mobile Sessions in 4D Anwendungen. Damit haben Sie eine einheitliche Möglichkeit, über alle Ausführungskontexte hinweg auf Informationen auf Session-Ebene zuzugreifen.
Eine neue ClientServerSession Klasse steht für 4D Remote Sessions zur Verfügung, mit der Sie Zugriff auf die wichtigsten Eigenschaften haben:
-
id: der eindeutige Sitzungsbezeichner
-
info: Details zu Rechner, Benutzer und Umgebung
-
storage: ein gemeinsames Objekt, das allen Prozessen in derselben Sitzung zur Verfügung steht
-
userName: der mit der Sitzung verbundene Benutzer
Dies erleichtert die gemeinsame Nutzung von Daten zwischen Prozessen, die Verfolgung von benutzerspezifischem Kontext und das Schreiben von generischem sitzungsspezifischem Code, der sich konsistent verhält, egal ob er in Web-, Mobil-, Client/Server- oder Stored-Procedure-Umgebungen ausgeführt wird.
ZUGRIFF AUF SITZUNGSSPEICHER ÜBER ALLE SITZUNGSTYPEN HINWEG
Um die Konsistenz der Benutzerdaten in den verschiedenen Teilen Ihrer Anwendung (Client/Server, Web, Mobile) aufrechtzuerhalten, war früher zusätzlicher Aufwand erforderlich. Jede Sitzung hatte ihren eigenen Speicher, und es gab keine einfache Möglichkeit, auf eine andere Sitzung zuzugreifen, um gemeinsame Informationen abzurufen.
4D 21 löst dieses Problem mit einem neuen Befehl: Session storage by id. Damit können Sie auf den Speicher jeder Sitzung in Ihrer Anwendung zugreifen, unabhängig davon, wie sie erstellt wurde. Sobald Sie die Sitzungs-ID haben, können Sie den gemeinsamen Speicher genau wie Ihren eigenen lesen oder aktualisieren.
Auf diese Weise lässt sich die Kontinuität für Benutzer, die in verschiedenen Umgebungen arbeiten, leicht aufrechterhalten. So können Sie beispielsweise einen Kundendatensatz speichern, wenn sich ein Benutzer über die Webanwendung anmeldet, und später über eine Client/Server-Sitzung auf denselben Datensatz zugreifen, um ein nahtloses und konsistentes Erlebnis zu gewährleisten.
SITZUNGSPRIVILEGIEN FÜR SICHERES, EINFACHES DEBUGGING PRÜFEN
Die Kontrolle darüber, worauf Benutzer zugreifen können, ist ein wichtiger Bestandteil der Sicherheit Ihrer Anwendung. Mit 4D 21 haben Sie dank einer Erweiterung der Sitzungsrechte jetzt einen besseren Einblick in diese Berechtigungen.
Privilegien, die während der Authentifizierung über Rollen zugewiesen werden, bestimmen, welche Aktionen ein Benutzer durchführen darf. Um die Fehlersuche zu erleichtern, können Sie diese Berechtigungen jetzt direkt in der Sitzung mit der neuen Funktion getPrivileges() überprüfen. Dadurch erhalten Sie einen klaren Überblick darüber, welche Berechtigungen zu einem bestimmten Zeitpunkt aktiv sind.
Außerdem gibt es einen neuen REST-Endpunkt(/$info/privileges), der dieselben Informationen zurückgibt, so dass es einfach ist, die Zugriffsrechte in verschiedenen Umgebungen zu überprüfen.
Diese Ergänzungen helfen Ihnen zu bestätigen, dass Ihre Sicherheitsregeln wie erwartet funktionieren und gewährleisten, dass Benutzer nur auf die für sie bestimmten Daten und Funktionen zugreifen können.
VERBESSERTE PROZESS- UND SITZUNGSVERWALTUNG
4D 21 erleichtert die Überprüfung, Verfolgung und Verwaltung von Prozessen und Sitzungen und gibt Ihnen mehr Kontrolle und einen besseren Überblick über Ihre Anwendung. Mehrere Befehle wurden verbessert oder hinzugefügt, um die Abfrage von Informationen und die Überwachung von Aktivitäten zu optimieren.
Dies sind die Neuerungen:
-
Prozessinfo gibt jetzt ein vollständiges Objekt zurück, wodurch Prozesseigenschaften einfacher zu lesen und zu verwenden sind. Außerdem gibt es eine neue Eigenschaft creationDateTime, mit der Sie verfolgen können, wann jeder Prozess erstellt wurde.
-
Mit der Sitzungsinfo können Sie Sitzungsdetails direkt von einer Sitzungs-ID abrufen, wodurch zusätzliche Schritte oder Nachschlagen vermieden werden.
-
Die Prozessnummer wurde aktualisiert, so dass Sie eine Prozessnummer nicht nur über den Namen, sondern auch über die Prozess-ID abrufen können.
-
Die Prozessaktivität unterstützt jetzt die Filterung nach Sitzungs-ID, so dass Sie schnell nur die Prozesse auflisten können, die mit einer bestimmten Sitzung verbunden sind – nützlich beim Debuggen oder Überwachen von Benutzern.
Vereinfachtes Session Management für Entwicklung und Test
Mit 4D 21 wird die Handhabung von Sessions während der Entwicklung wesentlich einfacher. Der Befehl Session gibt jetzt auch in Standalone- und Einzelplatzumgebungen ein gültiges Objekt zurück, so dass keine zusätzlichen Prüfungen oder Fallback-Logik mehr erforderlich sind.
Dieses Update erleichtert die Arbeit mit Sitzungsdaten, das Testen von rollenbasierten Einschränkungen und die Simulation von Client/Server-Verhalten – und das alles ohne Umgebungswechsel oder Hinzufügen von Umgehungscode.
Im Standalone-Modus können Sie jetzt verwenden:
-
Session
-
Session info
-
Session storage
Diese simulierten Sitzungen sind für die Entwicklung und das Testen gedacht. Sie ermöglichen es Ihnen, Funktionen wie Authentifizierung, Datenfilterung über das Ereignis “ Einschränken“ oder gemeinsamen Sitzungsspeicher zu entwickeln und zu testen, genau wie in einer Client/Server-Konfiguration.
Bei eigenständigen Produktionsanwendungen sind Sie für benutzerspezifische Daten nach wie vor auf Storage angewiesen, aber für die Entwicklung vereinfacht diese Änderung Ihren Workflow und verbessert die Konsistenz in verschiedenen Umgebungen.
FLEXIBLERE FORMELAUSFÜHRUNG MIT „FORMEL AUS STRING“
4D 21 erweitert die Funktionsweise von Formula from string, indem es Ihnen die Wahl des Ausführungskontextes ermöglicht. Dies erleichtert die Komponentenentwicklung erheblich, insbesondere wenn Formeln Methoden aufrufen oder auf Variablen zugreifen müssen, die in der Host-Datenbank definiert sind.
Zuvor wurden Formeln immer in dem Kontext ausgeführt, in dem sie erstellt wurden, was bedeutete, dass eine Komponente keine Formeln ausführen konnte, die auf nicht freigegebene Methoden im Host-Projekt verwiesen. Jetzt können Sie entscheiden, wo die Formel ausgeführt werden soll:
-
sk in der Host-Datenbank ausführen: Die Formel wird im Host-Projekt ausgeführt und erlaubt den Zugriff auf ihre Methoden und Variablen.
-
sk in der aktuellen Datenbank ausführen: Das Standardverhalten, bei dem die Ausführung innerhalb der Komponente erfolgt.
Dieser kleine Zusatz ermöglicht ein wesentlich flexibleres Komponentendesign und die Entwicklung von Funktionen (z. B. benutzerdefinierte 4D Write Pro Schnittstellen), die nahtlos auf die Host-Datenbank zugreifen.
FLEXIBLERE VERWALTUNG VON PROTOKOLLDATEIEN
4D 21 gibt Ihnen mehr Kontrolle darüber, wie Ihre Anwendung ihre Protokolldatei (Journal) während der Bereitstellung verwaltet.
Sie können jetzt die Einstellung Protokolldatei verwenden auf die gleiche Weise überschreiben wie andere Backup-Parameter. Wenn diese Option aktiviert ist, fordert 4D Sie auf, ein Protokoll zu erstellen oder auszuwählen, wenn eine neue Datendatei erstellt wird, und speichert diesen Pfad in der Datendatei. Wenn Sie später eine Datendatei öffnen, die kein Protokoll enthält, während die Option aktiviert ist, werden Sie von 4D aufgefordert, ein Protokoll zu erstellen oder auszuwählen.
Zuvor wurde diese Einstellung immer in der Katalogdatei gespeichert. Jetzt können Sie entscheiden, woher sie kommt, indem Sie eine Sicherungsparameterdatei verwenden, die neben der Struktur, neben den Daten oder in der Struktur selbst platziert wird. Dies gibt Ihnen mehr Flexibilität bei der Bereitstellung in verschiedenen Umgebungen, ohne dass Sie Ihre Hauptprojektdateien ändern müssen.
Abschaffung der PHP-Befehle und Entfernung des eingebauten Interpreters ( REMOVAL)
PHP füllte einst wichtige Lücken in der Webentwicklung von 4D, indem es Aufgaben wie ZIP, Hashing oder LDAP erledigte, bevor die Sprache native Lösungen anbot. Als diese Fähigkeiten Teil von 4D selbst wurden, wurde der eingebaute PHP-Interpreter in 4D 20 R3 entfernt, und der PHP-Befehlssatz beginnt in 4D 21 seine Abschaffungsphase.
PHP Execute funktioniert weiterhin, benötigt jetzt aber einen externen PHP-Interpreter. Dies gibt Ihnen mehr Flexibilität, um PHP-Versionen zu aktualisieren, Sicherheitspatches anzuwenden und zusätzliche Module zu laden. Für den langfristigen Einsatz empfiehlt es sich, PHP-Code über System Worker auszuführen, die die volle Kontrolle darüber haben, wie PHP gestartet und verwaltet wird.
Die Befehle bleiben aus Kompatibilitätsgründen verfügbar, aber bei Neuentwicklungen sollte die Ausführung über System Worker erfolgen, um eine einfachere Wartung und zukünftige Stabilität zu gewährleisten.
Benutzerdefinierte Datums- und Zeitformate
Wenn Sie Datums- und Zeitangaben benötigen, die bestimmten regionalen oder projektspezifischen Anforderungen entsprechen, reichen die Standardformate des Systems nicht immer aus. Mit 4D 21 können Sie jetzt präzise benutzerdefinierte Formate definieren, sei es für die Anzeige von Werten in Formularen oder für die Umwandlung in Strings.
Mit diesem Update werden flexible Formatierungsoptionen eingeführt:
-
Den Befehl String , der jetzt vollständig benutzerdefinierte Formatstrings unterstützt.
-
Den Befehl OBJECT SET FORMAT , mit dem Sie benutzerdefinierte Formate direkt auf Formularobjekte anwenden können.
-
Die Schnittstelle, die jetzt eine Option „Benutzerdefiniert“ zur visuellen Definition von Mustern enthält.
Sie können alles, von Quartals- und Wochennummern bis hin zu lokalisierten Tagesnamen und detaillierten Zeitausdrücken, mit einer einzigen gemeinsamen Formatsyntax steuern. Damit haben Sie die vollständige Kontrolle darüber, wie Datums- und Zeitangaben in Dokumenten, Oberflächen und generiertem Text erscheinen.
Strukturdefinition als HTML exportieren
4D 21 vereinfacht die Weitergabe von Strukturdefinitionen, indem es sie direkt als HTML exportiert. Zuvor basierte der Export auf einem XML+XSL-Paar, das von den Browsern als HTML gerendert wurde, aber die Sicherheit moderner Browser verhindert, dass lokale Dateien bestimmte externe Ressourcen laden.
Mit dem aktualisierten Export wird durch die Auswahl von Datei → Exportieren → Strukturdefinition in HTML… nun eine eigenständige HTML-Datei erzeugt, die in jedem Browser problemlos geöffnet werden kann. Alle erforderlichen Elemente werden in einem zugehörigen Ordner html_export_resources abgelegt, den Sie bei Bedarf anpassen können.
Sie können auch programmatisch in HTML exportieren, indem Sie EXPORT STRUCTURE mit seinem optionalen Parameter verwenden, der Ihnen die Wahl zwischen XML- und HTML-Formaten lässt.
DYNAMISCHE FORMELN FÜR FORMULAROBJEKTE
Mit 4D 21 werden Formularobjekte dank formelbasierter Datenquellen wesentlich flexibler. Anstatt ein Objekt an ein festes Feld oder einen Zeiger zu binden, können Sie es jetzt direkt mit einer Formel verbinden ( OBJECT SET DATA SOURCE FORMULA).
Auf diese Weise können Werte automatisch auf der Grundlage von Berechnungen, Kontext oder anderer dynamischer Logik aktualisiert werden, was sich perfekt für die Erstellung anpassungsfähiger Formulare oder die Generierung von UI-Elementen im laufenden Betrieb eignet.
Kombinieren Sie dies mit Listbox-Konstanten wie lk selected items expression und Sie erhalten ein Formularverhalten, das sich in Echtzeit anpasst, wodurch Code-Duplizierung reduziert und die Reaktionsfähigkeit verbessert wird.
Konvertierung von hexadezimalen Zeichenfolgen in Zahlen 
Mit dem Befehl String können Sie jetzt hexadezimale Zeichenketten direkt in Zahlen umwandeln. Sie müssen keine Parsing-Utilities mehr schreiben oder sich mit binären Stringtricks beschäftigen. Übergeben Sie einfach die Zeichenkette, und Sie erhalten das numerische Ergebnis.
Dies ist eine subtile Ergänzung, die bei der Arbeit mit externen APIs, Low-Level-Formaten oder Integrationen, die Hexadezimalwerte zurückgeben, für weniger Reibungsverluste sorgt.
Neue String Trim-Funktionen 
Die neuen Befehle trim, trimStart und trimEnd, erleichtern das Entfernen von Leerzeichen oder bestimmten Zeichen aus Zeichenketten. Sie verhalten sich wie ihre JavaScript- oder Python-Entsprechungen und funktionieren mit jedem Zeichensatz.
Eine manuelle Trimmlogik ist nicht mehr erforderlich. Die Daten sind sauberer, Formulareingaben lassen sich leichter validieren, und der Code entspricht den Erwartungen moderner Sprachen.
Verbesserte Katalogverwaltung in Versionskontrollsystemen
Früher wurden alle Projektdetails, wie Farben und Positionen von Tabellen, Feldern und Beziehungen, in catalog.4DCatalog gespeichert. Jetzt sind diese Informationen in eine separate Datei namens catalog_editor.json aufgeteilt.
Dies erleichtert die Verwaltung von Änderungen und die Überprüfung der Arbeit, insbesondere wenn mehrere Entwickler beteiligt sind. Mit dieser Änderung bleibt die Katalogdatei unangetastet, wenn jemand eine Tabelle oder ein Feld anpasst.
Dadurch werden Konflikte vermieden und die Überprüfung von Änderungen wird vereinfacht. Außerdem haben wir eine Option hinzugefügt, mit der Sie für ältere Projekte zu dieser neuen Einstellung wechseln können. Wenn Sie diese Funktion versehentlich aktiviert haben, ist das kein Problem! Sie können dies ganz einfach rückgängig machen, indem Sie zur alten Einstellung zurückkehren.
Vereinfachen Sie Variablendeklarationen mit Direct Typing
Die neue Funktion der direkten Typisierung in 4D 21 vereinfacht die Variablendeklaration, indem sie die Notwendigkeit von „Compiler“-Methoden überflüssig macht.
Mit dieser Änderung können Entwickler Prozess- und Interprozess-Variablen direkt in ihrem Code deklarieren, was die Organisation und Kapselung verbessert. Anstatt sich auf die Typinferenz zu verlassen, die die Kompilierung verlangsamen und zu Fehlern führen kann, hält der Compiler an, wenn er auf eine nicht typisierte Variable stößt, und gewährleistet so Typsicherheit, ohne die Effizienz zu beeinträchtigen. Direct Typing ist standardmäßig für neue Projekte aktiviert, und bei bestehenden Projekten kann die Funktion in den Compiler-Einstellungen einfach umgeschaltet werden, um einen reibungslosen Übergang zu gewährleisten. Dies bedeutet eine erhebliche Verbesserung der Flexibilität und Kontrolle für 4D Entwickler.
Verbessertes Debugging-Erlebnis
4D 21 bringt erhebliche Verbesserungen für den Debugger und den Remote-Debugger.
Dank automatisch gespeicherter Ausdrücke müssen Sie zuvor ausgewertete Ausdrücke nicht mehr erneut eingeben, was eine bessere Debugging-Erfahrung gewährleistet. Mit der neuen „Pin“-Funktion können Sie wichtige Ausdrücke immer im Zugriff behalten.
Außerdem erhalten Sie mehr Kontrolle durch lokale Variablen, Zeilenausdrücke und benutzerdefinierte Ausdrücke in der Ausdrucksüberwachung.
Und schließlich bietet die neu gestaltete Oberfläche eine übersichtlichere, intuitivere Debugging-Umgebung.
Code & Formular-Editor
Die 4D Entwicklungsumgebung hat einen großen Schritt nach vorne gemacht. Mit den Feature-Releases, die zu 4D 21 LTS führen, erhalten der Code- und Formular-Editor intelligentere Warnungen, eine stärkere Validierung, sauberere Bearbeitungswerkzeuge und einen besseren Einblick in potenzielle Probleme, lange bevor sie die Laufzeit erreichen.
Ganz gleich, ob Sie Geschäftslogik verfeinern, dynamische Schnittstellen erstellen oder große Codebasen pflegen, diese Verbesserungen helfen Ihnen, sich auf das Wesentliche zu konzentrieren: das Schreiben von klarem, zuverlässigem Code. Durch die Reduzierung von Störgeräuschen, die frühere Erkennung von Fehlern und die Straffung der Navigation durch Formulare unterstützt der Editor jetzt einen schnelleren und besser vorhersehbaren Entwicklungsworkflow.
Anpassen der Anzeige globaler Warnungen
Wenn Projekte wachsen, kann die Anzahl der Warnungen in Ihrem Code schnell ansteigen. Einige sind unverzichtbare Leitplanken, während andere vielleicht nicht zu Ihrem Codierungsstil oder Ihrer Architektur passen. Mit 4D 21 haben Sie jetzt die volle Kontrolle darüber, welche Warnungen für Sie wichtig sind.
Sie können auf Projektebene festlegen, welche Warnungen im Code-Editor und im Compiler-Dialog angezeigt werden sollen. So können Sie Warnungen ausblenden, die Sie für irrelevant halten, und sich auf diejenigen konzentrieren, die Ihnen wirklich helfen, Probleme frühzeitig zu erkennen.
Sie haben auch weiterhin die lokale Kontrolle. Selbst wenn eine Warnung global angezeigt oder ausgeblendet wird, können Sie sie mit den bekannten Schaltern //%W+ und //%W- für bestimmte Codeabschnitte aktivieren oder deaktivieren.
Diese Flexibilität macht es viel einfacher, sich zu konzentrieren, Störungen zu reduzieren und das Warnsystem an die Art und Weise anzupassen, wie Sie Ihre Anwendungen entwickeln.
Warnungen für veraltete Sprachelemente
4D 21 hilft Ihnen, Ihren Code modern zu halten, indem es Sie warnt, wenn Sie veraltete Sprachelemente verwenden. Befehle, Konstanten, Parameter und Typisierungsanweisungen, die nicht mehr empfohlen werden, lösen jetzt beispielsweise Warnungen aus:
-
C_LONGINT($1)
-
C_BOOLEAN($draw)
-
_O_USE INTERNAL DATABASE
Diese Elemente funktionieren zwar noch, werden aber nicht mehr in der Code-Vervollständigung angezeigt, um Sie zu ermutigen, auf eine neuere, unterstützte Syntax umzusteigen.
Wenn Sie möchten, können Sie diese Warnungen in den Struktureinstellungen deaktivieren.
Um die Introspektion zu vereinfachen, gibt der Befehl Command name jetzt zusätzlich zu den Informationen zur Thread-Sicherheit auch Details zur Veralterung zurück, so dass Sie schnell überprüfen können, ob ein Befehl aktualisiert werden sollte.
INTELLIGENTERE ECHTZEIT-SYNTAXPRÜFUNG FÜR FORMULARE
4D 21 bietet eine tiefere, intelligentere Syntaxprüfung für Formulare, die Ihnen hilft, Probleme früher zu erkennen und sauberen Code mit weniger Fehlversuchen zu schreiben.
Sie können jetzt eine Klasse mit einem Formular verknüpfen, was bedeutet, dass Ausdrücke wie Form.myProperty vollständig überprüft werden. Der Editor prüft diese Ausdrücke während der Eingabe, sowohl im Methodencode als auch in der Eigenschaftsliste, sodass Fehler sofort und nicht erst während der Kompilierung auftauchen.
Wenn Sie ein Formular mit DIALOG öffnen, instanziiert 4D die zugehörige Klasse auch dann automatisch, wenn kein Objekt angegeben wird. Dadurch wird das Formularobjekt vorhersehbar und konsistent, ohne dass zusätzliche Einstellungen erforderlich sind.
Damit Sie schneller vorankommen, bietet der Code-Editor jetzt die Autovervollständigung für Form und listet Klasseneigenschaften und -funktionen auf, so dass Sie sich nicht vertippen und von einem klareren, besser auffindbaren Code profitieren.
Verbesserter FORM EDIT Befehl
4D 21 macht die Formularbearbeitung schneller und intuitiver, indem es den Befehl FORM EDIT erweitert. Sie können jetzt ein Formular öffnen und automatisch ein bestimmtes Objekt darin auswählen, so dass Sie direkt zu dem Element springen können, das Sie prüfen oder anpassen möchten.
Dies ist besonders nützlich, wenn Sie mit Analysetools, Fehlerberichten oder Refactoring-Utilities arbeiten. Anstatt durch mehrere Formularseiten zu navigieren, um ein Objekt zu finden, können Sie mit einem einzigen Befehl direkt dorthin springen:
Visual Studio Code-Erweiterung
KI-unterstützte Entwicklung wird immer mehr zu einem Teil des täglichen Codierens. Vom Schreiben von Code und dem Aufspüren von Fehlern bis hin zum Generieren kompletter 4D-Formulare mit CSS, Formularklassen und Formularmethoden – KI verändert die Geschwindigkeit, mit der Sie arbeiten. Mit Copilot in Visual Studio Code und der vollen Unterstützung durch die Erweiterungen 4D Analyzer und 4D Debugger können Sie KI sicher einsetzen und gleichzeitig Ihren Code sauber, validiert und einfach zu debuggen halten. Hier geht es nicht nur um KI-gestützte Programmierung. Es geht darum, Ihnen einen intelligenteren, schnelleren und kontrollierteren Entwicklungsworkflow zu ermöglichen.
Formatieren Sie Ihren 4D Code in Visual Studio Code
4D 21 bringt eine willkommene Verbesserung für die VS Code-Erweiterung: die integrierte Code-Formatierung.
Wenn Sie häufig 4D Methoden oder Klassen in VS Code bearbeiten, erhalten Sie jetzt eine Formatierung, die mit dem in 4D verwendeten Stil übereinstimmt, so dass sich beide Umgebungen konsistent anfühlen und der Wechsel zwischen ihnen einfacher ist.
Sie können eine ganze Datei oder nur eine Auswahl formatieren, genau wie bei anderen Sprachen in VS Code. Der Formatierer übernimmt die Einrückung, den Abstand und die Groß- und Kleinschreibung von Befehlen, Schlüsselwörtern und Konstanten, wobei die Einrückungseinstellungen von VS Code berücksichtigt werden.
4D Dokumentation DIREKT IN VS CODE anzeigen
Die 4D-Analyzer Erweiterung bietet einen praktischen Shortcut zum Nachschlagen der Dokumentation während der Programmierung im Visual Studio Code Editor.
Wenn Sie mit dem Mauszeiger über einen 4D Befehl, eine Klasse oder eine Klassenfunktion fahren, erscheint jetzt ein Tooltip mit einer kurzen Beschreibung. Am unteren Rand befindet sich ein Link„4D Dokumentation anzeigen“, der Sie direkt zur vollständigen Seite in den offiziellen 4D Dokumenten führt, die automatisch in Ihrem Browser geöffnet werden.
Arbeitsbereich-Syntax-Prüfung
Die 4D-Analyzer Erweiterung bringt das Workspace Syntax Checking vollständig in Visual Studio Code. Anstatt nur die Datei zu überprüfen, die Sie gerade bearbeiten, kann VS Code jetzt Ihr gesamtes 4D Projekt scannen und Probleme sofort hervorheben.
Fehler und Warnungen werden im VS Code-Panel Probleme angezeigt, gruppiert nach 4D Methode oder Klasse. Ein einziger Klick führt Sie direkt zu der entsprechenden Zeile, was die Bereinigung schnell und vorhersehbar macht. Inline-Hervorhebungen und Tooltips helfen Ihnen außerdem, Probleme genau dort zu verstehen, wo sie auftreten.
Automatischer Tool4D-Download
Mit der Version 0.2.0 der 4D-Analyzer-Erweiterung muss eine 4D-Anwendung nicht mehr manuell installiert und ihr Pfad in die Parameter der Erweiterung eingegeben werden. Die Erweiterung lädt automatisch eine Version von tool4d herunter, speichert sie an einem Ort auf dem System und startet sie im Hintergrund. Diese Vereinfachung zielt darauf ab, den Einstieg in die Entwicklung mit VS Code for 4D zu erleichtern und zu verbessern.
GitHub Codespaces
Die Codespaces von GitHub vereinfachen die Remote-Entwicklung, indem sie die Bearbeitung von Repositories von überall aus über Visual Studio Code oder die Codespaces-Anwendung ermöglichen.
Mit der Integration von 4D Projekten können Entwickler ihre Coding-Erfahrung mit Tools wie 4D-Analyzer verbessern, die Funktionen wie Code-Hervorhebung und Autovervollständigung bieten. Wie im obigen Abschnitt beschrieben, lädt 4D-Analyzer automatisch die Version der tool4d Anwendung, die Sie definiert haben, herunter und aktualisiert sie. 4D hat eine spezielle Version, tool4d, für GitHub veröffentlicht, um dies in einer Codespace-Umgebung zu ermöglichen.
Debugging von 4D Code direkt in Visual Studio Code
4D 21 stellt die neue 4D-Debugger Erweiterung für Visual Studio Code vor, die das Debugging mit leistungsstarken Funktionen wie dem Setzen von Breakpoints, dem Steppen durch den Code und dem Inspizieren von Variablen direkt in VS Code verbessert. Dieses Tool baut auf dem 4D-Analyzer auf und lässt sich nahtlos integrieren, so dass das Debugging schneller und intuitiver wird.
Installieren Sie die 4D-Debugger Erweiterung aus dem VS Code Marketplace. Stellen Sie sicher, dass ein 4D Server auf Ihrem Rechner läuft, und konfigurieren Sie die Verbindung in der Datei .vscode/launch.json. Sie können sich auch mit einem bestehenden Server verbinden, indem Sie den Standard-Debugger-Port verwenden.
Benutzeroberfläche
Die Benutzeroberfläche von 4D 21 ist flexibler und entwicklerfreundlicher geworden – von der Fensteranpassung bis hin zu besserem Scrollen, Symbolsteuerung und übersichtlicheren Katalogen mit Versionskontrolle. Diese Verbesserungen helfen Ihnen bei der Erstellung von Oberflächen, die sich ausgefeilt und modern anfühlen, und vereinfachen gleichzeitig die Zusammenarbeit, das Debugging und die Wartung hinter den Kulissen.
Neue Fenstertypen zur Anpassung des Erscheinungsbildes von Anwendungen
Zwei neue Fenstertypen ermöglichen es Ihnen, die Titelleiste des Fensters selbst zu gestalten und eigene Elemente, wie Schaltflächen oder ein Suchfeld, hinzuzufügen. Das bedeutet völlige Freiheit bei der Anpassung des Erscheinungsbildes Ihrer Anwendung an Ihre Vorgaben.
Aber das ist noch nicht alles! Wir haben auch mehrere neue Befehle eingeführt, um Ihren Entwicklungsprozess zu optimieren:
- Verkleinern Sie ein Fenster in der Titelleiste unter Windows oder im Dock unter macOS, REDUCE RESTORE WINDOW
- Erkennen, ob das Fenster in der Titelleiste unter Windows oder im Dock unter macOS verkleinert ist, Is Window Reduced
- Erkennen, ob das Fenster maximiert ist, Is Window Maximized.
Benutzerdefinierte Symbole für jeden Fenstertyp
Mit dem Befehl SET WINDOW DOCUMENT ICON können Sie für jeden Fenstertyp ein benutzerdefiniertes Symbol festlegen und so die Navigation und das Benutzererlebnis verbessern. Mithilfe der Befehlssyntax können Sie ein Symbol oder ein Dokument für ein Fenster festlegen und so Ihre Benutzeroberfläche optisch ansprechender gestalten. Das Symbol wird im Fenster und in der Windows-Taskleiste angezeigt und bietet klare visuelle Hinweise. Diese Funktion unterstützt auch die Verknüpfung von Symbolen mit Dokumenten und bietet so zusätzliche Anpassungsmöglichkeiten.
Verbessertes Scrolling-Verhalten in Unterformularen
4D 21 macht die Arbeit mit Unterformularen in Ihren Anwendungen für den Benutzer viel flüssiger und intuitiver!
Haben Sie sich schon einmal geärgert, wenn Sie in einem Unterformular durch eine Liste blättern wollten und sich stattdessen das gesamte Unterformular bewegt hat? Oder haben Sie versucht, das Unterformular zu scrollen, aber das Listenfeld lässt sich nicht bewegen?
4D 21 behebt dieses Problem mit einem neuen, verbesserten Verhalten beim Scrollen von Unterformularen.
Einführung von „Blank if null“ für Zeitspalten und Fußzeilen
Mit 4D 21 ist die Eigenschaft „Blank if null“ jetzt auch für Spalten und Fußzeilen vom Typ „Zeit“ in Listboxen verfügbar und behebt damit eine langjährige Einschränkung.
Sie können das Anzeigeverhalten einfach über das Anzeigethema oder durch Programmierung festlegen. Diese Verbesserung sorgt für klarere und intuitivere Ergebnisse, unabhängig davon, ob Sie ein einfaches Kontrollkästchen oder eine Codezeile verwenden.
Benutzerdefinierte Parameter für die Initialisierung des eingebetteten Webbereichs
4D 21 macht es einfacher, den eingebetteten Webbereich in Ihren Anwendungen anzupassen! Dieser Bereich verwendet Chromium zum Browsen, und Entwickler müssen manchmal die Funktionsweise von Chromium anpassen.
Bisher waren dafür komplexe Code-Änderungen erforderlich. Mit 4D 21 können Sie jetzt einfach eine Datei mit dem Namen„4DCEFParameters.json“ erstellen und die gewünschten Anpassungen in dieser Datei angeben. Das macht die Verwaltung viel einfacher und stellt sicher, dass Ihre Anpassungen korrekt angewendet werden.
Mit dieser Funktion können zum Beispiel Videos automatisch in Ihrem Webbereich abgespielt werden, was vorher nicht möglich war.
Verwenden Sie eine Klasse in eingebetteten Webbereichen mit $4d
Steuern Sie den Zugriff auf 4D Methoden in Ihren Webbereichen, indem Sie genau definieren, welche Funktionen über $4d zugänglich sind. Mit dem neuen WA SET CONTEXT Befehl in 4D 21 können Sie verfügbare Funktionen mit Hilfe von Klassenmethoden oder objektbasierten Kontexten kapseln und einschränken, was die Sicherheit erhöht, die Codeorganisation verbessert und die Wartung vereinfacht.
Verbesserte Formeleditierung und Sicherheit im Label Wizard
4D 21 verbessert die Komponente Label Wizard und macht das Einfügen und Ändern von Formeln in Ihren Etiketten einfacher und sicherer. Jetzt können Sie Formeln über eine spezielle Schaltfläche oder ein Menüelement schnell hinzufügen und sie direkt im Formeleditor überprüfen.
Dieses Update erhöht die Sicherheit, indem es bösartige Formeln herausfiltert und die Erstellung gültiger Formeln durch das Blockieren unzulässiger Befehle gewährleistet. Auch die Bearbeitung wird vereinfacht: Ein Doppelklick genügt, um die Formel zu öffnen und Änderungen vorzunehmen.
Nicht blockierendes Drucken
4D 21 führt den blockierungsfreien Druck ein , der die gleichzeitige Ausführung mehrerer Druckaufträge ermöglicht und die Reaktionsfähigkeit der Anwendung verbessert. Die Standardaktivierung in neuen Projekten sorgt für ein nahtloses Erlebnis, aber ältere Anwendungen müssen dies in den Kompatibilitätsoptionen der Struktureinstellungen aktivieren.