Przekazywanie wartości między komponentami lub stronami wniosku

Platforma Eximee Designer umożliwia przekazywanie wartości z jednego komponentu do drugiego. W zależności od tego, czy komponenty znajdują się w tym samym artefakcie czy w dwóch różnych, przekazywanie wartości odbywa się w różny sposób. Inaczej także będziemy postępować w sytuacji, gdy chcemy tylko przekazać wartość, a inaczej gdy chcemy z przekazanej wartości skorzystać np. uzależniając od niej widoczność.

Przekazanie wartości między komponentami znajdującymi się w tym samym artefakcie

Jeśli zachodzi potrzeba przepisania wartości z jednego Pola tekstowego (TextField) do drugiego lub do innego komponentu, np. do treści oświadczenia albo z Pola wyboru wartości z listy (Combobox) wyświetlającego listę typów dokumentów tożsamości do innego Comboboxa, można w komponencie, do którego chcemy przekazać wartość:

  • Skorzystać ze skryptu EchoServiceScript (wybrać w sekcji Interakcje w polu ŹRÓDŁO DANYCH ZEWNĘTRZNYCH opcję Wybierz serwis i wskazać ten skrypt), w którym należy podać na wejściu komponent przekazujący dane. W parametrach wyjściowych skryptu należy odpowiednio zmapować wyjście skryptu na atrybut komponentu. To podejście dodatkowo daje nam możliwość wskazania formatera, który odpowiednio zmodyfikuje otrzymane ze skryptu dane.

    Ilustracja 1. Przykład podpiętego skryptu "EchoServiceScript"

  • Wybrać w polu ŹRÓDŁO DANYCH Z INNEGO POLA komponent przekazujący dane:

Ilustracja 2. Ustawienie jako źródła danych komponentu, z którego będą pobrane dane

  • Wybrać w polu ŹRÓDŁO DANYCH Z INNEGO POLA zmienną sesyjną, dla której zdefiniowano usługę przekazującą wartość z innego komponentu:

    Ilustracja 3. Ustawienie zmiennej sesyjnej, z której będą przekazywane wartości

  • Wybrać w polu ŹRÓDŁO DANYCH ZEWNĘTRZNYCH usługę zdefiniowaną wcześniej na stronie (mającej wejście z komponentu przekazującego dane):

    Ilustracja 4. Podpięcie "PageService"

We wszystkich przypadkach należy pamiętać o nasłuchiwaniu na komponent, którego wartość przepisujemy (więcej w temacie: Nasłuchiwanie i czyszczenie).

Ilustracja 5. Przykład przepisania z Pól tekstowych wartości do Etykiet (z użyciem "EchoService", "ŹRÓDŁO DANYCH Z INNEGO POLA" i zmiennej sesyjnej)

Zastosowanie powyższej instrukcji dla Pola wyboru wartości z listy/Daty (i innych komponentów, które przekazują wartość, a nie prezentowaną treść, etykietę czy opis) spowodowałaby przekazanie wartości tego komponentu. Aby przekazać tekst (opis, czy etykietę) należy:

  • jeśli treść (etykietę czy opis) chcemy przekazać przez ŹRÓDŁO DANYCH Z INNEGO POLA, zamiast wybierać tam komponent przekazujący dane wpisać:

    • dla Pola wyboru wartości z listy (Combobox) po jego id dopisać $label, np. GesCombobox1$label:

      Ilustracja 6. Przekazanie tekstu z komponentu Pole wyboru wartości z listy (Combobox)

    • dla Daty (DatePicker) po jego id dopisać $displayValue, np. GesDatePicker1$displayValue

  • jeśli treść (etykietę czy opis) chcemy użyć w treści innego komponentu (np. w tytule sekcji, dodać do treści czy etykiety), należy odwołać się do tego Pola wyboru wartości z listy/Daty następująco:

    • dla Pola wyboru wartości z listy podać id komponentu w nawiasie klamrowym poprzedzonym dolarem z dopisanym $label, np. ${GesCombobox1$label}:

      Ilustracja 7. Przykład użycia tekstu z Pola wyboru wartości z listy w tytule sekcji

  • dla Daty podać id komponentu w nawiasie klamrowym poprzedzonym dolarem z dopisanym $displayValue, np. ${GesDatePicker1$displayValue}.

Lista atrybutów komponentów dostępnych po "$", została opisana w: Atrybuty komponentów.

Przekazanie wartości między komponentami znajdującymi się w różnych artefaktach

