Typy danych to jeden z najważniejszych elementów każdego systemu informatycznego. Określają, jakie informacje mogą być przechowywane, jak są interpretowane przez system oraz w jaki sposób użytkownicy mogą z nimi wchodzić w interakcję.
W platformie Ferryt typy danych przypisywane są do pól charakterystycznych, które pełnią rolę zmiennych w procesach biznesowych. Dzięki nim możliwe jest nie tylko kontrolowanie poprawności danych, ale także zapewnienie spójności, bezpieczeństwa i ergonomii całego systemu.
Typy danych w Ferryt – dlaczego są istotne?
Typy danych w Ferryt są istotne, ponieważ pełnią wiele kluczowych funkcji, takich jak:
- Walidacja danych wejściowych
Zapobiegają wprowadzaniu nieprawidłowych wartości, co chroni procesy przed błędami logicznymi i technicznymi. - Optymalizacja procesów
Umożliwiają efektywne przetwarzanie danych, np. poprzez wybór odpowiednich algorytmów i struktur. - Bezpieczeństwo
Ograniczają ryzyko błędów i podatności wynikających z niezgodności typów, np. przy integracjach z zewnętrznymi systemami. - Czytelność interfejsu
Pozwalają na automatyczne dopasowanie kontrolek w UI, co zwiększa intuicyjność i ergonomię aplikacji. - Integracja z zewnętrznymi systemami
Ułatwiają mapowanie danych przy integracjach API, baz danych czy usług zewnętrznych. - Automatyzacja i skalowalność
Typy danych umożliwiają dynamiczne generowanie ekranów, raportów i dokumentów, co przyspiesza rozwój systemu.
Podział typów danych w Ferryt
Typy złożone
Typy złożone są wykorzystywane w sytuacjach, gdy pole musi przechowywać więcej niż jedną wartość lub gdy dane mają strukturę hierarchiczną.
- Słownik (Dictionary) – idealny do dynamicznych zestawów danych, np. konfiguracji parametrów, gdzie klucze i wartości mogą się zmieniać.
- Struktura (Structure) – pozwala grupować różne typy danych w jednym obiekcie, np. dane adresowe (ulica, miasto, kod pocztowy).
- Tablica jednowymiarowa (Array) – lista elementów tego samego typu, np. lista ID produktów, lista nazw użytkowników.
- Tablica dwuwymiarowa (Matrix) – tabela danych, np. harmonogramy, zestawienia, macierze decyzyjne.
Typy proste
Typy proste reprezentują z kolei pojedyncze, nieskomplikowane wartości. Są to:
- Appendix – pliki binarne, np. załączniki, dokumenty PDF, obrazy.
- Bool – wartość logiczna (true/false), często używana w warunkach procesowych.
- DateTime – data i czas, wykorzystywane w logice procesów, np. do wyznaczania terminów.
- Decimal – liczby zmiennoprzecinkowe, np. ceny, wartości finansowe, kursy walut.
- Enumerable – enumeratory, czyli zestawy predefiniowanych wartości, np. statusy zamówienia.
- ExcelWorksheet – arkusze kalkulacyjne, np. dane z importu, zestawienia.
- Int / Long – liczby całkowite, różniące się zakresem, stosowane np. do identyfikatorów.
- Link – odnośniki do zasobów lub operacji, np. linki do dokumentów lub innych ekranów.
- Object – typ ogólny, stosowany przy niejednoznacznych strukturach lub integracjach.
- String – tekst, najczęściej używany typ danych, obejmujący nazwy, opisy, komentarze.
Przypisywanie typów danych do pól – moduł Ekrany
W module Ekrany typ danych decyduje o tym, jaka kontrolka może zostać przypisana do pola:
- String → pole tekstowe
- Bool → checkbox
- DateTime → kalendarz
- Enumerable → lista rozwijana
- Appendix → przycisk do dodania pliku

