Od wersji 6 .1 pakietu asix istnieje możliwość deklarowania powiązań (relacji) pomiędzy danymi rejestrowanymi w bazie danych AsBase - dotyczy to zestawów rejestracji jak i receptur.
Dostępne mechanizmy pozwalają na tworzenie następujących rodzajów relacji:
Rekord nadrzędny (master) pochodzi z tablicy ładowań receptur a rekordy podrzędne (details) pochodzą z archiwum zestawu rejestracji. Polem nadrzędnym relacji jest identyfikator załadowania receptury, natomiast polem podrzędnym (details) może być dowolnie wybrane pole zestawu rejestracji. Użytkownik może zobaczyć relację rozwijając wybrany rekord w historii ładowań receptur.
Rekord nadrzędny (master) oraz rekordy podrzędne (details) pochodzą z zestawu rejestracji. Polem nadrzędnym (master) relacji oraz polem podrzędnym (details) może być dowolnie wybrane pole w każdym zestawie rejestracji. (Użytkownik może zobaczyć relację rozwijając wybrany rekord w archiwum zestawu rejestracji).
Rekord nadrzędny (master) pochodzi z archiwum zestawu rejestracji a rekord podrzędny (jeden) z historii ładowań receptury. (Użytkownik może zobaczyć relację rozwijając wybrany rekord w archiwum zestawu rejestracji).
Powiązania (relacje) pomiędzy danymi tworzone są w zależności od potrzeby w następujący sposób:
1. Ad. relacji pomiędzy tablicą historii ładowań receptur a archiwum zestawu rejestracji
W przypadku relacji pomiędzy tablicą historii ładowań receptur a archiwum zestawu rejestracji do łączenia zawsze wykorzystywany jest unikalny identyfikator załadowania receptury oraz dowolne pole podrzędne (detail) z zestawu rejestracji. Połączenie definiujemy na etapie definiowania grup receptur na zakładce Relacje:
AsBase => Konfiguracja => Grupy receptur => <nazwa zdefiniowanej grupy receptur> => zakładka Relacje
W polu Archiwum należy określić zestaw rejestracji.
W polu Pole należy określić pole, które posłuży do połączenia.
Unikalny identyfikator ładowania receptury można odczytać przez zmienną Asmena przypisaną do ukrytego pola w rekordzie receptury. Tą samą zmienną należy podpiąć do pola podrzędnego (detail) z zestawu rejestracji.
Poniżej przykład powiązania pomiędzy recepturą mycia linii produkcyjnej a zestawem parametrów rejestrowanych na poszczególnych fazach mycia linii. Przeglądanie relacji - patrz: Wizualizacja relacji.

Rys. Definiowanie relacji pomiędzy tablicą historii ładowań receptur a archiwum zestawu rejestracji.

Rys. Deklaracja zmiennej dla ID ładowania receptury.

Rys. Deklaracja zmiennej dla pola podrzędnego (detail) z zestawu rejestracji.
2. Ad. relacji pomiędzy zestawami rejestracji
W przypadku zestawów rejestracji - każde pole zestawu może być polem nadrzędnym (master), dlatego istnieje możliwość definiowania relacji dla każdego pola osobno. W tym celu wiersz definicji pola zawiera kolumny: Unikalne i Relacje.
Kolumna Unikalny zawiera checkbox określający unikalność pola.
Kolumna Relacje daje możliwość utworzenia połączenia z polem podrzędnym (detail) z innego zestawu rejestracji. Połączenie to definiowane jest jako tekst: nazwa_archiwum(nazwa_pola_podrzędnego). Dla ułatwienia, kliknięcie w komórce kolumny Relacje uruchamia edytor z dostępem do zdefiniowanych zestawów rejestracji oraz ich pól (pola edytora: Archiwum oraz Pole).
W celu zapewnienia odpowiedniego typu relacji pomiędzy tabelami zestawów rejestracji należy odpowiednio oznaczyć pola łączące tabele jako unikalne:
dla relacji 1:n - jeden wiersz z tabeli nadrzędnej (master) powiązany jest z n wierszami z tabeli podrzędnej (details); w takiej sytuacji pole wykorzystywane do połączenia tabel po stronie tabeli nadrzędnej musi być oznaczone jako unikalne.
dla relacji 1:1 - jeden wiersz z tabeli nadrzędnej (master) powiązany jest z jednym wierszem z tabeli podrzędnej (detail); w takiej sytuacji zarówno w tabeli nadrzędnej jak i podrzędnej pola służące do określenia powiązania (relacji) muszą posiadać wartości unikalne.

Rys. Przykład deklaracji relacji 1:n pomiędzy zestawami rejestracji.
Wizualizacja relacji
Przeglądanie danych relacyjnych w układzie hierarchicznym polega na wyświetleniu w jednej tabeli wierszy tabeli nadrzędnej (master) razem z powiązanymi z nimi wierszami tabeli podrzędnej (details).
Aby uzyskać taki widok - należy przejść do tabeli nadrzędnej (historia ładowań receptur lub archiwum zestawu rejestracji) i wybrać komendę Pokaż szczegóły z menu Widok > Tabele.

Rys. Wizualizacja relacji w układzie hierarchicznym - master: historia ładowania receptur; details: archiwum zestawu rejestracji.

Rys. Wizualizacja relacji w układzie hierarchicznym - master: archiwum zestawu rejestracji; detail: archiwum zestawu rejestracji.
W celu poprawnego zdefiniowania odwołania do tabel relacyjnych należy odpowiednio skonfigurować obiekt AsBase. Po nadaniu nazwy i identyfikatora obiektu należy zdefiniować typ danych źródłowych tabeli nadrzędnej (historia ładowań receptur lub zestaw rejestracji). Następnie jako źródło danych nadrzędnych należy wskazać grupę receptur lub zestaw rejestracji i powiązany z nimi zestaw zmiennych. Podobnie należy wskazać źródło danych podrzędnych (zestaw rejestracji) i powiązany z nim zestaw zmiennych.

Rysunek: Parametryzacja obiektu AsBase.
Przeglądanie danych relacyjnych powoduje jednoczesny odczyt danych zarówno z tabeli nadrzędnej jak i podrzędnej. Przeglądanie danych relacyjnych prezentuje poniższy rysunek.

Rysunek: Nawigacja po rekordach danych relacyjnych.
W celu poprawnego zdefiniowania filtrowania lub sortowania danych w czasie odwołań do tabel relacyjnych należy odpowiednio oznaczyć kolumny, których dotyczą poszczególne warunki sortowania lub filtrowania.
Dla pól (kolumn) pochodzących z tabeli nadrzędnej (master) stosujemy przedrostek "m”.
Dla pól (kolumn) pochodzących z tabeli podrzędnej (detail) stosujemy przedrostek "d”.

Rys. Przykład filtru.
m.ID>1 - filtruje dane dla tabeli nadrzędnej (master); dotyczy wierszy o wartości pola 'ID' większej od 1
order by d.ID, m.V_privNAZWA - sortuje dane według pola 'ID' z tabeli podrzędnej (detail), a następnie według wartości pola 'privNazwa' z tabeli nadrzędnej (master)