ORDA è una delle principali innovazioni di 4D v17, per questo motivo stiamo dedicando un’intera serie di post del blog a ORDA. Sebbene ORDA abbia concetti propri molto diversi dall’approccio classico, è comunque possibile combinare ORDA con il codice esistente.
In breve, questo post vi mostrerà come aggiornare la selezione corrente di una tabella da una selezione di entità e come ottenere una selezione di entità dalla selezione corrente di una tabella. Vi permetterà di integrare senza problemi i concetti diORDA nel vostro codice 4D esistente, passo dopo passo.
Esempio: dalla selezione di entità alla selezione corrente e viceversa
INTRODUZIONE
Con ORDA, l’accesso ai dati avviene attraverso un livello di astrazione: il datastore. Un datastore è un oggetto che fornisce un’interfaccia al database e ai suoi dati attraverso gli oggetti. Ricordiamo che in ORDA ogni tabella è mappata con una classe di dati.
Una volta ottenuta una selezione di entità relativa a una classe di dati, è possibile aggiornare la selezione corrente della [Tabella] corrispondente con il comando USE ENTITY SELECTION con il comando Inoltre, una volta che si dispone di una selezione corrente su una [Tabella], si può ottenere una selezione di entità relativa alla classe di dati corrispondente con il comando Create entity selection comando.
Per guidarvi nell’esplorazione delle funzionalità di ORDA , abbiamo preparato un glossario dei diversi termini e concetti, insieme alla loro definizione.
Esempio di codice
Selezione corrente da una selezione di entità
Nel codice sottostante, la selezione dell’entità $entitySelection è relativa alla classe di dati Employee che corrisponde alla tabella [Employee] con lo stesso nome. Il comando USE ENTITY SELECTION aggiorna di conseguenza la selezione corrente della tabella.
C_OBJECT($entitySelection)
$entitySelection :=ds.Employee.query("lastName=:1"; "R@")
// The current selection of the [Employee] table is replaced according to the content of $entitySelection
USE ENTITY SELECTION (
$entitySelection)
//... Go on with your classic 4D code ...
PRINT SELECTION (
[Employee])
//...
selezione dell’entità da Selezione attuale
In questo caso, la selezione corrente è stata aggiornata dopo aver eseguito una query sulla tabella [Employee]. Il comando Create entity selection() crea di conseguenza la selezione di entità $entitySelection. La selezione di entità creata è collegata alla tabella Employee dataclass.
C_OBJECT($entitySelection)
// The current selection of the [Employee] table is updated after the query
QUERY ([Employee])
// $entitySelection is created from the current selection of the [Employee] table
$entitySelection :=Create entity selection([Employee])