Vai al contenuto principale Passa a contenuto complementare

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.

Sintassi:  

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.

Tipi di vincoli
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.

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" Imposta un valore massimo per una variabile. Solo numeri (interi o a virgola mobile). È consentita la notazione scientifica.
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" Imposta un valore massimo per una variabile. Solo numeri (interi o a virgola mobile). È consentita la notazione scientifica.
CONSTRAIN vExample = {"minnum": 250}
"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]
CONSTRAIN vExample = {"valuesnum": [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"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department C"]}

Quando utilizzare un'istruzione Constrain

Utilizzare l'istruzione Constrain per evitare che i valori indesiderati per le variabili vengano caricati nelle app analitiche. Le sezioni seguenti illustrano i modi specifici in cui è possibile utilizzarla.

Aggiornamento della variabile Tempo di ricaricamento

L'opzione Constrain è particolarmente utile quando viene utilizzata in combinazione con gli aggiornamenti delle variabili in tempo reale. Con gli aggiornamenti del tempo di ricaricamento delle variabili, è possibile aggiornare dinamicamente le variabili durante il ricaricamento dell'app, utilizzando la proprietà variables dell'API Ricaricamenti. L'istruzione Constrain impedisce che definizioni delle variabili dannose o formattate in modo improprio vengano incorporate nei ricaricamenti delle analisi.

Gli aggiornamenti del di tempo di ricarica delle variabili, insieme all'istruzione Constrain, supportano i seguenti casi d'uso:

  • App basate su modelli che caricano i dati in modo selettivo in base a condizioni come l'ID o il nome del client (che possono essere passate al momento del caricamento come variabili).

  • Controllo centralizzato sulle app distribuite su molti tenant Qlik Cloud

  • Migrazione dei flussi di lavoro e delle attività orientate alle variabili da QlikView e Qlik Sense Client-Managed nel cloud.

Sicurezza, affidabilità e collaborazione

Anche quando viene utilizzato al di fuori degli scenari di aggiornamento del tempo di ricaricamento delle variabili, Constrain migliora i controlli di sicurezza per la creazione degli script di caricamento, ad esempio durante lo sviluppo collaborativo degli script di caricamento. Ad esempio, il proprietario di un'app potrebbe definire dei vincoli per i valori delle variabili, informando i collaboratori delle condizioni specifiche che devono essere soddisfatte affinché l'app venga ricaricata con successo in modo affidabile.

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'app è 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.

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, nella vista foglio o tramite l'API Ricaricamenti — saranno soggetti ai vincoli.

Per definire i vincoli delle variabili tramite l'API pubblica, utilizzare l'oggetto GenericVariableConstraints nell'API Qlik Sense Engine (qix): GenericVariableConstraints.

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.

Esempi: vincoli multipli

Esempio: risoluzione dei conflitti nelle definizioni delle variabili

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – ti pregiamo di farcelo sapere!