Je známou skutečností, že balík kancelářských aplikací společnosti Microsoft patří k nejpopulárnějším počítačovým programům, který každodenně používají miliony lidí na celém světě. Aplikace sdružené v kolekci Microsoft Office 2007 ovšem ukrývají daleko větší potenciál, jenž dovede mnoha vývojářům a IT profesionálům nejednou usnadnit řešení jejich komplikovaných pracovních úkolů. Na platformě Office 2007 je totiž možné vytvářet a spravovat sofistikovaná řešení, která se mohou stát cenným zdrojem optimalizace podnikových procesů či řízení vztahů se zákazníky. Jádrem využití možností sady Office 2007 je automatizace. Jde o softwarovou technologii, která umožňuje využívat vestavěnou programovou funkcionalitu při řešení rozmanitého souboru uživatelských úloh.
Aplikace Office 2007 jako inteligentní stroj
Po podstatě automatizace nemusíme pátrat dlouho – je totiž zřejmá již z názvu této technologie. Primárním účelem automatizace je snaha o strojové vykonávání uživatelských aktivit, které se nejčastěji pojí se správou dat, řízením finančních toků, kalkulacemi či se získáváním relevantních podkladů pro manažerské rozhodování. Automatizace je v současné době natolik vyspělá, že dovoluje strojově analyzovat a řešit takřka jakýkoliv uživatelský problém. Pomocí automatizace dokážou vývojáři ovládat objektové modely aplikací Office 2007 a pracovat tak s objekty na vysoké úrovni abstrakce. Dokonce lze sestavovat samostatně působící softwarové bloky ve formě doplňků, jež jsou schopny uspokojit i vysloveně specifické požadavky klientů.
Z technického hlediska představuje automatizace interoperabilní softwarovou technologii, pomocí níž mohou dvě samostatně stojící aplikace vzájemně navázat komunikační proces a vyměňovat si mezi sebou důležité informace. Automatizace je založena na binárním standardu COM, jenž na základě zapouzdření ukládá veškerou potřebnou funkcionalitu do objektů, z nichž je aplikace ve skutečnosti složena. Objekty mohou vytvářet sady různé složitosti – pokud je takováto sada objektů schopna plnit vymezený pracovní úkol, přičemž je nezávislá na jiných objektových sadách, nazýváme ji komponentou. Komponenty jsou, jednoduše řečeno, softwarové součástky, pomocí nichž je možné „poskládat“ i značně rozsáhlou aplikaci.
Aby mohly komponenty mezi sebou komunikovat, jsou obdařeny standardizovanými rozhraními, která předepisuje COM. Microsoft Word 2007 a Microsoft Excel 2007, jakožto i další aplikace sady Microsoft Office 2007, implementují komunikační protokol COM, což znamená, že externí aplikace mohou spolupracovat s komponentami a objekty v nich uloženými. Ve skutečnosti je každá z aplikací Office 2007 navržena jako hierarchie mnoha objektů, které provádějí komplexní činnosti – od otevírání a ukládání dokumentů přes kontrolu pravopisu, vytváření grafů a tabulek až po volání inteligentních značek a prohledávání databází. Pokročilí uživatelé a programátoři si mohou od dotyčné aplikace Office 2007 prostřednictvím automatizace „vypůjčit“ nezbytnou funkcionalitu, která zabezpečí provedení požadované operace. Jestliže kupříkladu potřebujeme vypočítat směrodatnou odchylku hodnot výběrového statistického souboru respondentů, nemusíme algoritmus výpočtu psát sami. Mnohem efektivnější je zavolat Excel 2007, nabídnout mu vstupní data a aktivovat příslušnou statistickou funkci. Tímto způsobem máme výsledek za okamžik po ruce. Výborné je, že si vystačíme s minimem kódu a dokonce se nemusíme ani zabývat technickými detaily, protože Excel sám ví, jak naší žádosti vyhovět.
Dalším příkladem přínosného využití automatizace smí být kontrola pravopisu, kterou náš textový procesor může svěřit do rukou aplikace Word 2007. Když uvážíme, že schopnosti Wordu jsou v tomto směru skutečně robustní, jistě budeme s výsledkem spokojeni. Je nasnadě, že existuje široká paleta dalších možných aplikací automatizace Office 2007. Za předpokladu, že je automatizace využita rozumně, může nám ušetřit spoustu času a významně zvýšit produktivitu naší práce.
Aby mohli vývojáři budovat software využívající schopnosti aplikací sady Microsoft Office 2007, musí disponovat odpovídajícím programovým zabezpečením. Nejmodernějším vývojářským prostředkem je v dnešní době Visual Studio 2008. Počínaje verzí Professional nabízí Visual Studio 2008 sbírku řemeslného náčiní, které se jmenuje Visual Studio 2008 Tools for Office 2007. Tato integrovaná sada poskytuje řízená sestavení ve formě knihoven DLL, projektové šablony, vizuální návrháře a bohatou virtuální knihovnu technických zdrojů.
Automatizační modely
Technologie automatizace pracuje na bázi modelu klient-server, v němž působí zpravidla dvě zúčastněné aplikace, přičemž jedna z nich plní požadavky té druhé. Pozici automatizačního serveru zastupuje aplikace sady Office 2007, zatímco klientem automatizace je externí aplikace vytvořená obvykle v některém z vyšších programovacích jazyků, které jsou schopné produkovat COM-kompatibilní softwarové jednotky.
Automatizaci Office 2007 lze charakterizovat pomocí dvou pracovních modelů:
?
Externí automatizační model (EAM) – v tomto modelu je aplikace sady Office 2007 řízena samostatně působící a nezávislou softwarovou aplikací, jejíž programový kód je uložen v přímo spustitelném souboru. EAM je zobrazen na obrázku.
?
Interní automatizační model (IAM) – v tomto modelu je aplikace sady Office 2007 ovládána buď za asistence specializovaného nástroje s názvem Záznamník maker, nebo přímo pomocí vestavěného programovacího jazyka Visual Basic for Applications (VBA), aktuálně ve verzi 6.5. Záznamník maker je uživatelsky přívětivý pomocník, jenž dokáže automatizovat činnosti zaznamenáváním jejich průběhu. Uživatel jednoduše spustí tento softwarový stroj a provede jistou činnost, například vybere příkaz z nabídky nebo aktivuje nějakou funkci, a Záznamník maker vykonanou operaci převede do podoby makra, tedy procedury jazyka VBA. Zaznamenaný kód makra je možné dále upravovat a přizpůsobovat. Pokročilejší uživatelé a programátoři mohou přímo vytvářet makra zapsáním jejich programového kódu do editoru Visual Basicu. Takto připravený kód se ukládá společně s dokumentem aplikace Office, což znamená, že není převeden do podoby spustitelného souboru. Vytvořená makra mohou být následně volána, přičemž je samozřejmě možné jim předávat vstupní argumenty a zjišťovat jejich návratové hodnoty. Pohled na interní automatizační model přináší další obrázek.
Automatizace Office 2007 pomocí aplikací .NET
Cílem automatizace jakékoliv aplikace sady Office 2007 je zužitkovat již jednou vytvořený a přístupný programový kód k dosažení kýženého výsledku. Jakmile uskutečníme propojení naší aplikace s automatizačním serverem, všechny objekty formující jeho objektový model jsou rázem dosažitelné a my tak můžeme volat jejich metody, nastavovat vlastnosti a reagovat na události. Interakce řízené aplikace a aplikace sady Office 2007 na platformě .NET Framework 3.5 je specifická v tom smyslu, že aplikace .NET jako taková není schopna přímo komunikovat s cílovou aplikací Office 2007. Potíž je v tom, že všechny aplikace .NET jsou řízené společným běhovým prostředím CLR, tudíž neumějí přímo pracovat s ryzím nativním kódem, jenž je uložen v COM typových knihovnách aplikací Office 2007. Aby mohla aplikace .NET rozeznávat a zpracovávat datové typy, jež jsou uloženy v příslušné typové knihovně jisté aplikace Office 2007, musí disponovat speciální datově-informační vrstvou. Tato vrstva je tvořena typovými metadaty, která mapují všechny datové typy COM typové knihovny zvolené aplikace Office 2007. Typová metadata jsou pro každou z aplikací Office 2007 uložena v příslušném primárním sestavení vzájemné spolupráce PIA. Office 2007 obsahuje všechna nezbytná primární sestavení vzájemné spolupráce, stačí je jenom zahrnout do instalace. Sestavení PIA jsou instalována do mezipaměti sestavení GAC, odkud jsou přístupná „vnějšímu světu“. To znamená, že jakákoliv řízená aplikace může odkázat na požadované sestavení PIA, které ji nabídne vše potřebné pro nastartování procesu automatizace cílové aplikace Office 2007. Jakmile jsou do projektu aplikace .NET zavedeny reference na sestavení PIA, technologie IntelliSense začne vývojářům nabízet seznamy dosažitelných typů z importovaných jmenných prostorů. Proces pokračuje vytvořením hlavního aplikačního objektu kýžené aplikace Office 2007, jakožto i dalších (vnořených) objektů, které slouží k „dálkovému“ ovládání této aplikace podle požadavků vývojáře. 8 0714/CZ o