<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Dynamics AX Blog</title><link>http://www.axstart.com//Blog.php</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/axstart/blog" /><description>Dynamics AX Blog about integration &amp; performance - Blog</description><language>en</language><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/axstart/blog" /><feedburner:info uri="axstart/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><item><title>two WCF movies in AX 2012</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/Szo91dMBLZ4/Blog.php</link><description>WCF in AX 2012, the movie
For most developers it&amp;rsquo;s not clear when to use query based or BOF based service. The next picture shows the main difference:


Examples:
Query based WCF movie:
http://www.axstart.com/WCFAXDQuery/WCFAXDQuery.html
BOF based WCF movie (with CSV inbound)
http://www.axstart.com/WcfCsvInboundDemo/WcfCsvInboundDemo.html
&amp;#160;source code of CSV adaptor add http://dynamicsax2012csv.codeplex.com/
			


			
				
			
				4 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=Szo91dMBLZ4:ckIO9eNod-o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/Szo91dMBLZ4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=75</feedburner:origLink></item><item><title>CSV adaptor AX 2012</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/AV8V2P8Chy4/Blog.php</link><description>After reading some post on the internet and reading the documentation on TechNet, I decide also to write a post about it.
Before we start you have to know that there are 2 different name spacing used for the CSV to XML conversion. The difference is that you have WCF can be Query based or Business Object based.
The query based WCF is form my point of view end of live. The query needs dynamic fields according to the best practice check of Dynamics AX. So we have a dynamic contract on our interface.&amp;#160; Trust me; this will kill your implementation.
I have create an universal adaptor, it is on codeplex 



http://dynamicsax2012csv.codeplex.com/
&amp;#160;
&amp;#160;
			


			
				
			
				2 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=AV8V2P8Chy4:6iRNQOfJqtI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/AV8V2P8Chy4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=74</feedburner:origLink></item><item><title>Application Lifecycle &amp; Delivery Management</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/kOsc1lDlPaQ/Blog.php</link><description>With AX 2012, we have the ability for a more tight integration with TFS. The reason for this better integration is the possibility to assign tasks to your changes. There are already a lot of blogs about the ins and outs on this point. But none of then tell you why you should use TFS tasks.

TFS Tasks are part of your software development methodology.&amp;#160;This methodology is more than just writing a Functional design, Technical design and finally write some code. Take a look at the next picture. 








&amp;#160;


Microsoft has a lot of tools that helps use by getting some structure in the lifecycle of our &amp;lsquo;idea&amp;rsquo;:

&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Version Control

&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Build &amp;amp; Release Management

&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tracking of issues and code changes

&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Automated Testing.

I have done a presentation at Decision Fall 2011. The recording is available at http://decisions.msdynamicsworld.com/, but the PowerPoint presentation is also available at http://www.promentum.nl/downloads/

&amp;#160;

			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=kOsc1lDlPaQ:H1jSy9IDn-c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/kOsc1lDlPaQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=73</feedburner:origLink></item><item><title>AX 2012 ALM (TFS,  MTM , UI Code test, etc)</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/Ai98RKf9qMQ/Blog.php</link><description>With AX 2012 and Visual Studio 2010 a lot of new possibilities will arise.

At the virtual conference Decisions Fall 2011, I will tell a lot about it.


http://decisions.msdynamicsworld.com/session/application-lifecycle-delivery-management





In this presentation we will talk about getting your Dynamics Customization in a controlled way to your customer. This includes testing, and trusted releases where there is never source code missing or code gets released that should not be released. Most developers know how to use TFS for version control. But with TFS it is also possible to automate your test on your code.



Agenda



&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; What is ALM
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Methodology
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tools
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ALM in VS
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Version Control
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tweaks
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Release Management
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tracking of Issues
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Build a Release
&amp;bull;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Automatic Testing





			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=Ai98RKf9qMQ:Yi_zz7aqr3E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/Ai98RKf9qMQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=72</feedburner:origLink></item><item><title>Labels in your AIF message</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/2iCBhlxUBvE/Blog.php</link><description>Is it possible to get a label in your XML message, default you get the base enum value, but not the label.
Yes it is possible. You can join the SRSAnalysisEnums table into your AXD query.


Example query from customer site (AXITaxCode is the BaseEnum):








Next override initQuery() method of the AxdBase derived class, add the next:








And here is your message








Note: the SRSAnalysisEnums is filled when data for analysis server is prepared.
			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=2iCBhlxUBvE:yjpvQsMvqxA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/2iCBhlxUBvE" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=71</feedburner:origLink></item><item><title>hotfix rollup 7 for Microsoft Dynamics AX 2009 Service Pack 1</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/P3MmwgjejIo/Blog.php</link><description>There is a new rollup for AX 2009 SP1

Download location partnersource 

https://mbs2.microsoft.com/knowledgebase/KbDisplay.aspx?scid=kb;en-us;2503850 


			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=P3MmwgjejIo:XD0LBtA2MQY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/P3MmwgjejIo" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=70</feedburner:origLink></item><item><title>Real-time performance monitor</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/H93lzycyS-0/Blog.php</link><description>We just build a real time performance monitor for SQL. We build it on top of the Management Pack for SQL 2008.

The next screen shot shows the look and feel. It monitors:

- Disk IO

- Memory

- CPU

- Index use

- dead locks.



Look for more details at the next link http://www.axstart.com/SCOM2007R2.php





			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=H93lzycyS-0:T9O5pqPrxao:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/H93lzycyS-0" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=69</feedburner:origLink></item><item><title>Run-Time Cache Error in AIF</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/18mC3x9qN54/Blog.php</link><description>In a lot of Blogs is turning of the runtime cache for AIF the solution for these insert errors.

In my previous&amp;#160;post about tuning AIF, this issue is also solved because it was a bug



Look for more details at the next link www.axstart.com/AIF.php
			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=18mC3x9qN54:IfaHq7sVGpA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/18mC3x9qN54" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=68</feedburner:origLink></item><item><title>AIF tuning &amp; testing</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/-eVpzaPJkkQ/Blog.php</link><description>I have done a couple of AIF implementations. Some of them IIS related others BizTalk integration based.
They had a lot of common behavior. The speed of the framework was too slow. After analyzing all those runs, the next topics came along. With these changes AIF works up to 4 times faster.
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AIF the framework
o&amp;#160;&amp;#160; The Tables of AIF are not optimized for AOS caching&amp;#160; of data
o&amp;#160;&amp;#160; The code for generation data for AIFruntimecache is programmed the wrong way.
o&amp;#160;&amp;#160; The check to analyze the number of decimals is programmed inefficiently
o&amp;#160;&amp;#160; The check to analyze time fields is programmed inefficiently
o&amp;#160;&amp;#160; Missing indexes.
o&amp;#160;&amp;#160; Data policies at runtime
o&amp;#160;&amp;#160; Synchronizing the AOT



Look for more details at the next link www.axstart.com/AIF.php
			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=-eVpzaPJkkQ:vH9rW-pwFoc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/-eVpzaPJkkQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=67</feedburner:origLink></item><item><title>Microsoft Dynamics AX '6' - Instructor Led Lab:  Patterns in building Client forms</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/usxdFyq8ptw/Blog.php</link><description>In case people want to know the person behind the blog. I will do an Instructor Led Lab at the dynamics AX Technical conference in Seattle.&amp;#160; This ITL is there to give you hand on experience with building Forms in AX &amp;lsquo;6&amp;rsquo;.
The ITL has been built with Chris Garty and Adrian Orth. You should check there sessions:

    
        
            
            
                
                    
                        
                        Title
                        
                        
                        Patterns in Building Client Forms for Usability - Part 1 of 2 
                        
                    
                    
                        
                        Abstract 
                        
                        
                        A form is not merely a data capture device, it is the path to productivity when it is built right. In this session we focus on building forms for user experience, cover new controls, patterns, and practices for building Client UX. We will also cover new concepts like Details Forms, List Pages, Fact Boxes, Fast Tabs, Action Pane, Action Pane Strip and WPF Controls 
                        
                    
                    
                        
                        Major Track 
                        
                        
                        Development Tools &amp;amp; Programming Models 
                        
                    
                    
                        
                        Date 
                        
                        
                        Tuesday, January 18 
                        
                    
                    
                        
                        Time 
                        
                        
                        2:45 - 4:00 P.M. 
                        
                    
                    
                        
                        Session Code 
                        
