Gå till huvudinnehåll

Syntax för komplement på serversidan

PÅ DEN HÄR SIDAN

Syntax för komplement på serversidan

En översikt över Qlik Server Side Extensions (SSE) finns här: https://github.com/qlik-oss/server-side-extension.

Skriptfunktioner

Det finns åtta skriptfunktionsvarianter. I laddningsskriptet ska alla bete sig lika men ScriptEval kommer vanligen att användas i det här scenariot.

Laddningsskriptanvändningen LOAD * EXTENSION fungerar med en tabell in tabell ut-metod och härleder korrekta datatyper från interna tabelldefinitioner och metadata.

När du använder dessa funktioner som diagramuttryck är funktionen som används viktig och den kan göra stor skillnad i förfrågningens resultat och prestanda.

ScriptEval kontra ScriptAggr

Det här är två uppsättningar med skriptfunktioner, ScriptEval och ScriptAggr:

ScriptEval: när hyperkuben har aggregerats kommer alla rader i de angivna kolumnerna att skickas till SSE-kontakten. Svaret som förväntas är en enda kolumn. Om flera kolumner returneras kommer den första kolumnen som har samma antal rader som inmatningen att väljas. Raderna i den returnerade kolumnen måste vara i samma ordning som i inmatningen.

ScriptAggr: innan hyperkuben aggregeras skickas alla rader för en enda dimensionsgrupp i hyperkuben och SSE förväntas returnera ett enda svar med 1 kolumn och en rad. En förfrågan kommer att skickas till SSE för varje dimensionsvärde. Även om det finns användningsscenarier för det här är det sällsynt att denna metod används eftersom det kan skapa prestandaproblem om ScriptAggr anropas med ett stort antal dimensionsvärden

Datatyper

Det finns fyra varianter på dessa förfrågningar, som specificerar möjliga kombinationer av in- och utdata:

  • ScriptEval(Script, Field 1, [Field n]): I det här exemplet måste alla indatafält vara numeriska och svaret måste vara numeriskt.

  • ScriptEvalStr(Script, Field 1, [Field n]): I det här fallet måste alla indatafält vara strängar och svaret måste vara strängar.

  • ScriptEvalEx(DataTypes, Script, Field 1, [Field n]): I det här fallet kan indatafälten antingen vara strängar eller numeriska, den första parametern är dock en sträng av datatyperna och svaret måste vara numeriskt.

  • ScriptEvalExStr(DataTypes, Script, Field 1, [Field n]): I det här fallet kan indatafälten antingen vara strängar eller numeriska, den första parametern är dock en sträng av datatyperna och svaret måste vara en sträng.

Parametern DataTypes är en sträng på S- och N-tecken i fältens ordning.

Exempel

Exempel:  

Ett skript som lägger till 2 numeriska fält:

ScriptEval('Script',num1,num2)

Exempel:  

Ett skript som kontatenerar 2 strängar:

ScriptEvalStr('Script',str1,str2)

Exempel:  

Ett skript som förutser en sannolikhet (siffra) med en blandning av stränginmatning och numerisk inmatning:

ScriptEvalEx('SSNN','Script',str1, str2, num1, num2)

Exempel:  

Ett skript som förutser en klassificering (sträng) med en blandning av stränginmatning och numerisk inmatning:

ScriptEvalExStr('SSNN','Script',str1, str2, num1, num2)