• IT
betterdocs-cat-icon 1-svg

Qualcosa è andato storto?

Condividi con noi la tua opinione per migliorare la nostra documentazione.

    Getting Started

    • Introduzione Instant Developer Cloud
    • Composizione della piattaforma
    • Struttura dei progetti
    • La programmazione relazionale
    • Apprendere l’uso di Instant Developer Cloud

    Struttura di un'applicazione

    • Introduzione (applicazione e sessione)
    • Le videate
    • Classi e librerie
    • Risorse e CSS
    • I pacchetti
    • Programmazione asincrona

    Struttura del database

    • Introduzione (struttura del database)
    • Definizione degli schemi relazionali
    • Scrittura di query ed esecuzione di comandi
    • Gestione dei database nel cloud
    • Il Cloud Connector

    Document Orientation

    • Introduzione Document Orientation
    • Definire Documenti e Collection
    • Utilizzo dei documenti
    • Estensione dei documenti

    Datamap

    • Introduzione Datamap
    • Creazione di liste di documenti
    • Modifica dei documenti con videate di dettaglio
    • Datamap innestate e ricorsive

    IonicUI

    • Introduzione IonicUi
    • Le pagine IonicUI
    • Definire il contenuto delle pagine
    • Il page controller
    • Il metodo app.popup
    • Videate come elementi visuali
    • Personalizzazione di IonicUI
    • Configurazione dei ruoli e degli accessi

    Pannelli e Griglie

    • Introduzione (Pannelli e Griglie)
    • Anatomia di un pannello
    • I pannelli a runtime

    Web API e file system

    • Introduzione Web API
    • Il file system
    • Consumare Web API
    • Esporre Web API
    • Web API in formato OData
    • Utilizzare Web API Instant Developer Foundation
    • Web API in formato OpenAPI

    Sincronizzazione

    • Introduzione sistema di sincronizzazione
    • Scambio di messaggi in tempo reale
    • Document Orientation Remota
    • Sincronizzazione del database offline

    Debugging e Test

    • Introduzione Debugging e Test
    • Strumenti e tecniche di debug
    • Test automatico delle applicazioni

    Traduzioni

    • Introduzione (traduzioni)
    • Processo di traduzione
    • Funzionamento del framework di localizzazione
    • Localizzazione di numeri e date

    Integrazioni di componenti esterni

    • Introduzione (integrazioni di componenti esterni)
    • Integrazione di componenti JavaScript
    • Integrazione di librerie di back-end
    • Integrazione di un plugin Cordova

    Launcher e Pubblicazione

    • Introduzione Launcher
    • I plugin nativi
    • Test delle applicazioni nei launcher
    • Pubblicazione sugli store
    • Configurazioni per gli store
    • Fase di build e di invio
    • Gestione dell’applicazione

    Analitiche e Feedback

    • Introduzione Analytics e Feedback
    • Installazione ed uso di Analytics
    • Raccolta dei feedback degli utenti

    Server di Produzione

    • Introduzione server di produzione
    • I server di Instant Developer Cloud
    • I server My Cloud
    • I server Self Managed
    • Tabella comparativa

    Cloud Connector

    • Cos’è il Cloud Connector
    • Installazione Cloud Connector
    • Configurazione
    • Installazione come servizio
    • Esempio di utilizzo
    • Controllo remoto
    • Note

    Team Works

    • Perché non basta GitHub?
    • Team Works: concetti base
    • Organizzazione del lavoro consigliata
    • Risoluzione dei problemi relativi a Team Works
    • Domande sull’utilizzo di Team Works

    Manuale PWA

    • Cos’è una PWA?
    • Creazione di una PWA su Instant Developer Cloud
    • Life Cycle
    • Installazione PWA
    • Funzionalità
    • Plugin
    View Categories

    Definire Documenti e Collection

    Contenuti
    • Proprietà unbound e proprietà derivate
    • Adattamento alla struttura del database

    Un documento è una classe del progetto Instant Developer Cloud che estende la classe base Application.Document. È possibile creare documenti sia a livello di applicazione che di libreria, ma siccome essi servono per gestire i dati del database, si consiglia di inserirli in una libreria in modo che siano utilizzabili da ogni applicazione presente nel progetto.

    WxvKpkG5Ix7W5ih9LQme4R31CMlljNQDhwrIdUtmdsQy6yUCt1WvnI3 PBK Uet90nYT6RJHHwmr9lI48t2H8B2ZeBaND8oXGEfnGWXVMjpdWhK2wMPyA1HIKsQw xrmPD4bVqCA2jnRSKGwZ8 X1Q Instant Developer

    Creazione di un documento in una libreria

    Dopo aver creato e nominato il documento è importante impostare la proprietà Derivato da scegliendo la tabella del database che tale documento deve gestire. A questo punto nel documento apparirà una cartella chiamata Properties in cui sono state inserite le proprietà di classe relative ad ogni campo della tabella.

    Per aggiungere le collection, è sufficiente utilizzare il comando +Collection del menu relativo all’oggetto documento, come si vede nell’immagine alla pagina seguente. Una collection è una proprietà di classe di tipo Collection, e per poterla collegare al database, occorre definire le seguenti proprietà:

    1. Tipo contenuto: la classe di documenti contenuti nella collection.
    2. Collegato a: la relazione del database da utilizzare per caricare la collection.
    3. Ordina per: proprietà opzionale che indica come comporre la clausola order by della query di caricamento.

    Riprendendo l’esempio precedente, volendo inserire nel documento Ordine la collection delle righe, occorre prima definire il documento RigaOrdine relativo alla tabella OrderDetails, poi è possibile aggiungere al documento Ordine una collection di nome righeOrdine, che contiene documenti di tipo RigaOrdine, collegata alla relazione OrdersFK. 

    RCgxzfBRs2lBQlYRIji5gXtfTkxSO Instant Developer

    Il documento Ordine a cui sta per essere aggiunta una collection

    Un metodo più veloce per definire documenti e collection è quello di derivarli direttamente dalla struttura del database, tramite il pulsante Crea documenti che appare nella parte centrale dell’IDE selezionando l’oggetto database nell’albero del progetto. Dopo averlo cliccato apparirà un elenco di tabelle per cui è possibile creare i documenti.

    La generazione dei documenti avviene come segue:

    1. Per ogni tabella selezionata viene generato un documento con lo stesso nome della tabella. Esso viene posizionato in una libreria che contiene già documenti derivati dallo stesso database; se una tale libreria non esiste, ne viene creata una nuova. Se esiste già un documento che deriva dalla stessa tabella, tale tabella non apparirà nell’elenco di quelle selezionabili per la generazione di documenti.
    2. Per ogni documento vengono generate le proprietà di classe relative a tutti i campi della tabella. Inoltre se la tabella ha relazioni di tipo possessivo con altre tabelle, vengono generate anche le relative collection. Una relazione è definita come possessiva se la regola di cancellazione è cascade.

    Al termine dell’operazione di generazione è possibile rinominare a piacere gli oggetti creati (librerie, documenti, proprietà e collection). Il modo consigliato è quello di dare ai documenti il nome della tabella in forma singolare per indicare che un’istanza del documento gestisce un singolo record di quella tabella; ad esempio il documento Prodotto gestirà i record della tabella Prodotti. 

    Proprietà unbound e proprietà derivate #

    Oltre alle proprietà derivate dai campi della tabella del database a cui il documento è collegato, come tutte le classi di codice, i documenti possono contenere altre proprietà di classe che non sono collegate al database.

    Tali proprietà sono spesso chiamate unbound, proprio per indicare che non hanno un collegamento con la tabella del database. 

    Esiste un terzo tipo di proprietà del documento, chiamate proprietà derivate. Esse derivano da tabelle del database diverse da quella su cui è basato il documento. Un esempio di proprietà derivata può essere il nome del prodotto a cui una determinata riga ordine è collegata. Se non ci fosse la proprietà derivata, ogni volta che il documento riga ordine deve recuperare il nome del prodotto, dovrebbe fare una query.

    Le proprietà derivate sono molto importanti perché i loro valori vengono recuperati automaticamente quando il documento viene caricato dal database nella stessa query che estrae il documento. Questo vale anche per il caricamento di collection di documenti: tutta la collection viene recuperata con un’unica query che estrae anche tutte le proprietà derivate di tutte le istanze in fase di caricamento. Si tratta di un’ottimizzazione importante che il framework DO mette a disposizione.

    Per definire una proprietà derivata, occorre inserire una proprietà unbound, poi impostare la proprietà Collegato a selezionando la relazione della tabella da usare per il caricamento, infine impostare la proprietà Derivato da selezionando il campo della tabella di arrivo della relazione. 

    Esiste un modo più veloce per creare le proprietà derivate:

    1. Nel documento da cui si desidera estrarre l’informazione, selezionare la proprietà e poi usare il comando Copia (Ctrl-C).
    2. Selezionare il documento in cui creare la proprietà derivata e usare il comando Incolla (Ctrl-V).

    Viene in ogni caso creata una nuova proprietà, che sarà derivata se fra i due documenti esiste una relazione utilizzabile, altrimenti rimarrà unbound. Per distinguere i due casi è sufficiente osservare le proprietà Collegato a e Derivato da che rimarranno vuote nel caso unbound.

    Si noti che una volta che è presente una proprietà derivata, sarà possibile derivare ulteriori proprietà anche usando le relazioni della tabella della prima proprietà derivata. Ad esempio se la classe RigaOrdine ha la proprietà derivata NomeProdotto, sarà possibile anche aggiungere la proprietà NomeCategoria che deriva dalla tabella delle categorie di prodotto.

    Adattamento alla struttura del database #

    Le modifiche alla struttura del database si riflettono sui documenti collegati. In particolare:

    1. Cancellando una tabella dal database i documenti collegati perdono il collegamento e non verranno più caricati dal database.
    2. Cancellando un campo di una tabella, le proprietà collegate vengono cancellate.
    3. Cancellando una relazione, le collection o le proprietà derivate perderanno il collegamento e non verranno più caricate automaticamente dal database.
    Ti è stato utile?
    Aggiornato il 16 Aprile 2024
    Introduzione Document OrientationUtilizzo dei documenti
    Contenuti
    • Proprietà unbound e proprietà derivate
    • Adattamento alla struttura del database

    Caratteristiche

    • Perché Instant Developer
    • IDE e Ambiente di Sviluppo
    • Pubblicazione Web & Mobile
    • Software Life Cycle & DevOps
    • Database, Integrazione, Sync
    • Collaboration & Workflow

    Soluzioni

    • Freelance
    • Software House
    • Company IT
    • Casi di successo
    • Applicazioni Sviluppate

    Azienda

    • Chi Siamo
    • Contatti
    • Lavora con noi

    Risorse

    • Documentazione
    • Risorse e Tutorial
    • Blog
    • Starter Kit
    • Pricing
    • Inizia Ora
    Crea un account e Inizia Gratis
    • Seguici su Twitter
    • Seguici su Facebook
    • Seguici su LinkedIn
    • Seguici su YoutTubeSeguici su YouTube
    Questo sito è protetto dalla tecnologia reCAPTCHA Enterprise e si applicano l'Informativa sulla privacy e i Termini di servizio di Google.
    Google Policy | Termini
    © Pro Gamma - p.iva, c.f. e iscr. Camera di Commercio Bologna 01985091204 - Sede legale Via D'Azeglio, 51 40123 Bologna - Italia Pro Gamma Instant Developer® è un marchio registrato.
    Privacy Policy | Cookie Policy
    • IT