<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>mfp's two cents</title><link>http://blogs.msdn.com/b/mfp/</link><description>...on Dynamics AX Development!</description><dc:language>en</dc:language><generator>Telligent Community 5.6.583.20496 (Build: 5.6.583.20496)</generator><item><title>Dynamics AX 2012 for Retail Virtual Launch Event</title><link>http://blogs.msdn.com/b/mfp/archive/2012/02/01/dynamics-ax-2012-for-retail-virtual-launch-event.aspx</link><pubDate>Wed, 01 Feb 2012 11:20:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10262681</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10262681</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2012/02/01/dynamics-ax-2012-for-retail-virtual-launch-event.aspx#comments</comments><description>&lt;table border="0" cellspacing="0" cellpadding="0" width="500"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="196"&gt;&lt;img src="http://www.microsoft.com/dynamics/ax2012launch/images/tab1_image1.jpg" /&gt;&lt;/td&gt;        &lt;td valign="top" width="304"&gt;         &lt;p&gt;Register for the Microsoft Dynamics AX 2012 for Retail Virtual Launch Event on &lt;strong&gt;February 1st, 2012 at 9:00 a.m. Pacific Time (US)&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;Microsoft leaders, customers, and retail industry experts will talk about what it means to be a Dynamic Retailer in today’s retail environment while providing a first-look at the powerful retail capabilities being introduced as part of Microsoft Dynamics AX 2012. &lt;/p&gt;          &lt;p&gt;&lt;a href="https://presentations.inxpo.com/Shows/microsoft/2-12/Registration/registration.htm" target="_blank"&gt;&lt;strong&gt;&lt;font size="5"&gt;Register now&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;font size="5"&gt;.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="5"&gt;&amp;#160;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10262681" width="1" height="1"&gt;</description></item><item><title>Dynamics AX 2012–Data upgrade best practices</title><link>http://blogs.msdn.com/b/mfp/archive/2012/01/13/dynamics-ax-2012-data-upgrade-best-practices.aspx</link><pubDate>Fri, 13 Jan 2012 16:12:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10256361</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10256361</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2012/01/13/dynamics-ax-2012-data-upgrade-best-practices.aspx#comments</comments><description>&lt;p&gt;A new white paper is available. The white paper includes many performance optimizations we’ve found through customer upgrades. It should benefit anyone who’s considering an upgrade from previous versions of AX to AX 2012. &lt;/p&gt;  &lt;p&gt;You can download the white paper here: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=238709"&gt;http://go.microsoft.com/fwlink/?LinkId=238709&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10256361" width="1" height="1"&gt;</description></item><item><title>Inside Microsoft Dynamics AX 2012</title><link>http://blogs.msdn.com/b/mfp/archive/2012/01/09/inside-microsoft-dynamics-ax-2012.aspx</link><pubDate>Mon, 09 Jan 2012 10:33:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10254509</guid><dc:creator>msmfp</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10254509</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2012/01/09/inside-microsoft-dynamics-ax-2012.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-67-83/3264.axbook-_2D00_-blog-_2D00_-small.png" width="228" height="227" /&gt;&lt;/p&gt;  &lt;p&gt;The pile of AX books will grow this year. I’m pleased to announce that work on the 3rd Inside book from Microsoft Press has commenced. Not surprisingly the book’s title will be “Inside Microsoft Dynamics AX 2012”. The book should hit the shelves late this year.&lt;/p&gt;  &lt;p&gt;I’m going to spend quite some time in Microsoft Word over the next few months.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10254509" width="1" height="1"&gt;</description></item><item><title>2011 going on 2012</title><link>http://blogs.msdn.com/b/mfp/archive/2011/12/22/2011-going-on-2012.aspx</link><pubDate>Thu, 22 Dec 2011 14:13:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10250329</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10250329</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/12/22/2011-going-on-2012.aspx#comments</comments><description>&lt;p&gt;The year 2011 has been an amazing year for AX. &lt;/p&gt;  &lt;p&gt;Most remarkably, of course, has been the launch of Microsoft Dynamics AX 2012. Being an engineer, on a team working on a product for several years before finally making it public available, is in all honesty a mixed experience. On one hand you are the “proud parent“ boasting of everything that was accomplished – on the other hand you know it marks the end of a long journey with a great team. The only comforts are how well “your little one” has been received, and that you know a new journey is awaiting just around the corner. &lt;/p&gt;  &lt;p&gt;In 2011 we’ve also been treated to no less than two Technical Conferences on AX. After what feels like a decade - they are finally back. For me personally, I’d been missing these opportunities to talk to peer X++ developers and I fully enjoyed every second I spent in Redmond in January and in Nice in November. I also must say “Thank you” for the overwhelming feedback I’ve received from my presentations. It is much appreciated.&lt;/p&gt;  &lt;p&gt;Let us keep the momentum next year - I believe AX is ready for 2012!&lt;/p&gt;  &lt;p&gt;Enjoy the holidays, and happy new year!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/1581.scrabble_2D00_clean_5F00_26C517BF.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="scrabble-clean" border="0" alt="scrabble-clean" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/7851.scrabble_2D00_clean_5F00_thumb_5F00_206E1B64.png" width="222" height="128" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#a5a5a5"&gt;I think I’m going to have a game of Scrabble with my kids without thinking too much about work &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/2677.wlEmoticon_2D00_smile_5F00_3ACE0E7B.png" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10250329" width="1" height="1"&gt;</description></item><item><title>Deploying AX 2012 Customizations</title><link>http://blogs.msdn.com/b/mfp/archive/2011/11/25/deploying-ax-2012-customizations.aspx</link><pubDate>Fri, 25 Nov 2011 15:12:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10241553</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10241553</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/11/25/deploying-ax-2012-customizations.aspx#comments</comments><description>&lt;p&gt;Models, XPOs, Model store files, signing, uninstall, metadata, compilation, IL, move between environments – are you on top of them all?&lt;/p&gt;  &lt;p&gt;If not, here is a very useful whitepaper: &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26571"&gt;http://www.microsoft.com/download/en/details.aspx?id=26571&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/0083.CustomizationTable_5F00_6EFE1758.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CustomizationTable" border="0" alt="CustomizationTable" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/4705.CustomizationTable_5F00_thumb_5F00_7F961246.png" width="665" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241553" width="1" height="1"&gt;</description></item><item><title>Technical Conference 2011–Wrapping up</title><link>http://blogs.msdn.com/b/mfp/archive/2011/11/18/technical-conference-2011-wrapping-up.aspx</link><pubDate>Fri, 18 Nov 2011 08:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10238451</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10238451</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/11/18/technical-conference-2011-wrapping-up.aspx#comments</comments><description>&lt;p&gt;Thank you for attending Microsoft Dynamics AX EMEA Technical Conference 2011.&lt;/p&gt;
&lt;p&gt;I was given the privileges of presenting two sets of features that the Developer and Partners Tools team has been building in this release: Models and new features in MorphX. In the latter breakout Pawel Kruk gave us a deep-dive into the TFS integration with MorphX.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;d like to learn more about models, here is a great place to start: &lt;a href="http://blogs.msdn.com/b/mfp/archive/2009/09/23/introducing-ax-models-part-1.aspx" target="_blank"&gt;AX models - Part 1 - Deploying models&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;d like to see some of the demos presented &amp;ndash; they are just a click away:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/07/26/seeing-is-believing-ax2012-creating-an-isv-model.aspx" target="_blank"&gt;Seeing is believing - AX 2012 Creating an ISV Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/06/07/seeing-is-believing-ax-2012-uninstalling-the-upgrade-model.aspx" target="_blank"&gt;Seeing is believing - AX 2012 Uninstalling the Upgrade model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/04/19/seeing-is-believing-ax2012-developer-workspace.aspx" target="_blank"&gt;Seeing is believing - AX 2012 Developer Workspace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/05/09/seeing-is-believing-ax2012-x-editor.aspx" target="_blank"&gt;Seeing is believing - AX 2012 X++ Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/05/19/seeing-is-believing-ax2012-type-hierarchies.aspx" target="_blank"&gt;Seeing is believing - AX 2012 Type Hierarchies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I had a great conference &amp;ndash; I hope you did too?&lt;/p&gt;
&lt;table style="width: 500px;" border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="250"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/4336.CIMG5004_5F00_2929E6D3.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="CIMG5004" border="0" alt="CIMG5004" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/4336.CIMG5004_5F00_thumb_5F00_7EFA38EA.jpg" width="239" height="241" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td valign="top" width="250"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/3162.CIMG4986_5F00_449EC309.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="CIMG4986" border="0" alt="CIMG4986" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/3162.CIMG4986_5F00_thumb_5F00_024BAAC6.jpg" width="264" height="251" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10238451" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mfp/archive/tags/Conferences/">Conferences</category></item><item><title>Microsoft Dynamics AX Technical Conference 2011–A great start</title><link>http://blogs.msdn.com/b/mfp/archive/2011/11/14/microsoft-dynamics-ax-technical-conference-2011-a-great-start.aspx</link><pubDate>Mon, 14 Nov 2011 11:19:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10236765</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10236765</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/11/14/microsoft-dynamics-ax-technical-conference-2011-a-great-start.aspx#comments</comments><description>&lt;p&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="470"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="200"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/6708.CIMG4957_5F00_23367C7C.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CIMG4957" border="0" alt="CIMG4957" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/7360.CIMG4957_5F00_thumb_5F00_74FC80C1.jpg" width="221" height="236" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="268"&gt;The EMEA version of Microsoft Dynamics Technical Conference 2011 for Microsoft Dynamics AX 2012 is now officially started. The keynote this morning started with Christian Pedersen talking about the launch of Microsoft Dynamics AX 2012. It is the biggest launch of an ERP product to date.&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/6787.CIMG4965_5F00_0CB3B828.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CIMG4965" border="0" alt="CIMG4965" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/4621.CIMG4965_5F00_thumb_5F00_3164CF9F.jpg" width="222" height="257" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="268"&gt;Hal Howard followed talking about the core pillars of Microsoft Dynamics AX 2012: Powerful, Agile and Simple.            &lt;br /&gt;            &lt;br /&gt;The system is &lt;strong&gt;Powerful&lt;/strong&gt; so it can deliver the insights and productivity you need when you need them. The system is &lt;strong&gt;Agile&lt;/strong&gt; so it can accommodate your business as it grows. The system is &lt;strong&gt;Simple&lt;/strong&gt; so deployment, maintenance and education costs are kept down.&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/2161.CIMG4968_5F00_7B13A78F.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CIMG4968" border="0" alt="CIMG4968" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/5850.CIMG4968_5F00_thumb_5F00_6CF4B892.jpg" width="238" height="237" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="268"&gt;Balaji Balasubramanian joined Hal on stage. He presented the new POS features for Microsoft Dynamics AX 2012 Retail. He showed how a tablet PC running AX 2012 on Windows 7 can transform the retail business. It offered offline, suspend, end-of-day, returns capabilities, has support for literally any POS device available.&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/2146.CIMG4976_5F00_3D569A06.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CIMG4976" border="0" alt="CIMG4976" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/5857.CIMG4976_5F00_thumb_5F00_2884A186.jpg" width="223" height="257" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="268"&gt;Finally Sri Srinivasan announced the launch of a one-stop-shop for AX information going forward. It is rightfully named: InformationSource. Access it today at: &lt;a title="http://informationsource.dynamics.com/" href="http://informationsource.dynamics.com/"&gt;http://informationsource.dynamics.com/              &lt;br /&gt;&lt;/a&gt;            &lt;br /&gt;I hope you will enjoy the conference. I’ll go and grab a bit of food before my first presentation which is in just 40 minutes.&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10236765" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mfp/archive/tags/Conferences/">Conferences</category></item><item><title>Dynamics AX EMEA Technical Conference 2011–Just a weekend away</title><link>http://blogs.msdn.com/b/mfp/archive/2011/11/11/dynamics-ax-emea-technical-conference-2011-just-a-weekend-away.aspx</link><pubDate>Fri, 11 Nov 2011 12:01:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10236149</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10236149</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/11/11/dynamics-ax-emea-technical-conference-2011-just-a-weekend-away.aspx#comments</comments><description>&lt;p&gt;Monday morning Microsoft opens the doors for the EMEA Technical Conference focusing on Microsoft Dynamics AX 2012 in Nice in southern France. The weather forecast is good, the scenery is perfect and the country well-known for its culinary offerings and hospitality. But the excitement next week is elsewhere. I’m going to stay indoors, meet with friends, partners, customers and other AX aficionados. I’m going to be part of the excitement of Dynamics AX 2012. I hope you are too?&lt;/p&gt;  &lt;p&gt;Bon voyage!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10236149" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mfp/archive/tags/Conferences/">Conferences</category></item><item><title>Session list for AX Technical Conference in Nice 2011</title><link>http://blogs.msdn.com/b/mfp/archive/2011/09/28/session-list-for-ax-technical-conference-in-nice-2011.aspx</link><pubDate>Wed, 28 Sep 2011 06:44:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10217544</guid><dc:creator>msmfp</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10217544</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/09/28/session-list-for-ax-technical-conference-in-nice-2011.aspx#comments</comments><description>&lt;p&gt;The session list is now available - 3 key notes, 60 break-out sessions and 24 chalk'n talks:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/dynamics/DynamicsAXtechnicalconference2011/Content.aspx"&gt;http://www.microsoft.com/dynamics/DynamicsAXtechnicalconference2011/Content.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Remember to sign-up.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10217544" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mfp/archive/tags/Conferences/">Conferences</category></item><item><title>Dynamics AX EMEA Technical Conference 2011</title><link>http://blogs.msdn.com/b/mfp/archive/2011/09/21/dynamics-ax-emea-technical-conference-2011.aspx</link><pubDate>Wed, 21 Sep 2011 09:30:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10214634</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10214634</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/09/21/dynamics-ax-emea-technical-conference-2011.aspx#comments</comments><description>&lt;p&gt;&lt;a style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" href="http://www.microsoft.com/dynamics/dynamicsaxtechnicalconference2011/"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://www.microsoft.com/dynamics/dynamicsaxtechnicalconference2011/images/AXTechConference_04.png" width="798" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h1&gt;See the future of Microsoft Dynamics ERP. Learn more about Microsoft Dynamics AX 2012, the most innovative ERP release to date.&lt;/h1&gt;  &lt;p&gt;With &lt;a href="http://www.microsoft.com/en-us/dynamics/products/ax-2012-launch.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Microsoft Dynamics AX 2012&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; entering the market, Microsoft introduces an innovative and Powerfully Simple ERP solution. At this Microsoft Dynamics AX - Technical Conference Fall Edition, you can jumpstart your product and technology learning in MS Dynamics AX 2012. By attending this three day event, you’ll benefit from new rich functional and technical content as well as best practices delivered by Microsoft leaders and technology experts.&lt;/p&gt;  &lt;p&gt;This is a unique chance to learn, get inspired, and see how Microsoft Dynamics AX 2012 can help you provide innovative solutions for your business.&lt;/p&gt;  &lt;p&gt;Whether you’re a customer or a partner, you will find content and benefit from learning’s to help you develop for and implement Microsoft Dynamics AX 2012.&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;&lt;a href="http://www.microsoft.com/dynamics/dynamicsaxtechnicalconference2011/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://www.microsoft.com/dynamics/DynamicsAXtechnicalconference2011/images/AXTechConference_05.png" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Two AX technical conferences two within one year! What a treat! And this time in the beautiful surroundings of southern France. I can hardly wait. The first technical conference this year was in January in Redmond. If you missed it, this is your chance – if you are unsure if it is worthwhile, here are my posts from the January event – trying to capture the atmosphere and depth of the knowledge shared:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/01/17/its-today.aspx." target="_blank"&gt;It is today!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/01/18/the-generational-shift-in-erp.aspx" target="_blank"&gt;The generational shift in ERP&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/01/19/x-a-mananged-language.aspx" target="_blank"&gt;X++ A managed language&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/01/21/getting-to-ax-2012.aspx" target="_blank"&gt;Getting to Microsoft Dynamics AX 2012&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/04/04/microsoft-dynamics-ax-technical-conference-recordings.aspx" target="_blank"&gt;Microsoft Dynamics AX Technical Conference Recordings&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This time I’ll be presenting &lt;a href="http://blogs.msdn.com/b/mfp/archive/2009/09/23/introducing-ax-models-part-1.aspx" target="_blank"&gt;Models&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/04/19/seeing-is-believing-ax2012-developer-workspace.aspx" target="_blank"&gt;MorphX improvements&lt;/a&gt;, such as the &lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/05/09/seeing-is-believing-ax2012-x-editor.aspx" target="_blank"&gt;new X++ editor&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I hope to see you there. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10214634" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mfp/archive/tags/Conferences/">Conferences</category></item><item><title>AX 2012 Meta Model</title><link>http://blogs.msdn.com/b/mfp/archive/2011/09/05/ax-2012-meta-model.aspx</link><pubDate>Mon, 05 Sep 2011 15:25:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10206360</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10206360</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/09/05/ax-2012-meta-model.aspx#comments</comments><description>&lt;p&gt;Like previous releases Microsoft Dynamics AX 2012 provides a model driven development platform. It enables us developers to create a business application using predefined types of building blocks (aka. concepts) – each targeted a specific purpose. To be an effective X++ developer you need to know the building blocks and how they relate. &lt;/p&gt;  &lt;p&gt;What is new in the meta model for AX 2012? Quite a lot – here is a short summary:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;SSRS Report&lt;/strong&gt; is added, it will replace &lt;strong&gt;Reporting Library &lt;/strong&gt;and &lt;strong&gt;Report&lt;/strong&gt;.      &lt;br /&gt;Create an &lt;strong&gt;SSRS Report&lt;/strong&gt; for any reporting needs.&lt;/li&gt;    &lt;li&gt;Parts are introduced: &lt;strong&gt;Info Part&lt;/strong&gt;, &lt;strong&gt;Form Part&lt;/strong&gt;, &lt;strong&gt;Cue &lt;/strong&gt;and &lt;strong&gt;Cue Group&lt;/strong&gt;.      &lt;br /&gt;These all provides additional information that can be hosted on a form. An &lt;strong&gt;Info Part &lt;/strong&gt;provides a simple grid, a &lt;strong&gt;Form Part &lt;/strong&gt;can host a form inside a form, a &lt;strong&gt;Cue&lt;/strong&gt; provides visual KPIs.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Service &lt;/strong&gt;and &lt;strong&gt;Service Group       &lt;br /&gt;&lt;/strong&gt;Provides capabilities for exposing X++ classes as .NET services – wsdl style.&lt;/li&gt;    &lt;li&gt;New security concepts: &lt;strong&gt;Role&lt;/strong&gt;, &lt;strong&gt;Duty&lt;/strong&gt;, &lt;strong&gt;Privilege, Security Policy, Code Permission &lt;/strong&gt;and &lt;strong&gt;Process Cycle.       &lt;br /&gt;&lt;/strong&gt;These are all part of the new role based security framework. Notice the meta model contains Role – allowing the developer to specify predefined roles.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Security key &lt;/strong&gt;is deprecated&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visual Studio Project&lt;/strong&gt; is added      &lt;br /&gt;You can now have VS projects (like C# and VB) in the meta model – yes, they support layer based customization and rapid deployment like all other meta model concepts.&lt;/li&gt;    &lt;li&gt;…. and much more     &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The diagram below shows the most common relationships between concepts. Each arrow should be read as “using”. For example:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Menu &lt;/strong&gt;uses &lt;strong&gt;Menu Item&lt;/strong&gt;. A menu has a collection menu items.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Menu Item &lt;/strong&gt;uses &lt;strong&gt;Form&lt;/strong&gt;. A menu item references a form. This form is launched when the user clicks the menu item.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Form &lt;/strong&gt;uses &lt;strong&gt;Table&lt;/strong&gt;. A form uses a table as a data source.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Table &lt;/strong&gt;uses &lt;strong&gt;Extended Data Type&lt;/strong&gt;. The fields on a table is defined using extended data types.      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I have printed the below diagram, and pinned it to a wall in my office. It serves me as a reference when I navigate the new areas of AX 2012. I hope it can do the same for you. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/8322.AX6_5F00_36DEA677.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AX6" border="0" alt="AX6" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/6675.AX6_5F00_thumb_5F00_46320886.jpg" width="1024" height="670" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#a5a5a5"&gt;Click the image for a larger version&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;You might also want to look at &lt;a href="http://blogs.msdn.com/b/mfp/archive/2007/12/12/dynamics-ax-4-0-meta-model.aspx"&gt;the meta model for AX 4&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10206360" width="1" height="1"&gt;</description></item><item><title>Dynamics AX 2012 – The compiler output window</title><link>http://blogs.msdn.com/b/mfp/archive/2011/08/31/dynamics-ax-2012-the-compiler-output-window.aspx</link><pubDate>Tue, 30 Aug 2011 23:30:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10203230</guid><dc:creator>msmfp</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10203230</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/08/31/dynamics-ax-2012-the-compiler-output-window.aspx#comments</comments><description>&lt;p&gt;This is a prominent and frequently used form in the developer workspace – so shouldn’t it be sleek and user friendly?&lt;/p&gt;  &lt;p&gt;Here is an annotated screenshot of the final result (click the image for a large version). What do you think? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/7416.compileroutput_5F00_61D66A4D.png" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="compileroutput" border="0" alt="compileroutput" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/6724.compileroutput_5F00_thumb_5F00_0F578A11.png" width="1542" height="463" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sometimes the value added by a garage-project becomes so obvious to everyone, that it must be productized. This is an example. This was literally the last developer feature that made it into AX 2012. Working in an environment where last minute changes to scope is possible despite the project’s (huge) size and extensive engineering processes is another thing I love about my job.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10203230" width="1" height="1"&gt;</description></item><item><title>Development training available for Microsoft Dynamics AX 2012</title><link>http://blogs.msdn.com/b/mfp/archive/2011/08/30/development-training-available-for-microsoft-dynamics-ax-2012.aspx</link><pubDate>Tue, 30 Aug 2011 15:54:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10202863</guid><dc:creator>msmfp</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10202863</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/08/30/development-training-available-for-microsoft-dynamics-ax-2012.aspx#comments</comments><description>&lt;p&gt;The development training has just been made available for AX 2012. Here are the courses:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;80303: Development I in Microsoft Dynamics® AX 2012 for Development (ILT and e-Learning)&lt;/li&gt;    &lt;li&gt;80304: Development II in Microsoft Dynamics® AX 2012 for Development (ILT and e-Learning)&lt;/li&gt;    &lt;li&gt;80312: Development III in Microsoft Dynamics® AX 2012 for Development (ILT)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The course material is available on &lt;a href="https://mbs.microsoft.com/partnersource/default"&gt;PartnerSource&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10202863" width="1" height="1"&gt;</description></item><item><title>Developing Solutions in a Shared AOS Development Environment</title><link>http://blogs.msdn.com/b/mfp/archive/2011/08/11/developing-solutions-in-a-shared-aos-development-environment.aspx</link><pubDate>Thu, 11 Aug 2011 09:40:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10194788</guid><dc:creator>msmfp</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10194788</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/08/11/developing-solutions-in-a-shared-aos-development-environment.aspx#comments</comments><description>&lt;p&gt;One often asked question is how to configure a development with multiple developers. The options span from having a silo for each developer where they host AX, AOS, SQL, etc. locally, to a shared setup where each developer only needs an AX client. These options can be combined with the use of a version control system, such as Team Foundation Server or MorphX VCS. Further the capabilities and infrastructure requirements are quite different among the options.&lt;/p&gt;  &lt;p&gt;To describe the options and their capabilities Microsoft has published: &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26919"&gt;Microsoft Dynamics AX 2012 White Paper: Developing Solutions in a Shared AOS Development Environment&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first paragraph of the white paper is:&lt;/p&gt;  &lt;p&gt;&lt;font color="#d19049"&gt;Developing for Microsoft Dynamics ®AX &lt;strong&gt;is best done &lt;/strong&gt;in an environment where &lt;strong&gt;each developer has a full Microsoft Dynamics AX&lt;/strong&gt; installation that runs &lt;strong&gt;on a single box&lt;/strong&gt;. The developer artifacts are synchronized by using one of the supported version control systems in Microsoft Dynamics AX, and solutions are produced by running a build of the sources in the version control system (VCS).(Emphasis mine).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The rest of the white paper is describing consequences of using other configurations, such as a shared AOS. While there are multiple desirable traits of a shared environment, for example simpler infrastructure and the ability for developers to quickly change project, these benefits come at a cost. I encourage you to make an informed decision when selecting your configuration based on your needs and this whitepaper.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10194788" width="1" height="1"&gt;</description></item><item><title>Microsoft Dynamics AX 2012 is here!</title><link>http://blogs.msdn.com/b/mfp/archive/2011/08/01/microsoft-dynamics-ax-2012-is-here.aspx</link><pubDate>Mon, 01 Aug 2011 17:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10191912</guid><dc:creator>msmfp</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10191912</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/08/01/microsoft-dynamics-ax-2012-is-here.aspx#comments</comments><description>&lt;p&gt;Today we announced the public availability of Microsoft Dynamics AX 2012.&lt;/p&gt;
&lt;h2&gt;Microsoft Dynamics AX 2012: Powerfully simple&lt;/h2&gt;
&lt;p&gt;Microsoft Dynamics AX 2012 empowers people to anticipate and embrace change, enabling businesses to thrive.&lt;/p&gt;
&lt;h3&gt;Powerful&lt;/h3&gt;
&lt;p&gt;A powerful foundation that is purpose-built for five industries: manufacturing, distribution, retail, services, and public sector, along with comprehensive, core ERP functionality for financial, human resources and operations management. All packaged in a single global solution thus giving customers a rapid time to value.&lt;/p&gt;
&lt;h3&gt;Agile&lt;/h3&gt;
&lt;p&gt;Agility through a set of unified natural models that serve as a library of business processes reflecting real-world situations. This enables customers to easily modify their organizations and processes to meet their changing business needs.&lt;/p&gt;
&lt;h3&gt;Simple&lt;/h3&gt;
&lt;p&gt;Simplicity through an easy-to-use solution offering access to information that is relevant to the work at hand. The familiar Microsoft Office user interface drives adoption and the enhanced business intelligence (BI) capabilities help customers uncover fresh insights that can lead to faster and more informed decision making.&lt;/p&gt;
&lt;p&gt;For more information see:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/dynamics/products/ax-2012-launch.aspx"&gt;http://www.microsoft.com/en-us/dynamics/products/ax-2012-launch.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10191912" width="1" height="1"&gt;</description></item><item><title>Microsoft Dynamics AX 2012 Virtual Launch Event</title><link>http://blogs.msdn.com/b/mfp/archive/2011/07/28/microsoft-dynamics-ax-2012-virtual-launch-event.aspx</link><pubDate>Thu, 28 Jul 2011 08:00:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10190618</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10190618</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/07/28/microsoft-dynamics-ax-2012-virtual-launch-event.aspx#comments</comments><description>&lt;p&gt;Attend the virtual launch event to: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Hear from Microsoft executives &lt;/li&gt;    &lt;li&gt;See product demos &lt;/li&gt;    &lt;li&gt;Listen to customers and partners &lt;/li&gt;    &lt;li&gt;Watch product tours, based on your business, industry, or role &lt;/li&gt;    &lt;li&gt;Collaborate with your peers through feeds and community forums &lt;/li&gt;    &lt;li&gt;Chat with product experts and sales associates &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;Make sure to register before the event.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/dynamics/ax2012launch"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://sharepoint/sites/MicrosoftDynamicsERPLaunchSite/AX2012/BOM%20Final/Templates/Email%20Signature%20v1.jpg" width="500" height="111" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10190618" width="1" height="1"&gt;</description></item><item><title>Seeing is believing - AX 2012 Creating an ISV Model</title><link>http://blogs.msdn.com/b/mfp/archive/2011/07/26/seeing-is-believing-ax2012-creating-an-isv-model.aspx</link><pubDate>Tue, 26 Jul 2011 14:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10124865</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10124865</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/07/26/seeing-is-believing-ax2012-creating-an-isv-model.aspx#comments</comments><description>&lt;p&gt;This sneak preview shows how an ISV can create a solution in Microsoft Dynamics AX 2012, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to create a new model in AX.&lt;/li&gt;
&lt;li&gt;Why element IDs are not a concern anymore.&lt;/li&gt;
&lt;li&gt;Protecting the solution using a licensing scheme.&lt;/li&gt;
&lt;li&gt;Generating a signed model file for deployment.&lt;/li&gt;
&lt;li&gt;How to generate licenses for customers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;iframe style="height: 288px; width: 512px;" src="http://channel9.msdn.com/Blogs/mfp/AX2012-Creating-an-ISV-Model/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Blogs/mfp/AX2012-Creating-an-ISV-Model"&gt;This post is also available on Channel 9.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've attached the small webApplication I used to demo the capabilites as a Visual Studio 2010 project.&lt;/p&gt;
&lt;p&gt;THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10124865" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-12-48-65/WebApplication1.zip" length="591547" type="application/x-zip-compressed" /></item><item><title>Microsoft Dynamics AX 2012 has achieved the “Compatible with Windows 7” designation</title><link>http://blogs.msdn.com/b/mfp/archive/2011/07/26/microsoft-dynamics-ax-2012-has-achieved-the-compatible-with-windows-7-designation.aspx</link><pubDate>Tue, 26 Jul 2011 13:53:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10189882</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10189882</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/07/26/microsoft-dynamics-ax-2012-has-achieved-the-compatible-with-windows-7-designation.aspx#comments</comments><description>&lt;div class="float"&gt;&lt;a href="http://www.microsoft.com/windows/compatibility/windows-7/Controls/ContentPanes/"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/8787.clip_5F00_image001_5F00_681CBD39.png" width="53" height="64" /&gt;&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Microsoft Dynamics AX 2012 has successfully passed compatibility testing and has achieved the “Compatible with Windows 7” designation for both 64-bit and 32-bit Windows 7. The Microsoft Windows Logo program defines a set of compatibility test cases covering areas of installation, security and stability. Microsoft Dynamics AX 2012 is now listed among the products that have been certified on the &lt;a href="http://www.microsoft.com/windows/compatibility/windows-7/en-us/Details.aspx?type=Software&amp;amp;p=Microsoft%20Dynamics%20AX%202012&amp;amp;v=Microsoft&amp;amp;uid=&amp;amp;l=en&amp;amp;pf=0&amp;amp;pi=0&amp;amp;s=dynamics%20ax%202012&amp;amp;os=64-bit"&gt;Microsoft Windows 7 compatibility center site&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10189882" width="1" height="1"&gt;</description></item><item><title>Uptaking installation specific IDs</title><link>http://blogs.msdn.com/b/mfp/archive/2011/07/19/uptaking-installation-specific-ids.aspx</link><pubDate>Tue, 19 Jul 2011 11:46:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10187850</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10187850</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/07/19/uptaking-installation-specific-ids.aspx#comments</comments><description>&lt;p&gt;In Microsoft Dynamics AX 2012 we have solved &lt;a href="http://blogs.msdn.com/b/mfp/archive/2008/05/21/solving-the-element-id-problem.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;the element id problem&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. The solution is outlined in this &lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/07/11/the-solution-to-the-element-id-problem.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;post&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. The solution consists of major changes both having an impact on existing AX 2009 and AX 4 solutions:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Element IDs (like class ID and table ID) are now 32 bit. &lt;/li&gt;    &lt;li&gt;Element IDs are installation specific. The same class will have different IDs on different installations. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;When making IDs 32 bit we had to deprecate the TypeId() function. TypeId() took one argument the name of an Base Enum or Extended Data Type. And it returned an integer value, where the upper 16 bits were the ID, and the lower 16 bits denoted if the type was a Base Enum or an Extended Data Type. For example: TypeId(MyEDT) returned 0xC351 000B = (50001 &amp;lt;&amp;lt; 16)+11. Naturally such a function wouldn't work with 32 bit IDs. It turned out, that we didn't need a replacement for the TypeId() function, as the name of Base Enums and Extended Data Types are unique across both types. The solution then simply become to update the framework methods that accepted the combined ID from TypeId() with a new name based implementation. And to make it better, it turned out that usage of TypeId() was restricted to very few frameworks. The table below shows a complete list of the usage patterns of TypeId() we found in the SYS layer, and how we updated them. When you are upgrading the compiler will detect all reference to TypeId() for you.&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 510px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #81bcfe; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;strong&gt;&lt;font size="2"&gt;Dynamics AX 4/2009              Dynamics AX 2012&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;// Dialog related&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;// When adding fields to a dialog, the types are now identified by Name – not ID.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;dialog.addField(typeid(MyEdt));             dialog.addField(extendedTypeStr(MyEdt)); 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;dialog.addField(typeid(MyEnum));            dialog.addField(enumStr(MyEdt)); 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;dialog.addFieldValue(typeid(MyEdt));        dialog.addFieldValue(extendedTypeStr(MyEdt)); 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;dialog.addFieldValue(typeid(MyEnum));       dialog.addFieldValue(enumStr(MyEdt)); 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DialogField(dialog, typeId(MyEdt));     &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DialogField(dialog, extendedTypeStr(MyEdt)); 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DialogField(dialog, typeId(MyEnum));    &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DialogField(dialog, enumStr(MyEnum)); 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;dialog.addField(types::&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;);             dialog.addField(identifierStr(str)); 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;dialog.addFieldValue(types::&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;);        dialog.addFieldValue(identifierStr(str)); 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DialogField(dialog, types::&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;);     &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DialogField(dialog, identifierStr(str)); 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;// Dict related&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;DictField.extendedTypeID() == typeid(MyEdt) DictField.typeID() == extendedTypeNum(MyEdt) 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;DictType.extendedTypeID() == typeid(MyEdt)  DictType.id() == extendedTypeNum(MyEdt) 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;// Args related&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;args.parmEnumType(typeId(myEnum))           args.parmEnumType(enumNum(myEnum)) 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;//Type related&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;typeId2Type(typeId(myEdt))                  typeName2Type(extendedTypeStr(myEdt)) 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;// Other patterns with better alternatives&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #008000"&gt;// These alternatives can also be used in AX 4 / 2009&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;typeId(myEdt) &amp;gt;&amp;gt; 16                         extendedTypeNum(MyEdt) 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;typeId(myEnum) &amp;gt;&amp;gt; 16                        enumNum(MyEnum) 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;typeId2ExtendedTypeId(typeId(myEdt))        extendedTypeNum(MyEdt) &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;As element IDs now are installation specific then we need to provide enough information for data export/import to convert the data correctly between the source and target system. There are 3 things to do: &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do not store IDs in containers, 
    &lt;br /&gt;If IDs are stored in a non-relational format (like a container), then data export/import cannot identify them, and the IDs will be imported as-is; which means they will resolve incorrectly on the target system. A best practice rule is available to identify IDs in containers. &lt;/li&gt;

  &lt;li&gt;Use the right Extended Data Types on your fields (TableId, FieldId, ClassId, etc.) 
    &lt;br /&gt;Data export will convert data using these Extended Data Types into a format that can be correctly resolved on the target system. &lt;/li&gt;

  &lt;li&gt;For fields containing field IDs &lt;/li&gt;
