Scrivere codice generico con ORDA

Tradotto automaticamente da Deepl

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:

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.