Per quanto riguarda ORDA, 4D v18 R3 è pieno di buone notizie! Sono disponibili nuovi metodi membri per migliorare ulteriormente la vostra esperienza di codifica.
Per cominciare, l’estrazione dei dati da una selezione di entità è stata notevolmente arricchita, consentendo di costruire una collezione completamente personalizzata con i dati della selezione di entità .
Inoltre, vi forniamo un modo per indicare a una selezione di entità che i suoi dati devono essere aggiornati immediatamente dal server, invalidando i dati nella cache.
Siete interessati ad alcuni dettagli? Continuate a leggere, tutto quello che c’è da sapere è qui sotto.
estrarre dati da una selezione di entità
Il metodo nuovo extract() è disponibile per la selezione di un’entità.
Ora è possibile creare una raccolta personalizzata da una selezione di entità!
Esempio 1
Nel metodo extract() è possibile specificare gli attributi della classe di dati che si desidera estrarre e i loro nomi nell’insieme risultante.
Dato questo semplice database:
Costruiamo una raccolta $mailing di oggetti con nomi di proprietà specifici: “destinatario”, “città”, “CAP”.
C_COLLECTION($mailing)
$mailing :=ds.Interns.all().extract("lastname"; "recipient";\
"employer.city"; "city";\
"employer.zipCode"; "zipCode")
ed ecco il risultato
$mailing risultante:
[ {recipient:Hodge,city:Blakeslee,zipCode:18610}, {recipient:Metzler,city:Medfield,zipCode:02052}, {recipient:Broyles,city:Madison,zipCode:13402} ]
Esempio 2
Si noti che gli attributi delle classi di dati che sono entità correlate possono essere estratti come un insieme di entità.
Un possibile caso d’uso è quello di gestire un insieme di entità di diverse classi di dati.
Nell’esempio seguente, costruiamo l’insieme Form.partners che contiene entità delle classi di dati Azienda e Scuola.
C_COLLECTION($companies;$schools)
// $companies is a collection of entities of Company dataclass
$companies :=ds.Interns.all().extract("datore di lavoro")
// $schools is a collection of entities of School dataclass
$schools :=ds.Interns.all().extract("scuola")
Form .
partners:=$companies.concat($schools)
// Form.partners is a collection
Quindi, la collezione Form.partners è pronta per essere visualizzata in una casella di riepilogo!
Controllare la documentazione relativa agli attributi refresh() e extract() per saperne di più!
Aggiornare una selezione di entità
Il nuovo metodo refresh() è disponibile su una selezione di entità. Invalida i dati della selezione di entità nella cache di ORDA, in modo che la prossima volta che si utilizzano i dati, si attivi un aggiornamento dal server.
Per impostazione predefinita, la cache di ORDA scade dopo 30 secondi. refresh() solo nel caso in cui si abbia bisogno di dati aggiornati immediatamente.
Esempio
Alcuni attributi della selezione di entità Form.invoices sono visualizzati in una casella di riepilogo e, in un determinato momento, si desidera visualizzare gli aggiornamenti effettuati da altri client su tali attributi della selezione di entità. Facile! Basta usare il metodo refresh() il metodo member.
Form.invoices.refresh()
// The Form.invoices entity selection displayed data will be refreshed from the server