Constrain
Satsen Constrain kan användas i kombination med satserna Let eller Set för att definiera variabler i skriptet. Med hjälp av Constrain-satsen kan du definiera begränsningar för möjliga värden för dessa variabler. Om en definition av en variabel bryter mot begränsningarna misslyckas inläsningen. Med begränsningar kan du kräva att värden för variabler ska matcha specifika typer, ligga inom specifika numeriska intervall och matcha acceptabla värden som du definierar.
Constrain variablename = json
Där:
-
variablename är en skriptvariabel.
-
json är ett giltigt JSON-objekt som specificerar begränsningarna. Individuella begränsningar läggs till i detta objekt som nyckel-värde-par.
| Begränsningstyp (nyckel) | Betydelse | Begränsande krav (värde) | Exempel |
|---|---|---|---|
| "type" | Begränsa variabelvärden till en specifik datatyp. |
"text" anger en texttyp. "number" anger en numerisk typ. |
|
| "maxnum" | Ange ett maxvärde för en variabel. | Endast siffror (heltal eller flyttal). Vetenskaplig notation är tillåten. |
|
| "minnum" | Ange ett minvärde för en variabel. | Endast siffror (heltal eller flyttal). Vetenskaplig notation är tillåten. |
|
| "valuesnum" | Definiera en lista över acceptabla numeriska värden för variabeln. | Kommaseparerad lista med siffror inom hakparenteser. Till exempel: [1,2,3] |
|
| "valuestext" | Definiera en lista över acceptabla textvärden för variabeln. | Kommaseparerad lista med strängar inom hakparenteser. Till exempel: ["a","b","c"] |
|
När du ska använda en Constrain sats
Använd Constrain-satsen för att förhindra att oönskade variabelvärden laddas in i analysapplikationer.
Överväganden
-
Definitionen Constrain för variabeln måste vara ett giltigt JSON-objekt.
-
Du kan ange mer än en begränsning för en och samma variabel. Alla begränsningar för en variabel måste behållas inom ett enda objekt för begränsningar. Se Exempel – Flera begränsningar för exempel.
-
Om du redan har läst in en skriptvariabel med ett visst namn i applikationen kan framtida försök att definiera begränsningar och värden för den variabeln misslyckas på grund av konflikter mellan de ursprungliga och de omdefinierade variablerna.
För att lösa dessa konflikter, återställ begränsningarna och värdena för variablerna genom att infoga tomma definitioner. Exempel:
CONSTRAIN x; LET x;CONSTRAIN x; SET x;Du kan sedan omdefiniera variabeln och dess begränsningar i efterföljande delavsnitt i laddningsskriptet. Se Exempel – lösning av konflikter vid definition av variabler för ett utförligt exempel.
-
Ordningen på definitionen av variabeln och definitionen av begränsningen spelar ingen roll. Vid ett variabelrelaterat inläsningsfel kommer dock linjen vid vilken brytpunkten inträffar att vara annorlunda.
-
Constrain-skriptet begränsar endast variabeldefinitioner för skriptvariabler. Du kan också tillämpa begränsningar på skript- och slutanvändarvariabler (de som skapas eller uppdateras i arkvyn eller som sessionsvariabler med hjälp av API:et) genom att använda det publika API:et. Mer information finns i Alternativ för utvecklare för att definiera begränsningar för variabler.
-
Begränsningar valideras för att undvika scenarier som inte kan matcha något värde för variabeln. Exempel på ogiltiga begränsningar:
-
{"minnum": 5000, "maxnum": 4}
-
{"type": "text", "maxnum": 4}
-
Alternativ för utvecklare för att definiera begränsningar för variabler
Du kan också använda det publika API:et för att definiera variabelbegränsningar i stället för att använda Constrain-satsen i laddningsskriptet. När du definierar begränsningar via API, kommer alla försök att uppdatera variabelvärden – oavsett om det sker direkt i laddningsskriptet eller i arkvyn – att omfattas av begränsningarna.
Om du vill definiera begränsningar för variabler via det offentliga API:et, använder du GenericVariableConstraints egenskapen i API:et QlikEngine JSON: GenericVariableProperties (endast på engelska).
Exempel - type
Exempel - maxnum
Exempel - minnum
Exempel - valuesnum
Exempel - valuestext
Exempel – SET kontra LET
Dessa exempel visar skillnaderna mellan hur begränsningar tillämpas när SET eller LET används för att definiera variabler. I alla exempel används begränsningar som tillämpar ett type-krav, men dessa principer gäller generellt för alla typer av begränsningar.
