# Procesor skryptu Qlik

Tworzy lub przekształca dane wejściowe za pomocą skryptu Qlik.

Procesor Skrypt Qlik umożliwia bezpośrednie wprowadzanie skryptu Qlik w edytorze tekstu w celu przygotowania danych lub ładowania danych, gdy jest używany jako wejście. Skierowany do bardziej zaawansowanych użytkowników, pozwala na korzystanie z całej składni Qlik, jeśli wolisz ręcznie kodować określone operacje podczas manipulowania tabelami.

## Użycie

* Aby użyć procesora Scrypt w przepływie danych, kod dodany w edytorze musi być zgodny ze schematem danych przychodzących oraz działaniami przygotowawczymi, które zostały wykonane do tego momentu. Ponadto skrypt musi przestrzegać pewnych zasad:

  * Skrypt musi zawierać instrukcję `resident`, aby użyć tabeli pochodzącej z przepływu wejściowego.

    ```
    resident tablename
    ```

    Więcej informacji zawiera temat [Load](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/RegularStatements/Load.htm).

  * Należy dołączyć instrukcję `NoConcatenate`.

    ```
    NoConcatenate LOAD A,B
    ```

    Więcej informacji zawiera temat [NoConcatenate](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm).

  * Po dodaniu skryptu dla określonej operacji, którą chcesz wykonać, musisz na końcu dołączyć instrukcję `drop table`, aby usunąć tabelę przychodzącą i zachować tylko wygenerowane dane wyjściowe.

    ```
    drop table  tablename
    ```

    Więcej informacji zawiera temat [Drop table](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/drop-table.htm).

* Gdy procesor jest używany jako węzeł wejściowy, można mieć maksymalnie dwa przepływy wyjściowe, aby załadować dwie różne tabele.

* Gdy procesor jest używany jako węzeł pośredniczący, można mieć wiele przepływów wejściowych i maksymalnie dwa przepływy wyjściowe.

* W przepływie danych można użyć maksymalnie 50 procesorów skryptu Qlik.

OstrzeżenieAby uniknąć błędów w przepływie danych, upewnij się, że nazwy tabel generowane przez procesor Scrypt są unikalne i różnią się od tabel generowanych przez inne procesory w przepływie.

## Właściwości

Konfiguracja

| Właściwość | Konfiguracja |
| --- | --- |
| Scrypt | Wprowadź swój skrypt Qlik w edytorze tekstu, który zawiera następujący symbol zastępczy z wymaganymi instrukcjami.<br><br>```<br>MyTable:<br>NoConcatenate Load *<br>Resident [name of input table];<br>Drop Table [name of input table];<br>```<br><br>Nazwy tabel wejściowych są wymienione nad edytorem skryptów. Odpowiadają one wejściom podłączonym do procesora. Kliknij nazwę tabeli, aby wstawić ją bezpośrednio do skryptu. |

Aby zmienić nazwę procesora lub edytować jego opis, wskaż myszą nazwę lub opis do zmiany w panelu Właściwości i kliknij ikonę the Edytuj icon .

## Korzystanie z widoku skondensowanego

W panelu po prawej stronie można wykonywać szybkie aktualizacje procesora bez otwierania pełnego edytora. Możesz:

* Wpisywać tekst bezpośrednio w polu Scrypt.

* Dodawać tabele wejściowe do skryptu, klikając je w sekcji Tabele wejściowe.

![Podświetlanie tekstu skryptu i wybieranie tabeli wejściowej w celu dodania jej w określonym miejscu w skrypcie](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/qlik_script_processor_condensed_panel.png)

