Przejdź do głównej zawartości

Moduły

Moduł to podstawowy element składowy każdego rozwiązania na platformie. To samodzielna, dystrybuowalna jednostka funkcjonalności biznesowej, podobna do pakietu oprogramowania. Moduł grupuje wszystkie elementy modelu z jednego obszaru biznesowego, np. obsługi reklamacji, fakturowania albo wspólnego zestawu słowników.

Tabele, procesy, ekrany, formularze, zapytania, sekwencje, raporty i inne elementy modelu zawsze tworzysz wewnątrz modułu. Żaden element modelu nie może istnieć poza modułem. Zanim zaczniesz modelować, utwórz moduł albo otwórz istniejący, w którym umieścisz swoją pracę.

Modułami zarządzasz w menedżerze Modules w Modelerze. Aby utworzyć moduł, kliknij Create module i podaj:

  • Name: nazwę widoczną dla innych. Musi zaczynać się od litery i może zawierać tylko litery, cyfry i _. Może mieć do 32 znaków.
  • Technical code: krótki, unikalny identyfikator używany przez platformę. Musi zaczynać się od litery i może zawierać litery, cyfry, _ i .. Musi mieć od 4 do 15 znaków.

Nowy moduł jest pusty i ma jedną wersję, oznaczoną jako aktywna.

Każdy moduł jest wersjonowany. Numer wersji składa się z dwóch części:

  • Major (wersja główna): zwiększ ją, gdy zmiana nie jest wstecznie zgodna, np. gdy usuwasz albo zmieniasz nazwę elementu, z którego korzystają inne moduły.
  • Minor (wersja poboczna): zwiększ ją, gdy zmiana jest wstecznie zgodna.

Nową wersję główną albo poboczną dodasz na zakładce Versions modułu.

Jedna wersja każdego modułu jest wersją aktywną. Wszędzie tam, gdzie moduł jest potrzebny, np. w aplikacji albo gdy inny moduł coś z niego importuje, używana jest wersja aktywna. Gdy przełączysz wersję aktywną, każda aplikacja zawierająca ten moduł automatycznie przejmie zmianę. Nie trzeba niczego aktualizować ręcznie.

Współdzielenie elementów między modułami: eksporty i importy

Dział zatytułowany „Współdzielenie elementów między modułami: eksporty i importy”

Moduły mogą współdzielić elementy modelu. Obie strony muszą jawnie się na to zgodzić:

  1. Eksport. Autor modułu źródłowego oznacza element jako eksportowany. W tym celu kliknij element prawym przyciskiem w drzewie Module elements i wybierz Add to module exports. Zakładka Exports modułu pokazuje wszystko, co moduł udostępnia.
  2. Import. Autor modułu korzystającego importuje element. W tym celu przejdź na zakładkę Imports, wybierz Add import i wskaż element oraz jego moduł źródłowy.

O czym warto pamiętać:

  • Zaimportowany element to odwołanie, a nie kopia. Nadal należy do modułu źródłowego i tylko moduł źródłowy może go zmieniać.
  • Importy tworzą zależności. Jeśli moduł B importuje cokolwiek z modułu A, to B zależy od A. Zależności są przechodnie: jeśli B zależy od A, a A zależy od C, to B zależy też od C.
  • Zależności cykliczne są niedozwolone. Jeśli import sprawiłby, że moduł zależy od samego siebie, bezpośrednio albo przez inne moduły, platforma go odrzuci. Gdy dwa moduły zdają się potrzebować siebie nawzajem, przenieś wspólne elementy do trzeciego modułu, z którego oba mogą importować.
  • Niektórych elementów nie da się eksportować. Nie można eksportować zestawów stałych użytkownika (user const sets) ani dodatków (add-ons).
  • Usunięcie eksportu może zepsuć inne moduły. Jeśli inne moduły importują dany element, platforma ostrzeże cię przed usunięciem eksportu.

Moduł może definiować klucze konfiguracyjne na zakładce Configuration. Każdy klucz ma typ i opcjonalną wartość domyślną. Obsługiwane typy to String, Integer, Decimal, DateTime, TimeSpan, Bool i Document repository storage.

Aplikacja zawierająca moduł może nadpisać wartość każdego klucza. Proces, który odczytuje klucz, zawsze dostaje wartość obowiązującą w aplikacji, w której działa. Dzięki temu ten sam moduł może zachowywać się inaczej w różnych aplikacjach bez żadnej zmiany w samym module.

Na zakładce Multilingual wybierasz języki obsługiwane przez moduł i to, który z nich jest domyślny. Ta konfiguracja jest opcjonalna. Jeśli ją ustawisz, język domyślny musi być jednym z obsługiwanych języków.

Użytkownicy końcowi nie pracują bezpośrednio z modułami. Pracują z aplikacjami. Aplikacja to zestaw modułów wraz z własnymi ustawieniami interfejsu (menu, nagłówek, stopka, logo) i wartościami konfiguracji.

  • Jedna aplikacja może zawierać wiele modułów, a jeden moduł może być używany w wielu aplikacjach.
  • Gdy dodajesz moduł do aplikacji, moduły, od których zależy, są dołączane automatycznie.
  • Aplikacja może nadpisać wartości kluczy konfiguracyjnych dla wszystkich swoich modułów, także tych dołączonych jako zależności.

Wybrane wersje modułu możesz wyeksportować do paczki i zaimportować w innym środowisku. Jeśli moduł jeszcze tam nie istnieje, import go utworzy. Dla każdej wersji, która już istnieje w środowisku docelowym, decydujesz, czy ją pominąć, czy zastąpić. Import próbny (dry-run) pozwala sprawdzić paczkę, zanim cokolwiek zostanie zmienione.

Z dowolnej istniejącej wersji modułu możesz też utworzyć nowy, niezależny moduł. Nowy moduł dostaje własną nazwę i kod oraz pełną kopię zawartości wersji źródłowej.

  • Każdy element modelu należy do dokładnie jednego modułu.
  • Moduły są wersjonowane. Wersję główną (major) zwiększasz przy zmianach niezgodnych wstecz, a poboczną (minor) przy zmianach wstecznie zgodnych. Wersja aktywna to ta, która jest używana wszędzie.
  • Moduły współdzielą elementy przez jawne eksporty i importy. Zaimportowane elementy to odwołania, a nie kopie.
  • Zależności cykliczne między modułami są niedozwolone.
  • Aplikacje łączą moduły i mogą nadpisywać ich konfigurację.