Pokud jde o ORDA, 4D v18 R3 je plný dobrých zpráv! Máte k dispozici nové členské metody, které ještě více zlepší vaše zkušenosti s kódováním.
Pro začátek bylo výrazně obohaceno získávání dat z výběru entit, což vám umožní vytvořit plně přizpůsobenou kolekci s daty z výběru entit .
Kromě toho vám poskytujeme způsob, jak výběru entit naznačit, že jeho data je třeba okamžitě obnovit ze serveru, a zneplatnit tak data uložená v mezipaměti.
Zajímají vás některé podrobnosti? Čtěte dál, vše, co potřebujete vědět, najdete níže.
extrahovat data z výběru entit
Nový extract() member method je k dispozici při výběru entity.
Nyní můžete z výběru entit vytvořit vlastní kolekci!
Příklad 1
V extract() member můžete zadat atributy datové třídy, které chcete extrahovat, a jejich názvy ve výsledné kolekci.
Je dána tato jednoduchá databáze:
Vytvoříme kolekci $mailing objektů s konkrétními názvy vlastností: „recipient“, „city“, „zipCode“.
C_COLLECTION($mailing)
$mailing :=ds.Interns.all().extract("příjmení"; "příjemce";\
"zaměstnavatel.město"; "město";\
"zaměstnavatel.zipCode"; "zipCode")
a zde je výsledek
$mailing kolekce:
[ {recipient:Hodge,city:Blakeslee,zipCode:18610}, {recipient:Metzler,city:Medfield,zipCode:02052}, {recipient:Broyles,city:Madison,zipCode:13402} ]
Příklad 2
Všimněte si, že atributy datové třídy, které jsou příbuznou entitou, lze extrahovat jako kolekci entit.
Možným případem použití je zpracování kolekce entit z různých datových tříd.
V následujícím příkladu sestavíme kolekci Form.partners, která obsahuje entity z datových tříd Company a School.
C_COLLECTION($companies;$schools)
// $companies is a collection of entities of Company dataclass
$companies :=ds.Interns.all().extract("zaměstnavatel")
// $schools is a collection of entities of School dataclass
$schools :=ds.Interns.all().extract("škola")
Form .
partners:=$companies.concat($schools)
// Form.partners is a collection
Pak je kolekce Form.partners připravena k zobrazení v seznamu!
Podívejte se do dokumentace pro refresh() a . extract() členské metody a dozvíte se více!
Obnovení výběru entit
Nový refresh() členská metoda je k dispozici při výběru entit. Zneplatní data výběru entit v mezipaměti ORDA, takže při příštím použití dat vyvolá aktualizaci ze serveru.
Ve výchozím nastavení vyprší platnost mezipaměti ORDA po 30 sekundách, takže použijte metodu refresh() member metodu pouze v případě, že potřebujete aktuální data okamžitě.
Příklad
Máte některé atributy výběru entit Form.invoices zobrazené v seznamu a v daném okamžiku chcete zobrazit aktualizace provedené jinými klienty na těchto atributech výběru entit. Snadno! Stačí použít příkaz refresh() metodu member.
Form.invoices.refresh()
// The Form.invoices entity selection displayed data will be refreshed from the server