|
|
Webové služby na vybrání dat se dělí na dvě skupiny.
1. Data z číselníku - wsData_SelectCiselnik Číselníky jsou dostupné i nepřihlášeným uživatelům (především kvůli usnadnění integraci s 602XML Fillerem), je tedy možné webovou službu volat bez předchozí autentikace. Parametry je buď id_ciselnik (viz administrace číselníků v KEVISu) nebo název sloupce, na který je číselník navázán, plus název tabulky, ve které sloupec je. Druhou možnost ilustruje následující příklad:
$res = $kevis->call("wsData_SelectCiselnik", array( "input" => array( "table" => "Zamestnanci", "column" => "Pracovni_misto", ) ) );
if(isset($res) && !$kevis->fault && isset($res["response"]) && is_array($res["response"])) { echo "Zaznamy z ciselniku byly uspesne nacteny."; print_r($res["response"]["values"]); } else { echo "Nepodarilo se nacist zaznamy z ciselniku!"; var_dump($res); }
Výsledkem volání je pole, které obsahuje pole jednotlivých prvků (každé z těchto asociativních polí obsahuje hodnotu (val) a její id ).
2. Data z tabulky - wsData_Select Jednou z nejčastěji volaných webových služeb bude právě tahle - na vybrání záznamů z tabulky. Následující příklad předpokládá, že uživatel je již přihlášen (id_sess) a ilustruje komplikovanější využití filtru a řazení. Chování je analogické k uživatelské části KEVIS - vazby jsou navázány automaticky, uživatel může ovlivnit filtr na základní položky, alternativní filtr (s využitím logiky), filtr na návazné položky a řazení.
// zakladni nastaveni filtru pro tabulku - zde 2 podminky $filter = array( "Zamestnanci" => array( "Jmeno" => array( "cond" => "LIKE", // = != LIKE NOT LIKE "val" => "Mar", ), "SYS_Klic" => array( "cond" => ">", // = != > < "val" => "20", ), ), );
// alternativni podminka pro jeden ze sloupcu $filter_alt = array( "Zamestnanci" => array( "Jmeno" => array( "box" => "or", "cond" => "like", "val" => "Tom", ), ), );
// podminka pro navazanou polozku $filter_nav = array( "Auta" => array( "Znacka" => array( "cond" => "vzdy obsahuje", "val" => "BMW", ), ), );
// razeni zakladni tabulky $order = array( "by" => "Zamestnanci.Prijmeni", "how" => "desc", );
$res = $kevis->call("wsData_Select", array( "input" => array( "id_sess" => $id_sess, "table" => "Zamestnanci", "filter" => $filter, "filter_alt" => $filter_alt, "filter_nav" => $filter_nav, "order" => $order, ) ) );
if(isset($res) && !$kevis->fault && isset($res["response"]) && is_array($res["response"])) { echo "Zaznamy byly uspesne nacteny z tabulky Zamestnanci."; var_dump($res["response"]["xml"]); } else { echo "Nepodarilo se nacist zaznamy z tabulky Zamestnanci!"; var_dump($res); }
Výsledkem jsou data v XML formátu - přesná analogie XML exportu z KEVISu.
Podmínky použitelné do filtru závisí na typu filtru a datovém typu položky, obecně se dají využívat následující: "=", "!=", "LIKE", "NOT LIKE", "IS NOT NULL", "IS NULL" Číselné položky: "=", "!=", "<", ">", "IS NOT NULL", "IS NULL" Logické operátory: "and", "or" Podmínky pro textové položky (N:1): "vazba existuje", "=", "!=", "LIKE", "NOT LIKE", "vazba neexistuje" Podmínky pro číselné položky (N:1): "vazba existuje", "=", "!=", "<", ">", "vazba neexistuje" Podmínky pro textové položky (M:N): "vazba existuje", "vzdy je", "vzdy obsahuje", "alespon 1 je", "alespon 1 obsahuje", "je i neco jineho", "obsahuje i neco jineho", "neni, ale je neco jineho", "nikdy neni", "nikdy neobsahuje", "vazba neexistuje" Podmínky pro číselné položky (M:N): "vazba existuje", "vzdy je vetsi", "vzdy je mensi", "alespon 1 je vetsi", "alespon 1 je mensi", "nikdy neni vetsi", "nikdy neni mensi", "vazba neexistuje" |