Argumenty wywołania pakietu
Pakiet do działania może potrzebować wartości konfiguracyjnych.
Przykładowo – jeśli jego logika przetwarza pewne podmioty utworzone w czasie od X do Y, to owe parametry X i Y należy w pewien sposób „wystawić” do skonfigurowania z zewnątrz pakietu przed jego uruchomieniem. Do tego służy właśnie drzewo danych Argumenty wywołania pakietu (opcja dostępna w menu górnym).
Drzewo to będzie zwykle zawierać jedynie pola o dowolnych typach i wymagalnościach. System skonfigurowany jest ten w sposób, iż nie można uruchomić pakietu, którego argument wymagalny nie jest wypełniony wartością.
W drzewie można podłączać kilka rodzajów adnotacji:
- Opis – dowolny słowno-muzyczny opis argumentu, prezentowany na zewnątrz (np. w konfiguracji zadania, w uniwersalnym hoście podczas konfiguracji triggera uruchamiania),
- Wartość stała – wartość domyślna parametru,
- Parser – służy do konwersji wartości ustawianych z zewnątrz na typ danych pola.
- Aby zdefiniować argumenty wybierz opcję Deklaracja argumentów z menu pakietu przetwarzania.
- W oknie definiowania argumentów możesz dodać pola i rekordy wraz z adnotacjami.

- Argumenty wywołania pakietu są dostępne do wykorzystania w postaci specjalnego drzewa danych o nazwie ARG:. Można z niego skorzystać w treści wyrażeń w edytorze wyrażeń i na panelu Szczegóły po wybraniu Ctrl+Spacja gdy zostanie wyświetlone podpowiadanie składni oraz w szablonie zapytania SQL.

Przykładowo dla argumentów zdefiniowanych następująco:

Wywołania w pakiecie mogą wyglądać nastepująco:
- Z poziomu SQL w bloczku wejściowym DbInput:
SELECT spr.*,
P_CLOSED, P_TECH_ERROR,
seg.S_CLOSED as SEG_CLOSED, seg.S_CLOSED as SEG_CLOSED
FROM dbo.SDMO_SPRAWA spr (nolock)
WHERE
S_UPDATE_BATCH < #(ARG:ID_PRZETWARZANIA)#
or S_DATA_KOLEJNEGO_WZBUDZENIA_PROCESU <= #(ARG:DATA_PRZETWARZANIA)#
- Z poziomu odwzorowania w miejscu – w treści wyrażenia. Możesz dodać adnotację Wyrażenie do pola z menu kontekstowego lub przeciągnij z drzewa danych ARG pole bezpośrednio na pole na schemacie danych i z menu kontekstowego wybierz Ustaw źródło. Adnotacja zostanie automatycznie dodana do pola wraz ze źródłem danych.

- Z poziomu bloczka Klasyfikacja. Wybierz Ctrl+Spacja i przejdź do drzewka ARG.

- Ponownie wybierz Ctrl+Spacja i wskaż argument z listy.

Przekazywanie parametrów z formularza do pakietu poprzez argumenty
Wykorzystując argumenty możesz przekazywać dane z formularza do pakietu oraz z pakietów do formularzy.
Niezbędne jest zdefiniowanie argumentów pakietu (pola danych), do których zostaną przypisane parametry z formularza.
W poniższym przykładzie na formularzu użytkownik wprowadza datę wygenerowania raportu oraz wybiera przycisk Generuj raport, który uruchamia akcję wykonania pakietu przetwarzania w celu wygenerowania dokumentu.

Na raporcie potrzebujemy umieścić datę wygenerowania dokumentu (pole wypełnione na formularzu), a nie posiadamy takiego pola w bazie danych.

W tym przypadku, jeżeli potrzebujemy daty wygenerowania dokumentu tylko do przekazania do dokumentu i nie musimy zapisywać jej w bazie danych możemy dodać pole do schematu danych na formularzu, a następnie posłużyć się przekazaniem tej wartości do pakietu w postaci argumentu.
KROK 1 Dodanie argumentu do pakietu przetwarzania
- Przejdź do pakietu przetwarzania i wybierz opcję dodawania argumentów. Wybierz z menu górnego pakietu przetwarzania opcję
- Dodaj pole odpowiedniego typu. W tym przypadku dodaj pole daty.

- Domyślnie każde dodane pole ma przypisaną adnotację Źródła wartości jako Stała.
- W tym przypadku dane dla pola będą przekazywane z formularza dlatego nie musimy wprowadzać żadnej adnotacji.
- Usuń opcję Źródło wartości. Zaznacz pole i z menu kontekstowego odznacz opcję Ustaw wartość>Źródło wartości-stała.

- Możesz też zmienić nazwę pola a także zaznaczyć/odznaczyć wymagalność pola.

KROK 2 Dodanie pola do schematu danych formularza
- Przejdź do formularza i zakładki Mapowania startowe.
- Dodaj pole DataWygenerowania do schematu danych.

- Przejdź do zakładki Projektant i umieść dodane pole na formularzu.

KROK 3 Przekazanie danych do argumentu w mapowaniu akcji
- Przejdź do mapowania akcji. Na zakładce Akcje kliknij dwukrotnie w akcję, która uruchamia pakiet przetwarzania.
- Zostanie otwarta kolejna zakładka Mapowanie akcji. Na schemacie danych oprócz danych ze struktury formularza dostępne są wyszarzone rekordy odnoszące się do pakietu przetwarzania.
- Rekord ARG zawiera argumenty, które zdefiniowane zostały w pakiecie przetwarzania. W tym przypadku jest to pole Data wygenerowania. Widoczne jest też pole dodane do schematu danych na formularzu DataWygenerowania. Należy zwrócić uwagę, że dane z tego pola nie są zapisywane do żadnej bazy danych. Mimo to możemy je przekazać do pakietu przetwarzania.

- Przeciągnij dodane pole do schematu danych DataWygenerowania z rekordu FormInputStructure na pole w rekordzie ARG i wybierz z menu kontekstowego Ustaw źródło.
- W ten sposób po uruchomieniu akcji pakiet zostanie wywołany wraz z przekazaniem parametru do pola Data z wygenerowania.

KROK 4 Odwołanie się do argumentów w pakiecie przetwarzania
W pakiecie przetwarzania aby odwołać się do zdefiniowanych argumentów należy wykorzystać adnotację wyrażenie.
- Przejdź do pakietu przetwarzania do bloczka generacji dokumentu, do mapowania danych.
- W strukturze danych dokumentu jest pole DataWygenerowaniaRaportu. Dodaj je do schematu danych przez wybór opcji z menu kontekstowego.

- Przypisz źródło danych dla pola i odwołaj się do parametru przekazanego z formularza do argumentów pakietu. W tym celu dodaj adnotację Wyrażenie do pola.

- Przejdź do definiowania wyrażenia. W oknie edytora wyrażeń możesz odszukać argumenty na zakładce ARG i następnie kliknij dwukrotnie na pole (Data wygenerowania).
- Po wybraniu Ctrl+spacja też masz dostęp do drzewa danych ARG zarówno na zakładce Szczegóły jak i w oknie edytora.

- Możesz także skorzystać z drzewa danych ARG po prawej stronie i przeciągnąć pole z rekordu ARG na pole w schemacie danych, bez konieczności wcześniejszego dodawania adnotacji wyrażenie.
Przekazywanie Id elementu danych formularza do pakietu przetwarzania
Innym przykładem stosowania argumentów i przekazywania wartości z formularza do pakietu jest przekazywanie Id struktury danych, na której oparty jest formularz.
Przykładowo akcja wywołująca pakiet przetwarzania ma być wykonana dla konkretnego Id, w kontekście którego otwarty jest formularz. Przypuśćmy, że akcja wykonująca generowanie dokumentu ma zostać wykonana dla konkretnego ID klienta.
- W pakiecie przetwarzania dodaj argument
KLIENT_IDDo argumentu zostanie przypisane konretne Id klienta.

