ORDA: Novità per i metodi di selezione delle entità

Tradotto automaticamente da Deepl

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.

blank

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

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

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.