...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=usxdFyq8ptw:x5AOLEwtYD8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/usxdFyq8ptw" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=66</feedburner:origLink></item><item><title>missing indexes and caching</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/l23bCFRZiUo/Blog.php</link><description>While analyzing performance in a huge implementation with BizTalk and AIF, I found the next missing Cluster indexes, Primary indexes and recID indexes.



My personal opinion is that every table needs a primary and cluster index. Default caching should be set to Found.

The cluster index should be:

    
    
&amp;#160;The most used read query.
    
    
    
Insert always on the end
    
    
    
No updates on the key values.
    




In case you want to check your own implementation: www.axstart.com/SelfDiagnostics.php



About 600 tables have no caching at all in AX 2009 SP1 RU 6. 

I have added caching on the AIF tables and it did the job!

&amp;#160;

    
        
            
            
Table
            
            
            
Missing
            
            
            
Missing
            
            
            
Missing
            
        
        
            
            
primary
            
            
            
recid
            
            
            
cluster 
            
        
        
            
            
AifAdapterLookup
            
            
            
&amp;#160;
            
            
            
&amp;#160;
            
            
            
X
            
        
        
            
            
AssetParameters
            
            
            
&amp;#160;
            
            
            
X
            
            
            
&amp;#160;
            
        
        
            
            
BITimePeriodsMDX
            
            
            
&amp;#160;
            
            
            
&amp;#160;
            
            
            
X
            
        
        
            
            
DigitalCertificates_MX
            
            
            
&amp;#160;
            
            
            
&amp;#160;
            
            
            
X
            
        
        
            
            
EInvoiceJour_MX
            
            
            
&amp;#160;
            
            
           ...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=l23bCFRZiUo:N9X38rBHVLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/l23bCFRZiUo" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=65</feedburner:origLink></item><item><title>hotfix rollup 6 for Microsoft Dynamics AX 2009 Service Pack 1</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/5xiO2MtgdCs/Blog.php</link><description>Rollup 6 is out there! (KB2405516)



https://mbs2.microsoft.com/knowledgebase/KbDisplay.aspx?scid=kb;en-us;2405516 
			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=5xiO2MtgdCs:l5wTF6UUoEA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/5xiO2MtgdCs" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=64</feedburner:origLink></item><item><title>What methods are called when a runbaseBatch process is executed?</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/7YPHJjnTpYE/Blog.php</link><description>It can be handy to have detailed knowledge on the runbaseBatch class. In this tutorial I will explain the calling sequence of the RunBaseBatch class with a query (select button). 
We will start this process with a static construct function that will force the runbaseBatch process to run on the server.&amp;#160; 
In the left column of below table is shown the method name of the runbase batch and the location where it is running. The order of the lines in the table is also the order AX will execute the methods.
(Note: The runbase mechanism calls sometimes methods twice, these duplicate call are removed from this list.)


    
        
            
            Server construct
            
            
            Our constructor will execute the new method
            
        
        
            
            Server new
            
            
            &amp;#160;
            
        
        
            
            Server prompt
            
            
            &amp;#160;
            
        
        
            
            Server unpack
            
            
            &amp;#160;
            
        
        
            
            Server showdialog
            
            
            &amp;#160;
            
        
        
            
            Server pack
            
            
            &amp;#160;
            
        
        
            
            Client new
            
            
            Reconstruct the class on the AX client
            
        
        
            
            Client unpack
            
            
            Get the values from the previous run
            
        
        
            
            Client canGoBatch
            
            
            Do we need to show the batch tab page
            
        
        
            
            Client prompt
            
            
            &amp;#160;
            
        
        
            
            Client showdialog
            
            
          ...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=7YPHJjnTpYE:Xzr6TwPN1sA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/7YPHJjnTpYE" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=63</feedburner:origLink></item><item><title>Cannot mix old-style sorting with new-style Group By or Order By on a query.</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/Ed7uAVhZOH4/Blog.php</link><description>When working with AX2009 I run into a minor change in the query objects of AX. This change deals with the AX 4.0 Datasource property ordermode. In AX 4.0 this property could be set to Order by (default) or Group by. In AX 2009 two new nodes appears in our query object: Order by and Group by. 





