Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Current »

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:

NazwaParamsOpis
CZTdata|agenda|rejestr|liczbado 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
DELETEidtUsunięcie rekordu o przesłanym idt (rec_type + rec_id)
DEFpole

zwraca kind rekordu, np: DEFU245T (rekord U, pole 245T) zwróci XTY, gdzie X - oznacza, że pole jest indeksowane.

  • obecnie każde pole zwracane jest jako X, ponieważ nie ma podziału na bazę pól indeksowalnych i nie indeksowalnych
EGZod|doKasuje 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ą)
IPUBfWykonuje jedną z funkcji IPUB (zob. dalej)
ISBNisbnKontrola 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
8 - liczba 8-bitowych znaków w kodowaniu UTF-8

LICENCJA
Zwraca wartość linia_1|linia_2 - gdzie linie oznaczają wartości dla dwóch linii drukowanych na nalepkach
MAIL Ssmtp|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 Xsmtp|mail|tytuł|mime_type|kind| czyt_id|set_time|treść

Jak MAIL S, ale wymaga podania dodatkowych wartości

  • mime_type
  • kind - rodzaj maila (taki sam jak litera przesyłana do skryptu generującego mail określająca rodzaj operacji)
  • czyt_id - identyfikator rekordu czytelnika (sama liczba)
  • set_time - zakres godzin kiedy e-mail może być wysłany w formacie hh,hh
NEWdpolaTworzy nowy dokument typu d - pola to lista pole=wartość, rozdzielane znakiem o kodzie #13 (\r)
OBRZdata|whereUstawia datę zwrotu data w tabeli obrotów gdzie spełniony jest SQLowy warunek where.
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 |

RANGEod|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

RIGHTrwartość atrybutu przypisanego do uprawnienia o nazwie r dla bieżącego użytkownika. Jeżeli użytkownik nie ma uprawnienia r to wynikiem jest '*' (gwiazdka)
SEARCHidentyfikatorNa podstawie identyfikatora zwraca nazwę indeksu "orders" (np.: dla identyfikatora TY, zwróci "tytuł")
SETparam wartośćUstawia nową wartość parametru Sowy o nazwie param
SKOfWykonuje jedno z poleceń skontrum (zob. dalej)
SQLfWykonuje jedno z poleceń SQL (zob. dalej)
STArekord|operacja|rekord nadrzędnyDodaje 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
WYPfwykonuje 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.

NazwaParamsOpis
At|listawprowadź nowy rekord typu t
Lista to kolejne pola nowego rekordu rozdzielone znakiem o kodzie #13 (\r), np. 159Z.1.1.1.1=aaa
Bi|swydruk naklejki o identyfikatorze i oraz sygnaturze s
CVadres|typ|ix|kluczPrzeglądanie CKHW, np. CV$CFG_CKHW_A$|A|HH
DE|napisokno dialogowe z opisem błędu
DF|polewybór czcionki
DL|listawybór z listy - gdzie lista jest zdefiniowana jako ciąg par <kod>#1<opis>#1 - wynikiem jest wybrany z z okna <kod>.
DM|napisokno dialogowe z informacją
DO|file|opis|extdialog pobrania nazwy pliku (odczyt)
DP|fld|before|after|linesuaktywnienie menu tekstów dla wskazanego pola
DQ|napisokno dialogowe z zapytaniem tak/nie
DS|file|opis|extdialog pobrania nazwy pliku (zapis)
DT|listawybór z listy prezentowanej w formie drzewa - elementy drzewa to krotki <poziom>|<kod>|<opis> rozdzielane znakiem #13
DW|napisokno dialogowe z ostrzeżeniem
ELZbkod|pole(question) znajdź ostatni wpis w bazie - ELZb<kod>|949Z
FO|filepobranie zawartości pliku
FS|file|contentszapisanie pliku
FT|filepobranie pliku tekstowego bez sygnalizacji braku
FW
ścieżka do katalogu roboczego
Ffile|opis|extwyszukanie pliku
HO
lista rekordów otwieranych
HZ
lista rekordów zapisywanych
If|x|hwywołanie formatowania KHW (<format>|<ix>|<hardkey>)
Jfilewyszukanie pliku
Lixwartość ostatniego wpisu w indeksie ix
opcjonalnie można podać prefix w L<ix>|<prefix>
MCidpozaekranowa edycja rekordu - anuluj edycję rekordu
MOidpozaekranowa edycja rekordu - otwórz rekord bez formularza
MSid|datapozaekranowa edycja rekordu - zapisz rekord bez formularza
Nd|polaDodaje bez edycji nowy rekord typu d i ustawia pola (pole=wartość)
OrekordOtwiera rekord do edycji
PO
edycja helpów - pobierz plik pomocy
PS
edycja helpów - zapisz plik pomocy
Rddialog wyszukiwania rekordu danego typu (np. RU) (szukania referencji dokumentu)
UN
Nazwa bieżącego użytkownika
UP
Profil bieżącego użytkownika
UR
Prawa bieżącego użytkownika
Vidwynik skryptu referencja dla rekordu id
Vid|namewynik skryptu o podanej nazwie name dla rekordu id
Wf|idznajdź opis dokumentu <format>|<idt>
Xx|ldialog wyszukiwania KHW w indeksie x dla pola l (np. XXa|pole)
Yix|kluczwybiera z KHW wartość pola 'full'
!fileUruchom program skojarzony z file
?
zwraca położenie kursora
*ELZb
(question)