- Przejdź do pakietu przetwarzania do bloczka wejściowego odczytu z bazy danych, w którym pobierane są dane klienta dla, którego generowany jest dokument.
- Zmień treść zapytania w szczegółach bloczka na następującą:
SELECT *
FROM dbo.KLIENT where KLIENT_ID=#(ARG:KLIENT_ID)#
- W powyższym zapytaniu określasz, że pakiet ma się wykonać dla Id klienta
KLIENT_ID, które zostanie przekazane z formularza poprzez argument#ARG:KLIENT_ID#

- Przejdź na formularz do mapowań akcji, która uruchamia pakiet przetwarzania.
- Wybierz opcję Parametry wejściowe. Tutaj można zdefiniować parametry, które zostaną przekazane do pakietu.
- Na schemacie danych widoczne są wyszarzone rekordy ARG i Blocks, które odnoszą się do pakietu przetwarzania.
- Jeżeli nie widzisz rekordów ARG i Blocks, wówczas zaznacz rekord FormInputStructure i wyznacz korzeń danych poprzez wybór przycisku Kotwicy

- Rozwiń pola schematu i przeciągnij pole Id na pole z rekordu
ARG KLIENT_ID

Argumenty pakietu - Dane wyjściowe z pakietu
Do pakietów możemy zarówno przekazać parametry wejściowe w postaci argumentów, ale także odbierać dane, jako wynik dokonanych obliczeń w pakiecie lub innych transformacji na danych. W tym celu należy wykorzystać odpowiednią funkcję: pkg.SetArgumentFieldValue (a_filed, a_value)
Funkcję można wywołać na bloczku Uruchomienie kodu lub na polu poprzez wyrażenie w pakiecie przetwarzania.
- W poniższym przykładzie w pakiecie zostały dodane 2 argumenty: Parametr wejściowy i Parametr wyjściowy.
- Do pola Parametr wejściowy została dodana adnotacja Źródło wartości-stała i wprowadzony tekst: Dane wejściowe do pakietu

- W schemacie danych pakietu znajdują się dwa pola Wejście i Wyjście. Źródłem danych dla pola Wejście będą dane z argumentu Parametr wejściowy.
- W kolejnym bloczku Odwzorowanie w miejscu poprzez adnotację Wyrażenie zostały dodane źródła danych dla pola Wejście jako wartość z pola z argumentu Parametr wejściowy.
- Możesz przeciągnąć pole z widoku z prawej strony z rekordu ARG na pole na schemacie danych po lewej stronie. Z menu kontekstowego wybierz opcję Ustaw źródło.

- W polu Wyjście będziemy chcieli wyświetlić dane wyjściowe z pakietu. Dodaj adnotację Wyrażenie do pola.
- W edytorze wyrażeń wybierz Ctrl+Spacja i odszukaj pkg.

- Ponownie wybierz Ctrl+Spacja i wybierz funkcję
SetArgumentFieldValue

- Zdefiniuj parametry funkcji: do jakiego argumentu mają zostać zapisane dane wynikowe:
ARG::[Parametr wyjściowy]co chcemy tam zapisać, jakie dane lub dane z jakich pól. Mogą to być dane z innych argumentów pakietu lub dane z pól ze schematu danych:"W tym polu jest wartość wyjściowa z pakietu oraz "+ARG::[Parametr wejściowy]

- Dodaj bloczek Podgląd danych i uruchom pakiet aby sprawdzić działanie przypisanych argumentów oraz zwracanych danych wyjściowych z pakietu.