If you combine the AX 4.0 and AX 2009 concept an error, like the title of this document, appears. I saw some remarkable things, during investigation of this issue: 

    Queries built in AX 4.0 and upgraded to AX 2009 will continue working the old way; 
    Building a new query in AX 2009 will always work the new way because the property order mode is not available anymore; 
    The report wizard in AX2009 still makes a data source query with the order mode property on the data source. (bug?) 

			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=Ed7uAVhZOH4:8rrPd60WCq8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/Ed7uAVhZOH4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=62</feedburner:origLink></item><item><title>Date methods in your Visual Studio Dynamics AX Report.</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/3QXJoEj6iCU/Blog.php</link><description>I have followed some AX 2009 Trainings and all those training had one repeating issue. We don&amp;rsquo;t know how this works.&amp;#160; So frustrated with this repeating answer, I decide it to find it out myself.&amp;#160; It took about 12 hours to get this completely deeply knowledge about this issue.&amp;#160; So when you read and played with it for 2 hours, your benefit is still 10 hours. 
Data method act like a temporary table creator. The creator defines the table (DataTable) and fills it with data. The return type of this Data method acts like a dataset for your report.
Small click true demo:
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Create new Visual studio project 



&amp;#160;
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Select with the right mouse the add data method option on DataMethods Node 



&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Double click on this new created node. And a static C #method appears


    
        
            
            using System;
            using System.Collections.Generic;
            using System.Security.Permissions;
            using Microsoft.Dynamics.Framework.Reports;
            public partial class Report1
            {
            &amp;#160;&amp;#160;[DataMethod(), AxSessionPermission(SecurityAction.Assert)]
            &amp;#160;&amp;#160;public static string DataMethod1()
            &amp;#160;&amp;#160;{
            &amp;#160;&amp;#160;throw new Exception(&amp;quot;The method or operation is not imp.&amp;quot;);
            &amp;#160;&amp;#160;}
            }
            
        
    


&amp;#160;
These static methods will become our new Dataset of the type Business Logic. Change the return type of this static method to DataTable. This method will finally appear in the list of the query property of the DataSet.&amp;#160; In case off a compile error add the line using System.Data; to your code. 



&amp;#160;
On the MSDN link one topic is not covered. How can I use my parameters in my DataMethods? Thanks to a tutorial from Elena Pricoiu from Microsoft, I was able...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=3QXJoEj6iCU:OGmmv7-HJRY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/3QXJoEj6iCU" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=61</feedburner:origLink></item><item><title>Derive from Derived RunbaseBatch classes.</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/0mGFiohd_CM/Blog.php</link><description>We all know how to extend from a runbaseBatch. But you have to be&amp;#160;cautious if you extend from that derived class again. You still want the integration with pack/unpack the correct way. 
Example: We want an additional text field on the dialog when posting a movement journal. For this example we have to override the next methods:
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dialog
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; getFromDialog
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pack
&amp;middot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; uppack 
The class that we gone adapt is InventJournalCheckPost_Movement. 
&amp;#160;
Application hierarchy tree 





&amp;#160;
First we have to add the new field in the class declaration:

    
        
            
            class InventJournalCheckPost_Movement extends JournalCheckPostLedger
            {
            &amp;#160;&amp;#160;&amp;#160; name text;
            &amp;#160;&amp;#160;&amp;#160; DialogFIeld dlgField;
            &amp;#160;
            &amp;#160;&amp;#160;&amp;#160; #define.CurrentVersion(1)
            &amp;#160;&amp;#160;&amp;#160; #define.Version1(1)
            &amp;#160;&amp;#160;&amp;#160; #localmacro.CurrentList
            &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; text
            &amp;#160;&amp;#160;&amp;#160; #endmacro
            }&amp;#160;
            
        
    


