Constrain | Qlik Sense för WindowsHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

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änsningstyper
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.

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" Ange ett maxvärde för en variabel. Endast siffror (heltal eller flyttal). Vetenskaplig notation är tillåten.
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" Ange ett minvärde för en variabel. Endast siffror (heltal eller flyttal). Vetenskaplig notation är tillåten.
CONSTRAIN vExample = {"minnum": 250}
"valuesnum" Definiera en lista över acceptabla numeriska värden för variabeln. Kommaseparerad lista med siffror inom hakparenteser. Till exempel: [1,2,3]
CONSTRAIN vExample = {"valuesnum": [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"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department 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.

Exempel – Flera begränsningar

Exempel – lösning av konflikter vid definition av variabler

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!