V tomto článku bych se rád zaměřil na problematiku datových připojení při tvorbě formulářových prvků. Častým scénářem totiž bývá užití formuláře (InfoPath například), který čerpá data z různých zdrojů. Tyto data je nutné kombinovat a vhodným způsobem filtrovat tak, aby celek zůstal nějakým způsobem rychlý a dále aby byl co nejvíce efektivní. Toto je základní výzva pro každého developera, který pracuje na vývoji takového řešení za použití standardních, volně dostupných nástrojů.

Databáze SQL a InfoPath

Například InfoPath nabízí možnost definování datového připojení, které může být definováno SQL dotazem, ve kterém je možné zvolit, které údaje je potřebné stahovat z databáze, jak je chtěné je zobrazit, případně jak je nutné je vzájemně propojit. Toto bývá prvním kamenem úrazu. Spousta uživatelů se domnívá, že co jedno datové připojení, to jeden datový zdroj a většinou tak s ním zachází včetně ponechání všech tabulek z daného pohledu. Datové zdroje je možné v produktu InfoPath kombinovat. Je pouze nutné vždy uvést, jakým primárním klíčem jsou zdroje propojeny.

image

Jednotlivé údaje z databáze je možné také zobrazit, nebo upravit jako SQL Query, tedy jako dotaz a doplnit tak funkcionalitu, která v produktu InfoPath chybí. Typickým příkladem může být například řazení dat z těchto sekundárních zdrojů, případně tzv. Join tabulek, nebo jejich vlastní pojmenování, nebo vytvoření počítaných hodnot.

image

REST a InfoPath

Dalším vhodným zdrojem dat bývají často údaje z firemních portálů, jako je například SharePoint. Pokud by bylo zapotřebí čerpat z listů, není potřeba se zvlášť zamýšlet, neboť je pomocí průvodce možné přímo připojit potřebný list, nebo knihovnu. Pokud by ale byla potřeba například čerpat data ze sešitu aplikace Microsoft Excel, který je uložený v knihovně na portálu SharePoint, je nutné „sáhnout“ po sofistikovanějším řešení, kterým je využití REST dotazů. Tyto dotazy mají tu výhodu, že je možné je poměrně rozsáhlým způsobem parametrizovat a tedy pronášet hodnoty jak do sešitu Excel, tak i z něj a to za použití jediného dotazu. Toto najde praktické využití například tehdy, chcete-li pronést hodnotu do sešitu Excel, tam s hodnotou provést potřebné výpočty a výsledek si pronést zpět do formuláře InfoPath, který ve výsledku může být také hostován na portálu SharePoint. Tento postup ale můžete aplikovat i tehdy, pokud byste do sešitu Excel pronášely například doplňující hodnoty, které by Vám doplňovali hodnoty například grafu a celý tento graf, jako objekt pronášely zpět do aplikace InfoPath. Tím se dá doplnit chybějící funkcionalita InfoPathu, protože standardním způsobem v něm grafy nevytvoříte (maximálně vložíte statické obrázky).

image

SOAP webové služby

V poslední řadě je možné využít webových služeb, které jsou součástí většiny softwarových řešení provozovaných na principu firemních portálů, nebo jejich částí. Typickými zástupci takovýchto aplikací je například SharePoint, Project Server, CRM, Axapta a další. Tímto způsobem je také mimo jiné možné získat informace o aktuálně přihlášeném uživateli a dle něj filtrovat další informace, které mu v rámci formuláře poskytujete (tedy je možné například filtrovat ze seznamu projektů jen ty, u kterých je přihlášený uživatel (který otevřel nový formulář) vlastník, nebo projektový manažer, nebo například konkrétní obchodník u obecného obchodního formuláře.

image

Ing. Roman Nedzelský, MSCE, CAPM
WBI Systems s.r.o.