Microsoft Dynamics NAV 2017 – Extensions

Artykuły eksperckie | 09.01.2017 | Czas czytania: 3 minuty

Wraz z wersją MS Dynamics NAV 2016 firma Microsoft zaprezentowała całkowicie nowe podejście do rozwoju swojego systemu, wprowadzając nowe elementy, nazwane Extensions (ang. Rozszerzenia). W najnowszej wersji Microsoft Dynamics NAV 2017 rozszerzenia powracają, jako gotowe do użycia pakiety, które umożliwiają modyfikację i rozszerzenie standardowych funkcjonalności Microsoft Dynamics NAV, bez konieczności bezpośredniej ingerencji w kod źródłowy obiektów systemu. Ułatwia to znacznie uruchamianie, zarządzanie oraz upgrade funkcjonalności rozbudowujących możliwości systemu.

Programista systemu wciąż ma dostęp do środowiska deweloperskiego Microsoft Dynamics NAV Development, w którym może przygotowywać nowe lub rozszerzyć istniejące funkcjonalności. Dodatkowo jednak został udostępniony nowy zestaw poleceń w środowisku Windows PowerShell, umożliwiający wygenerowanie pakietu, zawierającego wprowadzone zmiany (a więc jedynie różnicę pomiędzy stanem początkowym a nową funkcjonalnością). Pakiet taki może zawierać cały kod obiektu (jeśli jest on zupełnie nowy) lub elementy kodu, które rozbudowują istniejący już w systemie obiekt (tzw. delta obiektu). Pakiety rozszerzeń są następnie udostępniane jako pliki w formacie .navx.

MS Dynamics NAV extensions

Pliki rozszerzeń w Microsoft Dynamics NAV 2017

Tak przygotowane pakiety mogą być instalowane, a co ważniejsze – odinstalowane z systemu w bardzo łatwy sposób. Ponieważ kod źródłowy systemu nie jest bezpośrednio modyfikowany, Extensions są łatwe do upgrade’u, eliminują bowiem potrzebę merdżowania kodu. Mogą być automatycznie uaktualniane w trakcie procesu instalacji wyższej wersji, zatem także podniesienie wersji przebiega sprawniej.

Jeśli mimo wszystko nadal zastanawiacie się, jak to działa, że możliwe jest rozbudowanie funkcjonalnosci bez modyfikacji kodu źródłowego, postaram się wyjaśnić to precyzyjniej. Najprościej Extensions można zdefiniować jako osobną aplikację, składającą się z nowych obiektów oraz delt obiektów istniejących już w systemie, czyli plików zawierających różnice między obiektem standardowym a rozszerzonym. Gdy rozszerzenie jest publikowane w środowisku Microsoft Dynamics NAV, mechanizm kompiluje obiekty wchodzące w skład rozszerzenia z obiektami zainstalowanego klienta NAV, a następnie buduje odpowiedni schemat danych. W momencie uruchomienia systemu powiązane obiekty są po prostu ładowane.

Przykład działania Extensions

Jako przykład takiego działania możemy wyobrazić sobie zestaw nowych pól w kartotece zapasu, których nie mamy bezpośrednio w bazie, a które zostały przygotowane jako rozszerzenie w pliku navx. Uruchamiając system ERP NAV, następuje powiązanie istniejącej, standardowej tabeli Zapas z polami udostępnionymi jako Extensions. W efekcie tej kompilacji otrzymujemy w kartotece zapasu dodatkowe pola, których de facto nie widzimy z poziomu klienta deweloperskiego (czyli nie ma ich w kodzie źródłowym).

Ograniczenia