Moduł Ekrany, podczas wyboru pola procesu przypisanego do kontrolki na ekranie, sugeruje pola o odpowiednim typie danych.
Dzięki temu użytkownik końcowy otrzymuje intuicyjny interfejs, a system automatycznie dopasowuje sposób prezentacji danych. To znacząco skraca czas projektowania ekranów i zmniejsza liczbę błędów UI.
Zarządzanie typami danych – Ferryt Architect
Typami danych zarządza się w module Ferryt Architect:
Ścieżka: Projektowanie → Model danych → Typy danych
Możliwości:
- Przegląd istniejących typów
- Tworzenie nowych typów przez kreator
- Edycja i usuwanie typów przez menu kontekstowe
Typy mogą być przypisane do:
- Systemu – dostępne globalnie
- Domeny – ograniczone do konkretnej domeny
- Obszaru – przypisane do wybranego obszaru funkcjonalnego
Dobre praktyki przy definiowaniu typów danych w Ferryt
- Unikaj duplikatów
Nie twórz wielu typów o podobnej funkcji, ponieważ utrudnia to utrzymanie systemu. - Stosuj nazewnictwo opisowe
Np. „AdresStruktura” zamiast „Struktura1”, dzięki temu zwiększysz czytelność. - Dokumentuj typy
Dodawaj opisy, by ułatwić pracę zespołowi i przyszłym użytkownikom. - Testuj typy przed wdrożeniem
Szczególnie typy złożone i niestandardowe, które mogą mieć wpływ na logikę procesów. - Utrzymuj spójność między środowiskami
Typy danych powinny być zgodne między DEV, TEST i PROD.
Weryfikacja poprawności typów danych
Typy danych są przechowywane w tabeli dbo.DataType w bazie FerrytMain. Zmiany w typach – ich usunięcie, modyfikacja lub błędne przypisanie – mogą prowadzić do błędów w procesach. Dlatego tak ważna jest ich regularna kontrola.
Ręczna weryfikacja typów danych
Może być stosowana przy małych projektach. Jest jednak czasochłonna i podatna na pomyłki. Wymaga przeglądu definicji typów, porównania z użyciem w procesach oraz sprawdzenia zgodności z interfejsem.
Automatyczna weryfikacja typów danych
W miarę rozwoju systemu liczba typów danych rośnie, a ich struktura może ulegać modyfikacjom. W takich warunkach ręczna kontrola staje się nieefektywna, a ryzyko błędów wzrasta. Dlatego coraz częściej stosuje się testy automatyczne, które pełnią rolę strażnika integralności typów danych.
Cele automatycznej weryfikacji
Podstawowymi celami automatycznej weryfikacji typów danych w Ferryt są:
- wykrycie nieistniejących typów,
- sprawdzenie zgodności definicji,
- weryfikacja struktury typów złożonych,
- testowanie typów w kontekście procesów,
- wczesne wykrywanie regresji typów po wdrożeniach.
Mechanizm działania testów
- Połączenie z bazą danych FerrytMain
- Pobranie listy pól charakterystycznych
- Porównanie typów przypisanych do pól z typami z bazy
- Sprawdzenie typów złożonych
- Generowanie raportu z błędami, ostrzeżeniami i sugestiami
Przykładowe scenariusze testowe
Scenariusz 1: Niezgodność typu danych
Podczas testów procesu rejestracji klienta system wykrywa, że pole przeznaczone na datę urodzenia zostało zdefiniowane jako tekst zamiast daty. Choć użytkownik może wprowadzić wartość, system nie będzie w stanie poprawnie jej interpretować ani wykorzystać w dalszych obliczeniach. Test automatyczny zgłasza błąd, dzięki czemu problem można szybko poprawić jeszcze przed wdrożeniem.
Scenariusz 2: Brakujące elementy w typie złożonym
W procesie zamówienia adres dostawy zbudowany jest ze struktury zawierającej kilka pól, takich jak ulica, miasto i kod pocztowy. Test wykrywa, że w definicji brakuje jednego z wymaganych pól. System zgłasza ostrzeżenie, co pozwala zespołowi uzupełnić dane i uniknąć błędów przy realizacji zamówień.
Scenariusz 3: Odwołanie do usuniętego typu
Podczas aktualizacji systemu jeden z typów danych — np. „Waluta” — został przypadkowo usunięty. Test automatyczny namierza, że proces fakturowania nadal próbuje z niego korzystać. Zgłoszony błąd informuje o konieczności przywrócenia lub ponownego przypisania typu, zanim proces zostanie uruchomiony na produkcji.
Integracja testów z CI/CD
Testy automatyczne typów danych powinny być częścią szerszego ekosystemu testowego. W nowoczesnych projektach IT integruje się je z pipeline’ami CI/CD, co pozwala na:
- automatyczne uruchamianie testów przy każdej zmianie w repozytorium,
- weryfikację typów danych przed wdrożeniem na środowisko produkcyjne,
- generowanie raportów i alertów w systemach monitorujących,
- szybką identyfikację regresji typów po aktualizacjach systemu.
Dzięki temu zespoły projektowe mogą działać szybciej, pewniej i bardziej przewidywalnie, a jakość danych w systemie pozostaje na wysokim poziomie.
Typy danych w cyklu życia systemu
Typy danych mają wpływ na każdy etap cyklu życia systemu:
- Projektowanie
Definiowanie typów danych pozwala na lepsze modelowanie procesów i struktur. - Implementacja
Typy danych wpływają na sposób kodowania logiki, walidacji i integracji. - Testowanie
Typy danych są podstawą testów jednostkowych, integracyjnych i regresyjnych. - Utrzymanie
Zmiany w typach danych muszą być kontrolowane, by nie zaburzyć istniejących procesów. - Rozwój
Nowe funkcje często wymagają nowych typów danych lub rozszerzenia istniejących.
W praktyce oznacza to, że typy danych są nie tylko technicznym artefaktem, ale również narzędziem komunikacji między zespołami: analitykami, programistami, testerami i administratorami.
Typy danych a migracje i integracje
W projektach, które obejmują migrację danych między systemami lub integrację z zewnętrznymi usługami, typy danych odgrywają rolę kluczową. Niezgodność typów może prowadzić do:
- błędów podczas przenoszenia danych,
- utraty lub zniekształcenia informacji,
- nieprawidłowego działania procesów,
- trudności w dopasowaniu danych pomiędzy systemami.
Aby uniknąć takich problemów, warto już na etapie projektowania sprawdzić, czy typy danych używane w procesach są zgodne z tymi, które występują w systemach zewnętrznych. W praktyce często oznacza to dostosowanie formatów danych (np. liczbowych, tekstowych czy dat), tak aby wymiana informacji przebiegała bez błędów.
Dobrą praktyką jest również dokumentowanie typów używanych w integracjach i ich regularna weryfikacja po aktualizacjach systemu. Dzięki temu migracje i integracje przebiegają sprawniej, a ryzyko błędów związanych z niezgodnością danych jest znacznie mniejsze.
Metodyka sprawdzania typów danych
Obecność i informacje o typach danych można weryfikować z poziomu bazy danych w bazie FerrytMain, w tabelach DataType oraz DataTypeElement


