tag:blogger.com,1999:blog-37051196034009587182024-02-07T03:50:40.994+00:00Dynamics AX associateyour friend in Dynamics AXDynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-3705119603400958718.post-14680127421512777042008-07-20T05:14:00.004+01:002008-07-20T05:26:25.071+01:00Demo Data for Microsoft Dynamics AX 2009 (en-us)<p>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.</p>
<p>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.</p>
<h2>Dynamics AX Import vs. SQL Server Backup</h2>
<p>The demo data available for download comes in two formats. You may chose between the more conventional Microsoft Dynamics® AX DAT where you import through Dynamics AX Data Import utility and Microsoft SQL Server Backup we have been offered recently. The following table shows the different between the two formats.</p>
<table summary="Demo Data Format Comparison" style=" border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Microsoft Dynamics AX DAT</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Microsoft SQL Server Backup</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Smaller download size (179 MB - 216 MB)</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Bigger download size (403 MB - 419 MB)</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Slower import time (25 - 150 minutes)</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Faster restore time (2 - 4 minutes)</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Does not include with demo license</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Demo license included (expires June 6, 2009)</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">More complicated import routine</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Simple restoration routine</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Master configuration preserved</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Reconfiguration required after restore.</td>
</tr>
</table>
<p>So how shall we decide? First of all, you have to identify whether you are storing your AX data in <strong>Oracle</strong> 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.</p>
<p>The second factor would be Dynamics AX license. I noticed many associates searching for the <strong>demo license</strong>. I have suggested the possibility of using Dynamics AX 2009 CTP3 Ver02 demo database backup while waiting for partner license in <a href="http://axassociate.blogspot.com/2008/06/what-you-need-to-install-microsoft.html">What you need to install Microsoft Dynamics AX 2009</a>. 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.</p>
<p>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.</p>
<p>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 <strong>no less than 3 hours</strong>. 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.</p>
<p>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.</p>
<h2>Download Demo Data</h2>
<p>You may find further information from the download page at <a href="https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/ax2009demodata.htm?printpage=false">PartnerSource: Demo Data for Microsoft Dynamics AX 2009</a>. The following table shows the four options given. You just need one of these files. Pick one that suits your needs. If you are going for AX Data Import, I would strongly suggest that you follow the instruction found in <a href="https://mbs.microsoft.com/fileexchange/?fileID=5e65dbe9-20a4-4cf7-8d56-8cb0a4a7b860">Loading Contoso Demo Data</a>.</p>
<table summary="Demo Data Downloads" style=" border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Download</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Description</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File Size</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">ContosoBase.DAT</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">AX Import without transaction</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">179 MB</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">ContosoTrans.DAT</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">AX Import with transaction</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">216 MB</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">ContosoBase.BAK</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">SQL Backup without transaction</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">419 MB</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">ContosoTrans.BAK</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">SQL Backup with transaction</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">403 MB</td>
</tr>
</table>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com2tag:blogger.com,1999:blog-3705119603400958718.post-18791822887341068302008-07-05T15:29:00.000+01:002008-11-13T08:04:56.675+00:00Dynamics AX 2009 Installation - Application<p>The second component in the installation is the Application files. It resides on the File Server discussed in <a href="http://axassociate.blogspot.com/2008/06/micrososft-dynamics-ax-2009-components.html">Microsoft Dynamics AX 2009 Components</a>. 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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRHOcfy2q0kSIEuJscwTIlJ9ranr4Hdk1n5Gi4bvG0EdVllFKS7v8FK11TMhP8Pi9Zxrz5_il_C_eha9grkDgG9Pp69xxjOa18kFs2mzt2sXDHLOpNigG_nUEZEXUORXjh3LffH327K04/s800/807_AX_2009_Setup_Application.png" alt="Dynamics AX 2009 Setup - Application files" width="500" height="184" />
<h2>What to take note</h2>
<p>There are two areas I would like you to take note prior to running the installation; the location and disk space.</p>
<p>The Application files are meant to be accessed by Dynamics AX Application Object Server (AOS). Hence, you have to make sure that the location where you install the Application files is accessible by the computer you intend to install the AOS and <a href="http://axassociate.blogspot.com/2008/03/service-log-on-account-local-system.html">the account that starts the AOS service</a> has rights over the directory.</p>
<p>A typical production environment has multiple AOS instances running on multiple computers for load balancing. These AOS instances would be configured to access one set of Application files. Therefore, it is common that the Application files are installed in a shared folder.</p>
<p>In term of disk space, an instance of Microsoft Dynamics AX Application files takes up some <em>3 GB</em> of hard disk space. Expect another <em>500 MB</em> or so taken upon completion of installation where indexes are built. So, please plan your Application files location properly.</p>
<h2>Dynamics AX Setup - Application</h2>
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfx-APDX-BJ9QEJ_NxW268MmEbJyjHTWFmY306iIUiB8V-QunLvV2r-uE3p73J6MuEf94UzbEpRshtJ-rVJjTeT10-it4A2sPwF9s31tTvyUQohsOHNE1swTlNDX1mBcy2wEvH90bm2_s/s800/807_AX_2009_Setup_Application_Location.png" alt="Dynamics AX 2009 Setup - Application files Location" width="500" height="192" />
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD4sRXSNt-G0bhPHa0ANQwr-m085Bfg8hNLHHiqV6XreO7A-TjkZc7VBce8h_96sftTuq51Apsoo6mrV_ShjhMMexwAzpOYpqdbLJs3fWWMMLvM7o_kGl8ZgMZ2XTIxLrySoNZSMDPkEk/s800/807_AX_2009_Setup_Application_Instance_name.png" alt="Dynamics AX 2009 Setup - Application files Instance name" width="500" height="219" />
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgolhj1Y4zODexr5L0mxoM5RNkS0kEP4caTfeMm6sBe5hDiCC1u0Py7FQcstpq-YAkgAIJr2skQiFOOsfyyCSVMdg3EO7F-oq_9j3Px-sy2-_PegoFZ1zOQLa49tVgK1eZeCuDAiYTFF9g/s400/807_AX_2009_Setup_Application_Folder_structure.png" alt="Dynamics AX 2009 Setup - Application files Folder structure" width="170" height="140" />
<h2>Conclusion</h2>
<p>You should be able to get Microsoft Dynamics AX Application files installed without much drama.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com1tag:blogger.com,1999:blog-3705119603400958718.post-88318980222999995142008-07-01T15:13:00.007+01:002008-11-13T08:04:57.583+00:00Dynamics AX 2009 Installation - Database<p>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 <a href="http://axassociate.blogspot.com/2008/06/what-you-need-to-install-microsoft.html">required software installed</a>.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinBqAAFlL8xYn9sNsADzbDfqcB5raCj9IBMlo4LZie9huyJR3nJ5FEkeBGUqi-iq5UdVPitGrBk54VSwTPNeMsssdUeRAgsOVOTYUfg2xWNu0iZlawkrpZsjXDVfF-ambmw9MOfA228yc/s800/806_AX_2009_Setup_Database.png" alt="Dynamics AX 2009 Setup - Database" title="Dynamics AX 2009 Setup - Database" width="500" height="268" />
<p>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 <strong>dbcreator</strong> role on the target SQL Server instance. If you are using the administrator account, your account will most likely be a member of the <strong>sysadmin</strong> role which has the rights of all the roles combined. The following figure shows the property page of a <a href="http://axassociate.blogspot.com/2007/12/sql-server-login-and-database-user.html">SQL Server login</a>.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje4ojpNKE_fFjcb1BEsBr5nVSaTQU0SaG_L-O3ZLsZLjev1_gm8w8eL1wnpxVKbEhJPxqLzJUsFC4vg7cPiO8WW5_MPUiogKns5UMLLCpgFKokvm13Y2bwc0v_AVGLU08d5S4QSvMfa5k/s800/806_AX_2009_Setup_Database_Server_role.png" alt="Dynamics AX 2009 Setup - Database server role" title="Dynamics AX 2009 Setup - Database server role" width="500" height="240" />
<h2>Before you begin</h2>
<p>Before you jump into the installation of this component, there one thing I would like you to take note. The installation creates a database without asking you for the location of your data file and log file. It is important that these files are in separate and preferably dedicated physical drive. I suggest that you configure the default file locations in accordance your database server storage plan. This specifies the data and log files locations for databases created subsequently.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHEYedZSWUau0n-G86S3szj6i3WJ9kLAxY4S3RtEY29cgiozthYRWPl-a7ejHipk0qysoVSiardlDqGDTSM1sR9K7zP5OuhezMgmFsHSS-xIewiskNh_dSkUlgcqY15qEPa4AOdkGn6hI/s800/806_AX_2009_Setup_Database_Default_database_locations.png" alt="Dynamics AX 2009 Setup - Database: default database locations" title="Dynamics AX 2009 Setup - Database: default database locations" width="500" height="273" />
<h2>Dynamics AX Setup - Database</h2>
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbroUXa5GHLKywvhcoCzNBlJDkcgx5yAooJbBd15gP2uiBinor08ydYYYku5AY5rtItd2RZejFqFPN6COTLhAIENcL3FnbV7vpzPexOtDoyNG4Hu3gAAAWMUFNs1HDooe7T1QU9YYN_tg/s800/806_AX_2009_Setup_Database_Collect_info.png" alt="Dynamics AX 2009 Setup - Database: Create new SQL Server database" title="Dynamics AX 2009 Setup - Database: Create new SQL Server database" width="500" height="239" />
<p>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.</p>
<h2>Database Access</h2>
<p>This database is intended to be accessed by appropriate AOS instances. The <a href="http://axassociate.blogspot.com/2008/03/service-log-on-account-local-system.html">account that starts the AOS instances</a> requires certain authority to work correctly. The account must be assigned the <strong>db_datareader</strong>, <strong>db_datawriter</strong> and <strong>db_ddladmin</strong> 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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg80RnEHbd6NjcGNuqqBEVxmKr5eLtRYhEdBgFBcCWpHLGKN_DohLdGylYdRefMrR10MlmBqfaBOj_p1fh1e1R_7_dUqgrj2hqTlCmod4pEPYpJPqW85GtG3P1U4KoHSsvQt4Nm0RFQBMM/s800/806_AX_2009_Setup_Database_User_role.png" alt="Dynamics AX 2009 Setup - Database User role" title="Dynamics AX 2009 Setup - Database User role" width="499" height="183" />
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheucJCuqbszec-u-Qxo7GFeRHbztzmePubXPqPK86fi8egAccTFWmQeEAYqGdXH-bYRWHbgh_zQeT7B6h10L2Pp87coj2U6Vnj1b8cC5bVXPRqlmHtNqP1ykUhbfZG5BVd3ilk90cU9UM/s800/806_AX_2009_Setup_Database_Procedure_Permission.png" alt="Dynamics AX 2009 Setup - Database: Stored Procedure permission" title="Dynamics AX 2009 Setup - Database: Stored Procedure permission" width="497" height="156" />
<h2>Conclusion</h2>
<p>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.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-45935133910568462482008-06-27T08:00:00.012+01:002008-11-13T08:04:58.148+00:00What you need to install Microsoft Dynamics AX 2009<p>As mentioned in <a href="http://axassociate.blogspot.com/2008/06/micrososft-dynamics-ax-2009-components.html">Microsoft Dynamics AX 2009 Components</a>, 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.</p>
<p>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.</p>
<p>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.</p>
<h2>Microsoft Dynamics AX 2009 Release DVD ISO</h2>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh87qz_jgn2luS8fZaaN6W4rdG9qPk9iMJmG64FxU00L9H7enUTbVW6WeLdUIFb7ApUXWQpHwlPSijX1GfVtzTpLQ0rfyilj91FKOqDeobDFHQFTP_OFVmG4kUpCQQiisQ7VB3A9F1IyVw/s400/806_AX_2009_small.png" alt="Dynamics AX 2009" align="right" height="55" width="250" />
<p>The most important part is of course the installation DVD itself. You may <a href="http://axassociate.blogspot.com/2008/05/download-microsoft-dynamics-ax-2009.html">download the Microsoft Dynamics 2009 Release May Edition DVD ISO</a> file (1.7 GB in size) from <a href="https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/dynamicsax2009release.htm">PartnerSource</a> 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.</p>
<p>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.</p>
<h2>Microsoft .NET Framework 3.5</h2>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKzYdEYCkxu-6ZkOlwUqXw7rchXYZZH6f1lq3slTmihLS_Px17dEXROH2-IxW3G-ab2WpoGqgzGRXAko6O7pIxV7WbmwvHUtlRW9kcBuAGZ88qovjB6wNS2WJgRH7mxnABTPoeBFLCjZQ/s400/806_dotNET_Framework.png" alt="Microsoft .NET Framework" align="right" height="45" width="205" />
<p>Microsoft Dynamics AX 2009 utilized the latest features from Windows Presentation Foundation, etc. You need to install <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=en">Microsoft .NET Framework 3.5</a> before you are able to install Microsoft Dynamics AX 2009. The table bellow shows the options you have to get the .NET Framework 3.5 installed. Pick one that suits your need best.</p>
<table summary="Microsoft .NET Framework downloads" style=" border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Component</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File name</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File size</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe">Microsoft .NET Framework 3.5 Live Installer</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">dotNetFx35setup.exe</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">2.7 MB</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe">Microsoft .NET Framework 3.5 Full Package</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">dotnetfx35.exe</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">197.11 MB</td>
</tr>
</table>
<p>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.</p>
<p>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.</p>
<h2>Service Pack 2 for Microsoft SQL Server 2005</h2>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHWk6uUUBz-VmOMQaR2K2Hx1D3bRef6eL0RNt2kcKrTSc1UUo25l7c9aro_E0wqSXBfVVu7s6aOxUdij9LEiw1xKPsM1PfCI9PEWfM1oHEvCCiC5qB7papfi4FQJ-WpfQ3JVJbK6aL3oI/s400/806_SQL_Server_2005.png" alt="Microsoft SQL Server 2005" align="right" height="48" width="199" />
<p>If you are hosting your Dynamics AX 2009 data with Microsoft SQL Server 2005, you will need Service Pack 2 or later. This service 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 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d07219b2-1e23-49c8-8f0c-63fa18f26d3a&DisplayLang=en">Microsoft Download: SQL Server 2005 SP2</a>.</p>
<p>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.</p>
<h2>Dynamics AX 2009 Demo Data</h2>
<p>There is no official demo data available for Dynamics AX 2009 Release yet. The closest we could find is the demo data for AX 2009 CTP3 VPC version 2. This download is in the form of Microsoft SQL Server database backup instead of the usual Dynamics AX data import file we are familiar with. In order to use this data, you will not have to install the database option in the setup. You should restore this backup as a Microsoft SQL Server database and install the application and AOS to connect to it.</p>
<p>I notice a lot of associates are searching for Dynamics AX 2009 license. If you install with this demo database, you will have the demo license which last until August 31, 2008. This could be a good option in case you have not got the partner license file.</p>
<table summary="Microsoft Dynamics AX demo data download" style=" border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Component</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File name</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File size</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="https://mbs.microsoft.com/fileexchange/?fileID=15baac83-09d3-4065-85d5-abad3e97e718">Demo data AX 2009 CTP3 VPC Ver02</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Demo data AX 2009 CTP3 VPC Ver02.zip</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">129 MB</td>
</tr>
</table>
<h2>Microsoft Windows Sharepoint Services 3.0 with Service Pack 1</h2>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisWktA6Qv18gnFcSfy2G8JXdjs8rXD8goo7kKcSk09mgv2rWUJ5uCgF63Ypi6RXD735QT_hE-vBtENGc3UerYL6hPurnxZovbiM-GKK-33l7tdSU1LujobG0RqtyujlQhRX1rG0or59Xg/s400/806_Windows_Sharepoint_Services.png" alt="Microsoft Windows Sharepoint Services" align="right" height="53" width="200" />
<p>Sharepoint Services 3.0 SP1 is required to host the Role Centers and Enterprise Portal. It is not included in the Dynamics AX 2009 Installation DVD. You have an option to use Microsoft Office Sharepoint Server 2007 or Microsoft Windows Sharepoint Services 3.0.</p>
<p>If Windows Sharepoint is your choice and your machine does not have it installed, you would have to download it first. It is available for download at Microsoft Download.</p>
<table summary="Microsoft Windows Sharepoint Services downloads" style=" border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Component</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File name</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File size</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef93e453-75f1-45df-8c6f-4565e8549c2a&DisplayLang=en">Windows SharePoint Services 3.0 with Service Pack 1</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">SharePoint.exe</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">104.1 MB</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://www.microsoft.com/downloads/details.aspx?familyid=9FB41E51-CB03-4B47-B89A-396786492CBA&displaylang=en">Windows SharePoint Services 3.0 x64 with Service Pack 1</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">SharePoint.exe</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">115.4 MB</td>
</tr>
</table>
<h2>Windows SDK for Windows Server 2008 and .NET Framework 3.5</h2>
<p>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.</p>
<p>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.</p>
<table summary="Windows SDK for Windows Server 2008 and .NET Framework 3.5 downloads" style=" border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Component</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File name</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File size</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&DisplayLang=en">Windows SDK for Windows Server 2008 and .NET Framework 3.5 Web Setup</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Setup.exe</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">418.59 KB</td>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en">Windows SDK for Windows Server 2008 and .NET Framework 3.5 DVD ISO</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">6.0.6001.18000.367-KRMSDK_EN.iso</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">1330 MB</td>
</tr>
</table>
<h2>Microsoft Visual Studio 2008 Shell (isolated mode) Redistributable Package</h2>
<p>This package is required for the Reporting Extension to work. There are two Microsoft Visual Studio 2008 Shell redistributable package; isolated and integrated. Make sure you are having the isolated package.</p>
<p>When you install this package, please note that the executable vs_AppEnvRedist.exe extracts the installation files to a location. You should execute the actual installation file found at the location where you extracted the files.</p>
<table summary="Microsoft Visual Studio 2008 Shell (isolated mode) Redistributable Package downloads" style="border:1px solid #F79646; border-bottom:0; font-family:Verdana; font-size:1em;" border="0" cellpadding="0" cellspacing="0" >
<tr style="background:#F79646; color:white; font-weight:bold;">
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">Component</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File name</th>
<th style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">File size</th>
</tr>
<tr style="font:normal normal normal small Arial;">
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;"><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=aca38719-f449-4937-9bac-45a9f8a73822&DisplayLang=en">Microsoft Visual Studio 2008 Shell (isolated mode) Redistributable Package</a></td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">vs_AppEnvRedist.exe</td>
<td style="border-bottom:1px solid #F79646; padding:3px 8px 3px 13px;">384.4 MB</td>
</tr>
</table>
<h2>Conclusion</h2>
<p>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.</p>
<p>Happy installing Microsoft Dynamics AX 2009.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com2tag:blogger.com,1999:blog-3705119603400958718.post-13610690085329046002008-06-16T15:28:00.003+01:002008-11-13T08:04:58.547+00:00Microsoft Dynamics AX 2009 Components<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzbpnT9mRpWZnRJmk-n5cZieHNdZHvrFPYUaCmO0ge89EsUOCpwYuYm5hGv9PEu3dRHPT77bBTFQtWTTyzlff5BgWkdUZzHdNJAflTuQwEQrGrJwRzWbpIma249LWp3qoHQmSPPRkXr5w/s800/806_AX_2009_Splash.png" alt="Dynamics AX 2009" title="Dynamics AX 2009" width="500" height="90" />
<p>Apart from the improvements in term of functionalities, Microsoft Dynamics AX 2009 has incorporated numerous technologies under Microsoft to improve <em>communication</em> and <em>visibility</em> 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.</p>
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhybA7y1nOBQjQBXRR__t6cM0oUzQ2Lg4ZI4BUmqzw8ohLs_quU95Dg4-CuCNaDKmqA-TOHt4JTQsy3UGi1g2FwKTjyC5b2CZ4bYh6GKuXTlJKT2Hra8lt5PhlJAU6DkyExtwgq2_KIGuc/s800/806_AX_2009_Setup_Components.png" alt="Dynamics AX 2009 Setup - Select components" title="Dynamics AX 2009 Setup - Select components" width="500" height="531" />
<p>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.</p>
<h2>Base Servers</h2>
<p>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.</p>
<h3>Database server</h3>
<p>As the name suggests, this is where Dynamics AX data is stored. Microsoft Dynamics AX 2009 could work with <em>Microsoft SQL Server</em> database as well as <em>Oracle database</em>. 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.</p>
<h3>File server</h3>
<p>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.</p>
<h3>Application Object Server (AOS)</h3>
<p>This server hosts the AOS Windows service. The AOS service coordinate communications among database, application files and the Microsoft Dynamics AX clients. AOS could be installed on a single computer or a server cluster for load balancing.</p>
<h2>Extension Servers</h2>
<p>Servers under this category add functionalities to Microsoft Dynamics AX.</p>
<h3>Role Centers and Enterprise Portal</h3>
<p>This server hosts a Microsoft Windows Sharepoint Services site. This server exposes the role center and enterprise portal functionalities to relevant users. You may run Windows Sharepoint Services or Microsoft Office Sharepoint Server to enable these functionalities.</p>
<h3>Workflow server</h3>
<p>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.</p>
<h3>Reporting server</h3>
<p>A reporting server uses Microsoft SQL Server Reporting Services to add reporting functionality to Microsoft Dynamics AX.</p>
<h3>OLAP server</h3>
<p>An OLAP server uses Microsoft SQL Server Analysis Services to provide multidimensional reporting functionality to Microsoft Dynamics AX.</p>
<h3>Application integration server</h3>
<p>An application integration server runs the Application Integration Framework (AIF). It allows the sharing of electronic business documents between Microsoft Dynamics AX and external parties.</p>
<h2>Infrastructure Support</h2>
<p>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.</p>
<h2>Final Thoughts</h2>
<p>With all these additions, you are unable to <strong>appreciate</strong> 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.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com2tag:blogger.com,1999:blog-3705119603400958718.post-53368283946129581142008-05-24T16:28:00.003+01:002008-11-13T08:04:58.700+00:00Download Microsoft Dynamics AX 2009 Release<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRx9fQ4Z7eCGnlEa2ogqPkdXlDE5Z9mtPokGAb3J9fFFkW87LsFzyGfuALAXKIvoEWqnP4IjjNOqtP9txZAXv8WHch7lZQM9DyGuBuZJKbyZrXqGqudnqK1sUMHrTh_W31H8YUOCZn-aI/s400/DynamicsAx.jpg" align="right" style='margin-top:8px;' alt="Dynamics Ax logo" title="Dynamics Ax Logo" height="43" width="220" />
<p>A lot of us have been looking forward to the release of Microsoft Dynamics AX 2009 since the release of CTP3 a couple of months back. Dynamics AX associate is glad to announce that it is finally here. You may download the installation DVD in ISO format from <a href="https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/dynamicsax2009release.htm">PartnerSource: Microsoft Dynamics AX 2009 Release</a>. Before you head over with excitement, please note that the file is 1.7 GB in size. Prepare enough hard disk space and time to download it. The page also provides plenty of important information that you could digest while you are waiting for the file to download.</p>
<p>The Microsoft Dynamics AX 2009 Release available for download here is a full install. You may perform new installations or upgrades from previous versions with it. Upgrades are supported for Microsoft Dynamics AX 3.0 SP4 (or higher) as well as Microsoft Dynamics AX 4.0 SP1 (or higher).</p>
<p>Businesses interested in putting Microsoft Dynamics AX 2009 into their business could do so very soon. The price list will be available for most of the regions by June 1, 2008. Those in Australia, Belgium, Luxembourg, New Zealand and Turkey however would have to wait a little longer or find ways with the operation center in their region. The price list for those regions is only <strong>planned</strong> to be available by September 1, 2008.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com4tag:blogger.com,1999:blog-3705119603400958718.post-56026449236497263202008-05-04T15:28:00.005+01:002008-11-13T08:04:59.157+00:00AVG Anti-Virus Free 8.0 Available for Download<img src="http://lh4.ggpht.com/loadimage/SB8pBUfjdJI/AAAAAAAAAi0/eQqM5EVH2_g/s288/805_AVG8.png" alt="AVG 8.0" width="172" height="178" align="right" style="margin-top:3px;" />
<p>Fans of AVG Free Edition could now download the latest version of the popular and widely-used free security software, <a href="http://free.grisoft.com/ww.download-avg-anti-virus-free-edition">AVG Anti-Virus 8.0 Free Edition</a>. The Free edition has been launched on 24 April 2008 following the release of the AVG 8.0 complete edition a couple of months earlier. This new version now incorporates protection against spyware with a combined antivirus and antispyware engine.</p>
<p>Like the previous releases of AVG Free Edition, AVG Free 8.0 it is intended to provide you with basic protection. Having said so, AVG has added two additional protections compared to the previous version. AVG Free 8.0 comes with three protections.</p>
<ul>
<li>Anti-virus provides protection against viruses, worms and Trojans.</li>
<li>Anti-spyware offers protection against spyware, adware and identity theft.</li>
<li>Safe search ensures you safely click search result.</li>
</ul>
<p>The three components mentioned above could be found in the AVG Control Center shown in bellow screenshot. Please note the additional components named Anti-Spyware and Link Scanner. The copy of AVG 8.0 you see below does not have the E-mail Scanner installed hence you do not find the icon. Be assured that E-mail Scanner is part of the package.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYamGryb7f0LyfEklb-sjug5Qya1tdUYcvlQ6tFJmfYKds2yyDTl0nzC1IX9CMnQ7lxASbDs5M3c_lrnpYwkhdYLTedkMNMF90ptgZcXh2rBl-1NMQEUGFqcWKnhecuXiJpbyD1eYAkn0/s800/805_AVG8_Control_Center.png" alt="AVG 8.0 Control Center" width="498" height="433" />
<p>On top of that, you are offered the AVG Toolbar for added protection while you surf the Internet. The following figure shows the AVG Toolbar. I am not a fan of toolbars. I prefer more space for my webpage. Anyway, those that have tested out this AVG toolbar could provide some insight on the protection this toolbar offers as well as <em>impact on performance</em> if there is any.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisfnvUWXN-ixPatiDksnoK1oPQaUC-Rg0iyZpikJSF0F0OOIvlrygQkzT5AVHyj3C10IyxLufx30MVjEhwOk2fvsINb7N4UVje911MZVCE7QQc4-4dZpGMQ_Gfz5fDlw2PzS61HjzkOb8/s800/805_AVG_Toolbar.png" alt="AVG 8.0 Browser Toolbar" width="500" height="105" />
<p>AVG Free Edition is meant for private, non-commercial use. Hence, it does not run on server operating systems. The supported Operating Systems are MS Windows 2000, MS Windows XP (32-bit and 64-bit), and MS Windows Vista (32-bit and 64-bit).</p>
<p>If you find that you prefer more protection than the level provided by the Free Edition, there are two more editions offered in the family; <a href="http://www.grisoft.com/ww.product-avg-anti-virus">AVG Anti-Virus</a> and <a href="http://www.grisoft.com/ww.product-avg-internet-security">AVG Internet Security</a>. AVG Internet Security provides the most complete protection in the AVG product family. AVG Anti-Virus on the other hand provides protection against viruses in all manner but lacking Firewall and Anti-Spam engine. The former is priced at USD 54.99 per year while the latter USD 34.99 per year.</p>
<p>Apart from the offering from AVG, you could also look for security products from other stables. There are plenty of options nowadays.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com3tag:blogger.com,1999:blog-3705119603400958718.post-34586127417057366632008-04-11T16:28:00.004+01:002008-11-13T08:04:59.574+00:00Reverse Engineering Microsoft Dynamics AX<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicAMQqGpFUuIhuIHGe3aeQ8tfWZIXaSAR0zW7UsJAotZJvDRZXmmhARigHbrnyw7QMLL1Xxe_gOEQyNsuaUEEXEAv7cvNIrYQTbdMTm1RMA1XhOX1H320I-bT50GwmWBi-9f6yxzV2Piw/s400/804_DAX_Reverse_Engineering.jpg" alt="Dynamics AX Reverse Engineering" width="400" height="160" />
<p>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 <em>Microsoft Office Visio 2003 or greater</em> with <em>Visio UML model installed</em> in order to use this tool.</p>
<h2>Scoping Your Model</h2>
<p>Naturally scoping required to create useful models. This allows us the flexibility to define what we want to include. In my opinion, a model of the complete Dynamics AX application would be too huge to be useful if not too time consuming to generate and maintain.</p>
<p>Dynamics AX Reverse Engineering tool scopes the model through development projects either private or shared. So you must first create a project and include the elements that you would like in your model in the project in order to generate a model.</p>
<h2>Types of Model</h2>
<p>This tool is capable of generating two types of model; <em>data model</em> and <em>object model</em>. Let's see what does these models capture and how do they differ. </p>
<p><strong>Data model</strong> 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 <em>Main</em>, <em>Group</em>, <em>Miscellaneous</em>, <em>Parameter</em>, <em>Transaction</em>, <em>WorksheetHEader</em> and <em>WorksheetLine</em>. Referred tables will be placed under the group <em>External Classes</em>.</p>
<p>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.</p>
<p>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.</p>
<p>Those that would like to have the methods included could use the <em>object model</em> instead. However, that model will not have data model information such as relationship and index. </p>
<p><strong>Object model</strong> 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 <em>External Classes</em> just like Data Model.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<table class="normal" border="0" cellpadding="0" cellspacing="0" summary="Filter criteria elements">
<thead>
<tr><td>Information</td><td>Data model</td><td>Object model</td></tr>
</thead>
<tbody>
<tr class="odd"><td>Tables</td><td>Yes</td><td>Yes</td></tr>
<tr class="even"><td>Related tables</td><td>Yes</td><td>Yes</td></tr>
<tr class="odd"><td>Table fields</td><td>Yes</td><td>Yes</td></tr>
<tr class="even"><td>Table methods</td><td>No</td><td>Yes</td></tr>
<tr class="odd"><td>Table group property</td><td>Yes</td><td>No</td></tr>
<tr class="even"><td>Field index</td><td>Yes</td><td>No</td></tr>
<tr class="odd"><td>Classes</td><td>No</td><td>Yes</td></tr>
<tr class="even"><td>Referenced classes</td><td>No</td><td>Yes</td></tr>
<tr class="odd"><td>Extended Data Types</td><td>Yes</td><td>Yes</td></tr>
<tr class="even"><td>Base Enums</td><td>Yes</td><td>Yes</td></tr>
<tr class="odd"><td>X++ Data Types</td><td>Yes</td><td>Yes</td></tr>
</tbody>
</table>
<h2>How to Generate</h2>
<p>This feature is only accessible through the context menu. The following are the steps to generate a UML model using this tool.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUfNUM0absXZ53ztNFGow60E3rqWfnRMD1j5qqsA_yoOEofuu0W7TlGiJZWSozwJKUX2FF64fk9_ZSKB8AchRCbywrn-kx0ttA2x8DUvYoExcS02UMbeZwFemqdRpY9jZHbsti_tCbxMU/s400/804_DAX_Reverse_Engineering_Menu.png" alt="Dynamics AX Reverse Engineering Menu" align="right" width="250" height="324" />
<ol>
<li>Create a project and move the elements you would like in the model into this project.</li>
<li>Right click on the project and select Add-Ins>Reverse Engineer.</li>
<li>This will load a form named Visio Reverse Engineering. Enter the path and filename for the Visio drawing file.</li>
<li>Select the model you want to generate then press OK. You may generate either data model or object model.</li>
</ol>
<h2>Conclusion</h2>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>Is this better than MorphXplorer, the tool it replaced? I see much more information compared to MorphXplorer. The outcome is more professional too.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com5tag:blogger.com,1999:blog-3705119603400958718.post-67266636380759096962008-03-27T14:28:00.004+00:002008-11-13T08:04:59.774+00:00Download Demonstration Toolkit for Microsoft Dynamics AX 2009 Pre-Release<p>There has been much hype around the soon to be released <em>Microsoft Dynamics AX 2009</em>. Certain companies were given the privilege to get their hands on <em>Microsoft Dynamics AX 5 Community Tech Preview 3</em> (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.</p>
<h2>Demonstration Toolkit</h2>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBJJwhr9yOi0bx0MnxRDEZ8WvOrCW8NF6nuslCOYwIGIjuJ0wUWq2523kWmSOa4tavNP_KYI6GFM1ikgR6oSPVf5tM8wb4EW890mYWRE-CZu7elUFy8K7Vd_JcSBiZzphIs_GXvsCu4UQ/s400/803_AX4_Demo_Toolkit_Cover.jpg" align="right" alt="Microsoft Dynamics AX Demonstration Toolkit cover" width="200" height="270" border="1">
<p>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.</p>
<p>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 at <a href="https://mbs.microsoft.com/partnersource/documentation/howtoarticles/VPCImageAX2009CTP3.htm">Demonstration Toolkit for Microsoft Dynamics AX 2009 Pre-Release</a> (requires PartnerSource login).</p>
<p>You will need <a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx">Microsoft Virtual PC</a> to use this toolkit. The good news is it is a freeware available for download. Get your free copy of <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=en">Microsoft Virtual PC 2007 downloaded</a> to run the Demonstration Toolkits.</p>
<h2>Disk Space Requirement</h2>
<p>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 <strong>no less than 14 GB</strong> of free hard disk space required to complete the task. Do note that the extracted files are all we need.</p>
<p>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.</p>
<h2>Expiry Date</h2>
<p>Another thing to take note is the expiry date of the VPC image. The <em>Microsoft Dynamics AX 2009 CTP3</em> license in the VPC image will expire on <em>August 31, 2008</em>. The <em>Windows</em> of the VPC image on the other hand will expire on <em>June 6, 2009</em>.</p>
<h2>What is in the VPC Image?</h2>
<p>Apart from the Pre-Release version of Microsoft Dynamics AX 2009, there is a wealth of software installed and properly configured in the VPC image. Some of them are its pre-requisite whereas the rest are required to demonstrate the complete set of Microsoft Dynamics AX 2009 functionalities.</p>
<p>You will also find Microsoft Office Ultimate 2007, Microsoft Office Sharepoint Server 2007, Microsoft Silverlight, Microsoft Office Visio Professional 2007, Microsoft SQL Server 2005, and Microsoft Visual Studio 2008 Professional just to name a few. The complete list is available on its user guide.</p>
<h2>Recommended Laptop Requirement</h2>
<p>This demonstration toolkit is designed to allow us to perform demo to prospects. We are expected to run it on our laptop. I would like to note the system requirement for the computer that host the VPC image. Companies purchasing laptops for their team members could take the following into consideration.</p>
<table class="normal" border="0" cellpadding="0" cellspacing="0" summary="Microsoft Dynamics AX 2009 Pre-Release Demonstration Toolkit System Requirement">
<tbody>
<tr class="odd"><td>Processor</td><td>Pentium 4 with 1.2 GHz processor or higher</td></tr>
<tr class="even"><td>RAM</td><td>2 GB minimum, 4 GB recommended</td></tr>
<tr class="odd"><td>Hard disk space</td><td>30 GB minimum</td></tr>
</tbody>
</table>
<h2>Final Thoughts</h2>
<p>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.</p>
<p>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.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com1tag:blogger.com,1999:blog-3705119603400958718.post-52150897102027245722008-03-25T14:28:00.002+00:002008-11-13T08:05:00.177+00:00Service Log on Account - Local System, Network Service or Domain User Account<p>Service Log On account is an important yet often overlook configuration. Just as the account you login to your windows workstation determines your authority over resources, the service log on account defines what the service is capable of accessing.</p>
<h2>Windows Service</h2>
<p>Windows Services are long-running executable applications that run in their own Windows sessions. They are designed not to require user intervention hence do not show any user interface. Those working with Microsoft Dynamics Ax actually work directly with a few Windows Services. The Application Object Server (AOS) of Microsoft Dynamics Ax is implemented as a Windows Service. The database server be it Microsoft SQL Server or Oracle runs as Window Service.</p>
<p>You will find the list of Window Services installed on your computer from the Services Management Console. It is found under Administrative Tools > Services. The following image shows the Services Management Console.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqzkqFXzvABIkm5JlrjOoGcvviOBCzgSq6TGyn63uNj4dtrIgYMo7ZdPaNAXmS2Wqhi1Hx5WbUBvmrqQHZJLFqF6qGS0wgI1Cd1TyuJvUJvJYO8YaYjF5pFYfGnHOhiTAQLfXJLIoqa0/s800/803_Services_Console.png" alt="Services Windows Management Console" width="500" height="350" />
<h2>Log On Account</h2>
<p>When we configure a distributed system with Windows Services, Service Log On account is one thing we should pay ample attention to. We do not usually spend effort on this for a standalone all-in-one installation we usually have in our laptop for demo and some development. When the pieces of the software are installed over a few servers however, there will be resources over the network that we need the Windows Service to access.</p>
<p>Microsoft Dynamics Ax AOS for example could be installed on a separate server from the Application files. This is a common model in production environment where more than one AOS is necessary. In this case, the Service Log On Account for these AOS will need rights to the application files over the network. On top of that, the AOS gains access to the database server using this credential too. The rights over database objects are determined by this Log On account.</p>
<p>Apart from that, we would not want these services to interfere with resources within the server itself for security reason. Services for information system such as those database servers are rather prone to attack. It is important that the account that starts this type of Windows Service has sufficient rights over the resources it requires and no more than that.</p>
<p>The following figure illustrates an example of Service Log On Account setting. This is found on the Log On tab of the Service Property dialog box.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq-59CDCDhwjbqLizu6fIjDWSQOl6-9ZNK9sQJ294rRDQExaYPaDGtTyLzP4Y10fFuO3qjyx-v0QAjXKSd9b5CJMBi2Tn9nYA5A443OhQ1pGzdMzb5AdvvTMOEw_hqfxVbRrXRDDf7sQI/s800/803_Service_Property_LogOn_Tab.png" alt="Service Property Page - Log On Tab" width="420" height="472" />
<h2>Account Options</h2>
<p>You may choose among three types of accounts to start a Windows Service; the Local System Account, the Network Service Account, or a dedicated Domain User Account.</p>
<h3>Local System Account</h3>
<p>The <em>local system account</em> is a Windows operating system account that has full administrative rights on the local computer but has no network access rights. If your Windows Service interacts with network resources, this account is not an option. Moreover, this account has too many privileges on local computer. It is not recommended for use with Windows Services we are dealing with.</p>
<h3>Network Service Account</h3>
<p>The <em>Network Service account</em> is a special built-in system account that is similar to an authenticated user account. This account has the same level of access to system resources and objects as other members of the Users group. Services that log on under this account will use the credentials of the computer account to access network resources. This includes accessing database. You have the option to set database access rights using computer account only.</p>
<p>Apart from the issue in defining database access, this account has too many privileges for the services we are discussing here since it inherits the rights from the Users group.</p>
<h3>Domain User Account</h3>
<p><em>Domain user account</em> is an account we create manually in the Active Directory. Privileges could be configured exactly to our needs. We may define resources rights across servers. We could even configure database access specific to the need of the Windows Service.</p>
<p>If we have multiple instances of Dynamics Ax AOS serving different purposes for example, we may have different accounts for the AOS services. This allows us to give rights to the correct set of application files and database only. We will not have to worry even if different teams of people are working on the instances.</p>
<p>This is the most widely used account for starting such service under production environment. It fulfills the requirement of giving all the rights required and not more.</p>
<h2>Conclusion</h2>
<p>Decision on what account to use very much depends on the environment. However, the general rule of thumb is to have domain user account for services such as Dynamics Ax AOS, SQL Server, SQL Server Agent, etc. in production environment. The flexibility and independence of this account type is helpful.</p>
<p>When you assign a user account to start a Windows Service, additional rights required for this purpose are assigned automatically. This is the case for Dynamics Ax AOS service. SQL Server services on the other hand require more setting than other services. The Log On account for them should be assigned during installation or through the SQL Server Configuration Manager in order to have those setting performed.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com4tag:blogger.com,1999:blog-3705119603400958718.post-16203504872057548302008-03-22T14:28:00.003+00:002008-11-13T08:05:01.070+00:00Schedule Future Post in Blogger<p>I supposed many of us have heard those using Wordpress "boast" about the ability to timestamp posts written to be published at a future date. Those using <a href="http://www.blogger.com/">Blogger</a> service could edit the post timestamp too but it does affect the actual published date. The post will be visible to everyone once you press the button publish post even if you enter a future date.</p>
<p>This is about to change soon. The ability to schedule posts to be published at a future date could be found at <a href="http://draft.blogger.com/">Blogger in Draft</a>. In case you are not aware of its existence, this is a place where new features are tested and fine tuned before they are included in Blogger. You login to Blogger in Draft through the URL <a href="http://draft.blogger.com/">http://draft.blogger.com</a> instead of the usual <a href="http://www.blogger.com">http://www.blogger.com</a>. You will get a similar interface with additional features under development and test.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqmn6DyiNqa3bhPLMFznw3M3e2PMmFpi7IdY1JLNDBtTaEJKhAr-H7NqWXELu7IwbyzvMiUsKaQpKcxGhdc-60l-bKmiRjdLTSq0geVwn61DKbML5TcUvb7Qb2a1elcHC29mhuEFagBv8/s800/803_Blogger_In_Draft.png" alt="Blogger in Draft" height="165" width="500" />
<h2>The Changes</h2>
<p>This new feature will add a status to the post list called <em>Scheduled</em>. You add posts to the status Scheduled by entering a <em>future date</em> to Post date and time then press the <em>Publish Post</em> button. You will get a message shown in the following figure instead of the usual message.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtgNN3u88AbsyzYSIdTaGG4LquvRu8dSpf-nMbK5U9TUJyoQy71TFDjhMNOMy15NQo3QVs9gEDuMLvik3l0ULGfKtq9N0ZQSiFaPXrJDxcjrYU3kxbKK0LKhUfw5koQMDg3QenczbukbA/s800/803_Scheduled_Post_Message.png" alt="Scheduled Post Message" height="27" width="442" />
<p>The following figure illustrates the posts list with this feature. Notice the additional status in the filter. The date shows the date it is scheduled to be published.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_eD8Q9t04pcAmve2xo2b0nbIWjvmq3J114xEXZtkAWhoRISdTWpZVYOm4YYO74G7MJWmla8IAiwWslYtQBxzaFCUPWm8LdlSvzGDVYcl8HAO9nItsYkkJTz9d1mNEZK68XWK3jeAgZvs/s800/803_Scheduled_Posts_Blogger.jpg" alt="Blogger Scheduled Posts List" height="340" width="500" />
<h2>Conclusion</h2>
<p>This feature is important for those that would like consistent rate of update to their blog. You would not want to adjust your schedule and go nowhere without Internet access just to update your blog consistently.</p>
<p>I have personally tried this feature. It works fine thus far. Having said so, I am not a heavy user looking at the post frequency of Dynamics Ax Associate. You may have your hand on it by logging in to Blogger through <a href="http://draft.blogger.com">Blogger in Draft</a>.</p>
<p>Update - 2008 May 05: This feature is available in Blogger Live since May 1, 2008. No visual changes compared to the test version.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com2tag:blogger.com,1999:blog-3705119603400958718.post-83606324475807523882008-03-20T14:28:00.006+00:002008-11-13T08:05:01.365+00:00Run External Application from Dynamics Ax<p>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.</p>
<p>The interesting part is that executing external application is fairly effortless in Dynamics Ax. X++ is capable of calling <em>Microsoft Windows Application Programming Interface</em> (API). The common functionalities of the <em>Win API</em> have been built in classes <em>WinAPI</em>, <em>WinAPIServer</em>, <em>WinGDI</em> and <em>WinInet</em>. Running external application could be achieved through the static method <em>WinAPI::shellExecute</em>.</p>
<h2>Static Method WinAPI::shellExecute</h2>
<p>This method takes six parameters where five of them are optional parameters. The following code segment shows the interface of this method.</p>
<code>
<font color="#0000FF">client static int</font> shellExecute(<br />
Filename _lpFile,<br />
<font color="#0000FF">str</font> _lpParameters = <font color="#FF0000">''</font>,<br />
<font color="#0000FF">str</font> _lpDirectory = <font color="#FF0000">''</font>,<br />
<font color="#0000FF">str</font> _lpOperation = #ShellExeOpen,<br />
<font color="#0000FF">int</font> _show = #SW_SHOWNORMAL,<br />
boolean _waitForCompletion = <font color="#0000FF">false</font><br />
)
</code><br />
<p>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.</p>
<h2>Class SysShellExecute</h2>
<p>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.</p>
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaf4M9Mc1FrHiG9grmlhJVXZdHxbX9j6V2_Ye68QYVFxitlw2iHVi1dYKL1eUv_c3pn5dPuqxRiYTWcLbBLGvqOZPv7xg-5tWVDcdK4d-SUgz7nu4rQPsp_u4IuOBIjxRNxDuzso40g1w/s400/803_SysShellExecute_Menu_Item_Property.png" alt="SysShellExecute Menu Item Property" height="244" width="335">
<h3>Opening a File or URL</h3>
<p>You shall not encounter any issue running application with class SysShellExecute. However, I have received enquiry when it comes to opening a file or a URL. I do not want to go into the ways they have tried. Basically opening file and URL are equally simple.</p>
<h3>1. Default Application</h3>
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR5t7iKTYlZzM97cy_mxkLtihamK48uKadRYEfEN-6DHPPUdHp8I7RPNzwlyOIULx3CRj8jjuhGstU6p9J9agJKud5HpZFm5EVGwhlx3g8kNpKb_HnCwpZ_XnaLHbMINTsBeojpOyRvTU/s400/803_Open_URL_Example.png" alt="Open URL with SysShellExecute Menu Item" width="400" height="245">
<h3>2. Specific Application</h3>
<p>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.</p>
<p>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.</p>
<code>
WinAPI::shellExecute(<font color="##FF0000">"IEXPLORE.EXE"</font>, <br />
<font color="#FF0000">"http://axassociate.blogspot.com"</font>);
</code>
<h2>Conclusion</h2>
<p>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.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com1tag:blogger.com,1999:blog-3705119603400958718.post-75996892764567543072008-03-15T14:28:00.003+00:002008-11-13T08:05:01.584+00:00Report with Sum at Header using Duplicated Query<p class="preface">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.</p>
<p>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.</p>
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNR3_ydGQfX-HE5b9h0IEJ2dDIzduJVhY-v8EGhcebVMa8dd2RUO-4rDf6WjbMf6i1TP3WqDDJG9a8ff7_pBT73pZFn9iyyPcusYEy0883lMZxK18EZrKre3WjPRcC7tskkQWMiVXtoao/s800/803_Report_Sum_at_Header.png" alt="Dynamics Ax Report with Sum at Header" width="485" height="262" />
<h2>Motivation</h2>
<p>There are ways to achieve this. The use of duplicated query is motivated by the following factors.</p>
<ul>
<li>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.</li>
<li>The calculation is in accordance to the filters set by the user without additional work.</li>
<li>The report query will be handled by Dynamics Ax report subsystem while we will only work on the duplicated copy of the query.</li>
</ul>
<h2>Technique Highlight</h2>
<p>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.</p>
<p>The following code segment illustrates the technique explained above.</p>
<code>
<font color="#007F00">// loop as long as within the same subheading group.</font><br />
<font color="#0000FF">do</font> {<br />
custTransLoop = qrHead.get(custTransLoop.TableId);<br />
<font color="#0000FF">if</font> (custTransLoop.AccountNum <font color="#0000FF">==</font> CustTrans.AccountNum) {<br />
rSum += custTransLoop.AmountCur;<br />
}<br />
<font color="#0000FF">else</font> {<br />
<font color="#0000FF">break</font>; <font color="#007F00">//heading group changed.</font><br />
}<br />
} <font color="#0000FF">while</font> (qrHead.next());<br />
<br />
mrSum = rSum; //value prepared for heading.<br />
<br />
<font color="#0000FF">super</font>(); <font color="#007F00">//execute group heading.</font><br />
</code><br />
<p>The following code segment illustrates how the report query is duplicated into a QueryRun object.</p>
<code>qrHead = <font color="#0000FF">new</font> QueryRun(element.query());</code>
<h2>Demo</h2>
<p>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.</p>
<h3>Create Report</h3>
<p>The following steps cover report creation. Alternatively, you may use the Report Wizard to perform this.</p>
<ol>
<li>Create a new project to group objects if you have not.</li>
<li>Right click on your project and select New > Report. You will have a report with the name Report1 created.</li>
<li>Right click on Data Sources > Query > Data Sources and select New Data Source. Change the Table to CustTrans under the Property Page.</li>
<li>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.</li>
<li>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.</li>
<li>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.</li>
<li>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.</li>
</ol>
<h3>Validation preparation</h3>
<p>The following steps add a subtotal to a field for verification.</p>
<ol>
<li>Change the AutoFieldGroupOrder property to "Save the fields' properties" for the field group.</li>
<li>Expand the Group and find control named Real: CustTrans_AmountCur and change the SumAll property to Yes.</li>
<li>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.</li>
</ol>
<h3>Sum at Header</h3>
<p>You now have a report with subheading. The following steps demonstrate the approach mentioned earlier.</p>
<ol>
<li>Add the following declaration to classDeclaration of the report. The classDeclaration will now look like the following.</li>
<code>
<font color="#0000FF">public class</font> ReportRun <font color="#0000FF">extends</font> ObjectRun<br />
{<br />
AmountCurDebCred mrSum;<br />
QueryRun qrHead; <br />
}</code><br />
<li>Add a new method to Header: CustTrans_Header and copy the following code to it.</li>
<code>
<font color="#0000FF">display</font> AmountCurDebCred SumAmtCur()<br />
{<br />
<font color="#0000FF">return</font> mrSum;<br />
}</code><br />
<li>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.</li>
<li>Override the method executeSection() of the header with the following code. The method CustTrans_Header:executeSection() shall looks like the following.</li>
<code>
<font color="#0000FF">public void</font> executeSection()<br />
{<br />
CustTrans custTransLoop;<br />
<font color="#0000FF">real</font> rSum;<br />
<br />
<font color="#007F00">// dupplicate the query on first execution of the header.</font><br />
<font color="#0000FF">if</font> (!qrHead) {<br />
qrHead = <font color="#0000FF">new</font> QueryRun(element.query());<br />
qrHead.next();<br />
}<br />
<br />
<font color="#007F00">// loop as long as within the same subheading group.</font><br />
<font color="#0000FF">do</font> {<br />
custTransLoop = qrHead.get(custTransLoop.TableId);<br />
<font color="#0000FF">if</font> (custTransLoop.AccountNum <font color="#0000FF">==</font> CustTrans.AccountNum) {<br />
rSum += custTransLoop.AmountCur;<br />
}<br />
<font color="#0000FF">else</font> {<br />
<font color="#0000FF">break</font>;<br />
}<br />
} <font color="#0000FF">while</font> (qrHead.next());<br />
<br />
mrSum = rSum; //prepare value to be shown at group header.<br />
<br />
<font color="#0000FF">super</font>(); //execute the group header.<br />
}<br />
</code>
</ol>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-75386905015800395432008-03-12T14:28:00.004+00:002008-11-13T08:05:02.035+00:00Microsoft Supplies the Brain of Formula One Cars<p>The FIA Formula One World Championship Season 2008 will commence this week. After months of winter development and testing, Melbourne will again host the inaugural race of the season. The Australian Grand Prix weekend will start on Friday, March 14, 2008 and the race on Sunday.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfhKQ7CN8wKH16zvOpvsgmVZv5E5Du0IlXkL04yqaAsJoBqQT_Ow-f2z5XoKT-_yYZQW_aOAwyTj9pre_OovIoCcLHdesuQiWbVzINP9Vx3pmUpYvx9492mbBBCZQjKCa_8RfqEyGyf5E/s400/803_Formula_One_Race.jpg" alt="Formula One Race" width="200" height="255" align="right" />
<p>I have been following F1 for more than a decade. I love the passion and spirit where some 1000 people work as a team in the most efficient manner towards one goal, to prepare and run two cars for 18 (depends on the schedule of the season) races a year. I also love the complexity of its technology and the pace of development. The whole team is going all out to extract every bit of performance they could from the package.</p>
<h2>The Regulation</h2>
<p>There will be further rule change in accordance to the direction of FIA president Max Mosley as usual. We will focus on <a href="http://www.formula1.com/inside_f1/rules_and_regulations/sporting_regulations/6844/fia.html">Technical Regulations Article 8.2.1</a> concerning Control Electronics.</p>
<blockquote><i>
<p>8.2.1 All components of the engine and gearbox, including clutch, differential and all associated actuators must be controlled by an Electronic Control Unit (ECU) which has been manufactured by an FIA designated supplier to a specification determined by the FIA.</p>
<p>The ECU may only be used with FIA approved software and may only be connected to the control system wiring loom, sensors and actuators in a manner specified by the FIA.</p>
</i></blockquote>
<h2>The Project</h2>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF73Sg15eKChcnIwH3m6H1Q84nCkzDmvB39m7zoF5pU7yRH-8Dg2oKPx8s0GLuEZ5Uj58vM5P40B4jl11S16UuPZyyP0SfcM8NGX0UArOaLEYkOxtTIRoaxZAyLR3cgEzCVm5oyNdiDlY/s400/803_Formula_1_Logo.png" alt="Formula One Logo" height="60" width="125" align="right" />
<p>Microsoft will have its share of Formula One technology this year. In year 2006, Microsoft in partnership with McLaren Electronics Systems (MES) was awarded the tender to supply Engine Control Unit (ECU) for all teams. Microsoft is part of the <a href="http://www.fia.com/">FIA</a> designated supplier mentioned in the regulation above for FIA Formula One World Championship in 2008, 2009 and 2010. It was announced in the <a href="http://www.fia.com/mediacentre/Press_Releases/FIA_Sport/2006/July/050706-01.html">FIA press release</a> on July 5, 2006. After more than a year of development and following testing by all Formula One contenders for 2008 season, it is ready for race in the next few days.</p>
<p>So what does this ECU do? It monitors and controls just about every aspect of the engine operation. It controls the ignition timing, fuel quantity and mixture, etc. base on data gathered from over 100 sensors in the car. The same data will also be continuously transmitted in real time back to the control center of each Formula One team at the pit-side. As far as I am concerned, Scuderia Ferrari Marlboro also broadcast the data back to their factory at Maranello in real time.</p>
<p>According to <a href="http://www.microsoft.com/presspass/press/2006/dec06/12-11FIAPR.mspx">Microsoft press release</a> dated December 11, 2006, we will see a host of Microsoft software solution employed. Among them are Microsoft Windows Vista, Microsoft SQL Server 2005, and Microsoft Office 2007. Hope we could get more information on the actual deployment soon.</p>
<h2>Final Thoughts</h2>
<p>I would say this project is very much in line with Microsoft ideology. Formula One is widely agreed as the pinnacle of motorsport. It attracted the best people in the industry and the pace of technology advancement is second to none.</p>
<p>The sport is about a group of highly able professionals continuously digesting huge set of data making split second decisions to affect the outcome of the race to their favor. The system supplied will utilize various Microsoft technologies to support informed decision at the highest pace and precision.</p>
<p>Microsoft constantly declares that they want to provide people with the right technology and tools to enable them to succeed in their business. The ability to provide tools for this business is definitely a respectable achievement.</p>
<p>I have seen people joke about the idea of these ECUs software crashes in the middle of race, etc. since the announcement was made. I would not say it is impossible to happen that way but looking at the way Formula One teams operate I am positive only very rare glitches would be left unidentified. We could expect an exciting and <em>safe</em> season ahead.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com2tag:blogger.com,1999:blog-3705119603400958718.post-82549334719330486762008-03-11T13:23:00.001+00:002008-11-13T08:05:02.283+00:00SQL Server Authentication Mode<p>Microsoft SQL Server supports two authentication modes; <em>Windows Authentication</em> and <em>Mixed Mode</em>. Before we move on, I would like to introduce another terminology called authentication method. <em>Authentication method</em> is the way a user is authenticated. <em>Authentication mode</em> on the other hand determines the authentication methods accepted by Microsoft SQL Server.</p>
<p>There are two authentication methods supported by Microsoft SQL Server. They are named <em>Windows Authentication</em> and <em>SQL Server Authentication</em>. 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 "<em>sa</em>" is an example of login authenticated by SQL Server Authentication.</p>
<p>The following figure shows the login screen of Microsoft SQL Server Management Studio. Note the drop down list with the authentication methods offered.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFq2WfPOCWELLTPPQ9eadIpe1SSioBLCFSJJelNcNhnl5YqaK1ZJaVhi3ULUa3vM53IOh7lao5epQ0K2DCyrNAq8FbSE7cJTUcz51hRAAj2m9A1nbeJWe1FzUf5h4oAvoXyQzvdVr6sQE/s800/803_SQL_Server_Login_Authentication_Modes_Selection.png" alt="SQL Server Login Screen - Authentication Mode Selection" width="416" height="309">
<p>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.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX5qlZIjpJySQED2It5vLqqKYDZXN3YxS7L5HyWhZjsuSfsxtYN-_9lA7C_vwaBt5Y4CeK7RwtgtzJZSKrmqriQzpNZcPlj_zff0rKHeY5UPW3SMZMQ93j2X78by9vLc65gznVMv88xU0/s800/803_SQL_Server_Property_Security_Tab.png" alt="SQL Server Properties - Security Page" width="500" height="449">
<p><em>Windows Authentication</em> 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.</p>
<p><em>Mixed Mode</em> 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.</p>
<p>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.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-27315156575125434502008-03-04T16:28:00.004+00:002008-11-13T08:05:02.662+00:00Multiple Instances of SQL Server<p>You may install multiple instances (or copies) of Microsoft SQL Server 2005 on the same computer. This is applicable to installing alongside different <a href="http://axassociate.blogspot.com/2008/01/sql-server-2005-editions.html">editions as well as earlier versions</a> 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.</p>
<p>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.</p>
<h2>Default Instance and Named Instance</h2>
<p>There are two types of installation allowed for SQL Server installation; default instance and named instance.</p>
<p>The default instance is an installation where you do not give a name to the instance of Microsoft SQL Server. In this case, the instance name will take the name of the server. Hence, you refer to the Microsoft SQL Server by specifying the server name. Due to the use of server name as instance name, you are only allowed to install one default instance on one machine.</p>
<p>A named instance is an installation where you have to specify a name for the instance of Microsoft SQL Server during installation. The instance of Microsoft SQL Server will be referred in the form of [<em>SERVER NAME</em>]\[<em>INSTANCE NAME</em>]. You may install more than one named instance provided the name of each instances are different.</p>
<p>When you start Microsoft SQL Server installation wizard, it detects whether the default instance already exists. If it could not find one, you will be given the option to install a default instance or a named instance. Otherwise, you will only be allowed the option of installing a named instance.</p>
<p>The following figure shows the screen where you choose the type of instance to be installed. It is part of the installation process.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7ZY-WOua-hhLJwrWLtgqaQDMaRyZ5CsVSnoSELOooK9u0uT8-MBwPHubMMMixLMaWIB3-GsrdIod7TL4-UACmOBVgOlB77uqH523yT82RTLkniFdPsip970w4agtwPAtXMZ2oKk1fLhc/s800/803_SQL_Server_Setup_Instance_Selection.png" alt="SQL Server Instance Selection Setup Screen" width="486" height="443"/>
<h2>Conclusion</h2>
<p>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.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-22815271517185954302008-01-31T15:02:00.000+00:002008-01-31T15:06:32.992+00:00SQL Server 2005 Editions<p>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.</p>
<p>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.</p>
<h2>SQL Server 2005 Enterprise Edition (32-bit and 64-bit)</h2>
<p>Enterprise Edition is the top edition in the series. There is no limitation in both hardware resources and functionalities. It has a complete set of SQL Server 2005 functionalities. It is designed to support the largest enterprise online transaction processing (OLTP) environments with highly complex data-analysis requirements and data warehousing.</p>
<p>You should select Enterprise Edition if the installation requires high processing on large amounts of data. Enterprise Edition allows unlimited processors, unlimited clustering nodes, and features that help to improve data operation performance.</p>
<h2>SQL Server 2005 Standard Edition (32-bit and 64-bit)</h2>
<p>The Standard Edition is a trimmed down version of the Enterprise Edition. It includes the essential functionality required for business solution, e-commerce, and data warehousing for small and medium sized organization. The Standard Edition supports a maximum of 4 processors but has no limit on memory and database size.</p>
<p>You may consider Standard Edition if the installation host large amounts of data but do not need the features of Enterprise Edition.</p>
<h2>SQL Server 2005 Developer Edition (32-bit and 64-bit)</h2>
<p>Developer Edition offers all the functionality of SQL Server 2005 Enterprise Edition but is licensed for use as a development and test system. This edition is not meant to be installed as a production server.</p>
<p>You should choose Developer Edition if you would like to develop application that will use Enterprise Edition but do not want to install Enterprise Edition on development or test server.</p>
<h2>SQL Server 2005 Workgroup Edition (32-bit)</h2>
<p>Workgroup Edition is designed for small business that would like no limits on database size and number of users. It is capable to serve departmental or branch operation, and small Web servers. There is no clustering, analysis service, and features that are meant for larger databases. There is also a limit in hardware resources. It supports up to 2 processors and a maximum of 3 GB of memory.</p>
<p>Workgroup Edition is right for installation with small amounts of data on smaller servers.</p>
<h2>SQL Server 2005 Express Edition (32-bit)</h2>
<p>Express Edition has the least features with hardware resources limit. It is however free to use and can be distributed to function as client database. Do take note that the data size allowed is limited to 4 GB.</p>
<p>Express Edition is meant to be desktop database. It is commonly use in client applications that requires data store such as a POS terminal.</p>
<h2>SQL Server 2005 Mobile Edition</h2>
<p>Mobile Edition is designed to run on MS Windows Mobile platform. It is not meant for desktop or servers. It makes good client database on mobile device very much like the Express Edition for desktop.</p>
<h2>Summary</h2>
<p>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.</p>
<p>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.</p>
<p>I personally use Developer Edition for my laptop as well as development server. Why don't you <a href="http://axassociate.blogspot.com/2008/01/find-out-sql-server-edition-and-version.html">identify the edition and version</a> you have installed on your laptop or desktop and share with us?</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-83088801439477874642008-01-30T14:28:00.000+00:002008-05-15T18:16:21.873+01:00X++ Bitwise Operators<p>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.</p>
<p>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.</p>
<p>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 <a href="http://axassociate.blogspot.com/2008/01/x-operators-arithmetic-and-assignment.html">Arithmetic and Assignment Operators</a>, and <a href="http://axassociate.blogspot.com/2008/01/x-relational-operators.html">Relational Operators</a>.</p>
<h2>& (AND)</h2>
<p>This operator performs a binary AND on two expressions.</p>
<h3>Syntax</h3>
<p><em>expression1</em> <strong>&</strong> <em>expression2</em></p>
<h3>Example</h3>
<code>
<font color="#0000FF">print</font> 10 & 8; <font color="#007F00">//1010 AND 1000</font><br />
<font color="#0000FF">pause</font>; <font color="#007F00">// 1000 -> 8</font><br />
</code><br />
<h2>| (OR)</h2>
<p>This operator performs a binary OR to two expressions.</p>
<h3>Syntax</h3>
<p><em>expression1</em> <strong>|</strong> <em>expression2</em></p>
<h3>Example</h3>
<code>
<font color="#0000FF">print</font> 10 | 8; <font color="#007F00">//1010 OR 1000</font><br />
<font color="#0000FF">pause</font>; <font color="#007F00">// 1010 -> 10</font><br />
</code><br />
<h2>^ (XOR)</h2>
<p>This operator performs a binary XOR to two expressions.</p>
<h3>Syntax</h3>
<p><em>expression1</em> <strong>^</strong> <em>expression2</em></p>
<h3>Example</h3>
<code>
<font color="#0000FF">print</font> 10 ^ 8; <font color="#007F00">//1010 XOR 1000</font><br />
<font color="#0000FF">pause</font>; <font color="#007F00">// 0010 -> 2</font><br />
</code><br />
<h2>~ (NOT)</h2>
<p>This operator performs a bitwise NOT to the expression on the right.</p>
<h3>Syntax</h3>
<p><strong>~</strong> <em>expression</em></p>
<h3>Example</h3>
<code>
<font color="#0000FF">print</font> ~10; <font color="#007F00">//NOT 1010</font><br />
<font color="#0000FF">pause</font>; <font color="#007F00">// 11111111111111111111111111110101 -> -11</font><br />
</code><br />
<h2><< (Left Shift)</h2>
<p>This operator requires two operands. Expression on the right specifies the number of bits to shift. A left shift takes the number of bit specified from the left and moves it to the right.</p>
<p>The common use of left shift is to multiply an integer by a power of 2. The syntax is equivalent to expression1 * 2 expression2.</p>
<h3>Syntax</h3>
<p><em>expression1</em> <strong><<</strong> <em>expression2</em></p>
<h3>Example</h3>
<code>
<font color="#0000FF">print</font> 123 <font color="#0000FF"><<</font> 3; <font color="#007F00">// 00000000000000000000000001111011 << 3</font><br />
<font color="#0000FF">pause</font>; <font color="#007F00">// 00000000000000000000001111011000 -> 984</font><br />
</code><br />
<h2>>> (Right Shift)</h2>
<p>This operator is a reverse of Left shift. It also requires two operands and the expression on the right denotes the number of bits to shift. The different is that it will shift the bits from the right to the left instead.</p>
<h3>Syntax</h3>
<p><em>expression1</em> <strong>>></strong> <em>expression2</em></p>
<h3>Example</h3>
<code>
<font color="#0000FF">print</font> 984 <font color="#0000FF">>></font> 3; <font color="#007F00">// 00000000000000000000001111011000 << 3</font><br />
<font color="#0000FF">pause</font>; <font color="#007F00">// 00000000000000000000000001111011 -> 123</font><br />
</code><br />Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-14606666195263279062008-01-29T15:03:00.000+00:002008-11-13T08:05:03.285+00:00Find Out SQL Server Edition and Version<p>A friend asked me how to check the version of his SQL Server. He told me that he has checked all the About boxes on applications installed with SQL Server but see nothing relevant.</p>
<p>Checking SQL Server version is slightly different from other Microsoft products. You do not get it by checking the About dialog box. It actually makes sense because there are only About boxes for tools shipped with SQL Server and not the database server itself. These About boxes should show the version of those tools.</p>
<p>Microsoft SQL Server is an instance installed on a machine. You may install multiple instances of SQL Server on one machine. Each of these instances could be of different edition or version (for versions that could co-exist). Naturally SQL Server version and edition is found at the server level.</p>
<h2>How to Determine SQL Server Edition and Version</h2>
<p>The following are five approaches to achieve the stated objective. The first four methods give you both edition and version whereas the fifth method only provides the version. All the methods except for method number five requires login to the SQL Server.</p>
<p>I personally prefer the use of SERVERPROPERTY function explained in approach number two. It has little dependency on availability of installed components yet it presents data in a readable manner.</p>
<h3>1. Enterprise Manager</h3>
<p>This tool is shipped with Microsoft SQL Server 2000. It provides the most straightforward way to accessing SQL Server edition and version. The whole set of information is shown on the server property page as illustrated in the following figure.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUuKELQG5wKijPRMJrM0sh8ILtYVlJKEHBEn4aYOX3m7upWkxxKxuFZ59NPxHqX9ZAH3Gv3bTYkeEjq-hQTVmVJh0X2QeWAhyIhpJFJH0_L5Bx0NbACWQZoqlmG1RFgcB7posuY4f49bs/s800/801_SQL_Server_2000_Property.png" alt="SQL Server Enterprise Manager Property Page General Tab" width="404" height="533"></p>
<p>The figure shows the property of a SQL Server 2000 Developer Edition SP4. This method might be straightforward but it requires that you have Enterprise Manager installed.</p>
<h3>2. SERVERPROPERTY Function</h3>
<p>SQL Server Edition and Version could be acquired using the SERVERPROPERTY function. This is applicable for SQL Server 2000 and SQL Server 2005. This function takes one parameter that specifies the server property requested. The following is the T-SQL script that returns SQL Server version and edition.</p>
<code>
<font color="#0000FF">SELECT</font><br />
<font color="#FF00FF">SERVERPROPERTY</font> (<font color="#FF0000">'ProductVersion'</font>),<br />
<font color="#FF00FF">SERVERPROPERTY</font> (<font color="#FF0000">'ProductLevel'</font>),<br />
<font color="#FF00FF">SERVERPROPERTY</font> (<font color="#FF0000">'Edition'</font>)<br />
</code><br />
<p>This query will return one row with three columns. The first column returns the SQL Server version in the form of "major.minor.build". The second column denotes the service pack updates whereas the third column shows the edition. Do find out more about the properties that <a href="http://msdn2.microsoft.com/en-us/library/ms174396.aspx">SERVERPROPERTY function</a> returns.</p>
<h3>3. @@VERSION Variable</h3>
<p>The global variable @@VERSION stores the SQL Server Edition and Version too. You may find out the value by issuing the following T-SQL query. This approach is applicable to SQL Server 6.5, SQL Server 7.0, SQL Server 2000 and SQL Server 2005. The value returned is illustrated in the following figure.</p>
<code>
<font color="#0000FF">PRINT</font> <font color="#FF00FF">@@VERSION</font><br />
</code><br />
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVzBH46K3HgGuFAwhnqFE5Sgfx7QhwDThBx6uehLbEndArUrs-tEz6PLYMY4gzCQXcUNhbmg4W37mpYxYrPDo3FE5lFrd8r0dPOxK6qf4YwXcbZrgxxy_I_V3xkj0niU69L8jHzXtSFYg/s400/801_Version_Value.png" alt="Output of PRINT @@VERSION" width="400" height="70"></p>
<p>The version is found in the form of "major.minor.build". The edition is stated at the final line.</p>
<h3>4. Microsoft SQL Server Management Studio</h3>
<p>The version of SQL Server connected is shown in the Object Explorer. It is in the form of "major.minor.build". More detail could be found on the property page of the connected instance. The property page also shows the version in number. However, information such as the edition is shown. The following figure shows the object explorer and the property page.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXT-nhNeVoVzrv4aEZrmMDuWFZOx1_n1OvjuB45izJUAksarTMjqDDFNvH615vJ3LoFnEGcNh8clk5T6bjpd2FQhhztRPF11g3LZ_gGXbUGcVn_jUUHFLNaN0G95HYhCJH6_1zlg12LsA/s800/801_SQL_Server_Property.png" alt="SQL Server 2005 Property Page" width="500" height="235"></p>
<h3>5. SQLSERVER.EXE File Property</h3>
<p>The property page of SQLSERVER.EXE shows the SQL Server version too. Edition however could not be found here. The following figure shows the detail tab on SQLSERVER.EXE property page. This method requires no login to the SQL Server. You just need to find the correct SQLSERVER.EXE file.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgR1aMrFulD05tViD-1SSklDYQ-jp03cbz7OSj1Q_a9-CyZ6ENnd6rJ4jrARdLgjCOh2fk7xLQtOTISI8EkIq2Y_YGZcqLNsG7EB_FaSCn3O9CbXSAaRgU72Z0wDku20cznsaYDsNtzuE/s800/801_SQLServer_EXE_Property.png" alt="SQLSERVER.EXE Property Page" width="419" height="531"></p>
<h2>SQL Server Version Number</h2>
<p>If you are unable to use the first two methods mentioned above, you would have to identify the version from product version. There is not a pattern to decode the version number to their relevant service pack update. Please find the equivalent with the version number using the following table.</p>
<table class="normal" border="0" cellpadding="0" cellspacing="0" summary="SQL Server Version Number">
<thead>
<tr><td>Version Number</td><td>Service Pack</td></tr>
</thead>
<tbody>
<tr class="odd"><td>90.00.3042.00</td><td>SQL Server 2005 SP2</td></tr>
<tr class="even"><td>90.00.2047.00</td><td>SQL Server 2005 SP1</td></tr>
<tr class="odd"><td>90.00.1399.00</td><td>SQL Server 2005 RTM</td></tr>
<tr class="even"><td>8.00.2039</td><td>SQL Server 2000 SP4</td></tr>
<tr class="odd"><td>8.00.760</td><td>SQL Server 2000 SP3a</td></tr>
<tr class="even"><td>8.00.760</td><td>SQL Server 2000 SP3</td></tr>
<tr class="odd"><td>8.00.534</td><td>SQL Server 2000 SP2</td></tr>
<tr class="even"><td>8.00.384</td><td>SQL Server 2000 SP1</td></tr>
<tr class="odd"><td>8.00.194</td><td>SQL Server 2000 RTM</td></tr>
<tr class="even"><td>7.00.1063</td><td>SQL Server 7.0 SP4</td></tr>
<tr class="odd"><td>7.00.961</td><td>SQL Server 7.0 SP3</td></tr>
<tr class="even"><td>7.00.842</td><td>SQL Server 7.0 SP2</td></tr>
<tr class="odd"><td>7.00.699</td><td>SQL Server 7.0 SP1</td></tr>
<tr class="even"><td>7.00.623</td><td>SQL Server 7.0 RTM</td></tr>
<tr class="odd"><td>6.50.479</td><td>SQL Server 6.5 Service Pack 5a (SP5a) Update</td></tr>
<tr class="even"><td>6.50.416</td><td>SQL Server 6.5 Service Pack 5a (SP5a)</td></tr>
<tr class="odd"><td>6.50.415</td><td>SQL Server 6.5 Service Pack 5 (SP5)</td></tr>
<tr class="even"><td>6.50.281</td><td>SQL Server 6.5 Service Pack 4 (SP4)</td></tr>
<tr class="odd"><td>6.50.258</td><td>SQL Server 6.5 Service Pack 3 (SP3)</td></tr>
<tr class="even"><td>6.50.240</td><td>SQL Server 6.5 Service Pack 2 (SP2)</td></tr>
<tr class="odd"><td>6.50.213</td><td>SQL Server 6.5 Service Pack 1 (SP1)</td></tr>
<tr class="even"><td>6.50.201</td><td>SQL Server 6.5 RTM</td></tr>
</tbody>
</table>
<h2>Final Thoughts</h2>
<p>The approach to use very much depends on preference as well as what is available. There are more ways to achieve the objective. One of them is the use of extended procedure <strong>xp_msver</strong>. We are unable to cover all methods hence we provide a set of approaches that should work in various conditions.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-54347336104880402092008-01-15T00:30:00.000+00:002008-05-15T18:16:21.874+01:00X++ Relational Operators<p>The relational operators are frequently used in conditional statements and the where clause of data manipulation statements. Other operators could be found in <a href="http://axassociate.blogspot.com/2008/01/x-operators-arithmetic-and-assignment.html">Arithmetic and Assignment Operators</a>.</p>
<h2>like</h2>
<p>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 <a href="http://axassociate.blogspot.com/2007/12/filtering-record-in-dynamics-ax.html">Filtering Record in Dynamics Ax</a>.</p>
<p>This operator returns true if the expression on the left matches the pattern supplied on the right. Otherwise, it returns false.</p>
<h4>Syntax</h4>
<p><em>expression</em> <strong>like</strong> <em>pattern</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">str</font> sExp = <font color="#FF0000">"Dynamics Ax associate"</font>;<br />
;<br />
<font color="#0000FF">print</font> sExp <font color="#0000FF">like</font> <font color="#FF0000">"*nam??s*ate"</font>; <font color="#007F00">// Output 1 - True</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>== (equal)</h2>
<p>This operator compares two expressions for difference. It returns true if they are identical and false if they are different.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>==</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">str</font> sExp = <font color="#FF0000">"Dynamics Ax associate"</font>;<br />
;<br />
<font color="#0000FF">print</font> sExp <font color="#0000FF">==</font> <font color="#FF0000">"*nam??s*ate"</font>; <font color="#007F00">// Output 0 - False</font><br />
<font color="#0000FF">pause</font>;<br />
</code>
<h2>!= (not equal)</h2>
<p>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.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>!=</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">str</font> sExp = <font color="#FF0000">"Dynamics Ax associate"</font>;<br />
;<br />
<font color="#0000FF">print</font> sExp <font color="#0000FF">!=</font> <font color="#FF0000">"*nam??s*ate"</font>; <font color="#007F00">// Output 1 - True</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>>=</h2>
<p>This operator returns true if expression on the left is greater than or equal to expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>>=</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">str</font> sExp = <font color="#FF0000">"Dynamics Ax associate"</font>;<br />
;<br />
<font color="#0000FF">print</font> sExp <font color="#0000FF">>=</font> <font color="#FF0000">"Dynamics Ax"</font>; <font color="#007F00">// Output 1 - True</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2><=</h2>
<p>This operator returns true if expression on the left is less than or equal to expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong><=</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">str</font> sExp = <font color="#FF0000">"Dynamics Ax associate"</font>;<br />
;<br />
<font color="#0000FF">print</font> sExp <font color="#0000FF"><=</font> <font color="#FF0000">"Dynamics Ax"</font>; <font color="#007F00">// Output 0 - False</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>></h2>
<p>This operator returns true if expression on the left is greater than the expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>></strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 30;<br />
;<br />
<font color="#0000FF">print</font> nVar <font color="#0000FF">></font> 30; <font color="#007F00">// Output 0 - False</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2><</h2>
<p>This operator returns true if expression on the left is less than the expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong><</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 30;<br />
;<br />
<font color="#0000FF">print</font> nVar <font color="#0000FF"><</font> 30; <font color="#007F00">// Output 0 - False</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>&& (AND)</h2>
<p>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.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>&&</strong> <em>expression2</em></p>
<h2>|| (OR)</h2>
<p>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.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>||</strong> <em>expression2</em></p>
<h2>! (Not)</h2>
<p>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.</p>
<h4>Syntax</h4>
<p><strong>!</strong> <em>expression</em></p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-11257367850348821842008-01-12T12:28:00.001+00:002008-11-13T08:05:03.659+00:00Bill Gates to Depart from Microsoft Corp<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfCdWUeU6FJoRMOx_W2BH3oP6wcViwkX17GdDMF7jLzBEk90CI1_NFJ2hNdV-tOuOlLOWHhR0_lzh4D8nCJOFDoyDQkhDWawXeGlL_jUHcdXoNfRbjIim_kF2-w62LHreNUDy647hviBw/s800/ces2008-bill-gates.jpg" alt="CES 2008 Bill Gates Keynote" title="CES 2008 Bill Gates Keynote" height="190" width="500">
<p>The long planned departure of <em>Bill Gates</em> from <em>Microsoft Corp</em> has finally arrived. He will quit from the full-time role in Microsoft this summer. He announced that when he deliver the keynote address at the CES 2008 in Las Vegas. This means that this 11th keynote of his is also the last he would deliver representing Microsoft. The keynote features a hilarious video staring several big names such as Jay-Z, Bono, Stephen Spielberg, George Clooney, Hillary Clinton, etc. Enjoy the video bellow.</p>
<p><object width="500" height="418"><param name="movie" value="http://www.youtube.com/v/3HA4lSUhlbw&rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/3HA4lSUhlbw&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="500" height="418"></embed></object></p>
<p>After he quit Microsoft office, he will focus on the work of his charitable organization, the Bill and Melinda Gates Foundation. This foundation has assigned more than $28 billion to those in need.</p>
<p>I wonder how his all time critics feel about his departure. As for Microsoft, he stressed that it is in good hands. I do not remember he had a lot of involvement in Microsoft Dynamics. I supposed there will not going to be any impact on <em>Microsoft Dynamics Ax</em>.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-53554420010883725272008-01-12T01:38:00.000+00:002008-05-15T18:16:21.876+01:00X++ Operators - Arithmetic and Assignment<p>Every programming language has a set of operators. They are used almost everywhere in code. They form the foundation for building functionalities. Dynamics Ax associate believes it is helpful to know what is offered in X++.</p>
<p>This post will cover the arithmetic and assignment operators. In the discussion, you will find the word expression. The expression here could be as simple as a number or a combination of various variables, operators, etc.</p>
<h2>=</h2>
<p>This operator assigns the result of expression to the right to the variable on the left. It is called the assignment operator.</p>
<h4>Syntax</h4>
<p><em>variable</em> <strong>=</strong> <em>expression</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 2;<br />
;<br />
nVar = 12 - 3;<br />
<font color="#0000FF">print</font> nVar; <font color="#007F00">// nVar is now 9.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>?</h2>
<p>This is called the ternary operator because it requires three expressions. The expression on the left is a condition. It will result in either true or false. The two expressions on the right separated by a colon are the result of the operation. If the condition is true, the expression on the left of the colon is returned. Otherwise, expression on the right of the colon is returned instead.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>?</strong> <em>expression2</em> <strong>:</strong> <em>expression3</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 2;<br />
;<br />
<font color="#0000FF">print</font> nVar <font color="#0000FF"><</font> 3 <font color="#0000FF">?</font> nVar + 1 : nVar - 1; <font color="#007F00">// print output 3.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>+=</h2>
<p>This operator combines an arithmetic addition with an assignment operator. This operator assigns the current value of the variable to the left plus the expression on the right back to the variable on the left.</p>
<h4>Syntax</h4>
<p><em>variable</em> <strong>+=</strong> <em>expression</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 2;<br />
;<br />
nVar += 12 - 3;<br />
<font color="#0000FF">print</font> nVar; <font color="#007F00">// nVar is now 11.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>-=</h2>
<p>This operator combines an arithmetic deduction with an assignment operator. This operator assigns the current value of the variable to the left minus the expression on the right back to the variable on the left.</p>
<h4>Syntax</h4>
<p><em>variable</em> <strong>-=</strong> <em>expression</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 2;<br />
;<br />
nVar -= 12 - 3;<br />
<font color="#0000FF">print</font> nVar; <font color="#007F00">// nVar is now -7.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>++</h2>
<p>This operator is used to increase a variable by one. Although this could be achieve with of other operators but this operator produces cleaner code.</p>
<h4>Syntax</h4>
<p><em>variable</em> <strong>++</strong></p>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 2;<br />
;<br />
nVar ++;<br />
<font color="#0000FF">print</font> nVar; <font color="#007F00">// nVar is now 3.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>--</h2>
<p>This operator is used to decrease a variable by one.</p>
<h4>Syntax</h4>
<p><em>variable</em> <strong>--</strong>
<h4>Example</h4>
<code>
<font color="#0000FF">int</font> nVar = 2;<br />
;<br />
nVar --;<br />
<font color="#0000FF">print</font> nVar; <font color="#007F00">// nVar is now 1.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>+ (Plus)</h2>
<p>This operator performs addition of two expressions.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>+</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">print</font> 3 + 2; <font color="#007F00">// Print output 5.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>- (Minus)</h2>
<p>This operator performs subtraction of expression on the right from expression on the left.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>-</strong> <em>expression2</em>
<h4>Example</h4>
<code>
<font color="#0000FF">print</font> 3 - 2; <font color="#007F00">// Print output 1.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>* (Multiply)</h2>
<p>This operator multiplies two expressions.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>*</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">print</font> 3 * 2; <font color="#007F00">// Print output 6.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>/ (Divide)</h2>
<p>This operator divides expression on the left with expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>/</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">print</font> 3 / 2; <font color="#007F00">// Print output 1.5.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>DIV</h2>
<p>This operator performs integer division on expression on the left by expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>DIV</strong> <em>expression2</em></p>
<h4>Example</h4>
<code>
<font color="#0000FF">print</font> 5 <font color="#0000FF">DIV</font> 2; <font color="#007F00">// Print output 2.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />
<h2>MOD</h2>
<p>This operator returns the remainder of an integer division of expression on the left by expression on the right.</p>
<h4>Syntax</h4>
<p><em>expression1</em> <strong>MOD</strong> <em>expression2</em>
<h4>Example</h4>
<code>
<font color="#0000FF">print</font> 5 <font color="#0000FF">MOD</font> 2; <font color="#007F00">// Print output 1.</font><br />
<font color="#0000FF">pause</font>;<br />
</code><br />Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-2062043105053556202008-01-10T23:50:00.000+00:002008-11-13T08:05:03.791+00:00World's Cheapest Car - Tata Nano<p>India's <a href="http://www.tatamotors.com/">Tata Motors Ltd</a> unveiled the cheapest car in the market. The four-seater <em>Nano</em> will have a dealer price of 100,000 rupees which is approximately US$2,500. Consumer price will be higher due to taxes and dealer's margins though.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt5proisqDDymxqrEWFnVOCHOtkVOwkgBV3HBvvirNf1tNB6v0Gj_onlvIPQ9U8YCpHTLt9Ee-RFu3VHyhgRmy9fA9dPZMjSuGZ5jUYn2AyfjYULAMmpjevi_kxI9BlMTE9kZUcmOw4fg/s800/tatanano_launch.jpg" alt="Ratan Tata at the launch of the Nano at the 9th Auto Expo in New Delhi. — AP" title="Ratan Tata at the launch of the Nano at the 9th Auto Expo in New Delhi. — AP" height="360" width="500" />
<p>The picture above shows Mr Ratan N. Tata, Chairman of Tata Group and Tata Motors launching the Nano. The car is 3.1 meters in length, 1.5 meters wide and 1.6 meters in height.</p>
<p>At this price, consumer would naturally be concerned about the quality of the product. Tata, which has the only crash test facility in India, assured that the Nano exceeds current safety as well as environmental regulatory requirements.</p>
<p>The Nano is powered by a <em>two-cylinder</em> 623 cc multi point fuel injection petrol engine producing a maximum power of 33 PS. It is the first four-wheeler powered by a two-cylinder gasoline engine.</p>
<p><object width="500" height="418"><param name="movie" value="http://www.youtube.com/v/JymeLyO4mb0&rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/JymeLyO4mb0&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="500" height="418"></embed></object></p>
<p>We will have to wait for the official figures to find out how it fares in the performance and fuel efficiency departments. You may read more about the world's cheapest car from <a href="http://www.tatamotors.com/our_world/press_releases.php?ID=340&action=Pull">Tata Motors unveils the People's Car</a> at Tata Motors Media Centre.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com0tag:blogger.com,1999:blog-3705119603400958718.post-41351153980889765152007-12-24T10:26:00.001+00:002008-11-13T08:05:03.894+00:00Dynamics Ax Gives Profile Tyrecenter Competitive Advantage<img style="margin:3px;" align="right" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmW0ydSaoBppGFuk5vDJrxNBJ9gQGbhVq65fDGAFtlrQ0ABbZMmaYMtRr1GPuXDfQtdR6qHEoc7ojU8l-VjUdNnS8Dal1Z4DSvW3EULiSZcciEcIFSTkkpiLGquFQ4eJHktlmgfmz7D4c/s200/712_profile_tyrecenter_logo.png" alt="Profile Tyrecenter Logo" title="Profile Tyrecenter Logo" width="126" height="67" id="BLOGGER_PHOTO_ID_5147532141269259538" />
<p><a href="http://www.profile.nl/" target="_blank" title="Profile Tyrecenter - Enter the world of Tyres">Profile Tyrecenter</a> 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.</p>
<p>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.</p>
<p><object width="500" height="418"><param name="movie" value="http://www.youtube.com/v/WQGFCGgfeWE&rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/WQGFCGgfeWE&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="500" height="418"></embed></object></p>
<br />
<p>If you prefer to read the case instead of watching it, you may download <a href="http://download.microsoft.com/documents/customerevidence/25760_Profile_Tyrecenter_CS_final.doc.">Tire Specialist Gains Competitive Edge with Centralized Business Management Solution</a> from Microsoft Customer Evidence. Those that could read <a target="_blank" href="http://www.profile.nl/" title="Profile Tyrecenter - Enter the world of Tyres">Profile Tyrecenter</a> official website could provide us with more info.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com1tag:blogger.com,1999:blog-3705119603400958718.post-64119401620258274462007-12-23T03:28:00.000+00:002008-11-13T08:05:04.456+00:00Box: Dynamics Ax Message Box<p>There are scenarios where the system requires prompt user attention. The system may require decision from the user before proceeding, or having to inform the user of something important. This is usually done by freezing the application forcing the user to interact with a child window. This child window is known as a <a href="http://en.wikipedia.org/wiki/Modal_window" target="_blank" title="Modal window - Wikipedia, the free encyclopedia">modal window</a>.</p>
<p>An example could be found when you close a window after modifying the record. You will see a dialog box asking you whether you want to save changes. The following figure shows the window we are referring to.</p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiADYcUVgULa9bfWTzP8t6qV-nsMsgLwyvEBFRjXAISoukTDQFOA4xQ0gpW5dZanm37m227-_frmU8QE3786UEGmwyLC7inkPN-900a-4JwmCeIheXDJlWPxAqg1P-0Jxg4l5OF5NkYsTk/s400/712_Save_changes_reminder_dialog.png" alt="Save changes reminder dialog box" title="Save changes reminder dialog box" height="159" width="339" id="BLOGGER_PHOTO_ID_5146986362595087586" />
<p>Those experienced with other development platform might have searched for message box. In Dynamics Ax, this is achieved with the class Box. You may find it at AOT > Classes > Box. The methods to call various types of modal dialog boxes are visible.</p>
<h2>Type 1: Notify user</h2>
<p>This group produces a dialog box with an OK button. They are mainly used to notify user of something. There are three dialog boxes in this group with different icon; information, warning and error. The following are the three methods that produce this type of box. This is followed by a figure that shows a sample of such dialog box.</p>
<ol>
<li>box::info(str _text[, str _title, str _bottomText])</li>
<li>box::warning(str _text[, str _title, str _bottomText])</li>
<li>box::stop(str _text[, str _title, str _bottomText])</li>
</ol>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQYHYgdqV5drCnLdC8poKN1hbjLZxDz_3jKWVEAEqv0bgEMWeJb492YodMKg7Z2SF7jdn-EgdYt37i20vgZf7kRPvs2vevApfGOTX28hHdcWoRO0K3nMHBrdJLhFDMJ1L9PXyyTi3A10w/s400/712_box_info.png" alt="Dynamics Ax Box::info" title="Dynamics Ax Box::info" height="159" width="291" id="BLOGGER_PHOTO_ID_5146835776746722450" />
<h2>Type 2: Detail Information Notification</h2>
<p>This type of dialog box is meant to provide detail information. There is an option to provide link to further information. There is also an option to not show the dialog again.</p>
<p>There are two methods that produce such dialog box. The second one is an extended version of the first where the ability to define caption is available.</p>
<ol>
<li>box::infoOnce(str heading, str information, URL helpURL, str owner)</li>
<li>box::infoOnceEx(str _heading, str _information, URL _helpURL, str owner, str caption, boolean _detach)</li>
</ol>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfU7A8uc3ekte4QXBmeKKkWyhzphh3yQD7l9aTD7VnlJi4CFBHZRKpxkpYTTPQ4W9Wc3YjE29eZ1np_MQ5BBn3jhfLyYv9kR1bTKg5_ntCEDHim3hbqq-3-VEXSj9-r31mRcauv_mY85Y/s400/712_box_infoOnce.png" alt="Box::infoOnce" title="Box::infoOnce" height="209" width="318" id="BLOGGER_PHOTO_ID_5146987904488346866" />
<h2>Type 3: Request for Decision</h2>
<p>This group provides more than one buttons that require user decision. They come with various buttons combinations. The button combination is denoted in the method name. The most common are OK Cancel and No Yes.</p>
<p>There is one such dialog box that offers the option not to show the dialog box again. It is a dialog box with Yes and No button plus a <em>Do not ask again</em> checkbox. This is achieved with the method box::yesNoOnce.</p>
<p>The following are the list of methods which also denotes their button combination. This is followed by a figure showing a sample of such dialog boxes.</p>
<ol>
<li>box::yesAllNoAllCancel(str _text, DialogButton _defaultButton [, str _title])</li>
<li>box::yesNoAllNoCancel(str _text, DialogButton _defaultButton [, str _title])</li>
<li>box::yesNoAxaptaForm(str _text, DialogButton _defaultButton [, str _title])</li>
<li>box::yesNoCancel(str _text, DialogButton _defaultButton [, str _title])</li>
<li>box::yesNoOnce(str _title, str _text, DialogButton _defaultButton, str _owner)</li>
<li>box::yesYesAllNoCancel(str _text, DialogButton _defaultButton [, str _title])</li>
</ol>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqS_TpnS5AXKzyg90oWIL20dmYIYBdL04K_Y7VRNn82Qwq782jmVt5zfhGijUnjjI1fZnkabRyZIIPpofhFejrlwKqPRJ9-XmbhDpClepV4UjQ9lSmVJq8V1vfBG_JCzbH-GpR02t4N3M/s400/712_box_yesNoAllNoCancel.png" alt="Box::yesNoAllCancel" title="Box::yesNoAllCancel" height="122" width="390" id="BLOGGER_PHOTO_ID_5146997615409403138" />
<h2>Summary</h2>
<p>The message box facility in X++ is fairly well done. The parameters are self descriptive. We are offered up to date feature such as the <em>Do not ask again</em> checkbox. In case there are more types required, the class Box could be easily extended to provide more choices.</p>Dynamics AX associatehttp://www.blogger.com/profile/06084771482946888241noreply@blogger.com2