Data - select

Top  Previous  Next

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"