&lt;/ol&gt;

&lt;table border="0" cellspacing="0" cellpadding="0" width="500"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="37"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="295"&gt;
        &lt;li&gt;
          &lt;ol&gt;&lt;!--StartFragment--&gt;
            &lt;li&gt;Set the RelatedTable property, OR &lt;/li&gt;

            &lt;li&gt;Create a new field group with the field referencing the table and the field referencing the field. &lt;/li&gt;
&lt;!--EndFragment--&gt;&lt;/ol&gt;
        &lt;/li&gt;
For data export/import to be able to correctly convert a field ID, it is required that you specify which table the field belongs to. If the field always belongs to the same table, you can use the RelatedTable property to specify it (3.1), OR if the field ID is referencing a field in an arbitrary table, you need to link the table reference and the field reference to each other. You do this by creating a new field group containing the two fields (3.2)&lt;/td&gt;

      &lt;td valign="top" width="166"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/8304.TableAndFieldGroupRelation_5F00_2B5AF6A9.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="TableAndFieldGroupRelation" border="0" alt="TableAndFieldGroupRelation" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-67-83-metablogapi/1351.TableAndFieldGroupRelation_5F00_thumb_5F00_30C9674D.png" width="165" height="342" /&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10187850" width="1" height="1"&gt;</description></item><item><title>The solution to the element ID problem</title><link>http://blogs.msdn.com/b/mfp/archive/2011/07/11/the-solution-to-the-element-id-problem.aspx</link><pubDate>Mon, 11 Jul 2011 12:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10185163</guid><dc:creator>msmfp</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10185163</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/07/11/the-solution-to-the-element-id-problem.aspx#comments</comments><description>&lt;p&gt;About 3 years ago heading into the design phase of AX 2012&amp;nbsp;I wrote the &lt;a href="http://blogs.msdn.com/b/mfp/archive/2008/05/21/solving-the-element-id-problem.aspx"&gt;Solving the element ID problem&lt;/a&gt; post.&amp;nbsp;As the post describes element IDs in AX have constituted an inherent problem in all past AX releases. The problem&amp;nbsp;is so fundamental that when I met with the original Axapta architects&amp;nbsp;(at the Damgaard Data 25 years reunion party) they considered it insolvable without&amp;nbsp;a major rewrite. In AX 2012 we did solve the problem. This post outlines the solution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Design pillars&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before I dive into the solution these are our design pillars:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Backward compatible. We cannot introduce any inconsistencies in&amp;nbsp;business data&amp;nbsp;or meta data.&lt;/li&gt;
