Kategorie

Wersja systemu

5.75.65.55.45.35.25.1

Biblioteka Navigator.Extension.dll

Wprowadzenie

System Business Navigator posiada możliwość dopisania logiki niemożliwej do zdefiniowania z poziomu aplikacji. Do tego celu służy biblioteka Navigator.Extensions.dll. Dzięki niej będziemy w stanie wykonywać działania dla sprecyzowanych czynności w Business Navigator, takich jak zapis dokumentu czy akceptacja kroku obiegu. W przypadku większej ilość środowisk (produkcyjne, testowe), każde z nich powinno posiadać własny projekt.

Dostęp do Navigator.Extension

Projekt podpięty pod aplikację jest objęty systemem kontroli wersji. Standardowo powinien się od znajdować w plikach aplikacji. W przypadku braku folderu w plikach aplikacji należy skontaktować się z opiekunem środowiska.

Struktura Navigator.Extension

Cała solucja składa się z dwóch projektów: Navigator.Extensions – docelowa biblioteka oraz Start – projekt służący do wywoływania metod oraz do testowania. Kluczowe jest podpięcie odpowiedniej biblioteki Navigator.Model.

Bibliotekę znajdziemy w folderze z plikami aplikacji w folderze bin

Navigator.Extension

Logika biblioteki Navigator.Extensions jest zawarta w metodzie Main klasy ExtendTran.cs.

Parametry wywołania:

  • Navigator.Model.Global.Database.SqlManager sqljest to parametr komunikujący się z bazą podpiętą pod aplikację
  • Navigator.Model.Database.ETable table –informacja na jakiej tabeli operujemy. Dokumenty – Do , kontrahenci – Co itp. (Skróty tabel możemy znaleźć w Dokumentacji Bazy Danych systemu Business Navigator)   
  • string objectIds – Oddzielone przecinkiem identyfikatory obiektów. Przykładowo wykonując operację na dwóch dokumentach podajemy „1521, 1522”
  • Navigator.Model.DataBase.EType type – informacje o wykonywanej operacji na obiekcie. Możliwe operacje:
    • U – Update – aktualizacja
    • A –  Add –  dodanie
    • D – Delete – akcja wykonuje się po usunięciu obiektu
    • C – Click – akcja wykonuje się po naciśnięciu przycisku
    • SA – SaveAdd – akcja wykonuje się po pierwszy zapisie
    • SU – SaveUpdate – akcja wykonuje się po każdym zapisie
    • WU – WorkflowUpdate – akcja wykonuje się po kroku obiegu
    • M – Menu – akcja wykonuje się po naciśnięciu przycisku z poziomu Menu
    • AC – AddCopy – akcja wykonuje się po skopiowaniu obiektu
    • BD – BeforeDelete – akcja wykonuje się przed usunięciem obiektu
    • WAU – WorkflowAfterUndo – akcja wykonuje się po cofnięciu kroku obiegu
    • AO – AfterOCR – akcje wykonuje się przy OCRowaniu dokumentu
  • int? buttonId – Identyfikator przycisku którego akcje wywołujemy
  • int userId – Identyfikator użytkownika który wykonuje akcje

Parametrem wyjściowym metody Main jest wartość w postaci stringa, który służy do wyświetlania komunikatów po zakończonej akcji. Wyjściowy string jest tworzony na podstawie klasy Navigator.Model.Global.Message. Możliwe są 3 rodzaje komunikatu:

  • Wiadomość sukcesu
    • message = new Message(„Operacja zakończona pomyślnie”)
  • Wiadomość ostrzegawcza
    • Message = new Message(„Uwaga! Zadana może być uszkodzone”, EMessageType.Alert)
  • Wiadomość o błędzie
    • Message= new Message(„Uwaga! Kwoty się nie zgadzają!, EMessageType.Error)

Istnieje również możliwość aby przerwać wykonywaną przez program czynność i nie pozwolić na przykładowo zapis dokumentu. Należy wtedy rzucić wyjątkiem:

  • throw new Exception(„Operacja nie powiodła się”);
Start

Aby swobodnie korzystać i testować rozwiązanie oprogramowane w Navigator.Extenions należy skorzystać z projektu Start. W celu konfiguracji należy ustawić odpowiednie połączenie do bazy w pliku App.config w sekcji connectionStrings. Należy podać dane serwera oraz bazy danych.

Do obsługi Navigator.Extensions stworzona została klasa Program.cs

Przykładowe wywołania
  • ExtendTran.Main(sql, ETable.Do, „1”, EType.SU, null, 1);
    • Wywołanie akcji na tabeli Do (Dokumenty), na identyfikatorze obiektu 1, o rodzaju operacji zapis (SaveUpdate), przez użytkownika o identyfikatorze 1
  • ExtendTran.Main(sql, ETable.Co ,”8545″, EType.BD, null, 119);
    • Wywołanie akcji na tabeli Co (Kontrahenci), na identyfikatorze obiektu 8545, o rodzaju operacji przed usunięciem (BeforeDelete), przez użytkownika o identyfikatorze 119
  • ExtendTran.Main(sql, ETable.Do ,”10816″, EType.C, 1845, 1);
    • Wywołanie akcji na tabeli Do (Dokumenty), na identyfikatorze obiektu 10816, o rodzaju operacji kliknięcie przycisku (Click), o identyfikatorze przycisku 1845, prez użytkownika o identyfikatorze 1

Podpięcie Navigator.Extension pod aplikację Business Navigator

Trzeba pamiętać że wgranie biblioteki Navigator.Extensions spowoduje wylogowanie wszystkich użytkowników z aplikacji, stąd zalecane jest wgrywanie po godzinach pracy pracowników. W celu wgranie należy: zbuildować projekt, a następnie otworzyć jego lokalizację.

Biblioteka do wgrania znajduje się w folderze bin -> Debug

Bibliotekę kopiujemy do folderu z aplikacją. Folder Navigator.Web -> bin

Aby biblioteka była automatycznie wgrywana do aplikacji podczas operacji aktualizacji wersji, należy wrzucić bibliotekę do folderu FilesToCopy.

API systemu Business Navigator

Biblioteka Navigator.Model posiada w sobie API (Navigator.Model.API) pozwalające na pobieranie/zapis/modyfikację danych, zawartych w systemie. Do pisania nowych rozwiązań zaleca się korzystanie wyłączenie z metoda zawartych w API.

Menu