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 sql– jest 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.