Programové úpravy v Microsoft Dynamics AX

Autor: Milan Cvrkal, Microsoft ČR

Přestože existuje mnoho důvodů, proč se snažit využívat v co největší míře standardní systém Microsoft Dynamics AX, tak je samozřejmě často žádoucí chování systému přizpůsobit potřebám zákazníka. K tomu lze použít mnoho různých způsobů, protože systém je velmi flexibilní.

Sada dostupných nástrojů pro úpravy a programování systému je shodná pro všechny případné skupiny vývojářů. To znamená, že stejné prostředky používá pro úpravy Microsoft Dynamics AX vývojář Microsoftu, používá je partner pro partnerské úpravy a tytéž prostředky může využít i vývojář u zákazníka. Nutné jsou pouze znalosti a licenční přístup.

Typické scénáře použití

Zásahy do funkčnosti systému jsou potřebné obvykle zejména pro úpravy chování systému podle potřeb zákazníka, přidání nových funkcí nebo zpřístupnění funkcí systému v jiných aplikacích nebo prostřednictvím webu. Mezi obvyklé oblasti, kde se takové změny dají provádět, patří samotná logika a struktura datového modelu aplikace, úprava zobrazení (prezentační vrstvy), BI a Reporting nebo integrace s jinými aplikacemi.

Logika aplikace a databáze

V případě potřeby upravit chování systému je typickým vývojovým prostředím MorphX a programovacím jazykem X++. S určitým zjednodušením se jedná o kombinaci grafického návrhu, objektového programování v C# a SQL jazyka. Tento jazyk byl vytvořen speciálně pro Microsoft Dynamics AX s jediným účelem – efektivní návrh logiky ERP aplikace. 

Obr. 1 – X++ editor a příklad kódu v X++

Obr. 2 – Objektový strom Microsoft Dynamics AX a nastavení vlastností objektů

Pro mnoho vývojářů, zejména při vývoji doplňkových aplikací k ERP, bude výhodné používat pro vývoj přímo Visual Studio a využít tak jeho bohaté možnosti bez nutnosti hlubší znalosti Microsoft Dynamics AX a jeho programování. Podobný scénář je výhodný zejména pro tvorbu a design Web Parts nebo pro návrh doplňkových webových aplikací.

Prezentační vrstva

Do této skupiny patří úpravy, které vedou pouze ke změnám zobrazení nikoliv k úpravám datového modelu či vytváření nového kódu pro chování systému. Upravovat lze vzhled tlustého klienta, vzhled stránek tenkého (webového) klienta nebo vytvářet nový vzhled pomocí tvorby nových stránek, pro které lze využít stávající webové služby nebo vytvořit v systému nové webové služby.

Úpravy tlustého klienta lze realizovat plně ve vývojovém prostředí produktu, zvaném MorphX. Lze realizovat třeba tvorbu či úpravy formulářů, nabídek i sestav. Mezi dobré vlastnosti pro návrh aplikace patří i to, že aplikační objekty lze vytvářet metodou Drag and Drop. Vývojář tak může například přetahováním polí z datového zdroje vytvořit plnohodnotný formulář o jehož design se následně při běhu aplikace postará technologie IntelliMorph.

Obr. 3 – Formulář – návrh struktury

Další výhodou takového postupu je to, že technologie IntelliMorph se za běhu také postará o to, že pole, ke kterým nemá přihlášený uživatel přístup, nebudou zobrazena a design formuláře tím nebude nijak negativně ovlivněn.

Webového klienta lze upravovat přímo v MorphX nebo již zmíněným způsobem tvorby stránek a webových částí ve Visual Studiu.

Obr. 4 - Návrh Web Parts v MorphX

Webový klient (nazývaný též Enterprise Portal) je plně založen na Windows SharePoint Services a Microsoft Office SharePoint Serveru. Uživateli tak pro přístup stačí prohlížeč a dostane se ke stejné funkčnosti jako z tlustého klienta.