Wykorzystując rozszerzenia, musimy sobie oczywiście zdawać sprawę także z ich ograniczeń. W szczególności powinniśmy sprawdzić, które właściwości obiektów, takich jak tabele czy strony, można modyfikować, a także jakie są restrykcje dotyczące przebudowy standardowych elementów kodu systemu (codeunits). Aby zapewnić logikę biznesową w rozszerzeniach, należy skorzystać z modelu Events (ang. Zdarzenia), który został wprowadzony w systemie od wersji Dynamics NAV 2016. Warto pamiętać, że nie istnieją żadne ograniczenia, żeby w rozszerzeniach wykorzystywać nowe obiekty np. codeunits.

W jaki sposób utworzyć i wgrać rozszerzenie do aplikacji?

W skrócie można to zaprezentować według poniższych kroków:

  1. Ustalić standardowe obiekty biorące udział w funkcjonalności i wyeksportować do pliku txt, np. jako BASE.txt
  2. Wykorzystując środowisko deweloperskie oraz język C/AL, opracować odpowiednią modyfikację
  3. Wyeksportować wszystkie obiekty wchodzące w skład modyfikacji z punktu 2. do pliku txt.
  4. Za pomocą Dynamics NAV Development Shell wygenerować plik DELTA
  5. Z wykorzystaniem środowiska PowerShell wygenerować pakiet rozszerzeń navx, zawierający różnice między plikiem z punktu 1 oraz plikiem z punktu 3 (plik DELTA) oraz nowe obiekty utworzone w modyfikacji z punktu 2.
  6. Przygotowany w punkcie 5. plik Extensions może zostać wgrany do systemu Microsoft Dynamics NAV 2017

Jeśli teraz będzie potrzeba aktualizacji rozszerzenia, wystarczy odinstalować starą wersję, a następnie zainstalować zaktualizowaną. Jako deweloperzy, w jednym z codeunits obecnych w rozszerzeniu, powinniśmy przygotować specjalne aktualizujące funkcje, które będą wywoływane automatycznie w momencie, gdy zostało zainstalowane rozszerzenie, a poprzednia wersja została odinstalowana.

Główne korzyści z wykorzystania Microsoft Dynamics NAV Extensions to:

  1. Łatwość instalacji w środowisku klienta.
  2. Prosty upgrade – wystarczy zainstalować nową wersję Extensions jako część procesu uaktualniania albo uaktualnić rozszerzenie samodzielnie, bez pełnej aktualizacji systemu.
  3. Rozszerzenia są łatwe do usunięcia i mamy możliwość archiwizowania danych z rozszerzenia podczas odinstalowywania lub uaktualniania.
  4. Rozszerzenia są łatwe do dystrybucji i zarządzania, zatem eliminują wiele importów oraz znanych z przeszłości problemów z merdżowaniem.
  5. Wykorzystanie funkcjonalności Events (Zdarzeń), aby dostosować funkcjonalność np. dodanie nowych pól i wywołanie zdarzenia za ich pomocą, bez bezpośredniej modyfikacji kodu źródłowego.
  6. W systemie można uruchomić wiele rozszerzeń, dzięki czemu funkcjonalność może być dystrybuowana znacznie bardziej modułowo.
  7. Rozszerzenia instalujemy per klient NAV, a nie per serwer NAV, dzięki temu zamiast 1 serwera dla każdego przygotowanego rozwiązania Microsoft Dynamics NAV, wystarczy 1 serwer utrzymujący wiele środowisk Dynamics NAV, każde z osobnym rozszerzeniem:

MS-dynamics-nav-2017-extensions

Schemat działania rozszerzeń na serwerze. Źródło: materiały partnerskie Microsoft

Autorem wpisu jest

Paweł Koksa, JCommerce

Senior ERP Developer

Certyfikowany specjalista ds. wdrożeń systemu Microsoft Dynamics NAV. Związany z systemami klasy ERP nieprzerwanie od 2005 roku. Ma na swoim koncie kilkadziesiąt zrealizowanych projektów, w których pełnił rolę projektanta, konsultanta oraz koordynatora prac deweloperskich.

Komentarze

  • Aktualnie brak komentarzy.

Skontaktuj się z nami