Typy danych przy tworzeniu na poszczególnych poziomach izolacji dostają odpowiedni prefiks (w załączonych zdjęciach dla obszaru) w symbolu, więc można znaleźć pola wyszukiwanego rozwiązania używając klauzury ‘like’.
Tabele te również posiadają kolumnę moddate – weryfikacja na jej podstawie może pomóc w regularnej weryfikacji wprowadzanych zmian w trakcie rozwoju procesów.
Podsumowanie
Typy danych w systemie Ferryt to nie tylko techniczna klasyfikacja informacji, ale przede wszystkim fundament, na którym opiera się jakość, bezpieczeństwo i efektywność całego rozwiązania. Poprawne zdefiniowanie i utrzymanie typów danych gwarantuje stabilność procesów biznesowych, spójność interfejsu użytkownika oraz niezawodność integracji z innymi systemami.
Wdrożenie automatycznej weryfikacji typów danych to ważny krok w kierunku skalowalności środowiska Ferryt. Dzięki testom możliwe jest:
- szybkie wykrywanie błędów i niezgodności,
- utrzymanie wysokiej jakości danych,
- zapewnienie ciągłości działania procesów,
- zyskanie oszczędności czasu zespołu projektowego,
- ograniczenie ryzyka problemów po wdrożeniu,
- łatwiejsze zarządzanie migracjami i integracjami.
Dobrze zaprojektowany system typów danych staje się więc nie tylko narzędziem technicznym, ale też elementem wspierającym rozwój organizacji. Dzięki niemu procesy są bardziej przewidywalne, a cały system stabilny, spójny i gotowy na dalszy rozwój
Autor: Michał Banaszyk, Marcin Lawrenc