W sytuacji, gdy komponenty nie znajdują się w jednym artefakcie (tym samym komponencie złożonym), należy do artefaktu zasilanego wstrzyknąć wartości. Nie jest ważne, czy oba komponenty złożone znajdują się na tej samej stronie wniosku.

Przekazywanie wartości przebiega dwuetapowo. Najpierw należy w komponencie, który będzie przyjmował wartości zdefiniować parametry wejściowe, a następnie w artefakcie nadrzędnym zmapować odpowiednie komponenty przekazujące dane. Etap pierwszy może mieć różny przebieg, a jego złożoność zależy od tego, czy chcemy tylko przekazać wartość z komponentu do komponentu, czy dodatkowo chcemy od tej wartości uzależnić inną czynność, np. widoczność komponentu.

Ogólna definicja opisująca przekazywanie wartości do komponentów złożonych znajduje się tutaj: Parametry wejściowe komponentu złożonego. Nie zostały tam jednak opisane szczególne sytuacje przekazywania wartości.

Przekazywanie wartości wprost

Jeśli dane przekazywane chcemy wykorzystać wprost, czyli tylko przekazać wartość z jednego komponentu do drugiego (np. stworzyć podsumowanie wprowadzanych we wniosku danych), to należy w komponencie złożonym pobierającym wartości zdefiniować parametry wejściowe, czyli wskazać komponenty, którym przekażemy wartość. W tym celu należy w lewym panelu wybrać opcję Parametry wejściowe, a następnie Dodaj parametr wejściowy. W kolumnie Komponent wniosku należy wybrać pole z wniosku lub zmienną sesyjną, któremu chcemy przekazać wartość:

Ilustracja 8. Przykład zdefiniowanych parametrów wejściowych dla komponentów i zmiennych sesyjnych

Po zdefiniowaniu pól wejściowych należy zapisać komponent złożony i otworzyć artefakt, w którym ten komponent został osadzony.

Kolejny krok to zmapowanie wartości na odpowiednie pola wejściowe, co należy wykonać w artefakcie nadrzędnym w stosunku do obu komponentów złożonych (przekazującego i pobierającego wartości). Po zaznaczeniu artefaktu pobierającego wartości należy we właściwościach tego komponentu kliknąć w opcję PARAMETRY WEJŚCIOWE i w wysuniętej szufladzie ustalić źródła pobieranych wartości.

Jeśli po kliknięciu we właściwość PARAMETRY WEJŚCIOWE nie widać listy parametrów, należy odświeżyć okno konsoli.

Ilustracja 9. Przykład zmapowania parametrów na komponenty artefaktu przekazującego wartości (np. GesComplexComponent1.GesTextField3) i zmienne sesyjne (np. imieNazwiskoPesel)

Przekazanie wartości do zmiennej sesyjnej i dalsze wykorzystanie przekazanej wartości

W sytuacji, gdy od przekazanej do komponentu wartości chcemy uzależnić inną czynność, np. widoczność komponentu, wymagalność lub wyświetlenie wartości Pola wyboru wartości z listy w etykiecie, wstrzykniętą wartość należy przekazać do zmiennej sesyjnej (zamiast bezpośrednio do komponentu).

Pierwszy etap polegający na wskazaniu elementów, którym zostaną przekazane wartości należy rozpocząć od utworzenia zmiennych sesyjnych. W tym celu należy w lewym panelu wybrać opcję Zmienne sesyjne i kliknąć przycisk Dodaj zmienną sesyjną. W wysuniętym panelu w pustym wierszu stworzonym na samej górze należy ustalić nazwę zmiennej sesyjnej (dokładna instrukcja tutaj: Zarządzanie zmiennymi sesyjnymi). Po utworzeniu zmiennych sesyjnych należy zdefiniować dla nich przekazanie wartości, co odbywa się identycznie jak dla komponentów (w panelu Parametry wejściowe wskazać każdą zmienną sesyjną, której chcemy przekazać wartość).

Etap drugi, czyli zmapowanie wartości na odpowiednie pola wejściowe w artefakcie nadrzędnym, przebiega identycznie jak dla komponentów (po zaznaczeniu artefaktu pobierającego wartości należy we właściwościach tego komponentu kliknąć w opcję PARAMETRY WEJŚCIOWE i w wysuniętej szufladzie ustalić źródła pobieranych wartości).

Przykłady użycia wartości przekazanej do zmiennej sesyjnej zostały opisane w Zarządzanie zmiennymi sesyjnymi oraz poniżej.

Różne przykłady przekazywania wartości

