Constrain
L'istruzione Constrain può essere utilizzata in combinazione con le istruzioni Let o Set per definire le variabili dello script. L'istruzione Constrain permette di definire vincoli per i valori possibili per le variabili. Se la definizione di una variabile viola i vincoli, il ricaricamento fallisce. Con i vincoli, è possibile richiedere che i valori delle variabili corrispondano a tipi specifici, rientrino in intervalli numerici specifici e corrispondano a valori accettabili definiti dall'utente.
Constrain variablename = json
Dove:
-
variablename è una variabile dello script.
-
json è un oggetto JSON valido che specifica i vincoli. I vincoli individuali vengono aggiunti all'interno di questo oggetto come coppie chiave-valore.
| Tipo di vincolo (chiave) | Significato | Requisiti del vincolo (valore) | Esempi |
|---|---|---|---|
| "type" | Vincola i valori delle variabili a un tipo di dati specifico. |
"text" specifica un tipo di testo. "number" specifica un tipo numerico. |
|
| "maxnum" | Imposta un valore massimo per una variabile. | Solo numeri (interi o a virgola mobile). È consentita la notazione scientifica. |
|
| "minnum" | Imposta un valore massimo per una variabile. | Solo numeri (interi o a virgola mobile). È consentita la notazione scientifica. |
|
| "valuesnum" | Definisce un elenco di valori numerici accettabili per la variabile. | Elenco di numeri separati da virgola racchiusi tra parentesi quadre. Ad esempio: [1,2,3] |
|
| "valuestext" | Definisce un elenco di valori testuali accettabili per la variabile. | Elenco di stringhe separate da virgola racchiuse tra parentesi quadre. Ad esempio: ["a","b","c"] |
|
Quando usare un'istruzione Constrain
Utilizzare l'istruzione Constrain per evitare che i valori indesiderati per le variabili vengano caricati nelle applicazioni analitiche.
Considerazioni
-
La definizione di Constrain per la variabile deve essere un oggetto JSON valido.
-
È possibile specificare più di un vincolo per una singola variabile. Tutti i vincoli di una variabile devono essere contenuti in un singolo oggetto di vincolo. Per esempio, vedere Esempi: vincoli multipli.
-
Se nell'applicazione è già stata caricata una variabile dello script con un determinato nome, i tentativi successivi di definire vincoli e valori per quella variabile possono fallire a causa di conflitti tra le variabili originali e quelle ridefinite.
Per risolvere questi conflitti, ripristinare i vincoli e i valori delle variabili inserendo delle definizioni vuote. Esempi:
CONSTRAIN x; LET x;CONSTRAIN x; SET x;È possibile quindi ridefinire la variabile e i relativi vincoli nelle sezioni successive dello script di caricamento. Per un esempio esteso, consultare Esempio: risoluzione dei conflitti nelle definizioni delle variabili.
-
L'ordine della definizione della variabile e della definizione del vincolo non è importante. Tuttavia, nel caso in cui si verifichi un errore di ricaricamento correlato alla variabile, la riga in cui si verifica il punto di arresto sarà un'altra.
-
L'istruzione dello script Constrain limita le definizioni delle variabili solo per le variabili dello script. È possibile anche applicare vincoli alle variabili dello script e a quelle dell'utente finale (quelle create o aggiornate nella vista foglio o come variabili di sessione utilizzando l'API) utilizzando l'API pubblica. Per ulteriori informazioni, vedere Alternative di sviluppo per la definizione di vincoli delle variabili.
-
I vincoli vengono convalidati per evitare scenari che non possono corrispondere ad alcun valore per la variabile. Esempi di vincoli non validi:
-
{"minnum": 5000, "maxnum": 4}
-
{"type": "text", "maxnum": 4}
-
Alternative di sviluppo per la definizione di vincoli delle variabili
È possibile anche utilizzare l'API pubblica per definire i vincoli delle variabili, anziché utilizzare l'istruzione Constrain nello script di caricamento. Quando si definiscono i vincoli tramite API, tutti i tentativi di aggiornare i valori delle variabili — sia direttamente nello script di caricamento o nella vista foglio — saranno soggetti ai vincoli.
Per definire i vincoli delle variabili tramite l'API pubblica, utilizzare la GenericVariableConstraints proprietà nell'API QlikEngine JSON: GenericVariableProperties (solo in lingua inglese).
Esempio - type
Esempio - maxnum
Esempio - minnum
Esempio - valuesnum
Esempio - valuestext
Esempi: SET o LET
Questi esempi mostrano le differenze tra le modalità di applicazione dei vincoli quando si utilizza SET o LET durante la definizione delle variabili. Tutti gli esempi utilizzano vincoli che applicano un requisito type, ma questi principi si applicano a tutti i tipi di vincoli in generale.