&amp;#160;
The super() call in the getfromdialog , dialog and validate is similar like normal derived methods from runbaseBatch.

    
        
            
            Object dialog()
            {
            &amp;#160;&amp;#160;&amp;#160; DialogRunbase ret;
            &amp;#160;&amp;#160;&amp;#160; ret = super(); 
            &amp;#160;&amp;#160;&amp;#160; dlgField = ret.addFieldValue(typeid(string),myString,'text');
            &amp;#160;&amp;#160;&amp;#160; return ret;
            }
            
        
        
            
            boolean getFromDialog()
            {
            &amp;#160;&amp;#160;&amp;#160; boolean ret;
            &amp;#160;&amp;#160;&amp;#160; ret = super();
            &amp;#160;&amp;#160;&amp;#160; text = dlgField.value();
           ...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=0mGFiohd_CM:eRcRfXWhWhc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/0mGFiohd_CM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=59</feedburner:origLink></item><item><title>Why performance issues hits you’re AX implementation 3 months after going live.</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/H05foD2rZ6U/Blog.php</link><description>We al know when the customer is going live, a lot of additional work has to be done. Most of those issues are related to performance. But it is possible to see these troubles long before you are going live. The magic tool is called Long Running Queries. 
&amp;#160;
The trick is this:

    From the day the first user is playing with AX start already monitoring his behavior with long running queries. Even when no customizations have been made. You can see the behavior of sorting on non indexed fields and not logical used filters on Forms and reports. With this knowledge you can teach the user to use AX the right way.
    When the first customizations are implemented you start monitoring the users of those customizations. You are able to see the bad queries in your code. Even when the user is not complaining about performance you can see performance issues.&amp;#160;Be aware&amp;#160;when a query takes 1 second in the demo environment, it can go like hell 3 moths after live.

Example: I make a select for update on the sales line and use in the where class the SalesId and ItemId. &amp;#160;


    
        
            
            While select forupdate salesline where selesLine.salesId == &amp;lsquo;829&amp;rsquo; &amp;amp;&amp;amp; salesLine.itemId == &amp;lsquo;myItem&amp;rsquo;)
            {
            salesline&amp;hellip;&amp;hellip;.
            selesLine.update();
            }
            
&amp;#160;
            
&amp;#160;
            
&amp;#160;
            
        
    


&amp;#160;
AX will use the index with the fields SalesID and linenum. The result is that all SalesLine of that Salesorder are found by the index but the system will lock all lines (pagelock). It will even lock saleslines with a different item. The solution can be add a new index with SalesId and ItemId or redesign the where clause so it will use the existing index 100%. This small example is does not hurt in the beginning but when the customer has 50 lines on a salesorder and 80.000 SalesOrder. Trust me you have trouble.
&amp;#160;
It is also handy to...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=H05foD2rZ6U:G7glCy90crY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/H05foD2rZ6U" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=58</feedburner:origLink></item><item><title>stabel batch server</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/kRPr223Uj0Y/Blog.php</link><description>&amp;#160;is quite easy to create batch clients in Microsoft Dynamics AX 4.0. It is getting harder when you want to check it easily if all batches are still running. 
There are some additional Microsoft programs and functionalities in Microsoft Dynamics AX that can help you out: 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Start every batch client like a real server. 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Logon with a different user for every batch service. 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Place a dedicate AOS server on the batch server. 
Missing code in Microsoft Dynamics AX
In the class SysStartupCmdBatchRun, method inforun is one line of code missing. Add this line so the batch service will use the correct batch group. 
&amp;#160; 

    
        
            
            void infoRun() 
            { 
            &amp;#160;&amp;#160;&amp;#160; BatchRun batchRun = new BatchRun(); 
            ; 
            &amp;#160;&amp;#160;&amp;#160; batchRun.parmUseForm(true); 
            &amp;#160;&amp;#160;&amp;#160; batchRun.parmGroupId(parm); //TODO Missing line 
            &amp;#160;&amp;#160;&amp;#160; batchRun.run(); 
            }
            
        
    


&amp;#160; 
Monitoring the Batch
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; logon with a different user for any batch client, so you can see with the task manager of Windows: 
o&amp;#160;&amp;#160; Memory consumption 
o&amp;#160;&amp;#160; If batch client is still running (the batch service is running in services but the batch client is gone 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; With the online users form in Microsoft Dynamics AX, you can monitor if the batches are online. 
&amp;#160; 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Create an alert rule on the Batch list for the records with the status error; this will inform the administrator that there is trouble. 








