Przejdź do głównej zawartości

Argumenty wywołania pakietu


Pakiet do działania może potrzebować wartości konfiguracyjnych.

wskazówka

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.
  1. Aby zdefiniować argumenty wybierz opcję Deklaracja argumentów z menu pakietu przetwarzania.
  2. W oknie definiowania argumentów możesz dodać pola i rekordy wraz z adnotacjami.

image

  1. 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.

image

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

image

Wywołania w pakiecie mogą wyglądać nastepująco:

  1. 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)#
  1. 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.

image

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

image

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

image

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.

ważne

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.

image

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

image

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​

  1. Przejdź do pakietu przetwarzania i wybierz opcję dodawania argumentów. Wybierz z menu górnego pakietu przetwarzania opcję image
  2. Dodaj pole odpowiedniego typu. W tym przypadku dodaj pole daty.

image

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

image

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

image

KROK 2 Dodanie pola do schematu danych formularza​

  1. Przejdź do formularza i zakładki Mapowania startowe.
  2. Dodaj pole DataWygenerowania do schematu danych.

image

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

image

KROK 3 Przekazanie danych do argumentu w mapowaniu akcji​

  1. Przejdź do mapowania akcji. Na zakładce Akcje kliknij dwukrotnie w akcję, która uruchamia pakiet przetwarzania.
  2. 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.
  3. 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.

image

  1. 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.
  2. W ten sposób po uruchomieniu akcji pakiet zostanie wywołany wraz z przekazaniem parametru do pola Data z wygenerowania.

image

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.

  1. Przejdź do pakietu przetwarzania do bloczka generacji dokumentu, do mapowania danych.
  2. W strukturze danych dokumentu jest pole DataWygenerowaniaRaportu. Dodaj je do schematu danych przez wybór opcji z menu kontekstowego.

image

  1. 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.

image

  1. 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).
  2. Po wybraniu Ctrl+spacja też masz dostęp do drzewa danych ARG zarówno na zakładce Szczegóły jak i w oknie edytora.

image

  1. 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.

  1. W pakiecie przetwarzania dodaj argument KLIENT_ID Do argumentu zostanie przypisane konretne Id klienta.

image

  1. 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.
  2. Zmień treść zapytania w szczegółach bloczka na następującą:
SELECT *
FROM dbo.KLIENT where KLIENT_ID=#(ARG:KLIENT_ID)#
  1. 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#

image

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

image

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

image

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)

wskazówka

Funkcję można wywołać na bloczku Uruchomienie kodu lub na polu poprzez wyrażenie w pakiecie przetwarzania.

  1. W poniższym przykładzie w pakiecie zostały dodane 2 argumenty: Parametr wejściowy i Parametr wyjściowy.
  2. Do pola Parametr wejściowy została dodana adnotacja Źródło wartości-stała i wprowadzony tekst: Dane wejściowe do pakietu

image

  1. 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.
  2. 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.
  3. 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.

image

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

image

  1. Ponownie wybierz Ctrl+Spacja i wybierz funkcję SetArgumentFieldValue

image

  1. 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]

image

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

image

  1. Funkcję przypisania danych wynikowych z pakietu do argumentu można także wykonać na bloczku Uruchamianie kodu.

  2. 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)

  3. 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.

image

ważne

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.

image

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.

  1. W pakiecie przetwarzania zdefiniowane są 2 argumenty

image

  1. 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ą.

image

  1. 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.

image

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

image

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

image

  1. 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.

image

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

image

  1. 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.
  2. 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.

image

Wykluczenie logowania argumentów pakietu​

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

image

  1. 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ą.

image

Zobacz również​

Obsługa błędów

Słowniki

Źródła danych