-
Funkcję przypisania danych wynikowych z pakietu do argumentu można także wykonać na bloczku Uruchamianie kodu.
-
Dodaj bloczek Uruchamianie kodu do pakietu i w szczegółach bloczka zdefiniuj funkcję analogicznie jak w poprzednim przypadku:
pkg.SetArgumentFieldValue(ARG::[Parametr wyjściowy],"W tym polu jest wartość wyjściowa z pakietu"+Wejście) -
W tym przykładzie ostatni argument funkcji: pole Wejście pochodzi z drzewa schematu danych pakietu, a nie z drzewa ARG, w którym są zdefiniowane argumenty wywołania pakietu. Zarówno w jednym jak i w drugim przypadku zachowanie funkcji będzie identyczne, gdyż na bloczku wcześniejszym w odwzorowaniu w miejscu wartość argumentu Parametr wejściowy została przypisana jako źródło danych dla pola schematu Wejście, dlatego nie ma znaczenia czy odwołamy się tutaj do pola ze schematu czy do pola z drzewa argumentów ARG.

W tym przypadku jeżeli chcesz przypisać wartość parametru wyjściowego do danego pola w schemacie danych, wówczas dodaj bloczek odwzorowania w miejscu jako następny po bloczku Uruchamianie kodu i wykonaj mapowanie.

Przekazanie parametrów wyjściowych z pakietu do formularza
Komunikacja pomiędzy formularzem a pakietem przetwarzana może przechodzić w dwojaki sposób. Zarówno możesz przekazać dane z formularza do pakietu jako parametry wejściowe dla pakietu, a także odebrać dane z pakietu jako parametry wyjściowe z pakietu.
Przekazywanie danych do pakietu zostało opisane w rozdziale Przekazywanie parametrów z formularza do pakietu poprzez argumenty
Do opisania zagadnienia parametrów wyjściowych możemy posłużyć się tym samym pakietem co został zdefiniowany w przykładzie poprzednim opisany w rozdziale: Argumenty pakietu - Dane wyjściowe.
- W pakiecie przetwarzania zdefiniowane są 2 argumenty

- Do pola Parametr wejściowy będą przekazywane dane z formularza, a w polu Parametr wyjściowy będą dane wynikowe z pakietu, które zostały zdefiniowane na bloczku Uruchamianie kodu odpowiednią funkcją.

- Przejdź do formularza i dodaj pola na zakładce Mapowania startowe: Wejście i Wyjście. Możemy do tych pól przypisać wartość z argumentów pakietu.

- Dodaj akcję Uruchom pakiet przetwarzania i przejdź na zakładkę Mapowania akcji.
- Przeciągnij pole Wejście z rekordu FormInputStructure na pole w rekordzie ARG i wybierz z menu kontekstowego Ustaw źródło.

- Dodaj pole Parametr wyjściowy, tak aby było widoczne w schemacie danych. Z menu kontekstowego wybierz opcję Popraw>Dodaj element.

- Przejdź na parametry wyjściowe w mapowaniu akcji. Wykonaj mapowanie danych z rekordu ARG (pole Parametr wyjściowy) na pole w schemacie danych Wyjście i z menu kontekstowego wybierz Ustaw źródło.

- Przejdź na zakładkę Projektant i przeciągnij wszystkie nowe pola na formularz.

- Zapisz dane i otwórz formularz w przeglądarce. Wprowadź dane na formularzu w polu Wejście i naciśnij przycisk, który wykonuje pakiet przetwarzania.
- Po wykonaniu akcji w pozostałych polach zostaną wyświetlone dane, które zostały przekazane z formularza do pakietu oraz dane otrzymane z pakietu przetwarzania.

Wykluczenie logowania argumentów pakietu
- Jeżeli dodałeś do pakietu argumenty i chcesz dany argument wykluczyć z logowania podczas wykonywania pakietu, wówczas użyj adnotacji Dane techniczne.

- Po uruchomieniu pakietu w zakładce Log możesz zobaczyć dane tylko z tych argumentów, które nie były oznaczone powyższą adnotacją.
