ORDA: Převratné novinky pro metody výběru entit

Automaticky přeloženo z Deepl

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.

blank

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!blank

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

Avatar
• Product Owner • Marie-Sophie Landrieu-Yvert se připojila k programovému týmu 4D jako Product Owner v roce 2017. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Marie-Sophie vystudovala inženýrskou školu ESIGELEC a svou kariéru zahájila jako inženýrka v IBM v roce 1995. Podílela se na různých projektech (projekty údržby nebo výstavby) a pracovala jako vývojářka Cobol. Poté pracovala jako UML designer a Java developer. V poslední době byly jejími hlavními rolí analyzovat a psát funkčních požadavky a koordinovat obchodní a vývojové týmy.