External WYP

Grupa poleceń do obsługi wypożyczalni. Wywołanie: external('WYP<cmd><params>'):

cmdparamsWynik 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)

aczytelnik|rekord|dniProlongata zamówionego przez czytelnika rekordu o podaną ilość dni.
Bsn|rekord|agenda|powod|agenda_dZgł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.
Coprekord|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:

K - kod kreskowy. Rejestruje nowy kod kreskowy dla czytelnika i wizytę czytelnika w agendzie. op_params zawierać winno nowy kod kreskowy. jeśli zostanie podany pusty - unieważnia bieżący kod kreskowy czytelnika.

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

B - blokada. op_params zawiera treść blokady konta

Z - korekta daty zapisu. op_params zawiera nową datę zapisu czytelnika

Frekord|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).

Grekord

Informacja o globalnym stanie konta czytelnika (we wszystkich agendach). Zwraca:

<wyp>|<rez>|<zam>|<kary>|<prz>

<wyp> - liczba wypożyczonych pozycji
<rez> - liczba rezerwacji
<zam> - liczba zamówień
<kary> - kwota niezapłaconych kar
<prz> - liczba pozycji przetrzymanych (których data zwrotu upłynęła)

KsnZwraca kwotę kary za przetrzymanie egzemplarza o identyfikatorze sn. Dotyczy przetwarzania rekordu czytelnika.
Irekord|agenda

Informacja o stanie konta czytelnika w agendzie. Zwraca:

<wyp>|<rez>|<zam>|<kary>|<kaucje>|<wizyta>|<prz>

<wyp> - liczba wypożyczonych pozycji
<rez> - liczba rezerwacji
<zam> - liczba zamówień
<kary> - kwota niezapłaconych kar
<kaucje> - kwota wpłaconych kaucji
<wizyta> - data ostaniej wizyty
<prz> - liczba pozycji przetrzymanych (których data zwrotu upłynęła)

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. 

JbarkodSprawdza 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".
Nn lub prefix|nZnajduje wolny kod kreskowy n-znakowy. Jeśli podano prefix, znajduje wolny kod zaczynający się od podanego prefiksu.
Ooprekord|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

Rsn

Informacja o rezerwacji egzemplarza o identyfikatorze sn. Zwaca:

<czytelnik>|<agenda>|<status>|<data_rez>|<czas_rez>

Od wersji 1.74.07 zwraca dodawkowo |<odbior>|<timeout>

Ssn

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>

Wsn

Informacja o wypożyczeniu egzemplarza o identyfikatorze sn. Zwraca:

<czytelnik>|<kas>|<data_wyp>|<data_zwr>

Xsn

Informacja o wypożyczeniu egzemplarza o identyfikatorze sn. Zwraca:

<czytelnik>|<kas>|<data_wyp>|<data_zwr>|<prolongaty_automatyczne>

Zrekord|agendaCzy wydanie było zamawiane. Nie podanie agendy sprawdza wszystkie agendy. Zwraca liczbę zamówień.
Z?rekord|agendaZwraca 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 * powoduje wyliczanie odsetek niezależnie od tego, czy system jest pod to skonfigurowany.

#sn|rekordPrzenieś egzemplarz sn do innego rekordu rekord. W razie błędu zwracany jest komunikat o owym.
>sn|nsnZmiana identyfikatora egzemplarza z sn na nsn w bazach wypożyczalni.
-opop_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>'):

cmdparamsWynik funkcji
Q?snZwró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+snOznacza egzemplarz o podanym sn jako znajdujący się na półce, zwraca '+'
Q-snOznacza egzemplarz o podanym sn jako nie znajdujący się na półce, zwraca '-'
Q*snJeśli egzemplarz o podanym sn jest "na półce" ściąga go i zwraca '-', jeśli go nie ma dodaje go i zwraca '+'
Ssn

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>


UsnCzy jest stały ubytek. Jeśli nie, zwracany jest pusty łańcuch.
-rekord|lista snAktualizuje 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>'):

cmdparamsWynik 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

cmdparamsWynik funkcji
STN+agenda|stanowisko|status|czytelnik|od|dododaje nowy status
STN-agenda|stanowisko|odkasuje 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:


|rezultat - jeśli wszystko jest ok
komunikat błędu| gdy wystąpi błąd

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>'):

cmdparamsWynik 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>
  • 0|komunikat błędu
  • 1|lista pól z wynikami (wartości poszczególnych pól są oddzielone pionową kreską)
  • 2|EOF
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
PREPAREbrakQUERY_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

  • No labels