Kategorie

Wersja systemu

6.36.46.56.66.76.86.97.06.26.16.05.95.8

Tworzenie biblioteki akcji

Biblioteka Navigator.Extension.dll

Przed rozpoczęciem pracy należy zapoznać się z artykułem dotyczącym biblioteki Navigator.Extension.dll. Pozwoli to lepiej zrozumieć tworzenie akcji oraz ich obsługę. Artykuł dostępny jest tutaj.

 Zastosowanie akcji

System pozwala na wykorzystanie dwóch typów akcji, akcja typu ButtonAction oraz WorkflowAction. Obie akcje używane są w różnych sytuacjach.

Używanie akcji ButtonAction zaleca się gdy chcemy wywołać dane działanie na dowolnym kroku obiegu lub podpiąć akcję pod przycisk na formularzu. Ważną cechą tego typu akcji jest to, że akcja nie posiada formularza konfiguracyjnego a co za tym idzie nie możemy podać parametrów wywołania akcji przy konfiguracji obiegu.

Używanie akcji typu WorkflowAction zaleca się gdy ma się ona wykonać  na kroku obiegu oraz gdy jest potrzeba zdefiniowania dużej ilości parametrów. Tego typu akcji nie można bezpośrednio podpiąć pod przycisk, trzeba stworzyć procedurę obiegu i podpiąć ją pod przycisk.

Obecnie w tworzeniu akcji wykorzystujemy Navigator.Model.API.

Tworzenie biblioteki akcji

Aby utworzyć bibliotekę akcji należy w solucji Navigator.Extension dla danego środowiska utworzyć nowy projekt typu Class library(.NET Framework), którego produktem będzie rozszerzenie w formacie .dll

Ważne jest by wybrać odpowiednią wersję Frameworka zgodną z wersją Navigator.Extension znajdującą się na docelowym środowisku.

 

Pierwszą czynnością jaką powinno się wykonać po utworzeniu projektu jest zmiana parametru w Properties>AssemblyInfio.cs  z  assembly: AssemblyProduct(„NazwaProjektu”) na assembly: AssemblyProduct(„Navigator”).

Kolejną czynnością jest dodanie do projektu referencji do biblioteki Navigator.Model.dll,
znajduje się ona zwykle w Websites>NazwaŚrodowiska>Navigator.Web.Bin.

Po wykonaniu powyższych kroków można przystąpić do tworzenia akcji.

Tworzenie akcji ButtonAction

Metoda oznacza parametrem [ButtonAction] musi mieć dokładnie takie parametry i zwracany typ jak na Zrzucie5  ponieważ w systemie nie tworzy się formularz konfiguracyjny dla tych akcji. System automatycznie przekazuje do tego typu akcji ID dokumentu/ów oraz ID użytkownika.

Poniżej przedstawiona jest przykładowa akcja, która na podstawie wybranego na dokumencie kontrahenta pobiera wszystkie faktury zakupu dla danego kontrahenta.

Aby akcja została w odpowiedni sposób wykryta przez NAVIGATOR i zdatna do użycia należy pamiętać, aby metoda była typu publicznego.

Podczas pisania akcji należy pamiętać także o zwróceniu przez metodę odpowiednich powiadomień, aby osoby korzystające z NAVIGATORA otrzymały informacje o tym co się wykonało lub czy wystąpił jakiś błąd w trakcie wykonywania akcji, pozwala na to użycie „return new Message(„Teks w przypadku pomyślnie wykonanego kodu”)” oraz throw new Exception(„Teks w przypadku błędu”). Więcej o powiadomieniach można przeczytać tutaj.

W przypadku tworzenia akcji, która zawiera w sobie wiele wartości stałych do których często będzie się odnosić w metodzie akcji np. guidy pól, ID kateogrii dokumentów, ID typów dokumentów, itd.. Zaleca się stworzenie prostej klasy Constance w której dane stałe będą przechowywane, użycie takiego rozwiązania pozwala na prosty i uporządkowany dostęp do danych.

Podczas tworzenia akcji można ją w prostu sposób na bieżąco testować dane używając rozwiązania w projekcie Start. Pozwala ono sprawdzić czy wszystko działa poprawnie, śledzić otrzymywane dane oraz wyłapać różne błędy pojawiające się podczas wykonywania akcji Użycie tego rozwiązania zostało opisane tutaj.

Tworzenie akcji WorkflowAction

Tworząc akcję typu WorkflowAction tworzy się w podobny sposób do ButtonAction lecz różnicą są parametry używane w metodzie. W akcji typu WorkflowAction od tego jakie parametry wejściowe zdefiniujemy, takie będziemy potrzebować w formularzu konfiguracyjnym w NAVIGATOR.
Poniżej przykładowa akcja, która na odpowiednik kroku w dokumencie Zapotrzebowanie utworzy nowy dokument typu Zamówienie oraz przepisze elementy do niego elementy z Zapotrzebowania.

Zauważyć można, że na pierwszy rzut oka zadeklarowane metody nie różnią się dużo od siebie, jednak WorkflowAction pozwala na zdefiniowanie większej ilości parametrów wejściowych w momencie gdy ButtonAction ma sztywno określone jakich parametrów musimy użyć i jakie zostaną przekazane przez NAVIGATOR.

 

Zainstalowanie biblioteki akcji do NAVIGATORA

Po napisaniu działającej akcji należy wykonać Build projektu.
Aby odnaleźć lokalizację stworzonego rozszerzenie należy kliknąć prawym na projekt biblioteki akcji, wybrać opcję Open Folder in File Explorer

Następnie po otwarciu okna plik będzie znajdować w folderze bin>Debug

Aby wgrać własną bibliotekę akcji do NAVIGATOR wystarczy wejść w Ustawienia>Personalizacja>Rozszerzenia i za pomocą przycisku DODAJ dodać bibliotekę.

Po wgraniu rozszerzenia do NAVIGATOR poprawnie skonfigurowana akcja ButtonAction zostanie oznaczona jako akcja, a WorkflowAction jako Metoda z określonymi parametrami wejściowymi

Aby zaktualizować rozszerzenie po każdych zmianach należy w module Rozszerzenia zaznaczyć odpowiednią bibliotekę i za pomocą przycisku edytuj wybrać najnowszą  wersję rozszerzenia.

Konfiguracja i użycie Akcji

Akcje pisane jako rozszerzenia nie różnią się od akcji systemowych jeżeli idzie o konfiguracje. O metodach podpięcia akcji do procedury obiegu lub pod przycisk można przeczytać w artykule o użyciu akcji.

Tworzenie akcji w Navigator.Extension

Akcje typu WorkflowAction oraz ButtonAction można stworzyć także w  Navigator.Extension. Aby stworzyć takie akcje należy w projekcie utworzyć nową klasę.

Aby metoda w klasie funkcjonowała jako akcja należy tak jak w przypadku biblioteki zewnętrznej przypisać atrybut [ButtonAction] lub [WorkflowAction].

Trzeba także pamiętać o zaimplementowaniu odpowiednich dyrektyw using.

Po utworzeniu takiej akcji należy zaktualizować Navigator.Extension.dll w taki sam sposób jak w przypadku akcji zewnętrznej.

Przykładowe działanie akcji ButtonAction

Poniżej przykład akcji opisanej powyżej, która znajduje wszystkie faktury dla wybranego na dokumencie kontrahenta, a następnie wypisuje je do odpowiedniej listy atrybutowej.

Akcja typu WorkflowAction

Akcję typu WorkflowAction należy ustawić na kroku obiegu wybranego dokumentu i  momencie zatwierdzeniu kroku obiegu akcja wykona się.

Generuje ona na podstawie zapotrzebowania dokument zamówienia oraz tworzy pomiędzy nimi relacje.

 

Wersje archiwalne:

5.2-5.7

Menu