Struktura modelu danych
Struktura drzewa
Model danych ma strukturę drzewa ułatwiającą odwzorowanie hierarchicznej struktury obiektów domeny biznesowej.
Liście drzewa reprezentują najbardziej szczegółowy element struktury. Liście, zwane polami, nie posiadają już żadnych innych elementów podrzędnych (dzieci) i reprezentują pojedyncze pole danych. Przykładami mogą być "imię klienta" czy "numer rachunku bankowego".
Węzły drzewa reprezentują obiekty złożone z innych obiektów i/lub pól. Przykłady: "adres korespondencyjny", "dochód klienta".

Węzły
Każdy węzeł modelu danych posiada atrybuty:
klucz unikalny wśród swojego rodzeństwa (potomków tego samego węzła)
liczebność wyrażoną wzorem
n..moznaczającym odnwystąpień minimalnie dommaksymalnie, np:1..1- obiekt występuje tylko raz0..1- obiekt jest opcjonalny1..null- obiekt występuje co najmniej raz, bez ograniczenia na maksymalną liczbę wystąpień
opis znaczenia obiektu dla aplikacji
Liście
Poza atrybutami węzłów, liście posiadają dodatkowo:
źródła danych - określają jak i skąd pobierana jest wartość
domyślna wartość - co zwróci pole, jeżeli żadne ze źródeł danych nie zwróci wartości
Pole może mieć zdefiniowaną listę źródeł danych. Rozstrzyganie wartości pola polega na wywoływaniu źródeł danych w kolejności ich zdefiniowania aż do uzyskania niepustej wartości. Zatem pierwsze źródło zwracające niepustą wartość wygrywa.
Dane z modelu możemy pobierać tylko dla wybranych przez nas pojedynczych kluczy, tj. nie możemy pobierać wartości kluczy, które mają pod sobą dzieci, tak jak nie możemy pobrać całego modelu w jednym zapytaniu.
Tablice w modelu danych
Węzły modelu oznaczone jako wielokrotne (liczebność maksymalna >1) tworzą tablicę prostych wartości (dla pól) oraz złożonych obiektów (dla węzłów nie będących liśćmi). Możliwe jest również zdefiniowanie kolekcji zagnieżdżonych.
Klucze i identyfikatory
Odwołując się do węzłów modelu danych zdefiniowanych jako tablica (lub będącymi potomkami tablicy) należy zawsze używać notacji tablicowej:
tablica[].pole - pobiera wszystkie wystąpienia pola; zależnie od używanego API zwróci kolekcję lub pojedynczy string z separatorem ","
tablica[0].pole - pobierze pojedynczą wartość rozwiązaną wierszem kolekcji wskazanym w kluczu (w przykładzie 0 oznacza pierwszy element tablicy),
tablica.pole - spowoduje błąd, nie ma możliwości odniesienia się do tablicowego węzła bez notacji tablicy,
Definiowanie tablicy
W celu zdefiniowania tablicowego pola konieczne jest:
wielokrotny węzeł modelu danych musi posiadać krotność większą niż
multiplicityMax=1, np.1..null,wielokrotny węzeł modelu danych musi mieć zdefiniowane źródła wskazujące na tablicę, indeksy tej kolekcji zostaną użyte do indeksacji powtórzeń wartości modelu,
węzły poniżej wielokrotnego węzła modelu danych mogą w mapowaniu stosować indeks iterowanego węzła modelu do wskazania konkretnych elementów wyjścia usługi,
nadrzędny węzeł zawsze udostępni w kontekście wykonania swój bieżący indeks (w trakcie rozwiązywania wartości dla kolekcji) pod identyfikatorem
nazwaWezłaIdx,pola iterowane rodzicem powinny wskazywać na obiekty wewnątrz kolekcji, po której iteruje rodzic,
nie jest to jednak stricte konieczne, możliwe jest wykorzystanie tego indeksu do iterowania po zupełnie innym polu lub do wyciągania pól w ogóle nie będących tablicami.
Konieczne jest podanie przykładów z kodem providera i zrzutem ekranu z Designera
Last updated
Was this helpful?