Aby uzyskać więcej opcji i zaawansowanych funkcji, otwórz edytor skryptów. Zobacz [Korzystanie z edytora skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataFlow/data-flow-processor-script.htm#Using).

## Korzystanie z edytora skryptów

Kliknięcie przycisku Otwórz edytor w panelu konfiguracji otwiera potężny Edytor skryptów, który pomaga w pisaniu skryptu Qlik. Z łatwością wstawiaj tabele, nazwy pól lub funkcje, otwieraj dokumentację, wstawiaj skrypty i sprawdzaj poprawność swojego skryptu.

![Korzystanie z edytora skryptów do pisania skryptu Qlik](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/qlik_script_expression_editor.png)

W lewym panelu można przeglądać tabele i pola aktualnie załadowane w przepływie danych oraz przeglądać szeroką gamę funkcji skryptu Qlik. Ten panel jest podzielony na trzy karty:

* Tabele, gdzie wymienione są tabele załadowane w przepływie. Wskaż myszą dowolną z nazw tabel i kliknij +, aby wstawić ją bezpośrednio do skryptu.

* Pola, gdzie wymienione są pola dostępne w tym momencie przepływu. Wskaż myszą dowolną z nazw pól i kliknij +, aby wstawić ją bezpośrednio do wyrażenia.

* Funkcje, gdzie można przeglądać funkcje Qlik. Możesz użyć pola wyszukiwania, aby poszukać określonej funkcji, lub użyć listy rozwijanej Kategoria funkcji, aby je przefiltrować.

  Wskaż myszą dowolną z funkcji i kliknij +, aby wstawić ją bezpośrednio do wyrażenia.

  * Jeśli wybierzesz przełącznik Przewodnik objaśniający, po kliknięciu funkcji wyświetlony zostanie krótki opis i link do dokumentacji.

W górnym panelu można włączyć lub wyłączyć trzy narzędzia, które pomagają i prowadzą podczas pisania skryptu, użyć skrótu do wstawiania skryptu z innych plików, a także przycisków cofania i ponawiania, aby naprawić potencjalne błędy.

* Wyszukaj i zamień, aby automatycznie szukać określonych wartości i w razie potrzeby je zamieniać.

  ![Funkcja wyszukiwania i zamiany w edytorze skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/calculate_fields_search_replace.png)

* Tryb pomocy, aby zamienić dowolną funkcję napisaną w skrypcie w klikalne linki, które przeniosą Cię do dokumentacji.

  ![Aktywacja trybu pomocy w edytorze skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/script_editor_help_mode.png)

* Autouzupełnianie, aby wyświetlać sugestie podczas pisania, wraz z krótkim opisem i przykładem funkcji.

  ![Korzystanie z autouzupełniania do pisania funkcji skryptu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/script_editor_autocomplete.png)

* Dołącz skrypt, aby wstawiać skrypty. Zobacz [Wstawianie innych skryptów do skryptów ładowania](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/QVS/inserting-qvs-script-editor.htm).

  ![Wstawianie skryptu z pliku qvf](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/qlik_script_include_script.png)

Dolny panel opisuje wszelkie potencjalne błędy w skrypcie, takie jak nieprawidłowe nazwy pól lub nieprawidłowe wyrażenia.

![Narzędzie walidacji pokazujące błąd w skrypcie](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/Dataflow/script_editor_validation.png)

Gdy panel stanu pokazuje zielone Ok, skrypt jest prawidłowy. Kliknij Potwierdź, aby użyć tego skryptu dla procesora skryptu Qlik i wrócić do edytora przepływu danych. Następnie możesz zweryfikować konfigurację procesora.

## Przykłady

* Ładowanie wielu tabel o tym samym schemacie do jednego wejścia dla przepływu. W tym przykładzie użyto dwóch plików .txt z katalogu, z tymi samymi polami, ale z inną zawartością. Ponadto to wyrażenie doda pole do śledzenia, z której tabeli pochodzą dane, i wygeneruje liczbę całkowitą jako numer identyfikacyjny:

  ```
  [MyTable_1]:
  LOAD
  'table1' as source_table,
  [firstname],
  [lastname],
  [nationality]
  FROM [lib://DataFiles/MyTable_1.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq);

  [MyTable_2]:
  CONCATENATE (MyTable_1)
  LOAD
  'table2' as source_table,
  [firstname],
  [lastname],
  [nationality]
  FROM [lib://DataFiles/MyTable_2.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq);

  [NewTable]:
  LOAD
  recno() as id,
  * RESIDENT MyTable_1;

  drop table MyTable_1;
  ```

  Więcej informacji zawiera temat [Concatenate](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/concatenate.htm).

* Utwórz tabelę wbudowaną z edytowalnymi danymi jako wejście dla przepływu:

  ```
  MyTable:
  Load * Inline [
  Country, Year, Sales
  Argentina, 2014, 66295.03
  Argentina, 2015, 140037.89
  Austria, 2014, 54166.09
  Austria, 205,182739.87
  ];
  ```

  Więcej informacji zawiera temat [Using inline loads to load data.](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

* Ładowanie wszystkich plików z folderu jako wejścia dla przepływu. Ten przykład iteruje po wszystkich plikach z określonym rozszerzeniem w folderze i ładuje je do pojedynczej tabeli. Zastąp nazwę połączenia danych i ścieżkę folderu własnymi wartościami oraz dostosuj rozszerzenie pliku i ustawienia formatu w razie potrzeby:

  ```
  SET vFolderPath = 'lib://YourDataConnection/FolderName';

  FOR EACH vFile IN filelist('$(vFolderPath)/*.csv')
      LOAD * FROM [$(vFile)]
      (txt, utf8, embedded labels, delimiter is ',');
  NEXT
  ```

  Więcej informacji zawiera temat [For each..next](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/ControlStatements/for-each.htm).

  Więcej przykładów wyrażeń skryptu zawiera temat [Regular statements](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartLevelScripting/modifier-regular-statements.htm) oraz [Script and chart functions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/functions-in-scripts-chart-expressions.htm).