Polecenia funkcji external
Polecenia funkcji 'external'
Wiele zaawansowanych operacji wykonywanych jest poprzez zdefiniowane w poszczególnych modułach funkcje z grupy "external". "Externale" przeznaczone dla skryptów wykonywanych przez program klienta (ACT) są uniwersalne dla wszystkich serwerów aplikacji, ale można z nich korzystać tylko w skryptach akcji.
Zarówno nazwa jak i atrybuty "externali" podawane są jako pojedynczy parametr funkcji external(line).
Polecenia bazowe
To są pojedyncze polecenia, których wywołanie polega na przekazaniu do funkcji external parametru line, złożonego z nazwy i parametrów externala (bez spacji). o wartości podanej w poniższej tabeli:
| Nazwa | Params | Opis |
|---|---|---|
| CZT | data|agenda|rejestr|liczba | do zmiany wpisu w tabeli czytelni dla podanej daty, agendy i kodu (jeśli liczba = 0, wiersz zostanie wykasowany), próba aktualizacji nie istniejącego wiersza, będzie ignorowana i nie zwróci błędu |
| DELETE | idt | Usunięcie rekordu o przesłanym idt (rec_type + rec_id) |
| DEF | pole | zwraca kind rekordu, np: DEFU245T (rekord U, pole 245T) zwróci XTY, gdzie X - oznacza, że pole jest indeksowane.
|
| EGZ | od|do | Kasuje wszystkie egzemplarze z przesłanego zakresu (od - do). Operacja kasowania wykonywana jest wyłącznie na tabelach wypożyczalni (obroty, egzemplarze, ubytki, itd). External nie ma wpływu na tabelę z opisem rekordów (tbl_items_raw i tbl_items_full). Format przesłanych sn jest bez znaczenia (mogą być z kreskami, lub bez). Jeśli chcemy wykasować tylko jeden sn, wówczas podajemy go w obu parametrach, aczkolwiek, z punktu widzenia wydajności kasowanie zakresu jest dużo lepszym rozwiązaniem. |
| INDEXES | zwraca listę identyfikatorów indeksu "orders" aktywnych dla zalogowanego profilu (rezultat jest stringiem, w którym poszczególne identyfikatory są oddzielone pionową kreską) | |
| IPUB | f | Wykonuje jedną z funkcji IPUB (zob. dalej) |
| ISBN | isbn | Kontrola poprawności ISBNu, jeśli kod jest poprany, zwraca pusty string, w przeciwnym wypadku komunikat błędu, |
| LENGTH | <kodowanie><napis> | Zwraca długość napisu w określonym kodowaniu tekstu. Kodowanie: U - liczba 16-bitowych znaków Unicode |
| LICENCJA | Zwraca wartość linia_1|linia_2 - gdzie linie oznaczają wartości dla dwóch linii drukowanych na nalepkach | |
| MAIL S | smtp|mail|tytuł|treść | Wysyła maila przez konfigurację SMTP o symbolu smtp (pusta wartość to konfiguracja domyślna, pozostałe wartości są zdefiniowane w CFG_MAIL_SENDERS), na adres odbiorcy mail o podanych tytule i treści. |
| MAIL X | smtp|mail|tytuł|mime_type|kind| czyt_id|set_time|treść | Jak MAIL S, ale wymaga podania dodatkowych wartości
|
| NEW | dpola | Tworzy nowy dokument typu d - pola to lista pole=wartość, rozdzielane znakiem o kodzie #13 (\r) |
| PROFILE | Nazwa profilu bieżącego użytkownika | |
| PROTOCOL | agenda|nr_prot agenda|nr_prot|nowa_data|nowy_numer|nowy_nr_rej| | Zwraca dane protokołu: data|agenda|nr_prot|rejestr|nr_rej|status| Zmienia wypełnione nowe pola protokołu. Zwraca dane poprawionego protokołu. W przypadku błędu zwraca jego opis poprzedzony znakiem | |
| RANGE | od|do|kind | Polecenie zwraca listę rekordów (oddzielonych pionową kreską) dla których zostanie wykonane następujące zapytanie SQL: SELECT * FROM TBL_ITEMS_RAW WHERE FLD_STR_FIELD >= OD AND FLD_STR_FIELD <= DO AND FLD_KIND = KIND czyli zostanie zwrócona lista rekordów, których wartość pola fld_str_field znajduje się w zakresie wartości od - do |
| RIGHT | r | wartość atrybutu przypisanego do uprawnienia o nazwie r dla bieżącego użytkownika. Jeżeli użytkownik nie ma uprawnienia r to wynikiem jest '*' (gwiazdka) |
| SEARCH | identyfikator | Na podstawie identyfikatora zwraca nazwę indeksu "orders" (np.: dla identyfikatora TY, zwróci "tytuł") |
| SET | param wartość | Ustawia nową wartość parametru Sowy o nazwie param |
| SKO | f | Wykonuje jedno z poleceń skontrum (zob. dalej) |
| SQL | f | Wykonuje jedno z poleceń SQL (zob. dalej) |
| STA | rekord|operacja|rekord nadrzędny | Dodaje wpis do tabeli statystycznej dla rekordu rekord, z informacją o rodzaju operacji operacja (P - propagacja, A - dodanie, U - aktualizacja, D - usunięcie). Jeśli operacją jest propagacja, wówczas wymagany jest jeszcze trzeci parametr rekord nadrzędny, który zawiera identyfikator rekordu propagowanego. |
| THEM | l ls la | Zwraca listę publicznych kolekcji tematycznych - jako napis id_kolekcji|opis kolekcji|... j/w - ale wszystkie kolekcje (także niepubliczne) Zwraca pełną informację o kolekcjach tematycznych w postaci wierszy zakończonych znakiem o kodzie #13 (\r). Każdy wiersz zawiera: id_kolekcji|waga|właściciel|flagi|opis kolekcji| Jako flagi mogą wystąpić: private oraz published. |
| USER | nazwa bieżącego zalogowanego użytkownika | |
| WYP | f | wykonuje jedną z funkcji wypożyczalni (zob. dalej) |
Externale skryptów ACT
Są to polecenia dedykowane dla skryptów ACT (akcje formularzy w programie klienta systemu SOWA) i niedostępne w innych typach skryptów, które uruchamiane są po stronie serwera SowaSQL.
Zob. /wiki/spaces/sqldoc/pages/1888223263
External WYP
Grupa poleceń do obsługi wypożyczalni. Wywołanie: external('WYP<cmd><params>'):
| cmd | params | Wynik funkcji |
|---|---|---|
| A | sn|rekord|agenda sn|rekord|agenda|tryb | Udostępnij egzemplarz sn rekordu rekord w agendzie agenda. W razie błędu zwracany jest komunikat o owym. Opcjonalne wywołanie z atrybutem tryb pozwala ustawić tryb udostępniania (zob. WYPM) |
| a | czytelnik|rekord|dni | Prolongata zamówionego przez czytelnika rekordu o podaną ilość dni. |
| B | sn|rekord|agenda|powod|agenda_d | Zgłoś do wycofania egzemplarz sn rekordu rekord z agendy agenda z powodu powod. Gdy agenda ubytkowania jest inna niż udostępniania, podać należy agenda_d. W razie błędu zwracany jest komunikat. |
| Cop | rekord|agenda|op_params | Zmiana danych czytelnika. Drugi znak komendy precyzuje operację (i determinuje też op_params, które zawierają kolejne parametry). Dostępne wartości op:
L - limit wypożyczeń. op_params zawiera nowy limit wypożyczeń. W - data ważności. op_params zawiera nową datę ważności konta
Z - korekta daty zapisu. op_params zawiera nową datę zapisu czytelnika C - zmiana kategorii czytel;nika. op_params zawiera nową kategorię czytelnika |
| F | rekord|f | Pobiera pole f rekordu czytelnika o identyfikatorze rekord. Np. WYPFO123|Z.1 pobiera pierwsze wystąpienie pola Z rekordu O123 Tym samym eksternalem można pobierać pola rekordu bazy podstawowej. (zob. eksternal WYPP). |
| G | rekord | Informacja o globalnym stanie konta czytelnika (we wszystkich agendach). Zwraca: <wyp>|<rez>|<zam>|<kary>|<prz> <wyp> - liczba wypożyczonych pozycji |
| K | sn | Zwraca kwotę kary za przetrzymanie egzemplarza o identyfikatorze sn. Dotyczy przetwarzania rekordu czytelnika. |
| I | rekord|agenda | Informacja o stanie konta czytelnika w agendzie. Zwraca: <wyp>|<rez>|<zam>|<kary>|<kaucje>|<wizyta>|<prz> <wyp> - liczba wypożyczonych pozycji UWAGA1: jeśli parametr wyp.penalty.default.settlements zawiera A to działa jak wyżej, inaczej zwraca wartości globalne (nie w agendzie). UWAGA2: jeśli parametr wyp.penalty.default.settlements zawiera C to kwota niezapłaconych kar zwracana jest globalnie, inaczej zwraca wartości w agendzie. |
| J | barkod | Sprawdza czy podany barkod jest wolny. Jeśli jest to barkod egzemplarza, wraca <rekord>|<sn>, jeśli jest to barkod czytelnika zwraca <rekord>|<czy_ważny>, a jeśli jest wolny to zwraca pustą wartość. |
| M | sn sn=tryb | Sprawdza lub ustawia tryb udostępniania. Obecnie jedynym obsługiwanym trybem jest "nobooking". |
| Oop | rekord|op_params | Informacja o zawartości konta czytelnika. Drugi znak komendy precyzuje operację i determinuje op_params. W przypadku zwracania listy - kolejne wiersze rozdzielane są znakiem o kodzie #13 (\r). Dostępne wartości op: A - informacja o agendzie zapisu (zwraca numer agendy) W - bieżący stan wypożyczeń. Zwraca listę wartości <sn>|<agenda>|<data_wyp>|<data_zwr> H - historia wypożyczeń. Zwraca listę wartości <sn>|<agenda>|<data_wyp>|<data_zwr> R - bieżący stan rezerwacji. Zwraca listę wartości <sn>|<agenda>|<status>|<data_rez>|<czas_rez> Z - bieżący stan zamówień. Zwraca listę wartości <rekord>|<agenda>|<data_zam>|<czas_zam>|<data_max> K - kary do zapłacenia. Zwraca listę wartości <agenda>|<data_nal>|<flag>|<sn>|<wartość> P - wpłaty/wypłaty. Zwraca listę wartości <agenda_w>|<data_wpl>|<rodzaj>|<kwit>|<wartość> O - odwiedziny. Jako op_params można podać numer agendy, jeśli się nie poda, zwraca listę dla wszystkich agend. Zwraca listę: <data>|<agenda> o - Jako op_params należy podać <data>| lub <data>|<agenda> - Jeśli data odwiedzin wskazanej agendy jest większa lub równa podanej, zwracana jest ta data. W przypadku nie podania agendy, sprawdzane są wszystkie agendy. w - Jako op_params należy podać <data>| lub <data>|<agenda> - Jeśli data wypożyczenia we wskazanej agendzie jest większa lub równa podanej, zwracana jest ta data. W przypadku nie podania agendy, sprawdzane są wszystkie agendy. M - czyt|sn - zwraca liczbę wygenerowanych monitów |
| R | sn | Informacja o rezerwacji egzemplarza o identyfikatorze sn. Zwaca: <czytelnik>|<agenda>|<status>|<data_rez>|<czas_rez> Od wersji zwraca dodawkowo |<odbior>|<timeout> |
| S | sn | Sprawdza status dostępności i agendę dla egzemplarza o identyfikatorze sn. Zwraca łańcuch postaci <dostępność>|<agenda> - gdzie <dostępność> wyrażona jest kodem: D - dostępne, Nx - niedostępne z powodu x (Z - zarezerwowane, W - wypożyczone). Np. NZ|0 - egzemplarz należy do agendy o numerze "0", nie jest dostępny gdyż jest zarezerwowany. W przypadku pozycji ubytkowanej dodatkowo zwracane jest <agenda>|<data>|<dokument>|<pozycja>|<nr_kol> W przypadku pozycji zgłoszonej do ubytkowania (dostępność Nx gdzie x <> W i Z): <ubytek>|<data_wp><agenda>, zaś jeśli <ubytek>=P, dodatkowo <dokument>|<pozycja> |
| W | sn | Informacja o wypożyczeniu egzemplarza o identyfikatorze sn. Zwraca: <czytelnik>|<kas>|<data_wyp>|<data_zwr> |
| X | sn | Informacja o wypożyczeniu egzemplarza o identyfikatorze sn. Zwraca: <czytelnik>|<kas>|<data_wyp>|<data_zwr>|<prolongaty_automatyczne> |
| Z | rekord|agenda | Czy wydanie było zamawiane. Nie podanie agendy sprawdza wszystkie agendy. Zwraca liczbę zamówień. |
| Z? | rekord|agenda | Zwraca identyfikatory rekordów czytelników, którzy zamawiali wydanie. Nie podanie agendy sprawdza wszystkie agendy. Rekordy separowane są znakiem |, np. O123|O345| |
| $ | typ_kary|kwota|data_od|data_do [#13 data_wpl|kwota_wpl|...] | Wyznacza odsetki od podanej kwoty. Jeśli mają być wzięte pod uwagi wpłaty cząstkowe (co pomniejsza odsetki), to po znaku #13 należy podać kolejne wpłaty. Jeśli podany jest prawidłowy typ kary, to odsetki są wyznaczane tylko jeśli parametry systemu są skonfigurowane do naliczania kar dla tego typu. Podanie zamiast typu wartości |
| # | sn|rekord | Przenieś egzemplarz sn do innego rekordu rekord. W razie błędu zwracany jest komunikat o owym. |
| > | sn|nsn | Zmiana identyfikatora egzemplarza z sn na nsn w bazach wypożyczalni. |
| -op | op_params | Usuwanie pozycji. Drugi znak precyzuje operację i determinuje op_params (niżej podane zaraz za kodem operacji). DOstępne wartości op: Z - rekord_ks|rekord_czt - Usunięcie zamówienia na rekord_ks dla czytelnika rekord_czt R - sn - Usunięcie rezerwacji bez obsługi zamówienia A - sn - Realizacja zamówienia na egzemplarz |
External SKO
Grupa poleceń do obsługi skontrum. Wywołanie: external('SKO<cmd> <params>'):
| cmd | params | Wynik funkcji |
|---|---|---|
| Q? | sn | Zwróci 'S' jeśli egzemplarz o podanym sn jest brakiem stałym, '+' jeśli jest oznaczony jako "na półce" lub pusty string, jeśli status jest nie określony. |
| Q+ | sn | Oznacza egzemplarz o podanym sn jako znajdujący się na półce, zwraca '+' |
| Q- | sn | Oznacza egzemplarz o podanym sn jako nie znajdujący się na półce, zwraca '-' |
| Q* | sn | Jeśli egzemplarz o podanym sn jest "na półce" ściąga go i zwraca '-', jeśli go nie ma dodaje go i zwraca '+' |
| S | sn | Status egzemplarza. Zawsze zwraca co najmniej: <dostęp><powód>|<agenda>. Jeśli <dostęp>=U dodatkowo zwraca informację o pozycji ubytkowanej, tj: <data>|<dokument>|<pozycja>|<nr_kol> Jeśli <dostęp>=N zaś <powód> nie jest W lub Z dodatkowo zwraca informację o pozycji zgłoszonej do ubytkowania, tj: <ubytek>|<data_wp>, a jeśli <ubytek>=P to jeszcze <dokument>|<pozycja> |
| U | sn | Czy jest stały ubytek. Jeśli nie, zwracany jest pusty łańcuch. |
| - | rekord|lista sn | Aktualizuje bazę skontrum na podstawie przesłanej listy snów i identyfikatora rekord. Porównuje listę egzemplarzy należących do rekordu i tych które znajdują się w tabeli skontrum. Jeśli w tabeli skontrum znajduje się egzemplarz, który nie został przesłany na liście sn, wówczas jest on kasowany z tabeli skontrum. |
External IPUB
Grupa poleceń do obsługi powiązań rekordów z IPUBem oraz dostępu i zmiany informacji o stanie zmian w opisach bibliograficznych i dostępności egzemplarzy.
W zwracanych wartościach znaczenie poszczególnych elementów jest nastepJeśli nie podano inaczej, funkcje zwracają: <rec_id>/<wersja>|<ipub_id>|<status>|<data>|<czas>|<lp>
Wywołanie: external('IPUB <cmd><params>'):
| cmd | params | Wynik funkcji |
|---|---|---|
| ! | rekord | Pobranie informacji o powiązaniu rekordu. Zwraca <rec_id>|<ipub_id> |
| : | rekord | Pobranie informacji o powiązaniu rekordu Zwraca <rec_id>|<ipub_id> |
External STN
| cmd | params | Wynik funkcji |
|---|---|---|
| STN+ | agenda|stanowisko|status|czytelnik|od|do | dodaje nowy status |
| STN- | agenda|stanowisko|od | kasuje określony wpis |
| STN! | agenda|stanowisko|do | zwrot (zamiana W na w) i ustawienie nowego do UWAGA: w wyniku tej operacji, może nastąpić przecięcie zakresów, gdy ktoś odda komputer po terminie rozpoczęcia innej rezerwacji albo blokady, jest to sytuacja dopuszczalna i trzeba z nią żyć ;) |
| STN* | agenda|stanowisko|od|do | zmiana do na nowe, (czyli skrócenie, albo przedłużenie, bez zmiany statusu) skrócić można zawsze przedłużyć, tylko, jeśli przedłużenie nie zahaczy o nowy zakres (np. rezerwacji) |
Każdy z externali STN zwraca:
External SQL
Grupa poleceń do wykonywania zapytań SQL (UWAGA: używanie ich jest niezalecane i powinny być stosowane w ostateczności). Wywołanie: external('SQL<cmd> <params>'):
| cmd | params | Wynik funkcji |
|---|---|---|
| EXECUTE | <query_id> | komunikat błędu, lub pusty string jeśli OK |
| FROM | <query_id>|<nazwa_tabeli> | komunikat błędu, lub pusty string jeśli OK |
| FULL | <query_id>|<lista_pól>|<nazwa_tabeli>|<warunek_zapytania>|<kolejność_sortowania>|<oczekiwana_ilość_rekordów> | komunikat błędu, lub pusty string jeśli OK |
GET | <query_id> |
|
| LIMIT | <query_id>|<oczekiwana_ilość_rekordów> | komunikat błędu, lub pusty string jeśli OK |
| ORDERBY | <query_id>|<kolejność_sortowania> | komunikat błędu, lub pusty string jeśli OK |
| PREPARE | brak | QUERY_ID |
| SELECT | <query_id>|<lista_pól> | komunikat błędu, lub pusty string jeśli OK |
| UNPREPARE | <query_id> | komunikat błędu, lub pusty string jeśli OK |
| WHERE | <query_id>|<warunek_zapytania> | komunikat błędu, lub pusty string jeśli OK |
Szczegółowe informacje na temat externali SQL są dostępne tutaj