Czym są gniazda rozszerzeń Wapro Aukcje?
Gniazda rozszerzeń w Wapro Aukcje to obsługa dodatkowych procedur składowanych, które wywoływane są w różnych miejscach aplikacji, które pozwalają na rozszerzenie standardowego zachowania programu poprzez umieszczanie dodatkowej, własnej logiki w formie procedur SQL.
Mechanizm jest podobny do mechanizmu gniazd zaimplementowanego w Wapro Mag w wariancie Prestiż Plus, przy czym w Wapro Aukcje ograniczony jest tylko do wywoływania procedur składowanych.
Domyślnie wszystkie gniazda są wyłączone. Aby uaktywnić gniazdo należy je włączyć w menu Aukcje | Kartoteki | Gniazda rozszerzeń
. Po włączeniu gniazda system w trakcie realizacji normalnych operacji sprawdza, czy dane gniazdo jest włączone oraz czy przypisana funkcja (dostarczona przez producenta) jest utworzona w bazie danych.
Jeśli tak to następuje wywołanie tej procedury.
Jak korzystać z gniazd rozszerzeń?
Aby skorzystać z gniazd należy wpiąć się w procedurę dostarczoną przez producenta z własną logiką. Zaleca się, aby procedura wywoływała własne procedury, w których programista zawrze swoją logikę. Procedury dostarczane przez producenta nie są nadpisywane w kolejnych wersjach, także nie zachodzi ryzyko, że coś zostanie nadpisane w trakcie aktualizacji.
Wszystkie procedury dostarczane przez producenta mają jeden parametr wejściowy typu XML, w którym dostarczają określony zestaw parametrów niezbędny do realizacji własnego kodu.
W szablonie procedury jest także pokazany przykład odebrania parametrów dostarczany przez producenta do danej procedury. Pozwala on w przyszłości dodać nowe zmienne do procedury bez konieczności zmiany szablonu na nowy, co skutkowałoby utratą logiki już stworzonej przez programistę w danej bazie.
Dodatkowo szablon domyślnie zawiera instrukcję, która powoduje po każdym wywołaniu gniazda dodanie rekordu do tabeli technicznego logu aplikacji (AUK_ALL_LOG). W kolumnie REQUEST_DATA
znajduje się treść XML zawierająca aktualny zestaw zmiennych dostępny w parametrze wejściowym do danego gniazda (parametry są zależne od kontekstu co oznacza, że gniazdo do transakcji ma inne parametry niż gniazdo do klienta).