Wykorzystanie atrybutu: Tabela SQL

Facebooktwitterpinterestlinkedinmail
dotyczy wersji: 8.0.x; autor: Martyna Kubiak

Wstęp

Atrybut Tabela SQL pozwala wyświetlić na formularzu dane w postaci tabeli o zdefiniowanych przez nas kolumnach. Dane mogą pochodzić ze źródła zdefiniowanego w Studio lub z bazy, w której przechowujemy dokumenty procesu (źródło domyślne).

Przykład zastosowania

Wyświetlenie danych w atrybucie Tabela SQL może okazać się przydatne, gdy w obiegu, który stworzyliśmy występują dokumenty powiązane. Dla przykładu mamy w naszej firmie stworzony proces Kancelarii. Proces ten ma obieg Korespondencja i dla tego obiegu ma dwa typy dokumentów: Korespondencji przychodzącej i Korespondencji wychodzącej. Każdy dokument Korespondencji wychodzącej jest powiązany do jednego dokumentu Korespondencji przychodzącej za pomocą atrybutu „Powiązana KP”, w którym wybieramy odpowiednią sygnaturę.

Pierwszą sytuacją w opisanym przykładzie, gdzie atrybut Tabela SQL będzie niezbędny, będzie wyświetlenie na dokumencie Korespondencji przychodzącej danych powiązanych z nim dokumentów Korespondencji wychodzącej, a także możliwość przejścia do tych dokumentów za pomocą linka.

Drugim przykładem może być wyświetlenie danych z dokumentów archiwalnych. Mamy nasz obieg Korespondencji przychodzącej i rejestrując nowy dokument na danego nadawcę, mamy potrzebę prześledzenia historii Korespondencji przychodzącej od tego nadawcy.

Konfiguracja

Typ atrybutu

W interesującym nas procesie tworzymy nowy atrybut i ustawiamy jego typ na Tabela SQL.

tabela-atrybut

Źródło danych i zapytanie

Następnie wybieramy źródło danych. Dla naszego przykładu będzie to źródło domyślne, czyli baza, z którą połączone jest Studio.

tabela-zrodlo

Po wybraniu źródła należy napisać zapytanie SQL, które wyciągnie z bazy interesujące nas dane. Przechodzimy do edycji wyrażenia poprzez kliknięcie przycisku Edytuj pod polem Zapytanie SQL lub CAML.

tabela-zapytanie

Dla naszego pierwszego przykładu, potrzebujemy w pierwszej kolumnie link do powiązanych z aktualnym dokumentem Korespondencji wychodzących wyświetlany w postaci sygnatury. Następnie wyciągamy daty: rejestracji i wysłania Korespondencji wychodzącej.

W celu znalezienia pola w bazie, do którego dany atrybut jest przypisany możemy wykorzystać drzewo po prawej stronie okna Edycja wyrażenia. Rozwijamy Atrybuty formularza  i po przejściu na zakładkę Tryb zaawansowany (na górze po lewej), oprócz kolumny Nazwa, pojawią nam się dwie dodatkowe kolumny: Tag i Pole w bazie. Nas interesuje kolumna Pole w bazie i widzimy, że dla atrybutu Data rejestracji ma ona wartość WFD_AttDateTime1. Tabela, w której przechowywane są dokumenty obiegów ma nazwę WFElements.

tabela-zapytanie-wasy

Wyciągnięte dane musimy jeszcze zawęzić do typu dokumentu Korespondencja wychodząca oraz wziąć pod uwagę tylko te, które są powiązane z aktualnym dokumentem Korespondencji przychodzącej. Typ dokumentu przechowywany jest w kolumnie WFD_DTYPEID, a ID typu Korespondencji wychodzącej możemy znaleźć w drzewku po prawej stronie. Rozwijamy grupę Identyfikator obiektów i wyszukujemy nasz proces. Po rozwinięciu go, wchodzimy w Typy dokumentów i klikamy dwa razy w nazwę szukanego typu. W ten sposób tag reprezentujący jego ID przenosi się do okna zapytania.

tabela-wasy

W drzewie po prawej możemy także znaleźć tag, który odnosi się do ID aktualnego dokumentu. W celu przeniesienia taga do zapytania, klikamy dwa razy w napis ID elementu, który znajduje się w grupie Atrybuty systemowe i podgrupie Informacje. ID naszego aktualnego elementu porównujemy z ID znajdującym się w atrybucie Powiązana KP. Atrybut ten jest polem wyboru, który został skonfigurowany w taki sposób, że jego ID to ID powiązanego dokumentu Korespondencji przychodzącej, a nazwa to sygnatura tego dokumentu.  Dane z atrybutu tego typu przechowywane są w bazie w postaci ID#Nazwa, więc dla naszego przykładu musimy wyciągnąć z pola samo ID. Używamy do tego funkcji zdefiniowanej w bazie – clearWFElemID.

tabela-wasy2

Dla drugiego przykładu, zapytanie musi wyciągnąć dane wszystkich dokumentów Korespondencji przychodzącej, które mają takiego samego Nadawcę oraz ID różne od aktualnego elementu. ID dokumentu jest przechowywane w tabeli WFElements w kolumnie WFD_ID.

tabela-zapytanie-edycja

Szczegóły wyświetlania

Po zdefiniowaniu zapytania, możemy przejść do ustalania szczegółów dotyczących wyświetlania naszego atrybutu na formularzu. W tym celu klikamy przycisk Konfiguruj w prawym dolnym rogu głównego okna Studia, które pojawi się po kliknięciu naszego atrybutu w drzewie wyboru po lewej stronie. Pojawi nam się okno Konfiguracja, w którym możemy wykonać następujące czynności:

  • Ustawić jakie nazwy będą wyświetlane dla kolumn, które zostaną zwrócone w wyniku naszego zapytania.
  • Zezwolić, lub nie, na puste wartości w źródle danych (dotyczy pobierania danych z list SharePoint).
  • Ustalić czy nad wyświetlaną tabelą z danymi ma pojawić się nazwa naszego atrybutu.
  • Włączyć lub wyłączyć pokazywanie nazw kolumn w tabeli.
  • Ustawić stronicowanie – pozwala ono na ustalenie liczby elementów zwróconych w wyniku zapytania, które mają być widoczne na formularzu. Jeśli zapytanie zwróci więcej elementów, niż zdefiniowana liczba, to resztę będzie można przeglądnąć przechodząc na kolejne „strony” tabeli. Jest to wygodne rozwiązanie przede wszystkim dla zapytań, które zwracają po kilkadziesiąt elementów – wyświetlając je wszystkie na raz formularz stałby się zupełnie nieczytelny. Innym przypadkiem, dla którego warto zastosować stronicowanie, jest duża liczba atrybutów typu Tabela SQL.

tabela-sql-konfig

Weryfikacja działania

Dla pierwszego zarejestrowanego dokumentu Korespondencji przychodzącej atrybuty Powiązane KW i Archiwalne KP będą wyglądać tak jak na rysunku poniżej. Taki komunikat widzimy za każdym razem, gdy zapytanie nie zwraca żadnego elementu.

tabela-weryfikacja1

Po rejestracji kolejnych dokumentów Korespondencji przychodzącej na tego samego Nadawcę oraz powiązanych dokumentów Korespondencji wychodzącej, wchodząc ponownie na dokument nasze tabele SQL będą już zapełnione.

tabela-weryfikacja2

Obok nazw atrybutów wyświetlone są ikony odświeżenia. Klikając w tą ikonę, dane do tabeli zostaną pobrane jeszcze raz. Jest to przydatne, gdy np. rejestrujemy nowy dokument i uzupełniamy wszystkie atrybuty, w tym atrybut Nadawca. Po jego uzupełnieniu, w tabeli Archiwalne KP powinny się pojawić jakieś elementy. Tak się jednak nie stanie, ponieważ atrybuty typu Tabela SQL nie odświeżają się automatycznie.

tabela-weryfikacja3

Dopiero po kliknięciu ikony odświeżenia obok nazwy Archiwalne KP dostaniemy listę dokumentów zarejestrowanych na danego Nadawcę.

tabela-weryfikacja4

Konieczność ręcznego odświeżania tabeli możemy ominąć poprzez odpowiednie skonfigurowanie atrybutów, z których pobieramy dane do zapytania w Tabeli SQL. W naszym przypadku takim atrybutem, dla tabeli Archiwalne KP, jest Nadawca. W celu uzyskania efektu automatycznego odświeżenia się tabeli po wpisaniu Nadawcy należy zaznaczyć checkbox „Generuje postback po zmianie wartości” w parametrach atrybutu Nadawca.

tabela-postback

Podsumowanie

Atrybut typu Tabela SQL może okazać się bardzo przydatny w procesach, które mają kilka obiegów powiązanych ze sobą i potrzebujemy na jednym dokumencie wyświetlić dane z innych obiegów. Tabela SQL daje również możliwość wyświetlenia danych z innej bazy, która jest zdefiniowana jako źródło w Studio.  Jako przykład możemy przyjąć taką sytuację – wybieramy osobę w atrybucie typu Pole wyboru i w Tabeli SQL wyświetlają nam się dane na temat tej osoby pobrane z bazy zdefiniowanej jako źródło danych dla tego atrybutu.

Tabela SQL pozwala na łatwe wyciągnięcie informacji potrzebnych w trakcie realizacji danego obiegu dokumentów. Korzystając z niej nie potrzebujemy już szukać tych danych na innych dokumentach czy bazach – mamy je wszystkie wyświetlone na formularzu, w przejrzystej i czytelnej formie.