602SQL-Úplná dokumentace Index  

Vytváření aplikací 602XML+602SQL+PHP

V této sekci se dozvíte nejpoužívanější obraty a techniky pro vytváření databázových webových aplikací využívajících jako výchozí program 602XML Filler. Tedy aplikací, jejichž frontendem je 602XML Filler komunikující pomocí HTTP(S) protokolu s 602SQL serverem (přes webový server Apache, pro testování nebo jednodušší intranetové aplikace lze využít emulace web serveru SQL serverem).

Pro plné pochopení této kapitoly a pro schopnost napsat podobnou aplikaci je třeba zvládnout několik prostředí a jazyků:

  1. Návrh XML formulářů pomocí programu 602XML Designer - viz dokumentace k tomuto programu;
  2. Jazyk PHP, zvláště pak PHP rozhraní k 602SQL serveru (v některých jednodušších případech lze vynechat a nahradit 602SQL WebXML rozhraním);
  3. Databázový backend 602SQL serveru (tj. návrh tabulek, domén, dotazů, programování triggerů a procedur v jazyce SQL) - viz kompletní kapitola Jazyk SQL;
  4. Návrh a použití DAD transformací pro XML přenosy, zvláště pak 602SQL XMLAPI - PHP funkce pro exporty a importy dat mezi tabulkami a XML.

Některé činnosti prováděné v těchto aplikacích lze programovat na více místech, obvykle uvnitř PHP skriptu pomocí klientských API funkcí nebo uvnitř SQL procedury zavolané jako celek z PHP skriptu. Oba způsoby mají svá pro i proti a je na úvaze vývojáře, který zvolí.

Záměrně zde neuvažujeme o případech, kdy (složité) PHP skripty nahrazují části DAD transformace (tedy uvnitř skriptu se provádí analýza a rozebírání XML a sestavování XML).

Mnohé případy použití (např. dynamický číselník v combu ve Filleru) není třeba vůbec programovat - stačí použít vhodné URL webového XML rozhraní 602SQL serveru pro tuto situaci - příklady jsou popsány na stránce Integrace formulářů s databází .

Použití 602SQL databáze pro XML formuláře

XML formuláře vytvářené 602XML Designerem lze napojit na databázi ve třech místech:

Data z 602SQL slouží jako:

  1. zdroj dat pro on-line číselník - požadavek se zadává v okně Možnosti formuláře, záložka Číselníky, tlačítkem Přidat, v parametrech číselníku je třeba zadat Nahrát data ze souboru, Aktualizovat data z odkazu a Data neukládat jako součást formuláře.
  2. zdroj dat, kterým se naplní formulář při otevření - požadavek se zadává v okně Možnosti formuláře, záložka Ostatní, vlastnost Soubor s XML daty.
  3. jako úložiště dat vyplněných ve formuláři a odeslaných pomocí tlačítka ve formuláři nebo na liště - požadavek se zadává na Pracovním panelu, záložka Odeslání dat jako parametr URL odesílacího profilu typu Odeslání pomocí HTTP požadavku.

Požadavek na 602SQL server zadaný při návrhu XML formuláře má jeden z následujících tvarů:

  1. odkaz na PHP skript, který vrátí vhodné XML nebo text na std. výstupu ve formátu UTF-8 a s vhodně nastavenou HTTP hlavičkou (viz příklad níže); např. http://localhost/php/save_order.php; - nejobecnější formát;
  2. pevný odkaz na 602SQL WebXML rozhraní, např. http://MujWeb.cz/602.php/MujServer/MojeSchema/DAD/get_order_data?ID=12345; má smysl, pokud formulář není uložen v databázi jako objekt;
  3. relativní odkaz zadaný výrazem se jménem serveru a schématu podle aplikace (schématu), z níž je čten formulář, např. $(Eval("StrCat(GetFormParam(/host_name),{/},GetFormParam(/host_path_prefix),{602.php/},GetFormParam(/host_sql_server),{/},GetFormParam(/host_sql_schema),{/DAD/get_order_data?ID=12345})")); pouze tehdy, když je formulář uložen v databázi jako objekt. Požadavek je funkční, i když se změní uložení objektů v databázi (např. importem na jiný server), na rozdíl od odkazu pevného. Tento výraz lze použít na všech třech místech formuláře, kde lze zadat požadavek.

Formát požadavků lze libovolně kombinovat i v rámci jednoho formuláře, např. požadavek na číselník mít zadán pomocí výrazu $Eval(...) a vlastní uložení dat do databáze pomocí PHP skriptu.

Uložení formulářů

XML formuláře vytvořené 602XML Designerem lze mít uložené jako

Formuláře uložené v databázi mají výhodu, že s ostatními potřebnými objekty v aplikaci tvoří celek, lze je najednou exportovat a importovat a pokud jsou odkazy na HTTP požadavky zadané výrazem $Eval(...), tak jsou přenositelné mezi SQL servery bez úpravy.

Veškeré programování PHP skriptů s celými formuláři je výrazně jednodušší, jsou-li formuláře uložené v databázi.

Rozbor aplikací

Základní aplikace (neuvažujeme číselník ani vstupní data) vypadá asi takto:

  1. Uživatel v prostředí programu 602XML Filler vyplní XML formulář a odešle HTTP požadavek obsahující XML data webovému serveru.
  2. Webový server (preferujeme Apache) požadavek předá 602SQL serveru.
  3. 602SQL server analyzuje XML data, pomocí vhodného DAD provede import dat do tabulek nebo do proměnných a podle typu úlohy se přes web server vátí do Filleru:

Seznam subsekcí: