ORDA è stato uno dei principali annunci del 4D Summit 2018, che ha aperto un mondo di nuove possibilità in 4D. Per saperne di più su ORDA e sui suoi vantaggi, consultate questo post per vedere come ORDA cambierà il vostro modo di lavorare.
INTRODUZIONE
Con ORDA si accede ai dati attraverso un livello di astrazione: il datastore. Un datastore è un oggetto che fornisce un’interfaccia al database e ai suoi dati attraverso gli oggetti. Ad esempio, una tabella è mappata su un oggetto dataclass, un campo è un attributo di un dataclass. Il comando nuovo ds restituisce un riferimento al datastore dell’applicazione. Per saperne di più, consultate l’articolo sulla panoramica nella documentazione.
Per guidarvi nell’esplorazione delle funzionalità di ORDA , abbiamo preparato un glossario dei diversi termini e concetti, insieme alla loro definizione.
ORDA fornisce anche alcune informazioni utili sulla struttura del database.
Questo può essere molto utile quando si scrive codice generico…. senza conoscere la struttura di un database.
Scaricate lo strumento di ordinamento dinamico TIP
Ecco un esempio:
Poiché il datastore restituito dal comando ds è un oggetto, può essere iterato con un ciclo for each per ottenere i suoi attributi (ovvero le classi di dati).
Questo permette di scrivere codice generico applicabile a tutte le tabelle esposte nel dataStore.
Nell’esempio che segue, si costruisce una collezione di oggetti contenenti le dataClass.
C_OBJECT($dataClassObj)
C_TEXT ($dataClassName)
For each ($dataClassName;ds)
$dataClassObj :=New object
$dataClassObj .name:=$dataClassName
$dataClassObj .value:=ds[$dataClassName]
Form .dataClassList.push($dataClassObj)
End for each
Questo insieme può essere visualizzato in una casella di riepilogo per consentire agli utenti di selezionare una dataClass. Poi, si può continuare con il codice generico sulla dataClass selezionata.
Un oggetto dataClass può anche essere iterato con un ciclo for each per ottenere i suoi attributi contenenti proprietà utili:
-
- nome: nome dell’attributo dataClassAttribute nel modello dei dati
- kind: la categoria dell’attributo:
- “storage”: equivalente a un campo nel database 4D
- “relatedEntity”: un attributo di relazione N -> 1
- “relatedEntities”: attributo di relazione 1 -> N
- relatedDataClass: il nome della classe di dati correlata all’attributo (se il tipo è “relatedEntity” o “relatedEntities”)
Date tutte queste informazioni, è possibile scrivere codice generico senza conoscere la struttura del database.
Nell’esempio di database TIP fornito, imparerete a selezionare dinamicamente:
- selezionare una dataClass del dataStore,
- costruire una casella di riepilogo con tutte le proprietà della classe di dati, compresa l’entità correlata di primo livello, e
- costruire uno strumento di ordinamento.
Ecco una panoramica di questo TIP: