# 伺服器端延伸語法

此說明主題概述了 Qlik 伺服器端延伸語法。

## 指令碼函數

有八種指令碼函數變體。在載入指令碼中，其行為都應該相同，但在這種情況下通常使用 ScriptEval。

載入指令碼用法 LOAD \* EXTENSION 對表進表出方法進行操作，並從內部表格定義和中繼資料推斷出正確的資料類型。

使用這些函數作為圖表運算式時，所用的函數相當重要，並且會對請求的結果和效能產生顯著差異。

## ScriptEval 和 ScriptAggr 的比較

有 ScriptEval 和 ScriptAggr 等兩組指令碼函數：

ScriptEval：彙總超立方體後，指定欄中的所有列都會傳送到 SSE 連接器。預期的回應是單欄。如果傳回多欄，將選取與輸入列數相同的第一欄。傳回欄中的列必須與輸入的順序相同。

ScriptAggr：彙總超立方體之前，傳送超立方體中單一維度群組的所有列，預期 SSE 傳回單一 1 欄 1 列回應。每個維度值都會向 SSE 傳送一個請求。雖然有這種使用案例，但很少使用這種方法，因為如果使用大量維度值呼叫 ScriptAggr，會產生效能問題。

## 資料類型

請求有四種變體，可以指定輸入和輸出資料類型組合：

* ScriptEval(Script, Field1, [Field n])：在此範例中，輸入欄位必須全部為數字，且回應必須為數字。

* ScriptEvalStr(Script, Field 1, [Field n])：在此範例中，輸入欄位必須全部為字串，且回應必須為字串。

* ScriptEvalEx(DataTypes, Script, Field 1, [Field n])：在此範例中，輸入欄位可以是字串或數字，但第一個參數是資料類型的字串，且回應必須是數字。

* ScriptEvalExStr(DataTypes, Script, Field 1, [Field n])：在此範例中，輸入欄位可以是字串或數字，但第一個參數是資料類型的字串，且回應必須是字串。

DataTypes 參數是依欄位順序包含 S 和 N 個字元的字串。

## 範例

範例：

新增 2 個數字欄位的指令碼：

ScriptEval('Script',num1,num2)

範例：

串連 2 個字串的指令碼：

ScriptEvalStr('Script',str1,str2)

範例：

使用混合字串和數字輸入來預測機率 (數字) 的指令碼：

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

範例：

使用混合字串和數字輸入來預測分類 (字串) 的指令碼：

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