|
wb_import_from_xml | XML přenosy dat | wb_get_xml_form |
Funkce provede import dat v XML formátu ze zadaného řetězce buffer podle popisu mapování uvedeného v DAD.
Parametr dad_ref může mít dvě podoby. Je-li ve tvaru jméno_objektu uvozené hvězdičkou (tj. *jméno_objektu), hledá se DAD v otevřené aplikaci jako objekt typu přenos, jinak se čte z tohoto parametru.
Vede-li DAD do ODBC zdroje dat (od verze 10), pak spojení na tento ODBC zdroj musí být předem otevřeno pomocí funkce wb_odbc_connect. Vede-li DAD do jiného 602SQL serveru, musí být spojení na tento server předem otevřeno pomocí wb_connect.
Pomocí pole hostvars lze do proměnných klientské PHP aplikace, navázané na určitý element DADu, předat hodnotu. Pokud proměnné nepoužíváte, buď zcela vynechejte parametr hostvars, nebo jako jeho hodnotu uveďte PHP konstantu NULL. Formát popisu klientských proměnných je uveden na samostatné stránce.
V případě úspěchu vrací TRUE, v případě chyby vrací FALSE.
Z 602XML Filleru přijdou do skriptu XML data - vytáhnout některá a podle nich sestavit dotaz, který se pošle zpět filleru jako data:
include("db.php"); $xml_data = $GLOBALS["HTTP_RAW_POST_DATA"]; // prijem XML dat metodou POST // 1. přečíst ze zaslaných xml dat určité hodnoty do PHP proměnných. // Použije se vhodně navržený importní DAD (do proměnných) a XMLAPI funkce $hostvars=array( // první proměnná se jmenuje _id_prodejce "_id_prodejce" => array( // je typu Integer "type" => ATT_INT32, // je to OUT proměnná "out" => TRUE, "value" => null ), // druhá proměnná se jmenuje _datum "_datum" => array( // je typu Date "type" => ATT_DATE, // je to OUT proměnná "out" => TRUE, "value" => null ), ); @wb_import_from_XML_buffer($connection, "*prodejce_imp_prom", $xml_data, $hostvars); if($hostvars["_id_prodejce"]["value"]==null){ // proměnna se nenaplnila echo ' Id nebylo zadano.'; // vypsat na std. vystup info pro 602XMLFiller exit; // nema cenu dal pokracovat } if($hostvars["_datum"]["value"]==null){ // proměnna se nenaplnila echo ' Datum nebylo zadano.'; // vypsat na std. vystup info pro 602XMLFiller exit; // nema cenu dal pokracovat } // echo date("d.m.Y",$hostvars["_datum"]["value"]); // způsob konverze data do čitelné podoby // 2. pomocí klientských proměnných sestavit dotaz na data, která se mají vrátit do 602XMLFilleru $psqlstmt = 'SELECT * FROM Prodejci, Prodej WHERE Prodejci.id_prodejce=Prodej.id_prodejce AND id_prodejce=? AND prodej.datum=?' ; $psql=wb_psql_prepare($connection,$psqlstmt); wb_psql_send_param($psql, 0 /*první parametr*/, $hostvars["_id_prodejce"]["value"] /*hodnota parametru*/); wb_psql_send_param($psql, 1 /*druhý parametr*/, $hostvars["_datum"]["value"] /*hodnota parametru*/); $res = wb_psql_execute($psql); if ($res) // v $res je číslo kurzoru { print(wb_export_to_XML_buffer($connection,'*dadexport_prod',$res)); // poslat XML výstup funkce do Filleru close($res); // zavrit kurzor } else { echo 'Chyba pri otevirani dotazu...'; }
wb_import_from_xml | XML přenosy dat | wb_get_xml_form |