Wenn es um ORDA geht, ist 4D v18 R3 voller guter Nachrichten! Neue Methoden stehen Ihnen zur Verfügung, um Ihre Codierungserfahrung weiter zu verbessern.
Zunächst einmal wurde die Extraktion von Daten aus einer Entitätsauswahl stark erweitert, so dass Sie eine vollständig angepasste Sammlung mit Ihren Entitätsauswahldaten erstellen können.
Darüber hinaus bieten wir Ihnen eine Möglichkeit, einer Entitätsauswahl mitzuteilen, dass ihre Daten sofort vom Server aktualisiert werden müssen , wodurch zwischengespeicherte Daten ungültig werden.
Interessieren Sie sich für einige Details? Lesen Sie weiter, alles, was Sie wissen müssen, finden Sie unten.
Daten aus einer Entitätsauswahl extrahieren
Die neue extract() Member-Methode ist für eine Entitätsauswahl verfügbar.
Sie können nun eine benutzerdefinierte Sammlung aus einer Entity-Auswahl erstellen!
Beispiel 1
In der extract() member-Methode können Sie die Datenklassenattribute, die Sie extrahieren möchten, und deren Namen in der resultierenden Sammlung angeben.
Nehmen wir diese einfache Datenbank:
Wir erstellen eine $mailing Sammlung von Objekten mit bestimmten Eigenschaftsnamen: „Empfänger“, „Stadt“, „Postleitzahl“.
C_COLLECTION($mailing)
$mailing :=ds.Interns.all().extract("nachname"; "empfänger";\
"arbeitgeber.stadt"; "stadt";\
"arbeitgeber.zipCode"; "zipCode")
und hier ist die resultierende
$mailing Sammlung:
[ {recipient:Hodge,city:Blakeslee,zipCode:18610}, {recipient:Metzler,city:Medfield,zipCode:02052}, {recipient:Broyles,city:Madison,zipCode:13402} ]
Beispiel 2
Beachten Sie, dass Datenklassenattribute, die eine verwandte Entität sind, als eine Sammlung von Entitäten extrahiert werden können.
Ein möglicher Anwendungsfall ist die Verarbeitung einer Sammlung von Entitäten aus verschiedenen Datenklassen.
Im folgenden Beispiel wird die Sammlung Form.partners erstellt, die Entitäten aus den Datenklassen Unternehmen und Schule enthält.
C_COLLECTION($companies;$schools)
// $companies is a collection of entities of Company dataclass
$companies :=ds.Interns.all().extract("Arbeitgeber")
// $schools is a collection of entities of School dataclass
$schools :=ds.Interns.all().extract("Schule")
Form .
partners:=$companies.concat($schools)
// Form.partners is a collection
Dann ist die Sammlung Form.partners bereit, in einem Listenfeld angezeigt zu werden!
Lesen Sie die Dokumentation für die refresh() und extract() um mehr zu erfahren!
Aktualisieren einer Entitätsauswahl
Die neue refresh() Member-Methode ist für eine Entitätsauswahl verfügbar. Sie macht die Entitätsauswahldaten im ORDA-Cache ungültig, so dass bei der nächsten Verwendung der Daten eine Aktualisierung vom Server ausgelöst wird.
Standardmäßig läuft der ORDA-Cache nach 30 Sekunden ab, daher sollten Sie die refresh() member-Methode nur für den Fall, dass Sie sofort aktuelle Daten benötigen.
Beispiel
Sie haben einige Attribute der Entitätsauswahl Form.invoices in einem Listenfeld angezeigt und möchten zu einem bestimmten Zeitpunkt die Aktualisierungen anzeigen, die von anderen Clients für diese Entitätsauswahlattribute vorgenommen wurden. Ganz einfach! Verwenden Sie einfach die refresh() member-Methode.
Form.invoices.refresh()
// The Form.invoices entity selection displayed data will be refreshed from the server