Obr. 5 – Návrh webové aplikace pro Microsoft Dynamics AX ve Visual Studiu

Jakmile je webová stránka nebo webová část připravena, tak ji lze zpřístupnit ve standardním portálu Microsoft Dynamics AX 2009 nebo v tlustém klientovi, ale také v libovolném portále Microsoft Office SharePoint Server nebo jakékoliv další aplikaci kompatibilní s webovými službami.

Microsoft Dynamics AX 2009 v této oblasti využívá technologii AJAX (Asynchronous JavaScript + XML). AJAX umožňuje návrh bohatších, interaktivnějších a graficky vyspělejších aplikací než bylo možné v předcházejících verzích Microsoft Dynamics AX.

Reporting

Reporty lze navrhovat několika způsoby – návrh v prostředí MorphX, využití návrháře sestav nebo využití prostředků Visual Studia a Microsoft SQL Serveru. Nejširší možnosti skýtá samozřejmě třetí zmíněná varianta. Provázanost Microsoft Dynamics AX 2009 a Microsoft SQL Server Reporting Services umožňuje návrh sestav využívajících dat Microsoft Dynamics AX standardním SSRS způsobem. Sestavy lze pak spouštět na více místech včetně Dynamics AX klienta nebo Reporting serveru. Takové sestavy jsou generovány ve Visual Studiu, kde je query z Microsoft Dynamics AX zpracovávána jako ADO.NET Data Set a funguje jako datový zdroj sestavy. Grafický design se tvoří ve Visual Studiu a výslednou sestavu lze přidat nazpět do nabídky objektů Microsoft Dynamics AX.

Obr. 6 - Návrh sestavy ve Visual Studiu

BI

Provázanost s Microsoft SQL Server Analysis Services umožňuje přistupovat k datům pomocí OLAP kostek a analyzovat je kromě samotné Microsoft Dynamics AX také v jiných produktech. Jako příklad může sloužit přístup k takové kontingenční tabulce v Microsoft Excel.

OLAP kostka je vytvářena ve Visual Studiu, lze měnit vazby, odstraňovat přebytečná pole, definovat vypočítané hodnoty nebo vytvářet vazby na další data z jiných zdrojů.

Obr. 7 - Design OLAP kostky ve Visual Studiu

Integrace pomocí CLR-Interop

V některých případech je užitečná integrace s jinými .NET aplikacemi. Buď z důvodu, že existující funkcionalitu není praktické přepisovat do X++ nebo z důvodu, že .NET prostředí dává vývojářům více možností nebo z důvodu využití kapacity existujících .NET vývojářů bez nutnosti školit je na X++.

Použít v aplikaci .NET assembly je možno od verze Microsoft Dynamics AX 4.0. MorphX obsahuje uzel zvaný References pro zpřístupnění různých knihoven. Po takovém zpřístupnění je možné se na .NET assembly odkazovat přímo v X++. Tato vlastnost navíc podporuje také IntelliSence a kontroluje vstupní a výstupní datové typy.

Obr. 8 - AOT reference

Webové služby a .NET Business Connector

Technologie AIF (Application Integration Framework) zpřístupňuje data Dynamics AX pro různé scénáře integrací. Hlavní důraz klade AIF na webové služby, lze pomocí ní zpřístupňovat data pro vytváření, čtení, aktualizaci nebo mazání a je k tomu k dispozici průvodce. Pomocí průvodce jsou vytvářeny třídy, které jsou nutné pro činnost webových služeb a lze je dále modifikovat.

.NET Business Connector je dalším integračním nástrojem. Jde o rozhraní, které umožňuje jiným .NET aplikacím přistupovat k datům a funkcím Microsoft Dynamics AX. Tímto způsobem lze funkčnost Microsft Dynamics AX využívat i v Internet Information Serveru nebo Visual Studiu.

Tento seznam možností úprav aplikace Microsoft Dynamics AX určitě není úplný. Další informace lze najít například na následujících odkazech: