Il data workspace, e le quattro esclusioni da conoscere prima
Il data workspace è l’esperienza visuale che Power Apps apre quando da Tables si scelgono New table e si resta nel designer: sulla canvas si trascinano le tabelle, il table row editor permette di creare righe e colonne, e Create relationships collega due tabelle selezionandone una e facendo CTRL + click sull’altra. Il menu delle azioni di tabella espone Row ownership, Properties (display name, plural name, description, schema name) e Remove, che su una tabella nuova cancella tabella e righe mentre su una tabella già esistente la toglie soltanto dalla canvas senza toccare i dati. I punti di ingresso documentati sono quattro: Start with Copilot, Import with SharePoint list, Import an Excel file or .CSV, Start from blank.
Il punto che l’articolo “Create and edit tables using Power Apps” mette nero su bianco, in una sezione intitolata “Limitations using the data workspace”, è che quattro data type non si possono creare da qui: Rich text, Customer, Autonumber e Formula. Anche le relazioni sono limitate: many-to-many non è supportata in nessuna combinazione, e fra due tabelle già esistenti non è supportata nemmeno la one-to-many. La confusione tipica da evitare all’esame è trattare il designer visuale come equivalente all’editor di colonne che si raggiunge aprendo la tabella e l’area Columns: se uno scenario chiede una colonna Autonumber o Formula, la risposta non passa dal data workspace.
Standard, custom, e le decisioni che non si tornano indietro
Le standard table sono quelle incluse nell’ambiente con Dataverse — account, business unit, contact, task, user — e la documentazione le chiama anche out-of-box. Compaiono come standard anche le tabelle importate con una managed solution e marcate come customizable. Nell’elenco Tables i tre tab Recommended, Custom e All filtrano proprio su questa distinzione: Recommended mostra solo le standard.
Estendere una standard è la strada consigliata: si aggiungono colonne custom e si può cambiare il display name (l’esempio della doc è rinominare Account in Company) senza cambiare il comportamento della tabella. Quello che non si può fare è modificare o eliminare system column e standard column, aggiungere a una standard table una colonna che richiede dati, o eliminare tabelle, colonne e relazioni standard: per nasconderne una si rimuove il privilegio read dal security role.
Il tipo di tabella si sceglie fra Standard, Activity, Virtual ed Elastic. La table ownership è User or team oppure Organization, e qui la doc è categorica: “After you create a custom table, you can’t change the ownership”. Se serve l’altro tipo, va cancellata e ricreata. Le activity table, per costruzione, possono appartenere solo a un utente o a un team, mai all’organizzazione.
Configurare le proprietà della tabella
Il percorso completo è New table > Set advanced properties, che apre il pannello New table. Display name, Plural display name e Description restano modificabili in seguito; Enable Attachments aggiunge note e file ai record. Il tab Primary column merita attenzione: dopo il salvataggio, display name e description della primary column non si cambiano più, e la primary column è quella che i lookup usano per rappresentare la riga.
Sotto Advanced options si trovano lo Schema name — costruito dal display name, contiene il customization prefix del solution publisher e non è modificabile dopo il salvataggio — più Type, Record ownership, Track changes (richiesto da alcune funzionalità di sincronizzazione), Audit changes to its data, Apply duplicate detection rules, Enable long term retention, Appear in search results, Can be taken offline. Due interruttori sono a senso unico: su Creating a new activity la doc avverte “Once enabled this setting can’t be disabled”, e per le activity table con Display in Activity menus vale che “After you save the table, you can’t change these settings”.
Creare e modificare colonne, con un criterio di scelta
Nel pannello di una nuova colonna si compilano Display name e Name: il primo si aggiorna in qualsiasi momento, il secondo no — “you can’t rename a column after you create it”, perché romperebbe app ed espressioni esistenti. Poi Data type, Required (un suggerimento, non un vincolo su tutte le connessioni: per l’enforcement si usa una business rule) e Searchable.
Sul tipo, i nomi cambiano fra designer: quello che Power Apps chiama Text in solution explorer è Single Line of Text con format Text. Tre soglie da ricordare: Text e Text Area hanno default 100 e massimo 4.000 caratteri, Multiline Text default 150 e massimo 1.048.576; e ridurre il massimo non tronca i dati già presenti, vale solo per le righe nuove. Fra i numeri, Decimal Number memorizza il valore esatto mentre Floating Point Number ne conserva un’approssimazione molto vicina, quindi si sceglie decimal per calcoli e confronti di uguaglianza; Big esiste per numeri enormi ma non è supportato nelle canvas app né nelle model-driven app. Una Lookup crea di fatto una relazione many-to-one, e la doc suggerisce esplicitamente di preferirla a una Choice con centinaia di opzioni, per esempio un elenco di produttori.
Due tipi vanno raccontati con prudenza. Le colonne formula sono documentate come GA nell’articolo “Work with Dataverse formula columns”, ma altre pagine le linkano ancora con l’etichetta “(preview)”: all’esame conviene ancorarsi al comportamento, non allo stato. Il comportamento verificabile è che la formula determina il tipo della colonna e il tipo non si cambia dopo la creazione, quindi si può modificare la formula solo se il tipo resta lo stesso; il currency data type non è supportato e la coercizione implicita da numero a testo non esiste:
Concatenate(Text(123,"#"),"ab")
Le prompt column hanno data type Prompt, si possono creare al massimo cinque per tabella, non sono auditate e non processano i record già esistenti: la generazione scatta alla creazione di un record o all’aggiornamento di una delle colonne referenziate, e non esiste un’esecuzione on-demand.
Nota di lettura utile sia all’esame sia alle ricerche: gli slug degli articoli usano ancora entity e field (create-edit-entities-portal, types-of-fields, field-level-security) mentre interfaccia e testo dicono table e column. La rinominazione non è mai stata propagata agli URL, e cercare “Dataverse field” resta il modo più rapido per trovare la pagina giusta.