Przejdź do treści

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. Aby otrzymać dostęp 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

**

**

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

Parametry wywołania

  • Navigator.Model.Global.Database.SqlManagersqljest to parametr komunikujący się z bazą podpiętą pod aplikację
  • Navigator.Model.Database.ETabletable –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.ETypetype – 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 OCR-owaniu 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 string, 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! Zadanie 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.Extensions 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

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.

Podpięcie Navigator.Extension pod aplikację Business Navigator

W celu podpięcia biblioteki pod naszą aplikację, należy zbuildować projekt Navigator.Extensions, a następnie otworzyć jego lokalizację.

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

Mając przygotowaną bibliotekę, otwieramy moduł „Ustawienia -> Personalizacja -> Rozszerzenia”, następnie znajdujemy już istniejący plik Navigator.Extensions i go edytujemy, wybierając naszą przygotowaną bibliotekę.