&amp;#160; 
			


			
				
			
				0 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=kRPr223Uj0Y:5q7ukh2j-18:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/kRPr223Uj0Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=57</feedburner:origLink></item><item><title>Advanced database monitoring</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/nfoRoXyZQsY/Blog.php</link><description>We have seen in the administration and Installation &amp;amp; configuration training, that it was possible to monitor Windows performance counters and also use the SQL server profiler. When we start analyzing this information, it&amp;rsquo;s almost impossible to find the relation in time between Performance Monitor and SQL Server profiler.&amp;#160; This issue is solved in SQL 2005. 
&amp;#160; 
Plan of attack
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Configure al needed performance counters, the export format should be comma delimiter (CSV file) 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Start the SQL Server profiler. (type: save to file, 50 Mbytes is 1 minute) 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Start the monitoring in both tools 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Start the process in Microsoft Dynamics AX that should be monitored. 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Stop the monitoring in both monitor tools. 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Save the results of both monitor tools 
-&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Load the SQL profile again in the SQL profiler, now also the option &amp;lsquo;import performance data&amp;rsquo; is active. 
&amp;#160; 
From now on it is possible to analyze both traces in one tool. 




Recommended Microsoft SQL Server Performance counters: 
Memory:&amp;#160;&amp;#160;

    
    &amp;#160;Memory Available Bytes, should be high then 100 MB (Other applications are also using memory, reduce memory for SQL!)&amp;#160; 
    
    
    Memory Pages/sec&amp;#160; , should be low 
    
    
    Process Page Fault/sec&amp;#160; , should be low&amp;#160;&amp;#160;
    
    
    SQLServer: Buffer Manager &amp;ndash; Buffer Cache Hit Ration&amp;#160; should be higher than 98% 
    
    
    SQLServer: Buffer Manager &amp;ndash; Total Pages SQL ,should be high&amp;#160; 
    
    
    SQLServer: Memory Manager &amp;ndash; total Server Memory. ,should be low 
    
    
    SQLServer: Buffer Manager&amp;ndash; Page life expectancy, (default page life is 300 (5 minutes), higher is ofcourse better).
    

Disk IO:&amp;#160;

    
    Phisical Disk: % Disk&amp;#160;Time ,...&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=nfoRoXyZQsY:aEMSytVIrZM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/nfoRoXyZQsY" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=56</feedburner:origLink></item><item><title>Losing data</title><link>http://feedproxy.google.com/~r/axstart/blog/~3/fhPLuI_NfcM/Blog.php</link><description>When importing Layers in your system you can have the risk of losing data.&amp;#160; This risk is related to the way you develop software in combination of the architecture of Dynamics AX. 
&amp;#160; 
Scenario where data lost can occur: 
The administrator has received some time ago an Xpo with a fix; this fix contains a new table and some new fields on an existing table. There business partner sends a new layer to the customer and tells him that the Xpo is also merged in this layer. The administrator remembers that he had to remove the Xpo from the USR layer before copying the new layer in his environment. He starts Dynamics AX and wants to synchronize the database. The system start complaining that the new table already exists in the database and asked to you, if it is OK to delete this one. So your data get lost. Of course it is not OK! The table should stay. 
&amp;#160; 
To understand this behavior we should know how Dynamics AX synchronizes his data dictionary to the Database. 
&amp;#160; 
SQLDictionary
Every table and field in the table has an ID. There is also a system table called SQLDictionary.&amp;#160; Let&amp;rsquo;s have a closer look at this table. 


			


			
				
			
				1 comments
			
				
			&lt;br/&gt;
&lt;br/&gt;
This is a content summary only. Visit my website for full links, other content, and more!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/axstart/blog?a=fhPLuI_NfcM:K0DHsPfDRDg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/axstart/blog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/axstart/blog/~4/fhPLuI_NfcM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.axstart.com/Blog.php?post=55</feedburner:origLink></item></channel></rss>

