Come permettere all'utente di aggiungere, editare, vedere, rimuovere o clonare righe se le condizioni sono soddisfatte
Permessi Richiesti
Questa sezione richiede il permesso Application Designer dal tuo amministratore di Dominio.
Consulta Quali sono i compiti di Design? per saperne di più riguardo ai permessi per lavorare con il Design Mode e altri strumenti.
Abstract
Impara come configurare Formula per abilitare certe azioni sulla tabella di un'applicazione se le sue condizioni sono soddisfatte.
Gli utenti aggiungeranno, modificheranno, rimuoveranno, vedranno o cloneranno righe se e solo se la Formula è soddisfatta. Certi comandi azioni dai Settings (Add Record, Remove Record, Clone Rows, and Recalculation) saranno disponibili ma non cliccabili nell'applicazione finché le condizioni della Formula non saranno soddisfatte. (Consulta Abilitare o disabilitare l'aggiunta, clonazione o eliminazione delle righe per maggiori informazioni riguardo azioni che puoi abilitare per gli utenti per ciascuna tabella dell'applicazione.)
Note
I passi sono gli stessi sia per la tabella di Master che per quelle di Dettaglio.
Restringere l'aggiunta di nuove righe¶
Segui i passi sotto per inserire una Formula e permettere l'aggiunta di nuove righe se e solo se le sue condizioni sono soddisfatte. Queste sono chiamate Add Restrictions.
-
Nel Design Mode, cliccare su Settings nella barra laterale sinistra.
-
Cliccare sulla tab della tabella nella quale vuoi inserire una Formula per gestire l'aggiunta di nuove righe.
-
Nelle impostazioni del sotto-pannello Settings, cliccare sul pulsante Add sotto le opzioni Restrictions. L'azione apre il Formula Editor per inserire una Formula.
-
Cliccare sul pulsante Save per salvare tutti i cambiamenti. Troverai il pulsante Save nell'angolo in alto a sinistra del Design Mode.
Success
Gli utenti aggiungeranno righe alla tabella se e solo se le condizioni della Formula sono soddisfatte.
Restringere modifiche a righe esistenti¶
Segui i passi sotto per inserire una Formula e permettere la modifica di righe esistenti se e solo se le sue condizioni sono soddisfatte. Queste sono chiamate Edit Restrictions.
-
Nel Design Mode, cliccare su Settings nella barra laterale sinistra.
-
Cliccare sulla tab della tabella nella quale vuoi inserire una Formula per gestire la modifica di righe esistenti.
-
Nelle impostazioni del sotto-pannello Settings, cliccare sul pulsante Edit sotto le opzioni Restrictions. L'azione apre il Formula Editor per inserire una Formula.
-
Cliccare sul pulsante Save per salvare tutti i cambiamenti. Troverai il pulsante Save nell'angolo in alto a sinistra del Design Mode.
Success
Gli utenti modificheranno righe esistenti se e solo se le condizioni della Formula sono soddisfatte.
Example
L'applicazione Warehouse Orders gestisce gli ordini da un magazzino.
Ciascuna riga della tabella di Master è un ordine. Ciacuna riga ha un menù a tendina Lookup chiamato Order Status. Order Status registra l'Id univoco per ciascun stato possibile dell'ordine. (E.g. Lo stato "Placed" ha l'Id 1
e lo stato "Cancelled" ha lo stato Id 2
.)
Order Status traccia lo stato dell'ordine registrando lo stato dell'Id dallo Storage che contiene i nomi dei vari stati (e.g. "Placed", "Waiting for Payment", "In Preparation" e così via). Un'applicazione specifica permette di registrare i differenti stati per Order Status.
Quando un ordine ha lo stato "Cancelled" o "Completed", gli utenti non dovrebbero essere in grado di fare nessun altro cambiamento: l'ordine è già partito o è archiviato.
In questo caso, sarebbe utile bloccare interamente l'editabilitù quando Order Status è o "Cancelled" o "Completed". Una formula di Restrizione per l'editabilità (Edit) è la soluzione migliore in questo caso.
Il Designer va in Design Mode e nel pannello Settings. Clicca sulle restrizioni Edit per inserire la seguente Formula:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
Il Designer salva la configurazione e i cambiamenti in Design Mode.
Ora, l'applicazione non permetterà cambiamenti a qualunque riga con lo stato "Cancelled" o "Completed".
Restringere la clonazione di righe¶
Segui i passi sotto per inserire una Formula e permettere la clonazione di righe esistenti se e solo se le sue condizioni sono soddisfatte. Queste sono chiamate Clone Restrictions.
-
Nel Design Mode, cliccare su Settings nella barra laterale sinistra.
-
Cliccare sulla tab della tabella nella quale vuoi inserire una Formula per permettere la clonazione di righe.
-
Nelle impostazioni del sotto-pannello Settings, cliccare sul pulsante Clone sotto le opzioni Restrictions. L'azione apre il Formula Editor per inserire una Formula.
-
Cliccare sul pulsante Save per salvare tutti i cambiamenti. Troverai il pulsante Save nell'angolo in alto a sinistra del Design Mode.
Success
Gli utenti cloneranno righe se e solo se le condizioni della Formula sono soddisfatte.
Restringere la cancellazione delle righe¶
Segui i passi sotto per inserire una Formula e permettere la cancellazione di righe se e solo se le sue condizioni sono soddisfatte. Queste sono chiamate Delete Restrictions.
-
Nel Design Mode, cliccare su Settings nella barra laterale sinistra.
-
Cliccare sulla tab della tabella nella quale vuoi inserire una Formula per gestire la modifica di righe esistenti.
-
Nelle impostazioni del sotto-pannello Settings, cliccare sul pulsante Delete sotto le opzioni Restrictions. L'azione apre il Formula Editor per inserire una Formula.
-
Cliccare sul pulsante Save per salvare tutti i cambiamenti. Troverai il pulsante Save nell'angolo in alto a sinistra del Design Mode.
Success
Gli utenti potranno cancellare righe se e solo se le condizioni della Formula sono soddisfatte.
Example
L'applicazione Warehouse Orders gestisce gli ordini da un magazzino.
Ciascuna riga della tabella di Master è un ordine. Ciascuna rifa ha
un menù a tendina Lookup chiamato Order Status. Order Status
registra l'Id unico di ciascun possibile stato dell'ordine (e.g. Lo stato "Placed" ha l'Id 1
e lo stato "Cancelled" ha l'Id 2
.)
Order Status traccia lo stato di un ordine registrando l'Id dello Stato da uno Storage contente i nomi dei vari stati. (e.g. "Placed", "Waiting for Payment", "In preparation", e così via.) Un'applicazione dedicata permette di registrare i differenti stati di Order Status:
Ciscun utente appartiene a uno o più gruppi utente (User Groups) per classificare i loro ruoli e operazioni (E.g. Operatore, Coordinatore Magazzino, Addetto Rifornimenti, Operatore Carrello Elevatore e così via.)
Gli utenti dovrebbero cancellare le righe degli ordini solo sotto certe circostanze:
- Lo stato dell'ordine è "Cancelled".
- L'utente è o un Operatore (Clerk) o un Coordinatore Magazzino (Warehouse Coordinator). Se l'amministrazione gli ha assegnato questi ruoli, sanno cosa fanno: possono cancellare liberamente le righe.
In altri casi, gli utenti non dovrebbero cancellare le righe. Una Restrizione per la cancellazione (Delete) è la soluzione migliore in questi casi.
Il Designer va in Design Mode e nel pannello Settings. Cliccano sulle restrizioni Delete per inserire la seguente Formula:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
Il Designer salva la confituazione e i cambiamenti in Design Mode.
Ora, l'applicazione non permetterà di cancellare ordini se e solo se lo stato è "Cancelled" o l'utente è Operatore (Clerk) o un Coordinatore Magazzino (Warehouse Coordinator).
In altre circostanze, una notifica spiega che l'operazione non è permessa per la riga.
Restringere il ricalcolo delle righe¶
Segui i passi sotto per inserire una Formula e permettere il ricalcolo dei valori delle righe se e solo se le sue condizioni sono soddisfatte. Queste sono chiamate Recalculate Restrictions.
-
Nel Design Mode, cliccare su Settings nella barra laterale sinistra.
-
Cliccare sulla tab della tabella nella quale vuoi inserire una Formula per permettere la clonazione di righe.
-
Nelle impostazioni del sotto-pannello Settings, cliccare sul pulsante Recalculate sotto le opzioni Restrictions. L'azione apre il Formula Editor per inserire una Formula.
-
Cliccare sul pulsante Save per salvare tutti i cambiamenti. Troverai il pulsante Save nell'angolo in alto a sinistra del Design Mode.
Success
Gli utenti potranno ricalcolare righe se e solo se le condizioni della Formula sono soddisfatte.
Restringere quali righe mostrare¶
Segui i passi sotto per inserire una Formula e mostrare solo certe righe sulla tabella se e solo se le sue condizioni sono soddisfatte. Queste sono chiamate Row Restrictions.
Warning
Controlla l'eccezioni da considerare quando si usano Formule nelle restrizioni di riga (Row Restrictions) al passo 4.
-
Nel Design Mode, cliccare su Settings nella barra laterale sinistra.
-
Cliccare sulla tab della tabella nella quale vuoi inserire una Formula per permettere la clonazione di righe.
-
Nelle impostazioni del sotto-pannello Settings, cliccare sul pulsante Recalculate sotto le opzioni Restrictions. L'azione apre il Formula Editor per inserire una Formula.
Warning
Non puoi fare riferimento a una Colonna Logica (i.e.
$$logicalColumnName
) in una restrizione di riga (Row Restriction). Il Formula Editor non validerà le Formule che usano riferimenti a Colonne Logiche nelle restrizione di riga (Row Restriction)Warning
Le restrizioni di riga (Row Restrictions) funzionano differentemente da altri posti dove puoi inserire Formule (e.g. campi calcolati, colori Layout e così via). Il contesto dove si filtrano e recuperano righe per la tabella è la motivazione di quest'eccezione. Questo significa che un Formula che funziona come al solito in campi calcolati potrebbe non funzionare e richederebbe alcuni cambiamenti. Segui le regole sotto quando scrivi formule per restrizioni di riga (Row Restrictions):
a. Tutte le condizioni di visibilità delle formule Devono riferirisci a campi delle righe sulla tabella e applicazione correnti.
1 2 3 4 5 6 7
// Qualche esempio. // No. Questa non funzionerà perché non si riferisce a valori sulla tabella corrente. =EQ($CURRENTUSER.EMAIL; "j.doe@vesenda.com") // Sì. Questa funzionerà perché si riferisce a valori sulla tabella corrente. =EQ($CURRENTSTORAGE.taskOwnerEmail; "j.doe@vesenda.com")
b. Funzioni come
=LOOKUP()
,=LOOKUPLIST()
e altre funzioni che recuperano informazioni da altri Storage non possono riferirsi a valori della tabella corrente nell'applicazione.=LOOKUP()
e=LOOKUPLIST()
devono riferirsi o a valori costanti o variabili di sistema.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// No. La =EQ() si riferisce a un valore sulla tabella; i.e. $CURRENTSTORAGE.Id_Project. =CONTAINS( =LOOKUPLIST( #sProjectManagers; #sProjectManagers.Email; =EQ(sProjectManagers.Id_Project; $CURRENTSTORAGE.Id_Project) ); $CURRENTUSER.EMAIL ) // Sì. =EQ() si riferisce solo a costanti o varliabili di sistema come $CURRENTUSER.EMAIL. =CONTAINS( =LOOKUPLIST( #sProjectManagers; #sProjectManagers.Id_Project; =EQ(#sProjectManagers.Email; $CURRENTUSER.EMAIL) ); $CURRENTSTORAGE.Id_Project )
c. Quando impieghi funzioni
=IF()
, devi rispettare gli stessi requisiti di (b); solo valori costanti e variabili di sistema.1 2 3 4 5 6 7 8 9 10 11 12 13 14
// Esempio 1. No. =EQ($CURRENTSTORAGE.Completed; $TRUE) si riferisce a un valore di un campo sulla tabella. =IF( =EQ($CURRENTSTORAGE.Completed; $TRUE); =EQ($CURRENTSTORAGE.isApproved; $TRUE); =EQ($CURRENTSTORAGE.isApproved; $FALSE) ) // Esempio 2. Sì. Nella condizione di =IF() ci stanno solo variabili di sistema e costanti ("Managers"). =IF( =CONTAINS($CURRENTUSER.GROUPNAMES; "Managers"); =EQ($CURRENTSTORAGE.isApproved; $TRUE); =EQ($CURRENTSTORAGE.isApproved; $FALSE) )
d. In una restrizione di riga (Row Restriction) di un Dettaglio, la variabile di sistema
$CURRENTSTORAGE.$MASTER.fieldName
si comporta come una costante e pui usarla.$CURRENTSTORAGE.$MASTER.fieldName
non varia per le righe di Dettaglio della tabella di Master.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* Le seguenti formule come restrizioni di riga per i Dettagli sono valide. Le formule usano $CURRENTSTORAGE.$MASTER.fieldName per riferirsi ai valori. */ // Primo esempio =IF( =EQ($CURRENTSTORAGE.$MASTER.isArchived; $TRUE); =NEQ($CURRENTSTORAGE.taskStatusLookupId; 2) ) // Secondo esempio =CONTAINS( =LOOKUPLIST( #sProjectManagers; #sProjectManagers.Id_Project; =EQ(#sProjectManagers.Email; $CURRENTSTORAGE.$MASTER.Email) ); $CURRENTSTORAGE.Id_Project )
-
Cliccare sul pulsante Save per salvare tutti i cambiamenti. Troverai il pulsante Save nell'angolo in alto a sinistra del Design Mode.
Success
Gli utenti vedranno righe solo le righe che soddisfano le condizioni della Formula.