Zasilenie etykiety (komponent Text) wprost z innego pola

  • w artefakcie, do którego chcemy przekazać wartość dla etykiety zdefiniować tę etykietę jako pole wejściowe (w panelu Parametry wejściowe),

  • w artefakcie nadrzędnym zmapować odpowiedni komponent, który ma etykiecie przekazać dane (właściwość PARAMETRY WEJŚCIOWE komponentu złożonego).

Zasilenie etykiety z kilku zmiennych sesyjnych

  • w artefakcie, do którego chcemy przekazać wartość utworzyć zmienne sesyjne oraz ustalić je jako pola wejściowe (w panelu Parametry wejściowe),

  • w etykiecie, którą chcemy zasilić, we właściwości Treść wpisać nazwy zmiennych w schemacie znak dolara{nazwa_zmiennej} (czyli np. ${imie}); można dodać dowolną treść przed lub po odwołaniu do zmiennej sesyjnej, np. Pani ${imie},

  • w etykiecie, którą chcemy zasilić dodać nasłuchiwanie na wykorzystane zmienne (sekcja Interakcje, przycisk Lista w podsekcji Nasłuchiwania),

  • w artefakcie nadrzędnym zmapować odpowiednie komponenty, które mają utworzonym zmiennym sesyjnym przekazać wartość (właściwość PARAMETRY WEJŚCIOWE).

    Ilustracja 10. Przykład wykorzystania zmiennych sesyjnych (imie i nazwisko) w komponencie "Etykieta" do przekazania wartości

Zasilenie etykiety wartością "Pola wyboru wartości z listy" (Comboboxa)

Zasilenie etykiety wprost wartością z Pola wyboru wartości z listy skutkowałoby wyświetleniem klucza wybranej wartości, w związku z tym konieczne jest zastosowanie poniższej instrukcji:

  • w artefakcie, do którego chcemy przekazać wartość dla etykiety zdefiniować tę etykietę jako pole wejściowe (w panelu Parametry wejściowe)

  • w artefakcie nadrzędnym zmapować odpowiedni Combobox, który ma etykiecie przekazać dane (właściwość PARAMETRY WEJŚCIOWE komponentu złożonego)

  • w źródle xml artefaktu nadrzędnego należy dopisać $label za id Comboboxa przekazującego wartość, czyli jeśli zostało ustawione mapowanie na Combobox1, to w zapisie <data:InputMapping componentId="GesComplexComponent1.GesCombobox1" alias="typDokumentuTozsamosci"/>) za id należy wpisać $label (tu "GesComplexComponent1.GesCombobox1$label")

Zasilenie etykiety wartością z komponentu Data (DatePickera), Radio Grupy i pozostałych

Zasilenie etykiety wprost z Daty skutkować będzie wyświetleniem wartości wybranej daty jako timestampa, w związku z czym konieczne jest zastosowanie poniższej instrukcji:

  • w artefakcie, do którego chcemy przekazać wartość dla etykiety zdefiniować tę etykietę jako pole wejściowe (w panelu Parametry wejściowe),

  • w artefakcie nadrzędnym zmapować odpowiedni komponent daty, który ma etykiecie przekazać dane (właściwość PARAMETRY WEJŚCIOWE komponentu złożonego),

  • w źródle xml artefaktu nadrzędnego w wierszu odpowiedzialnym za mapowanie na komponent Data za id komponentu dopisać $displayValue.

Powyższa instrukcja ma zastosowanie także dla Radio grupy, Wyboru produktu i innych komponentów, które przekazują wartość, a nie prezentowaną treść, etykietę czy opis. W opisany sposób wartość można przekazać do etykiety, ale także do komponentu Pole tekstowe czy Treść formatowana (TextContent).

Zasilenie zmiennej sesyjnej na innym komponencie wartością "Pola wyboru wartości z listy" (Comboboxa)

Jeśli zachodzi potrzeba zasilenia zmiennej sesyjnej lub kilku komponentów wartością Pola wyboru wartości z listy znajdującego się w innym artefakcie, należy do tej zmiennej przekazać już samą wartość, a nie jego klucz. W tym celu warto utworzyć pole techniczne, któremu w polu ŹRÓDŁO DANYCH Z INNEGO POLA dodajemy $label. W ten sposób pole techniczne posiada już wartość Comboboxa i możemy tę wartość zmapować do dowolnego artefaktu.

Patrz też: Parametry wejściowe komponentu złożonego.

W jednym komponencie złożonym wartości mogą być przekazywane bezpośrednio do komponentu jak i do zmiennych sesyjnych. Sposób przekazania zależy od dalszego wykorzystania wstrzykiwanych wartości.

Last updated

Was this helpful?