Was ist neu in 4D 20 R10

AI-Integration

NEUE native Klasse 4D.VECTOR

Bei der Entwicklung intelligenter Funktionen – semantische Suche, Dokumentenklassifizierung, Bildgruppierung – geht es nicht mehr nur um die Speicherung von Daten. Sie organisieren die Bedeutung. Und das beginnt mit Vektoren.

4D 20 R10 führt 4D.Vector ein, eine native, speichereffiziente Klasse, die für die Speicherung und Bearbeitung hochdimensionaler numerischer Daten entwickelt wurde. Sie wurde für leistungsunterstützende Operationen wie Kosinusähnlichkeit, Punktprodukt und Normalisierung direkt in 4D entwickelt.

Hier geht es nicht darum, KI hinzuzufügen. Es geht darum, KI-native Workflows zum Bestandteil Ihres Datenmodells zu machen. Ganz gleich, ob Sie Produktbeschreibungen vergleichen, Support-Tickets clustern oder Bilder nach ihrem Inhalt ordnen, mit 4D.Vector können Sie die Bedeutung berechnen und vergleichen – schnell, präzise und ohne externe Hilfsmittel.

Und ja, Sie können diese Vektoren in Ihrer Datenbank speichern. Verwenden Sie sie in klassentypischen Feldern. Sortieren Sie nach Ähnlichkeit. Das ist alles, was ein modernes intelligentes System braucht – eingebaut in den Kern Ihrer Anwendung.

Vektorgenerierung über OpenAI im AI Kit

4D 20 R10 erweitert das AI Kit mit nativer Unterstützung für OpenAIs Vektorgenerierungs-API. Die neue Methode OpenAIEmbeddingsAPI.create() wandelt Strings oder Sammlungen in 4D.Vector Instanzen um – sofort verwendbar in Ähnlichkeitsscoring, Rankingsystemen oder semantischen Filtern.

Keine Token-Verwaltung. Keine HTTP-Verarbeitung. Kein Antwort-Parsing. Nur direkte, typisierte Vektoren für intelligente Arbeitsabläufe, die in einer einzigen Codezeile erzeugt werden.

DATENBANK

KLASSENTYPISIERTE OBJEKTFELDER 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.

Weisen Sie einem Objektfeld eine Benutzerklasse zu und Sie erhalten:

  • Autovervollständigung auf Eigenschaftsebene

  • Syntaxprüfung zur Kompilierzeit

  • Laufzeitvalidierung der Objektform

Wenn das Objekt nicht mit der deklarierten Klasse übereinstimmt, gibt 4D eine Fehlermeldung aus – die 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.

UNTERSTÜTZUNG FÜR UUIDS DER VERSION 7

Die UUID-Generierung ist jetzt noch intelligenter geworden. UUID.generate() unterstützt jetzt Identifikatoren der Version 7. 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 eine geordnete Speicherung eignen und leichter indiziert werden können. Eine kleine Änderung mit großen Auswirkungen auf Skalierung und Abfrageleistung.

ORDA

Entity-Konstruktoren und onTouch() Ereignis

4D 20 R10 führt die Unterstützung von Konstruktoren und das Ereignis onTouch() für Datenklassen-Entitäten ein.

Verwenden Sie Konstruktoren, um Werte bei der Instanziierung zu initialisieren – ideal für das Setzen von Zeitstempeln, Standardwerten oder kontextabhängigen Eigenschaften. Verwenden Sie onTouch(), um zu reagieren, wenn sich Attribute im Speicher ändern, und ermöglichen Sie so Validierung, Normalisierung oder Feldweitergabe in Echtzeit.

Beide werden standardmäßig serverseitig ausgeführt (mit clientseitiger Ausführung über local). Dies ist der Beginn einer lebenszyklusorientierten Datenlogik – zentralisiert, vorhersehbar und nativ in der ORDA-Schicht.

BENUTZERINTERFACE

DYNAMISCHE FORMELN FÜR FORMULAROBJEKTE

Ihre UI-Logik ist jetzt noch intelligenter. Mit OBJECT SET DATA SOURCE FORMULA können Sie jetzt Werte von Formularobjekten direkt an Formeln binden .

Das bedeutet, dass sich Werte dynamisch auf der Grundlage von Berechnungen, Variablen oder Kontext ändern können, ohne dass eine Bindung an statische Felder erforderlich ist.

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.

NETWORK-Behandlung

NEUE UDP-BEFEHLE

Die neue Klasse4D.UDPSocket bietet Ihnen native Unterstützung für das User Datagram Protocol. Es ist schnell, verbindungslos und eignet sich hervorragend für die Kommunikation mit geringer Latenz.

Richten Sie Rückrufe wie onData, onError und onTerminate ein. Senden und empfangen Sie Pakete mit send(). Prüfen Sie Metadaten mit 4D.UDPEvent. Und verfolgen Sie den Verkehr in der gemeinsamen Datei 4DTCPUDPLog.txt.

UDP ist jetzt erstklassig und ereignisgesteuert. Perfekt für Echtzeit-Gerätesignale, Erkennungsprotokolle oder interne Nachrichtenübermittlung mit geringem Overhead.

TCP-VERBINDUNGS-TIMEOUT-KONTROLLE

Die Klasse TCPConnection verfügt jetzt über eine .connectionTimeout Eigenschaft, mit der Sie die Reaktionsfähigkeit feinabstimmen können. Legen Sie Schwellenwerte für die Latenz fest, beenden Sie lang laufende Anfragen und behandeln Sie Netzwerkfehler schneller.

Kein Einfrieren der Benutzeroberfläche mehr. Keine unendlichen Wartezeiten mehr. Einfach nur eine klare Kontrolle über das Netzwerkverhalten.

Abhängigkeitsmanager

REKURSIVE AUFLÖSUNG UND VERWALTUNG VON ABHÄNGIGKEITEN

Der Komponentenmanager versteht jetzt den gesamten Baum. Wenn Ihre Komponente andere Komponenten benötigt, werden diese automatisch geladen. Wenn ein zirkulärer Verweis existiert, wird er blockiert, bevor er Sie stört.

Diese Funktion führt ein:

  • Rekursive Erkennung von Abhängigkeiten

  • Auflösung der Lastreihenfolge

  • Fehlererkennung für zyklische Graphen

Sie schreiben modulare, wiederverwendbare Komponenten. 4D sorgt dafür, dass sie korrekt geladen werden. Jedes Mal.

4D Netkit

Erstellen, Aktualisieren und Löschen von Ereignissen in Microsoft 365 und Google Calendars

cs.NetKit.Office365.calendar und Klassen unterstützen jetzt das komplette Lebenszyklusmanagement für Kalenderereignisse. cs.NetKit.Google.calendar

Diese APIs geben Ihnen präzise Kontrolle über:

  • Start- und Endzeiten

  • Teilnehmerverwaltung

  • Wiederholungsregeln

  • Online-Meeting-Links

  • Benachrichtigungen an Gäste

  • Veranstaltungskategorien und -beschreibungen

Verwalten Sie Kalender-Workflows – Terminplanung, Erinnerungen, automatische Buchungen und sogar die Integration von Teams oder Google Meet – sicher und nahtlos in einer einzigen Codezeile, unterstützt durch OAuth2-Authentifizierung.

ANWENDUNG ERSTELLEN

BuildApp Lizenz-Automatisierung

DerBuildApp Prozess beinhaltet nun eine automatische Lizenzintegration. Wenn Ihr Rechner über gültige Deployment-Lizenzen verfügt, werden diese direkt in Ihre erstellte Anwendung integriert.

Neue Optionen im Build-Dialog – und eine neue boolesche Taste AutomaticLicenseIntegration in BuildApp.4DSettings– ermöglichen es Ihnen, zwischen manuellen, automatischen oder Evaluierungslizenzmodi zu wechseln. Keine Lizenzpfade. Keine maschinenspezifischen Übersteuerungen. Nur nahtlose, portable Builds.

In den Build-Protokollen wird jetzt die Lizenznutzung nachverfolgt, und die Benutzeroberfläche zeigt deutlich an, welche Ziele nach dem Build erstellt wurden.

SICHERHEIT

Sicheres Einfügen für Formeln

Formeln, die von außerhalb Ihrer 4D Anwendung kopiert werden, werden jetzt nur noch als Werte eingefügt.

Diese Änderung betrifft Multi-Style Eingaben und 4D Write Pro Felder. Wenn die Formel noch nie berechnet wurde, wird ihre Quelle als reiner Text eingefügt. Andernfalls wird nur das ausgewertete Ergebnis (Text oder Bild) beibehalten.

Es handelt sich um eine stille Behebung einer stillen Schwachstelle – und um einen sichereren Standard für kollaborative Umgebungen.

BIBLIOTHEK ENTFERNT

MECAB ENTFERNT

Die MeCab-Bibliothek für die Segmentierung japanischer Texte wurde entfernt. Ursprünglich für die Schlüsselwortsuche eingeführt, wurde MeCab seit über einem Jahrzehnt nicht mehr aktualisiert. Es fehlte die Möglichkeit zur Anpassung von Wörterbüchern und stellte ein Wartungsrisiko dar.

Wenn Sie eine benutzerdefinierte Tokenisierung benötigen, können Sie Ihre eigene Logik über ORDA und komponentenbasierte Abfragen implementieren.