Beruflich Dokumente
Kultur Dokumente
The much awaited Demo Data for Microsoft Dynamics AX 2009 RTM has been released about 10 days ago. However, only demo data for United States English is available at the moment. No news on the availability of demo data in other languages thus far. As we have seen in the VPC images, the official demo data is base on Contoso Entertainment systems group of companies instead of the Global Trade and Manufacturing Company used in Microsoft Dynamics AX 4.0. In fact, I suspect the data could very well be the same copy as the latest VPC image released.
Smaller download size (179 MB - 216 MB) Bigger download size (403 MB - 419 MB)
So how shall we decide? First of all, you have to identify whether you are storing your AX data in Oracle database or Microsoft SQL Server database. If you have an Oracle database, you should just opt for Microsoft Dynamics AX Data Import. I am not suggesting that the other option is impossible but I guess it is not worth the effort. The second factor would be Dynamics AX license. I noticed many associates searching for the demo license. I have suggested the possibility of using Dynamics AX 2009 CTP3 Ver02 demo database backup while waiting for partner license in What you need to install Microsoft Dynamics AX 2009. This newer version of demo data comes with demo license that expires on June 6, 2009. If you really need that license, Microsoft SQL Server Backup should be your choice.
If the previous two factors have not helped you decide, let's look at the two time factors; download time and import time. The Dynamics AX DAT file is almost half the SQL Server backup file in size which shall requires about half the time to download. However, the time required to import the AX DAT file is extremely high compared to restoring SQL Server backup. I have tried both approaches on my humble Xeon dual core with 2 GB of RAM. Importing Dynamics AX DAT file with transaction took my server no less than 3 hours. Because the data is divided into a few files for different company, etc. the process requires interaction in between. Restoring the SQL Server backup on the other hand took the same server no more than 3 minutes. The ftp server that hosts the files is fairly fast hence download time should not really be a problem if you have decent Internet connection. If your Internet connection is known for bad download performance, you may just opt for go for the smaller download and be patience importing data.
ContosoBase.DAT AX Import without transaction ContosoTrans.DAT AX Import with transaction ContosoBase.BAK SQL Backup without transaction ContosoTrans.BAK SQL Backup with transaction
The second component in the installation is the Application files. It resides on the File Server discussed in Microsoft Dynamics AX 2009 Components. These are the files where Microsoft Dynamics AX business logic resides. The following screenshot shows the option in Dynamics AX 2009 setup that installs the application files.
The Application files setup is straightforward. You just have to specify the location, instance name and select optional functionalities. The following screenshots shows the information collected.
Notice the folder structure created with the location you specify previously as the base. A folder named after the instance name you have chosen will be created to store the instance specific Application files.
Upon completion, you will have a new Dynamics AX application instance. You shall have the folder structure inside the location you have selected (D:\AX\50 in this case) as shown in the following image.
Conclusion
You should be able to get Microsoft Dynamics AX Application files installed without much drama.
We will look at the first component in a Microsoft Dynamics AX installation; database. The following screenshot shows the option in Dynamics AX 2009 setup that achieves this. This option will create a database in Microsoft SQL Server with the necessary stored procedures. If you intend to use Oracle database, you will have to create the database manually. Do take time to ensure you have the required software installed.
You may run this setup on any computer that has access to the Database server. The user account that you use to execute this must be a member of the dbcreator role on the target SQL Server instance. If you are using the administrator account, your account will most likely be a member of the sysadmin role which has the rights of all the roles combined. The following figure shows the property page of a SQL Server login.
The Database installation is fairly simple. You just have to specify the Microsoft SQL Server instance you would like to create the database on and the name you would like for your new database. The following screenshot illustrates the information collected for this setup.
Upon completion, you will have a new database with two user stored procedures; CREATESERVERSESSIONS and CREATEUSERSESSIONS. The rest of the objects will be created in subsequent steps of the installation.
Database Access
This database is intended to be accessed by appropriate AOS instances. The account that starts the AOS instances requires certain authority to work correctly. The account must be assigned the db_datareader,db_datawriter and db_ddladmin database roles as shown in the figure below. The first two roles allows AOS to read and write data on the database whereas the final role allows the AOS to create, change and remove objects in the database. DDL in the role name refers to data definition language.
Besides these database roles, the AOS account also need execute permission on the two procedures; CREATESERVERSESSIONS and CREATEUSERSESSIONS. The following figure shows the permission configuration for stored procedure.
Conclusion
This step of the setup process takes little time. There are just a few minor things you should take note to ease the installation of other components as well as administration the system in the long run.
As mentioned in Microsoft Dynamics AX 2009 Components, Dynamics AX 2009 is a lot more than just AX Application, AOS and client. It has also expanded externally with integration to various other technologies to achieve its objectives. As a result, installing Microsoft Dynamics AX 2009 requires more than the installation DVD. This post will provide you with an overview of the software components and their download sources to get you better prepared for the installation. Some of the components presented below do come in the form of DVD if your company subscribe for them. If you have such luxury, browse through your DVD set to secure them before you set off to install Microsoft Dynamics AX 2009. Otherwise, you might have to spend a day or more to get all of them downloaded.
Release May Edition DVD ISO file (1.7 GB in size) from PartnerSource as discussed earlier. As far as I am concerned, no physical media should be expected until mid July 2008 when the translation of help topics is scheduled to complete. The DVD ISO file seems to be the only option at the moment. Since it is in ISO format, you may use any Virtual DVD software to mount it as a DVD disc to use it directly or to extract the files to a physical location. On top of that, you may also burn it into a physical DVD. If you are installing on virtual machines instead, you could load it to the optical drive with ease. All virtual machine platforms I know supports ISO image, be it Microsoft Virtual PC, Virtual Server, VMWare or VirtualBox.
Microsoft .NET Framework 3.5 Live Installer dotNetFx35setup.exe Microsoft .NET Framework 3.5 Full Package dotnetfx35.exe
The Live Installer (bootstrapper) is meant for installation with Internet connection. It will evaluate your system to identify further download required. The installation will requires additional file download of 50 - 200 MB depending on how up to date your system is. This is the better choice for single installation. You will usually end up downloading less than the full package. The Full Package on the other hand is meant for mass deployment. The download consists of all the files necessary to install the .NET Framework 3.5. You may also want to pick this option if you would like to share the file with other associates.
pack has been released for over a year. In case you have not updated your Microsoft SQL Server 2005 to SP2, you may download the update at Microsoft Download: SQL Server 2005 SP2. This package contains update for all the components of Microsoft SQL Server 2005 including the database server, Analysis Services, Reporting Services, etc. They are all required for Microsoft Dynamics AX 2009 installation.
Demo data AX 2009 CTP3 VPC Ver02 Demo data AX 2009 CTP3 VPC Ver02.zip
Windows SDK for Windows Server 2008 and .NET Framework 3.5
Windows SDK is required for Reporting Extension to work. You may get the Windows SDK for your operating system. Windows SDK for Windows Server 2008 and .NET Framework 3.5 is the latest at the time of writing. It could be used for Windows Server 2003, Windows Server 2008, Windows Vista and Windows XP. Like Microsoft .NET Framework 3.5, you have an option to get it installed through web setup or the complete package. The complete package for Windows SDK for Windows Server 2008 is in DVD ISO format. Component Windows SDK for Windows Server 2008 and .NET Framework 3.5 Web Setup Windows SDK for Windows Server 2008 and .NET Framework 3.5 DVD ISO Setup.exe 6.0.6001.18000.367KRMSDK_EN.iso File name File size 418.59 KB 1330 MB
Conclusion
The software prerequisite for getting Microsoft Dynamics AX 2009 installed is more than those we have listed here. The rest of the software is included in the installation DVD.
After all the excitements around the launch of Microsoft Dynamics AX 2009 RTM with an abundance of all round improvements penned in the roadmap. It is time to take a closer look at the new tool that we will use in the coming battles before we get our hands on it.
Apart from the improvements in term of functionalities, Microsoft Dynamics AX 2009 has incorporated numerous technologies under Microsoft to improve communication and visibility of the solution. In Microsoft Dynamics AX 3.0 and 4.0 implementations, I have configured quite some Analysis Services cubes and Reporting Services reports to provide visibility. Microsoft Dynamics AX powers the operation well in those releases but is lacking in term of business process monitoring and business analysis capability out-of-the-box. Microsoft Dynamics AX 2009 on the other hand has taken a different direction. A huge portion of the functionalities are taken out of Microsoft Dynamics AX. Dynamics AX 2009 comes with plenty of Analysis Services cubes and Reporting Services reports preconfigured. Then there is this dashboard that is hosted by Sharpoint Services. There is also integration with Microsoft Unified Communication, Microsoft Project Server, etc. The following figure shows the various components we may have in a Microsoft Dynamics AX 2009 installation.
Let us look at the servers in a Dynamics AX 2009 production environment with all these additions. We could divide the servers into three categories; base servers, extension servers and infrastructure support servers.
Base Servers
The base installation consists of the traditional components which include the Database, Application files, Application Object Server (AOS) and the Windows client. There are three servers under this category.
Database server
As the name suggests, this is where Dynamics AX data is stored. Microsoft Dynamics AX 2009 could work with Microsoft SQL Server database as well as Oracle database. Although
Oracle database server supports various editions of UNIX, Linux and Windows, supports for Oracle database is limited to issues that could be reproduced with Oracle under Windows environment.
File server
The Microsoft Dynamics AX application files are installed here. The application files installed here will be accessed by all Application Object Servers (AOS) in the environment. Access rights should be configured accordingly.
Extension Servers
Servers under this category add functionalities to Microsoft Dynamics AX.
Workflow server
A workflow server runs the Windows Workflow Foundation. It enables the creation of individual workflows as well as business processes in Microsoft Dynamics AX. It controls how a document flows through the system for processing and approval.
Reporting server
A reporting server uses Microsoft SQL Server Reporting Services to add reporting functionality to Microsoft Dynamics AX.
OLAP server
An OLAP server uses Microsoft SQL Server Analysis Services to provide multidimensional reporting functionality to Microsoft Dynamics AX.
Infrastructure Support
The servers mentioned earlier are either the integral part of Microsoft Dynamics AX or add specific functionalities to Microsoft Dynamics AX 2009. Those under this category provide supports. The compulsory server under this category is the domain controller. We could have SMTP server to provide email abilities to alert, mass mailing, etc.
Final Thoughts
With all these additions, you are unable to appreciate Microsoft Dynamics AX 2009 with the traditional base installation where you configure the Database, Application, AOS and Dynamics AX client. At the very least, you need to have the Analysis Services, Reporting Services, and Sharepoint Services.
Microsoft SQL Server supports two authentication modes; Windows Authentication and Mixed Mode. Before we move on, I would like to introduce another terminology called authentication method.Authentication method is the way a user is authenticated. Authentication mode on the other hand determines the authentication methods accepted by Microsoft SQL Server. There are two authentication methods supported by Microsoft SQL Server. They are named Windows Authentication and SQL Server Authentication. The former relies on the Microsoft Windows operating system to authenticate users. The latter will have the user authenticated by Microsoft SQL Server based on the username and password supplied by
the client application. The powerful "sa" is an example of login authenticated by SQL Server Authentication. The following figure shows the login screen of Microsoft SQL Server Management Studio. Note the drop down list with the authentication methods offered.
Let us get back to authentication mode. The mode Windows Authentication will accept the first method namely Windows Authentication only. As for Mixed Mode, both Windows Authentication and SQL Server Authentication are accepted. In other words, logins such as "sa" will be denied if the mode Windows Authentication is active. The following figure shows the configuration of Authentication mode. You will find it at SQL Server Properties Security page.
Windows Authentication is the preferred mode because it provides the highest level of security. It is the default authentication mode for Microsoft SQL Server 2005. The authentication and account policy are enforced by Microsoft Windows operating system. Mixed Mode is typically used with legacy systems that do not use Windows user accounts. It is also used when the environment consists of clients that need access but is running on operating systems that cannot authenticate with the Microsoft Windows operating system. This happened to clients running Mac OS, UNIX, etc. These clients could login using SQL Server Authentication. When using Mixed Mode, extra attention has to be given to the login "sa". This account is highly privileged and could pose security threat. It is advisable to create a strong password for this account in case Mixed Mode is used.
Digg it Save this post Stumble it Add opinion
Tags: Authentication, Database, Microsoft, SQL Server
You may install multiple instances (or copies) of Microsoft SQL Server 2005 on the same computer. This is applicable to installing alongside differenteditions as well as earlier versions Microsoft SQL Server. In other words, you can have more than one set of Microsoft SQL Server installed on one machine working independent from one another. This capability enables us to strategize the utilization of hardware resources to achieve our needs. It allows test for different customer utilizing different SQL Server edition and version on one server. It is also useful when you host database for customers that requires full administrative control of their SQL Server instance.
Conclusion
This capability leaves rooms to creatively strategize installations of Microsoft SQL Server to our needs. However, we have to be wary of the administration overhead and the duplication of components. Each instance will take up additional hard disk space, memory utilization and processor capacity.
Digg it Save this post Stumble it Add opinion
Tags: Database, instance, Microsoft, SQL Server
I came across associates installing SQL Server 2005 Standard Edition on their laptop. I would not say it is inappropriate from functionalities standpoint. The features that are
present in SQL Server 2005 Enterprise edition would not likely to be required. I do not see their laptops exceeding the processor and cluster node limit either. So what is my problem? I would say there could be a more appropriate edition for the purpose. Determining the appropriate SQL Server 2005 edition in accordance to the intention of the installation is a vital part of the installation process. Let us check out what editions are offered with their intended environment.
Summary
Decision on the right edition for a particular installation very much depends on the needed features, intended data size, and hardware you have or planned. If you are installing on Window Mobile, you have only SQL Server 2005 Mobile Edition to choose from. If you are installing on 64-bit Windows, you may write off the Express and Workgroup Editions as they do not support 64-bit. If it is for production use, Developer Edition is out of the question. I personally use Developer Edition for my laptop as well as development server. Why don't you identify the edition and version you have installed on your laptop or desktop and share with us?
Calling up external program from Dynamics Ax can be something very interesting to audience during introductory training and demo. Once in a while, I will encounter associates asking if it is possible to run external program, open word document, open a URL in an external browser, etc. from within Dynamics Ax. Usually they will show a sign of immense enthusiasm when I show them how it is achieved. It is like their imagination is exploring all sort of creative ways to make use of this facility. The interesting part is that executing external application is fairly effortless in Dynamics Ax. X++ is capable of calling Microsoft Windows Application Programming Interface (API). The common functionalities of the Win API have been built in classes WinAPI, WinAPIServer, WinGDI andWinInet. Running external application could be achieved through the static method WinAPI::shellExecute.
= = = = =
The interface might look complicated but the first parameter is usually all we need to assign. It is sufficient to achieve most of the scenarios. The second parameter allows us to execute an executable with parameters. We will look at examples where this second parameter comes into play later.
Class SysShellExecute
The class SysShellExecute facilitates calling WinAPI::shellExecute. This class has a main method that call the method WinAPI::shellExecute using args.parm() as the first parameter. This enables WinAPI::shellExecute to be called from menu item with ease. This
is important Dynamics Ax bring up windows through menu item. Menu item works with buttons with ease. The following figure shows the property dialog of a menu item using SysShellExecute. The menu item shown will open an Internet Explorer browser when executed.
1. Default Application
Windows has associated different file type to a default application. We just need to execute the file name in order to open that file with the default application. The following figure shows the property page of a menu item that opens the website Dynamics Ax Associate in the default browser.
2. Specific Application
The previous approach opens the file or URL in the default application. There are cases where you need to specify the application to open the file with. You may achieve this with static method WinAPI::shellExecute. Let say the default browser for your computer is FireFox and the website you are opening requires Internet Explorer. You may use the following code to open the URL with Internet Explorer.
WinAPI::shellExecute("IEXPLORE.EXE", "http://axassociate.blogspot.com");
Conclusion
The examples given above cover the execution of Windows Internet Explorer and opening of URL. They work similarly with a Word Document, Excel Spreadsheet, etc.
Digg it Save this post Stumble it Add opinion
Tags: Development, Dynamics AX, Microsoft, MorphX, ShellExecute, UML, Win API, X++
Bitwise operations are performed at the individual bits. In other words, the value is converted into binary format and the bitwise operators will act on each and every digit.
Bitwise operation is not very widely used in business solution development. The only time I remember using one was to track a series of states. The advantage is the set of states (true or false) could be altered in one operation. However, readability is not good. Dynamics Ax provides a set of operators to perform such operation. They will be discussed subsequently. The examples you will find subsequently are base on 32-bit integers. The rest of the operators are Arithmetic and Assignment Operators, and Relational Operators.
& (AND)
This operator performs a binary AND on two expressions.
Syntax
expression1 & expression2
Example
print 10 & 8; //1010 AND 1000 pause; // 1000 -> 8
| (OR)
This operator performs a binary OR to two expressions.
Syntax
expression1 | expression2
Example
print 10 | 8; //1010 OR 1000 pause; // 1010 -> 10
^ (XOR)
This operator performs a binary XOR to two expressions.
Syntax
expression1 ^ expression2
Example
print 10 ^ 8; //1010 XOR 1000 pause; // 0010 -> 2
~ (NOT)
This operator performs a bitwise NOT to the expression on the right.
Syntax
~ expression
Example
print ~10; //NOT 1010 pause; // 11111111111111111111111111110101 -> -11
Syntax
expression1 << expression2
Example
print 123 << 3; // 00000000000000000000000001111011 << 3 pause; // 00000000000000000000001111011000 -> 984
Syntax
expression1 >> expression2
Example
print 984 >> 3; // 00000000000000000000001111011000 << 3 pause; // 00000000000000000000000001111011 -> 123
The relational operators are frequently used in conditional statements and the where clause of data manipulation statements. Other operators could be found in Arithmetic and Assignment Operators.
like
This operator compares two expressions with wildcards. It is used to evaluate the pattern of an expression. You use * as a wildcard for zero or more characters. The wildcard ? will represents any single character. This is similar to the Criteria Format discussed in Filtering Record in Dynamics Ax. This operator returns true if the expression on the left matches the pattern supplied on the right. Otherwise, it returns false.
Syntax
expression like pattern
Example
str sExp = "Dynamics Ax associate"; ; print sExp like "*nam??s*ate"; // Output 1 - True pause;
== (equal)
This operator compares two expressions for difference. It returns true if they are identical and false if they are different.
Syntax
expression1 == expression2
Example
str sExp = "Dynamics Ax associate"; ; print sExp == "*nam??s*ate"; // Output 0 - False pause;
!= (not equal)
This operator is the opposite of the equal operator. It also compares two expressions for difference. However, it returns true if they are different and false if they are identical.
Syntax
expression1 != expression2
Example
str sExp = "Dynamics Ax associate"; ; print sExp != "*nam??s*ate"; // Output 1 - True pause;
>=
This operator returns true if expression on the left is greater than or equal to expression on the right.
Syntax
expression1 >= expression2
Example
str sExp = "Dynamics Ax associate"; ; print sExp >= "Dynamics Ax"; // Output 1 - True pause;
<=
This operator returns true if expression on the left is less than or equal to expression on the right.
Syntax
expression1 <= expression2
Example
str sExp = "Dynamics Ax associate"; ; print sExp <= "Dynamics Ax"; // Output 0 - False pause;
>
This operator returns true if expression on the left is greater than the expression on the right.
Syntax
expression1 > expression2
Example
int nVar = 30; ; print nVar > 30; // Output 0 - False pause;
<
This operator returns true if expression on the left is less than the expression on the right.
Syntax
expression1 < expression2
Example
int nVar = 30; ; print nVar < 30; // Output 0 - False pause;
&& (AND)
This operator returns true if both expressions beside the operator is true. It returns false if either of the expression or both expressions are false.
Syntax
expression1 && expression2
|| (OR)
This operator returns true if either of the expressions beside the operator is true as well as when both of the expressions are true. It returns false only if both of the expression are false.
Syntax
expression1 || expression2
! (Not)
This operator takes one expression on its right. It negates the expression on its right. In other words, it returns false if the expression is true and returns true if the expression is false.
Profile Tyrecenter is a leading provider of tires, wheels and automotive maintenance services to large fleet hire and trucking companies in Belgium, Luxembourg and the Netherlands. They operate on a franchising model. They have adopted Microsoft Dynamics Ax to help them connects with suppliers and customers. Microsoft Dynamics has help streamline sales, logistics, finance, supply chain management (SCM), and marketing process. Check out the following video. The case is presented by the Managing Director and CIO of Profile Tyrecenter. Note comments on SAP near the end.
If you prefer to read the case instead of watching it, you may downloadTire Specialist Gains Competitive Edge with Centralized Business Management Solution from Microsoft Customer Evidence. Those that could read Profile Tyrecenter official website could provide us with more info.
Your report needs the summation of some fields at the Header portion but you do not want to hack the report classes to achieve that. Dynamics Ax subtotal is available only at the footer. If you need it in some other section, you would have to find a way around. We will look at an approach where the report query is duplicated for the necessary calculation at the section header. The demo subsequently will produce the report illustrated in the following figure. The section footer is the subtotal produced by the standard report. The section header on the other hand shows the output of the approach suggested.
Motivation
There are ways to achieve this. The use of duplicated query is motivated by the following factors.
It could be applied to existing report without affecting the overall structure. In other words, no changes will be required on the data source and other sections in the report.
The calculation is in accordance to the filters set by the user without additional work. The report query will be handled by Dynamics Ax report subsystem while we will only work on the duplicated copy of the query.
Technique Highlight
Basically we will have two copy of the same query. At the section group header, we will loop the duplicated copy until the next header group is reached. The necessary work is performed while we loop and the value to be shown at the group heading is prepared prior to executing the group header. Then the report subsystem will take over and loop the original copy of the query. The following code segment illustrates the technique explained above.
// loop as long as within the same subheading group. do { custTransLoop = qrHead.get(custTransLoop.TableId); if (custTransLoop.AccountNum == CustTrans.AccountNum) { rSum += custTransLoop.AmountCur; } else { break; //heading group changed. } } while (qrHead.next()); mrSum = rSum; //value prepared for heading. super(); //execute group heading.
The following code segment illustrates how the report query is duplicated into a QueryRun object.
qrHead = new QueryRun(element.query());
Demo
We will create a simple report with CustTrans as the only data source to demonstrate the highlighted approach. We dissect the whole process into three sections. The first will cover creating report while the second is regarding adding subtotal just to verify the outcome of the calculation. The final section is the one that cover the approach recommended. Those that are well versed with Dynamics Ax reporting tool may opt to skip the first two sections.
Create Report
The following steps cover report creation. Alternatively, you may use the Report Wizard to perform this.
1. Create a new project to group objects if you have not. 2. Right click on your project and select New > Report. You will have a report with the name Report1 created. 3. Right click on Data Sources > Query > Data Sources and select New Data Source. Change the Table to CustTrans under the Property Page. 4. Expand the node CustTrans(CustTrans) and right click on the node Sorting. Select New > Field. Ensure the Field is AccountNum. Change the properties AutoHeader and AutoSum to Yes. 5. Right click on the Designs node and select New Report Design. You will see a new node named ReportDesign1 with a child node named AutoDesignSpecs. 6. Right click on ReportDesign1 and select Generate Design. You will see a node named Generated Design added. You will also see a node named Section Group: CustTrans too. 7. Expand the Section Group: CustTrans and right click on Body:CustTrans_Body. Select New Control > Field Group from CustTrans. Change the field group's DataGroup property to AutoReport.
Validation preparation
The following steps add a subtotal to a field for verification.
1. Change the AutoFieldGroupOrder property to "Save the fields' properties" for the field group. 2. Expand the Group and find control named Real: CustTrans_AmountCur and change the SumAll property to Yes. 3. Right click on Footer: CustTrans_Footer and select New Control > Sum. Change the properties of the newly added for Table to CustTrans and Field to AmountCur.
Sum at Header
You now have a report with subheading. The following steps demonstrate the approach mentioned earlier.
1. Add the following declaration to classDeclaration of the report. The classDeclaration will now look like the following.
public class ReportRun extends ObjectRun { AmountCurDebCred mrSum; QueryRun qrHead; }
2. Add a new method to Header: CustTrans_Header and copy the following code to it.
3. Then add a new a control with the display method to the Header. This could be done by dragging the method and dropping it at the Header: CustTrans_Header node. 4. Override the method executeSection() of the header with the following code. The method CustTrans_Header:executeSection() shall looks like the following.
public void executeSection() { CustTrans custTransLoop; real rSum; // dupplicate the query on first execution of the header. if (!qrHead) { qrHead = new QueryRun(element.query()); qrHead.next(); } // loop as long as within the same subheading group. do { custTransLoop = qrHead.get(custTransLoop.TableId); if (custTransLoop.AccountNum == CustTrans.AccountNum) { rSum += custTransLoop.AmountCur; } else { break; } } while (qrHead.next()); mrSum = rSum; //prepare value to be shown at group header. super(); //execute the group header. }
The Reverse Engineering tool is a feature newly added to the integrated development environment (IDE) of Microsoft Dynamics AX. This tool replaces Visual MorphXplorer which has been removed in version 4.0.
As the name suggest, this tool helps us retrieve detail information on the structures and relationships of Microsoft Dynamics AX objects. The retrieved information is transformed to a visually readable format in Microsoft Office Visio UML model. Technically, Dynamics AX will create a Microsoft Office Visio Drawing file (.vsd) using the Visio application component and construct a UML model with Visio UML add-on programmatically. Therefore you will need Microsoft Office Visio 2003 or greater with Visio UML model installed in order to use this tool.
Types of Model
This tool is capable of generating two types of model; data model andobject model. Let's see what does these models capture and how do they differ. Data model mainly captures tables. Tables within the project as well as tables referenced by them are included in the model. Tables within the project are grouped by the AX TableGroup property. They are organized under groups named Main, Group, Miscellaneous, Parameter, Transaction,WorksheetHEader and Workshe etLine. Referred tables will be placed under the group External Classes.
You will also find relevant information such as fields and its data type, indexes, and relationship of each table in the generated model. The data type of these fields is modeled in Dynamics AX Extended Data Type. Dynamics AX Extended Data Type used by the model is included under the group External Data Type. This is the same for Dynamics AX Base Enums. The referenced enumeration with their members is captured under group Base Enums. Due to the use of Visio UML model, each of these tables will be represented by a class and fields are modeled as attributes. However, table method is not included here. Table method is an important feature of Dynamics AX development platform but methods are not quite relevant for data model. Those that would like to have the methods included could use the object model instead. However, that model will not have data model information such as relationship and index. Object model will capture classes, tables, and interfaces relevant to the project. This includes referenced objects as well. Tables and classes within the project are generated under the main group without further grouping. Referenced objects are placed under group External Classes just like Data Model. The properties and methods of the classes are modeled as attributes and methods in the class diagrams. Table entities are modeled the same way too. Information synonymous to object model such as class extends another class, class implementation of an interface and call between classes are found in this model. Data type that the properties and methods uses in the form of Dynamics AX Extended Data Type are included in the model under Extended Data Type group. The same happens to Base Enums. The table generated in Object Model will have table methods modeled as method unlike those in Data Model. Since this is an object model, you will not find information such as field index and table relationship in this model.
Information Tables Data model Yes Object model Yes
Object model Yes Yes Yes No No Yes Yes Yes Yes Yes
Table group property Yes Field index Classes Referenced classes Yes No No
Extended Data Types Yes Base Enums X++ Data Types Yes Yes
How to Generate
This feature is only accessible through the context menu. The following are the steps to generate a UML model using this tool.
1. Create a project and move the elements you would like in the model into this project. 2. Right click on the project and select Add-Ins>Reverse Engineer. 3. This will load a form named Visio Reverse Engineering. Enter the path and filename for the Visio drawing file. 4. Select the model you want to generate then press OK. You may generate either data model or object model.
Conclusion
This is good news for those that are already using Microsoft Office Visio for their modeling tasks and is familiar with Visio UML model. I have tried my hands on Visio UML model years ago but have never developed a liking for it.
Those that have already got used to generating data model with Visio Data Model Diagram might find the data model reverse engineering redundant. I agree that Visio Data Model produces excellent model but it reverse engineer at the database level. The challenge with AX is that a lot of information is not implemented at the database. AX relies heavily on extended data type and enumeration implemented at the application level. Another challenge is AX implementation of temporary table which does not appear in the database. These challenges are addressed with the use of AX Reverse Engineering tool. Field data type will be represented in extended data types. Information regarding extended data types and base enums are included in the model too. Temporary tables could be included in the model. This is something that even the MorphXplorer does not support. Is this better than MorphXplorer, the tool it replaced? I see much more information compared to MorphXplorer. The outcome is more professional too.
Digg it Save this post Stumble it Add opinion
Tags: Dynamics AX, Reverse Engineering, Tools, UML, Visio
This feature is not one of those that are well hidden. It has taken over the shortcut key Ctrl+F that used to call up the Filter by field dialog box. You might even have accidentally brought up this attractive feature during system demo. However it does not work out of the box. Let us look at the configuration required Dynamics Ax Global Search is new feature added to the task pane in Dynamics Ax 4.0. It enables users to search for information without specifying the table and field as opposed to conventional search. Although the name global, it is not as global as you might first thought. The keyword entered is searched through fields across tables you selectedonly.
The Global Search Task Pane could be brought up in three ways. You could do it by clicking on the Binocular button on the tool bar, selecting the menu Edit > Find, or by pressing the shortcut key Ctrl + F. The figure on the right illustrates a Global Search pane with result from the keyword "new york". The Categories combo box allows the user to see results from specific tables only. Clicking on the result would open the form of the designated record with the row focused.
Configuration Procedure
There are two components relevant to this feature. You may find both under menu Basic > Setup > Data Crawler. They are Table Setup and Data Crawler Setup. The former defines the table that you would like searchable within Dynamics Ax Global Search. The latter is the crawler that would build up the search index. Search will be performed on this index and not on the actual data itself.
1. Table Setup
This form is found at the main menu Basic > Setup > Data Crawler > Table Setup. This is where you specify the table that you would like searchable under Dynamics Ax Global Search. The following figures show the Table Setup form.
The Incremental checkbox you find on Overview tab indicates that indexing would be done for newly modified record only. This is only applicable for tables with modified date field. It is automatically checked if the table has the field. You are not given an option to check or uncheck this field. In the tab Text index, you will find the fields added for indexing as well as two columns named Updated date and Updated time. They indicate when is the last time an index has been built for that table. They have impact on tables with Incremental checked. If you add a new field for text indexing after the table has been indexed, the added field will not be indexed until the data is modified. You will have to recreate index to have the field searchable. Recreating index is discussed shortly. Tables without incremental checked will not face this problem. You may add a field for indexing anytime. The data crawler will pick it up during it subsequent scheduled crawl.
When you add a new table to the list, you will see a dialog box like the one shown above. The system will ask you whether you want to add all text fields to text index. While this facility eases the setup, it could cost some performance running under production environment. Understanding the intention of Global Search for the company and configuring accordingly is advisable.
You will get the message The search indexing engine is not started for every single search you perform if Data Crawler is not started. The result will still be shown but information might not be up to date. This is where you start the data crawler if it is not configured to start automatically. You may also set the Data Crawler to start automatically. You do so by checking the Start crawler automatically checkbox in this form. You may define the speed of indexing. The speed settings and the description of the amount of resources it will consume are included in the Crawler speed combo box.
This is the place to recreate index too. We have touched one scenario where re-indexing is required in the previous section. You just have to check the Recreate index checkbox prior to starting crawler to rebuild index. The option to run crawler in foreground is available from here too. This is done by deselecting the Run in background checkbox. However, I have not found a use for this option as starting the crawler with this option will freeze the Dynamics Ax client. Please let us know if you have found the use of this option.
Final Thoughts
When it comes to data search that spans tables, security control is always a concern. This particular feature has to comply with User Group Permissions and Record Level Security to be useful.
Digg it Save this post Stumble it Add opinion
Tags: Dynamics AX, Search, Tools, UML, user interface
Filtering capability is vital in making huge set of data manageable. Dynamics Ax offers a range of features to filter records. Filtering data enables users to focus on the subset of data relevant to their intended task. Dynamics Ax offers three ways to filter at its user interface. This is consistent across the whole system. In case there are needs for more specialized filtering, you may engineer them with X++.
Advanced Filter
This filtering option allows you to construct a query to filter records. You may access this feature by pressing Ctrl+F3 or selecting the Advanced Filter/Sort button on the toolbar. You will be presented with the Inquiry form. This form has an interface that is used in many occasions where filtering is applicable. You may define criteria in any field from the tables
relevant to the form you are working on. This option allows multiple criteria on a single field. The following figure shows the familiar Inquiry form used for Advanced Filter.
This feature might be the most complete filtering option on Dynamics Ax user interface but it requires a little learning curve. It is not as intuitive as the other options where you work directly on the form. The user has to know the name of the field she wants to set filtering criteria. Having said so, the other methods we will visit shortly sort of fills up this Inquiry form for the user. The user is presented with a more intuitive way of entering filter criteria.
Filter by Grid
This filtering option presents a way to enter criteria at the top of the grid. Criteria could be set for multiple columns and the result fulfills all criteria. The following figure illustrates the Filter by Grid feature. This feature however can only filter base on fields in a grid.
When you press the button at the side of the filter column, you will see a drop down list with a wealth of criteria type. Selecting these criteria type would append the syntax for the type. This exposes the choices of criteria at the fingertip. Once you have used to it however, you shall find typing on your own works more efficiently. We will discuss each type in a later section as they are applicable for other filtering options as well.
Filter by Field
This filtering option is accessible from the context menu on form itself. It is applicable to any field on the form by pressing the menu or right clicking on the field. The following figure shows the context menu for field Customer account in Sales order form. The menu items Filter By Field andFilter By Selection are where you access this filtering feature.
Selecting Filter By Field will bring up a dialog box for you to fill in the filter criteria. The format of criteria is consistent with those in other search and will be discuss in greater detail later. Filter By Selection will filter the record with the value of the field you selected. It is a Filter By Field with the value inserted for you.
Criteria Format
The filter criteria formats are base on a few elements. The following describe the elements and the special character.
Character Description
Character Description ? ! Could be substituted by one character. Exclude. Inclusive range. A .. B - between A and B inclusive of A and B. A .. - greater than or equal to A .. A - less than or equal to A Less than. Greater than.
..
< >
The following table shows the construct of the criteria formats we saw in the Filter by Grid context menu earlier. As you can see, they are a combination of one or more elements from the table above. Much more formats are possible by combining more of these elements.
Criteria Type Contains Format *[text]*
Does not contain !*[text]* Starts with Ends with Is (exactly) Is not More than Less than More or equal Less or equal [text]* *[text] [text] ![text] >[text] <[text] [text].. ..[text]
Final Thoughts
Technically, filtering is performed at the form data source level. Additional options are more towards user interface enhancement. More intuitive ways are definitely possible with some creativity.
There has been much hype around the soon to be released Microsoft Dynamics AX 2009. Certain companies were given the privilege to get their hands on Microsoft Dynamics AX 5 Community Tech Preview 3 (CTP3). Do note that the name was the initially expected Microsoft Dynamics AX 5 instead of Microsoft Dynamics AX 2009 which it is currently called.
Demonstration Toolkit
It has been a common practice for Microsoft Dynamics to issue Demonstration Toolkit for Microsoft Dynamics AX in the form of Virtual PC (VPC) image. The Demonstration Toolkit for Microsoft Dynamics AX 4.0 SP1 for example was distributed in the form of two DVDs. The package comes with marketing material and presentation decks for different industries, and VPC Images for Microsoft Virtual Server as well as Microsoft Virtual PC. Microsoft Dynamics has done the same for the Pre-Release of Microsoft Dynamics AX 2009. The Demonstration Toolkit for Microsoft Dynamics AX 2009 Pre-Release is available for download atDemonstration Toolkit for Microsoft Dynamics AX 2009 Pre-Release (requires PartnerSource login). You will need Microsoft Virtual PC to use this toolkit. The good news is it is a freeware available for download. Get your free copy of Microsoft Virtual PC 2007 downloaded to run the Demonstration Toolkits.
Usually this toolkit is distributed in DVDs. Hence, do expect the download size to be huge. The files for this toolkit has been compressed and split into three archive files. The three files have a total size of 7 GB. The three files shall be downloaded into the same folder to be extracted. In other words, you will need an additional 7 GB or more to get the extracted files. So we are looking at no less than 14 GB of free hard disk space required to complete the task. Do note that the extracted files are all we need. I have not the hard disk space to even download the files hence has not tried out. Those that have extracted the files could let us know how much space is required to extract the files.
Expiry Date
Another thing to take note is the expiry date of the VPC image. TheMicrosoft Dynamics AX 2009 CTP3 license in the VPC image will expire onAugust 31, 2008. The Windows of the VPC image on the other hand will expire on June 6, 2009.
RAM
2 GB minimum, 4 GB recommended
Final Thoughts
I guess it is good to get our hands on Microsoft Dynamics AX 2009 if we have the capacity. Those that has not the luxury of Microsoft Dynamics AX 5 CTP3 installer should really find ways to get this Demonstration Toolkit to work. Although it is intended for demonstration, it is a completely working package. My experience performing demonstration with the VPC image from Microsoft Dynamics AX 4.0 SP1 Toolkit has not been very pleasant. This should be due to my laptop not meeting the requirement stated above. It requires quite a bit of patience.