4D Mobile! ! ! ! Úvod! !
Wakanda, publikovaná 4D SAS, je platforma pro vývoj a publikování webových aplikací vnitřně založena na standardních technologiích: jako je JavaScript a HTML5.!
!
Můžete použít "4D Mobile", architekturu k vytvoření přímého spojení mezi 4D a Wakanda. S touto konfigurací, můžete kombinovat grafickou a funkční bohatost nejnovější generace webových rozhraní Wakanda s výkonem svých 4D databází.!
!
Pokud si chcete teď vytvořit své první spojení mezi 4D a Wakanda, zkontrolujte si níže, že máte správnou konfiguraci a pak se podívejte na odstavec "Krok za krokem příklad" dále.!
! Achitektura 4D Mobile! !
Chcete-li nastavit architektuřu pomocí propojení 4D / Wakanda, budete potřebovat minimálně:! !4D v14 Server. Můžete použít jednouživatelskou 4D V14 (Professional verze) k vývoji a testování vašeho řešení pomocí konektoru 4D Mobile (tři současná připojení klienta jsou v této souvislosti povoleny).! ! Wakanda Enterprise Server min v7, stejně jako Wakanda Studio Enterprise min v7 pro vývoj. Zde si můžete stáhnout obě aplikace z tohoto webu: http://www.wakanda.org.! ! 4D databázi a Wakanda aplikaci, které chcete aby spolu komunikovaly.!
!
Na 4D straně, budete muset nakonfigurovat každou tabulku, atribut a metodu, která bude přístupná aplikaci Wakanda (viz "Konfigurace databáze 4D" odstavec na straně 3).!
!
4D Mobile architektura je prezentována na následujícím obrázku:!
!
Vazba mezi Wakanda Enterprise Serverem a 4D Serverem je ustavena po provedení metody JavaScript mergeOutsideCatalog () na serveru Wakanda (viz spuštění metody mergeOutsideCatalog ()), když je spuštěno řešení/ solution Wakanda. Když je připojení 4D Serverem přijato (viz odstavec "Ovládání REST přistupupu" na straně 8), je poslán Wakande serveru "lístek" REST relace. Tato jízdenka bude použit Wakandou pro všechny následující požadavky klientů REST.!
1
!
Prostřednictvím tohoto odkazu, může server Wakanda potenciálně přístoupit ke dvěma typům zdrojů v databázi 4D:!
!
! tabulkám a jejich vlastnostem (včetně jejich dat) ! ! metodám projektu!
!
Když je oprávněn Wakanda server může tyto prostředky použít přímo na straně Wakanda, stejně jako kdyby patřily k místnímu katalogu aplikace Wakanda (jejich přístup je transparentní z aplikace Wakanda).!
!
Když webový klient odešle požadavek na server Wakanda, který vyžaduje přístup k databázi 4D, tento požadavek je odeslán na 4D serveru pomocí aktuální jízdenky a standardní připojení 4D klienta je otevřeno na stroji 4D Serveru. Toto spojení zůstává otevřené tak dlouho, dokud uživatel provádí požadavky a zavře se standardně po 60 minutách časového limitu. Tento výchozí časový limit může být změněn v průběhu provádění metody mergeOutsideCatalog () pomocí parametru timeout.!
!
Během sekce, pokud je dosažen počet licencí, který odpovídá počtu oprávněných klientských připojení na 4D serveru, je vrácena chybová zpráva na server Wakanda.
!
Poznámka: Můžete také vytvořit dynamické dočasné vazby mezi Wakanda a 4D aplikací, zatímco je spuštěna aplikace Wakanda pomocí addRemoteStore () a openRemoteStore () metod. Tyto metody jsou popsány v openRemoteStore () a addRemoteStore ().
! Příklad Krok-za-krokem !
Tato část je určena, aby vám pomohla seznámit se s funkcí konektoru Wakanda / 4D pomocí příkladu krok za krokem. Chystáme se: ! vytvořit a konfigurovat 4D databázi ! vytvořit jednostránkovou aplikaci Wakanda ! zobrazit data z databáze 4D ve stránce Wakanda.
!
Chceme-li zachovat příklad jednoduchý, budeme používat aplikaci 4D a aplikaci Wakanda které jsou spuštěny na stejném počítači. Samozřejmě, můžete použít vzdálenou architekturu.
! Vytvoření a konfigurace 4D Databáze !1. Spusťte aplikaci 4D nebo 4D Server a vytvořte novou databázi.
ji pojmenovat např. ”Emp4D". !2. Můžete Ve struktuře editoru vytvořte tabulku [Zaměstnanci] a přidejte do ní následující pole:
Příjmení (Text)
Jméno (Text)
Plat (LongInt)
!3.
Vlastnost “Zpřístupnit přes službu 4D mobile” (REST dotazům) je ve výchozím nastavení zaškrtnuta pro tabulku a všechny oblasti; neměňte toto nastavení. Klepněte na tlačítko Tabulky a nechte 4D vytvořit výchozí formuláře pak vytvořte záznamy několika zaměstnanců
!
2
4. Zobrazte stránku Web v Návrh položce nabídky Nastavení databáze a klepněte na záložku 4DMobile.
5. Zkontolujte zaškrtnutí aktivovat Wakanda REST služby - 4D mobile service
6. Zvolte v nabídce Spustit položku Start Web Serveru
Databáze 4D je nyní připravena reagovat na požadavky REST od Wakandy. Všimněte si, že v zájmu zjednodušení tohoto příklad, jsme nezapnuli ovládání REST přístupu. Nicméně v kontextu veřejného použití nebo otevřené architektuřy, je nezbytné REST přístupy hlídat (viz "O zabezpečení aplikací 4D Mobile" odstavec na 11).
! Vytvoření aplikace Wakanda !1. Spusťte aplikaci “Wakanda Enterprise studio” a klepněte na tlačítko Create New Solution
!
3
2. V dialogovém okně vytvoření vložte název např EmpWakanda” a klepněte OK
Je vytvořen projekt aplikace a jeho výchozí položky jsou zobrazeny v Průzkumníku Wakanda
!
3. Poklepejte na prvek Model
Objeví se okno Návrháře Wakanda - Wakanda model designer
!4.
V oblasti průzkumníka Wakanda poklepejte na soubor “Model.js”
Tento soubor je vytvořen automaticky při otevření gafického editoru. Obsahuje popis modelu v JavaScript.
!5. !Jednoduše napište následující příkaz:
!6. model.mergeOutsideCatalog("Emp4D",“localhost”,"",""); Klepněte na uzavírací okénko Solution v průzkumníku
)
!
4
7. Opět otevřete solution poklepáním na něj v “Recent solutions”
Můžete vidět, že externí model “Emp4D” je v seznamu Wakanda aplikací a že tabulka [Employees] aplikace 4D je v seznamu database classes lokálního modelu. Externí prvky jsou označeny červenou šipkou:
)
)
!V případě problému !Pokud tabulka není uvedena v seznamu v tomto okamžiku, zkontrolujte, zda:
! žádná služba třetí strany nebo software (instant messenger, například), není v rozporu s publikovaným portem HTTP serveru 4D (8080 ve výchozím nastavení), ! na 4D straně, je spuštěn 4D Web Server, služby Wakanda REST jsou aktivovány a tabulka byla vystavena REST službám, ! adresa předaná mergeOutsideCatalog (), je platná.
!Chcete-li zjistit, zda je 4D server skutečně reaguje na RESTpožadavky, můžete vyzkoušet následující adresy URL v prohlížeči:
/rest/$catalog/$all
(navrátí všechny tabulky vystavené REST)
/rest/my_table/my_method
(navrátí výsledek metody - poked samozřejmě nějakou navrací)
Zobrazení 4D dat za pomoci udělátek Wakanda
!Nyní se chystáme přiřadit 4D tabulky k nástrojům Wakandy pomocí drag&drop, spustit Wakanda Enterprise Server a zobrazit data. !1. Otevřete složku “WebFolder” v Průzkumníku a poklepejte na položku Index k otevření návrháře uživatelského rozhraní Wakandy
Poznámka: Web složka obsahuje prvky určené k publikování na Webu vašeho projektu. “Index” je výchozí stránka projektu.
)
!
5
2. V seznamu Widget, klepněte na položku Grid a přetáhněte ji do pracovní oblasti.
!
)
3. V seznamu Datastore Classes modelu klikněte na “Employees” a přetáhněte je do grid, kterou jste právě vytvořili.
)
V tomto bodě pro vás editor automaticky vytvoří zdroj dat na základě tabulky /class “Zaměstnanci", která bude spravovat obsah widget. Tento zdroj dat je objekt JavaScript spravovaný Wakandou, s názvem "zaměstnanci" jako výchozí nastavení, tj název tabulky/class s jeho prvním písmem malými písmeny.
Widget zobrazuje náhled jeho obsahu. Můžete zvětšit pro zobrazení všech polí zdroje dat:
6
)
Přiřazení mezi zdrojem dat a widget je nyní navázano.
!
4. Klikněte na tlačítko Save/Uložit v liště nástrojů.
Nyní se chytáme zobrazit data pomocí web prohlížeče.
!
5. Klepněte na tlačítko Run project/Spustit projekt v liště nástrojů WES.
To spustí Wakanda Enterprise Server a publikuje aplikaci “EmpWakanda”. Díky spojení 4D Mobile, které jsme nastavili, jsou zobrazena data 4D databáze v okně vašeho výchozího web prohlížeče.
)
Můžete testovat dynamické vlastnosti spojení změnou dat ze strany Web. )
! Vytvoření a volání 4D Metody !Nyní se chystáme vytvořit velmi jednoduchou metodu projektu na straně 4D a spustit ji z vaší webové stránky. Tato metoda bude zdvojnásobovat všechny výplaty. 1. Na straně 4D, vytvořte metodu nazvanou “ZdvojeniPlatu a napište následující kód:
FIRST RECORD([Zamestnanci])
While (Not(End selection([Zamestnanci])))
[Zamestnanci]Plat:=[Zamestnanci]Plat*2
SAVE RECORD([Zamestnanci])
NEXT RECORD([Zamestnanci])
End while
!
7
2.
Nastave REST vlastnosti metody a klepněnte OK:
V Wakandě class metody/metody tabulky jsou používány v následujících souvislostech: entity(záznam), entity collection (výběr záznamů) nebo database class (celá tabulka - všechny záznamy). Je potřeba tento kontext určit na staně 4D.
3. Na staně Wakanda Enterprise Stuio se vraťte na stránku Index v grafickém návrháři rozhraní a přidejte tlačítko ze seznamu widgets:
!
4. Poklepejte na tlačítko a pojmenujte ho např. “Zdvojit výplaty”
!
5. Ujistěte se, že tlačítko “Zdvojit výplaty” je vybrané a klepněte na tlačítko Events na pravé straně Návrháře rozhraní.
8
6. Klikněte na ikonu pro přidání události “On Click”:
Objeví se editor kódu a můžete napsat kód, který bude proveden při klepnutí na tlačítko. Chceme pouze zavolat metodu “ZdvojeniPlatu” ze 4D a pak ve funkci zpětného potvrzení (onSuccess) zajistit, že záznamy budou znovu zobrazeny.
!
7. Vložte následující kód
sources.zamestnancis.ZdvojeniPlatu({
onSuccess:function(event){
sources.zamestnanci.allEntities();
}});
máme tedy v editoru kódů:
button1.click = function button1_click (event)
{
sources.zamestnanci.ZdvojeniPlatu({
onSuccess:function(event){
sources.zamestnanci.allEntities();
}});
};
Pozor na malá písmena na počátku názvů ty používá zdroj dat, založený automaticky v době kdy class byl připojen k widget.
!
8. Klikněte na tlačítko “Save” v liště nástrojů
Jsme schopni provést testovací volání metody, nejdříve však musíme znovu načíst model do Wakanda Enterprise Serveru.
!
9. Klikněte na tlačítko “Reload models” v liště nástrojů WEStudio
10. Obnovte stránku ve Web prohlížeči, objeví se vytvořené tlačítko “Zdvojit výplaty”
11. Klepněte na tlalačítko “Zdvojit výplaty”
Samozřejmě je to velmi jednoduchý příklad a takto to v praxi nejde, ale je to ukázka 4D Mobile
9