&lt;li&gt;Minimal impact on customizations. The uptake of required changes must be minimal and easily absorbed when upgrading to AX 2012.&lt;/li&gt;
&lt;li&gt;Completed by AX 2012 RTM.&amp;nbsp;We do not desire a staged multi-release solution to this problem.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;The solution part&amp;nbsp;A - 32 bit IDs &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First we needed to break the&amp;nbsp;upper limit of 60.000 IDs. We decided to make IDs 32 bit (used to be 16 bit). The primary deciding factor for int32 (and not int64 or guid or str) was that there would be no X++ uptake cost of using an int32, as the int data type in X++ already is a 32 bit integer - in other words all X++ code (and table fields) handling/containing IDs would simply just continue to work untouched. In the SYS layer we have &amp;gt;500 fields containing IDs. Not having to convert these (e.g. to GUIDs), and provide upgrade scripts is highly desirable.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As&amp;nbsp;the ID for table fields already were 32 bit (16 bit for the element ID and 16 bit for the array index) we decided to keep the&amp;nbsp;field IDs&amp;nbsp;as is. In other words the element ID for fields are still just 16 bit. Given these are scoped by the table, there are no upper limit concerns involved here.&lt;/p&gt;
&lt;p&gt;Besides a lot of kernel refactoring there was one significant X++ impact. The intrinsic function TypeID had to be deprecated. It returned a 32 bit integer where the lower 16 bits contained the Type (either Types::Enum or Types:UserType), and the upper 16 bits the element ID. This function&amp;nbsp;was primarily&amp;nbsp;used in relation to the Dialog framework. The solutionwas to change the dialog framework to use the &lt;em&gt;name&lt;/em&gt; of the type instead of the bit mangled integer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The solution part B - Installation specific IDs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To solve the uniqueness problem, we need to ensure that two (or more) solutions can be implemented independently, and installed on the same system without any ID conflicts. In AX 2009 the assignment of IDs happens at creation time (i.e. when the element is created in the AOT). In AX 2012 we are deferring the assignment of IDs to installation time. This means that the model file containing the elements does &lt;strong&gt;not&lt;/strong&gt; contain any element&amp;nbsp;IDs. The IDs are being assigned when the model is imported by AxUtil. The consequence of this&amp;nbsp;is that the same class will have different IDs on different installations. We call it "Installation specific IDs".&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Caution: Deleting a model and reimporting it (or a newer version of it) will randomize IDs and thus cause data integrity issues. The right procedure when upgrading a model is to &lt;strong&gt;not delete&lt;/strong&gt; the model, but just import on top of the existing model.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Given the requirement to be backwards compatible we must ensure that elements released in AX 2009 (and AX 4) retained their IDs. To satisfy this requirement we introduced a new int property on all ID based elements: LegacyID, and assigned it the ID value from past releases. Now we have captured the ID the element used to have in a simple (and editable) property, and we can use it during import.&lt;/p&gt;
&lt;p&gt;As it is vital that an element retain its ID across releases, we need to find a way to support rename scenarios.&amp;nbsp;Consider the scenario where a new AX 2012 class is renamed in AX7. As the class is new it will have an installation specific ID; once the AX7 model is being imported we need to retain the ID - but if the only match criteria is the class name, and the class has been renamed, then we cannot fulfill the requirement. To solve this we introduced a new &lt;a href="http://en.wikipedia.org/wiki/Guid"&gt;guid &lt;/a&gt;property on all ID based elements and all root-elements: Origin. This property is set when an element is created, and remains static for the lifetime of the elements. It is the element's fingerprint.&amp;nbsp; Besides enabling&amp;nbsp;invariant IDs across releases for renamed elements the Origin property has proven valuable in data export scenarios, and rename scenarios&amp;nbsp;of newly fine grained meta data (like forms).&amp;nbsp;This will be covered by another blog post soon.&lt;/p&gt;
&lt;p&gt;AxUtil will during import assign IDs based on these rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If an&amp;nbsp;element already exists with the same Origin, then replace the element and reuse its ID -&amp;nbsp;else&lt;/li&gt;
&lt;li&gt;If an element already exists with the same Type, Name and ParentID, then replace the element and reuse its ID - else&lt;/li&gt;
&lt;li&gt;If the import element has a Legacy ID, and the LegacyId is available on the target system, then add the element setting ID = LegacyID - else&lt;/li&gt;
&lt;li&gt;Assign a new installation specific ID from a guaranteed free range that will not collide with any LegacyIDs&amp;nbsp;(&amp;gt;60000 for fields, &amp;gt;1000000 for all other elements)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Notice: IDs are no longer tied to layers, e.g. Layers no longer have an ID range. Nor do you need the Team&amp;nbsp;Server&amp;nbsp;(aka. ID Server) anymore when using&amp;nbsp;a version control system.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Data can be exported from one installation to another. It is vital that any ID on the source&amp;nbsp;system is mapped to the corresponding ID on the target system. The data import feature has been improved so all columns containing element&amp;nbsp;IDs will be converted automatically (given they are using the proper extended data type). However;&amp;nbsp;we also needed to address eventual IDs in blobs (containers). Data import and model import has no insights into the structure of the blobs. The only solution to this is to replace all ID-based element references in blobs with name-based references. We have done this for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All kernel classes returning a container - e.g. Query.pack(), QueryRun.pack(), Map.pack(), Set.pack() etc.&lt;/li&gt;
&lt;li&gt;All X++ classes packing element IDs (typically Runbase derived classes). A best practice rule is in place to detect these.&lt;/li&gt;
&lt;li&gt;All references in meta data - e.g. when a form data source refers to a table.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Wrapping up&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To solve the ID problem we had to introduce two new id properties - LegacyID and Origin. This may sound like a step in the wrong direction; however, the nature of these new properties are&amp;nbsp;less restricting than that&amp;nbsp;of the element ID property. In fact the only restriction on the new properties is that&amp;nbsp;Origin must be unique - given Origin is&amp;nbsp;a guid that is easy to satisfy. This restriction is enforced at the database level.&amp;nbsp;&amp;nbsp;All in all the changes outline above has been a&amp;nbsp;significant investment to solve this inherent problem in the least intrusive way possible.&amp;nbsp;Yet it has an impact. &lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/07/19/uptaking-installation-specific-ids.aspx"&gt;My next blog post&lt;/a&gt; will describe the impact.&lt;/p&gt;
&lt;p&gt;The most important message is: If you are a new Microsoft Dynamics AX 2012 customer or partner, you do not need to worry (or care) about element IDs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10185163" width="1" height="1"&gt;</description></item><item><title>Microsoft Dynamics AX 2012 is RTM! </title><link>http://blogs.msdn.com/b/mfp/archive/2011/07/01/microsoft-dynamics-ax-2012-is-rtm.aspx</link><pubDate>Fri, 01 Jul 2011 06:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10185106</guid><dc:creator>msmfp</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10185106</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/07/01/microsoft-dynamics-ax-2012-is-rtm.aspx#comments</comments><description>&lt;div class="float"&gt;&lt;img src="http://blogs.msdn.com/photos/mfp/images/657700/original.aspx" /&gt;&lt;/div&gt;
&lt;p&gt;Microsoft Dynamics AX 2012 is RTM. This means final build of the product has left the R&amp;amp;D team and will soon be general available. Today, you can already access MSDN documentation for&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/aa496079.aspx"&gt;Microsoft Dynamics AX 2012 for Developers&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My favorite features in AX 2012:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2009/10/08/introducing-ax-models-part-3.aspx"&gt;Models - multiple solutions in the same layer. &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/01/19/x-a-mananged-language.aspx"&gt;X++ code running as IL.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/mfp/archive/2011/05/09/seeing-is-believing-ax2012-x-editor.aspx"&gt;New X++ editor.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Table inheritance - just like for classes.&lt;/li&gt;
&lt;li&gt;Layer based managed code customization - bring your C# project into the AOT.&lt;/li&gt;
&lt;li&gt;Role based user interface - beautifully simple and&amp;nbsp;simply beautiful.&lt;/li&gt;
&lt;li&gt;New security model - with 80 predefined roles.&lt;/li&gt;
&lt;li&gt;Online help server - allowing customized help contents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I'm proud&amp;nbsp;to have been a part of the extraordinary team building this extraordinary product, executing on a&amp;nbsp;3 year plan and delivering on time.&amp;nbsp;Since you are reading my blog, I&amp;nbsp;feel confident&amp;nbsp;this product will&amp;nbsp;have a positive impact on your professional life. Starting today!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10185106" width="1" height="1"&gt;</description></item><item><title>TechTalk at MDCC - Research in Software Engineering</title><link>http://blogs.msdn.com/b/mfp/archive/2011/06/15/techtalk-at-mdcc-research-in-software-engineering.aspx</link><pubDate>Wed, 15 Jun 2011 11:44:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10174773</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10174773</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/06/15/techtalk-at-mdcc-research-in-software-engineering.aspx#comments</comments><description>&lt;p&gt;Recently; Nikolaj Bj&amp;oslash;rner (Senior Researcher, Microsoft Research) shared&amp;nbsp;interesting insights and perspectives on software engineering at &lt;a href="http://www.microsoft.com/da-dk/mdcc/default.aspx"&gt;MDCC&lt;/a&gt;. Getting a regularly injection of food-for-thought is something I appreciate about my job. And as always... &lt;a href="http://www.microsoft.com/da-dk/mdcc/Jobs/Join_mdcc.aspx"&gt;we are hiring&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;iframe scrolling="no" frameborder="0" src="http://channel9.msdn.com/posts/TechTalk-Research-in-Software-Engineering/player?w=512&amp;amp;h=288" style="height: 288px; width: 512px;"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;The Research in Software Engineering (RiSE) group at Microsoft Research in Redmond works on several dimensions related to software engineering, including logical foundations, program verification, testing, analysis, empirical software analysis, compiler tools, program optimization, synthesis and model-based software design. This talk describes several of the RiSE groups activities, which are roughly three-pronged: divided between Microsoft product groups, with external developers and with academic interactions.&lt;/p&gt;
&lt;p&gt;A significant part of our work involves tool building. The http://rise4fun.com web-site provides an interactive environment where several of the tools developed in RiSE are showcased through interactive demonstrations. I will walk through several of these tools during the talk showing by example our work on graph drawing (AGL), satisfiability modulo theories theorem proving (Z3), program verification (Boogie and VCC), test-case generation using dynamic symbolic execution (Pex), model-based design (FORMULA), symbolic analysis of regular expressions (Rex) and transducers (Bek). I will also describe and present a new tool TouchStudio (http://touchstudioapp.com) that brings a radically new software development environment to and on the Windows Phone.&lt;/p&gt;
&lt;p&gt;It is a new programming environment and language built around the new reality of mobile devices with advanced touchscreens, sensors and cloud connectivity.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10174773" width="1" height="1"&gt;</description></item><item><title>Seeing is believing - AX 2012 Uninstalling the Upgrade model</title><link>http://blogs.msdn.com/b/mfp/archive/2011/06/07/seeing-is-believing-ax-2012-uninstalling-the-upgrade-model.aspx</link><pubDate>Tue, 07 Jun 2011 11:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10128949</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10128949</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/06/07/seeing-is-believing-ax-2012-uninstalling-the-upgrade-model.aspx#comments</comments><description>&lt;p&gt;This short recording shows an alternative appliance of models. If you have already upgraded, wouldn't it be nice to not see all the "DEL_" tables, fields and indexes in the AOT? With models you can do exactly that. All the upgrade-only artifacts are stored in a separate model, and you can simply uninstall it to rid your system of the several thousand elements you really don't care about (anymore). &lt;/p&gt;
&lt;p&gt;&lt;iframe scrolling="no" frameborder="0" src="http://channel9.msdn.com/Blogs/mfp/Microsoft-Dynamics-AX-2012-Uninstalling-the-Upgrade-model/player?w=512&amp;amp;h=288" style="height: 288px; width: 512px;"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;At the Dynamics AX 2011 Technical Conference I was asked in the hallway: "Was it a boy or girl?" I guess I look pretty perplexed, so the follow up was: "Since your blog has been quiet most of the fall, I assumed you were on paternity leave." It is true that I haven't blogged much in the fall of 2010, it is also true that I have been tending to my baby - but it was neither a boy nor a girl. It was Microsoft Dynamics AX 2012.&amp;nbsp;The feature showcased in this video is what&amp;nbsp;I spent most of my awake time on in October and November 2010.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Blogs/mfp/Microsoft-Dynamics-AX-2012-Uninstalling-the-Upgrade-model"&gt;This video is also available on Channel 9.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10128949" width="1" height="1"&gt;</description></item><item><title>"Internal error 25" causes and solutions</title><link>http://blogs.msdn.com/b/mfp/archive/2011/05/27/quot-internal-error-25-quot-causes-and-solutions.aspx</link><pubDate>Fri, 27 May 2011 18:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10169174</guid><dc:creator>msmfp</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10169174</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/05/27/quot-internal-error-25-quot-causes-and-solutions.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;This article applies to Microsoft Dynamics AX 2012.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The error message &amp;rdquo;Internal error 25&amp;rdquo; is a generic error message that occurs when one type is trying to be converted into another incompatible type at runtime.&lt;/p&gt;
&lt;p&gt;This error can be triggered in a myriad of different situations. However; there are three likely root causes to this.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;1. A programmatic error&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;In the ideal world the X++ compiler would detect any illegal X++ construct, that could lead to conversion between incompatible types. There are unfortunately a few situations where the X++ compiler doesn&amp;rsquo;t have enough information to do so. In X++ the type &lt;span style="font-family: courier new,courier;"&gt;anytype &lt;/span&gt;can be used to denote any type in the system. Whenever the compiler sees a variable, parameter or return type of this type, it will not perform any type checking.&lt;br /&gt;&lt;br /&gt;This means that the code using the &lt;span style="font-family: courier new,courier;"&gt;anytype &lt;/span&gt;type must explicitly verify the variable/parameter/return type is compatible with how it is being used. Failing to do so can lead to an &amp;ldquo;Internal error 25&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Consider this code:&lt;/p&gt;
&lt;div class="xpp" style="font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"&gt;&lt;ol&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; provokeInternalError25&lt;span style="color: #000000;"&gt;(&lt;/span&gt;Args _args&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&amp;nbsp; &amp;nbsp; info&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;strfmt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'The current folder is %1'&lt;/span&gt;&lt;span style="color: #00007f;"&gt;,&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;any2str&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;System.&lt;span style="color: #000000;"&gt;IO&lt;/span&gt;.&lt;span style="color: #000000;"&gt;Directory&lt;/span&gt;&lt;span style="color: #00007f;"&gt;::&lt;/span&gt;&lt;span style="color: #000000;"&gt;GetCurrentDirectory&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;It will result in an &amp;ldquo;Internal error 25&amp;rdquo;. The function &lt;span style="font-family: courier new,courier;"&gt;any2str()&lt;/span&gt; accepts an &lt;span style="font-family: courier new,courier;"&gt;anytype &lt;/span&gt;as parameter, so the compiler will not perform any checking. However, the implementation of &lt;span style="font-family: courier new,courier;"&gt;any2str()&lt;/span&gt; doesn&amp;rsquo;t support that a &lt;span style="font-family: courier new,courier;"&gt;System.String&lt;/span&gt; (CLR Object) is passed in &amp;ndash; and thus this error. As an X++ developer the only remedy is to work around the issue. In above example by assigning the &lt;span style="font-family: courier new,courier;"&gt;System.String&lt;/span&gt; to a &lt;span style="font-family: courier new,courier;"&gt;str &lt;/span&gt;(X++ native type). That will work because the interpreter&amp;rsquo;s assignment implementation do support conversion of &lt;span style="font-family: courier new,courier;"&gt;System.String &lt;/span&gt;to &lt;span style="font-family: courier new,courier;"&gt;str&lt;/span&gt;. The code then becomes:&lt;/p&gt;
&lt;div class="xpp" style="font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"&gt;&lt;ol&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; avoidingInternalError25&lt;span style="color: #000000;"&gt;(&lt;/span&gt;Args _args&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;str&lt;/span&gt; currentDirectory &lt;span style="color: #00007f;"&gt;=&lt;/span&gt; System.&lt;span style="color: #000000;"&gt;IO&lt;/span&gt;.&lt;span style="color: #000000;"&gt;Directory&lt;/span&gt;&lt;span style="color: #00007f;"&gt;::&lt;/span&gt;&lt;span style="color: #000000;"&gt;GetCurrentDirectory&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&amp;nbsp; &amp;nbsp; info&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;strfmt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'The current folder is %1'&lt;/span&gt;&lt;span style="color: #00007f;"&gt;,&lt;/span&gt; currentDirectory&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: normal; vertical-align: top; font: normal normal 100% 'Courier New', Courier, monospace; color: #003030;"&gt;
&lt;div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;One might argue that the interpreter&amp;rsquo;s assignment conversion should have solved the issue when using &lt;span style="font-family: courier new,courier;"&gt;any2str() &lt;/span&gt;too. That unfortunately cannot be done, as the interpreter will not perform any conversion as the receiving side claims to support &lt;span style="font-family: courier new,courier;"&gt;anytype&lt;/span&gt;.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;b&gt;2.&amp;nbsp;S&lt;/b&gt;&lt;b&gt;tale data&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;The type to convert might originate from data in the data base. If the data has been stored in one format and is being retrieved in another, it could lead to this situation.&lt;br /&gt;&lt;br /&gt;Things to try:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Synchronize the data base&lt;br /&gt;&lt;/b&gt;Right-click AOT | Data dictionary and select &amp;ldquo;Synchronize&amp;rdquo;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Delete Usage data&lt;br /&gt;&lt;/b&gt;Tools | Options | Usage data. Click &amp;lsquo;Reset&amp;rsquo;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debugging&lt;br /&gt;&lt;/b&gt;Debug the steps leading up to the error, and correct the affected data &amp;ndash; typically by deleting it.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;Stale pcode&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;The compiler produces pcode from the X++ code. This pcode is stored in the model store, and thus imported to the model store via AXUtil import (or AOD import). Given pcode often is referencing meta data from other models, the model store needs to be recompiled when new models are added or removed. Until the model store has been recompiled the interpreter may interpret metadata incorrectly, which can lead to &amp;ldquo;Internal error 25&amp;rdquo;. AXUtil will inform you about this after import, and so will Dynamics AX the first time a client is started. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The steps to take are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Restart AOS&lt;/li&gt;
&lt;li&gt;Start AX client&lt;/li&gt;
&lt;li&gt;Select &amp;ldquo;Launch model upgrade checklist&amp;rdquo; or &amp;ldquo;Compile and Synchronize&amp;rdquo; in the form that automatically opens.&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Given the nature of the problem, the internal error 25 can occur before the system has had a chance to open the form automatically. This typically occurs when one of these classes are customized: Application, Infolog or ClassFactory.&amp;nbsp; It can also occur, if elements referenced by these classes are customized.&lt;/p&gt;
&lt;p&gt;To solve this issue follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Restart AOS&lt;/li&gt;
&lt;li&gt;Start AX client in safe mode&lt;br /&gt;In command line type: &amp;nbsp;AX32.exe -noauto &lt;br /&gt;The &amp;ndash;noauto option will prevent the system from running any pcode during start up, including the pcode that is triggering the &amp;ldquo;Internal error 25&amp;rdquo;, and the pcode that is launching the compile form. The client will start directly in the developer workspace to further prevent any application logic to be run.&lt;/li&gt;
&lt;li&gt;Right-click the root of AOT and select &amp;ldquo;Compile&amp;rdquo; &amp;nbsp;or compile select portions of the AOT&lt;/li&gt;
&lt;li&gt;Resolve any compilation errors that could trigger a problem during start up.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10169174" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mfp/archive/tags/X_2B002B00_/">X++</category><category domain="http://blogs.msdn.com/b/mfp/archive/tags/Pages/">Pages</category></item><item><title>Seeing is believing - AX 2012 Type Hierarchies</title><link>http://blogs.msdn.com/b/mfp/archive/2011/05/19/seeing-is-believing-ax2012-type-hierarchies.aspx</link><pubDate>Thu, 19 May 2011 09:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10123218</guid><dc:creator>msmfp</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mfp/rsscomments.aspx?WeblogPostID=10123218</wfw:commentRss><comments>http://blogs.msdn.com/b/mfp/archive/2011/05/19/seeing-is-believing-ax2012-type-hierarchies.aspx#comments</comments><description>&lt;p&gt;This is a sneak preview of two new tools in Microsoft Dynamics AX 2012: The Type Hierarchy Context and the Type Hierarchy Browser.&lt;/p&gt;
&lt;p&gt;&lt;iframe scrolling="no" frameborder="0" src="http://channel9.msdn.com/Blogs/mfp/AX2012-Type-Hierarchies/player?w=512&amp;amp;h=288" style="height: 288px; width: 512px;"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Please notice: 
&lt;ul&gt;
&lt;li&gt;Microsoft Dynamics AX 2012 supports table inheritance &lt;/li&gt;
&lt;li&gt;These tools runs off live meta data - no need for cross reference to fuel them &lt;/li&gt;
&lt;li&gt;These tools improves the navigation and discoverability&amp;nbsp;of meta data &lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Blogs/mfp/AX2012-Type-Hierarchies"&gt;This video is also available on Channel 9.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10123218" width="1" height="1"&gt;</description></item></channel></rss>
