<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4498317961836705128</id><updated>2024-12-04T03:32:58.019-08:00</updated><category term="AX 2012"/><category term="Dynamics AX"/><category term="AX Administration"/><category term="Development"/><category term="Workflow"/><category term="Dynamics ax BI"/><category term="Reporting"/><category term="Security"/><category term="SSRS"/><category term="SQL"/><category term="AIF"/><category term="Batch Framework"/><category term="DIXF"/><category term="DMF"/><category term="Enterprise Portal"/><category term="Inetgartion"/><category term="SharePoint"/><category term="X++"/><category term="jobs"/><category term="BI"/><category term="Inistallation And Configuration"/><category term="Inventory"/><title type='text'>Dynamics AX</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>259</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-6245319354787267310</id><published>2016-11-26T22:09:00.003-08:00</published><updated>2016-11-26T22:09:15.529-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamics AX"/><title type='text'>How to add new action under Context menu in Dynamics AX</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Each node in the AOT contains a set of available actions. You can access 
these actions from the&lt;br /&gt;context menu, which you can open by right-clicking any 
node. 
&lt;br /&gt;
You can create custom actions for any element in the AOT by enlist a class as 
a new add-in by following:&lt;br /&gt;1. Create a new menu item and give it a meaningful 
name, a label, and Help text.&lt;br /&gt;2. Set the menu item’s &lt;i&gt;Object Type 
&lt;/i&gt;property to &lt;b&gt;Class&lt;/b&gt;.&lt;br /&gt;3. Set the menu item’s &lt;i&gt;Object &lt;/i&gt;property 
to the name of the class to be invoked by the add-in.&lt;br /&gt;4. Drag the menu item 
to the &lt;i&gt;SysContextMenu &lt;/i&gt;menu.&lt;br /&gt;5. If you want the action available only 
for certain nodes, you need to modify the &lt;i&gt;verifyItem&lt;/i&gt;&lt;br /&gt;method on the 
&lt;i&gt;SysContextMenu &lt;/i&gt;class.&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/6245319354787267310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2016/11/how-to-add-new-action-under-context.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/6245319354787267310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/6245319354787267310'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2016/11/how-to-add-new-action-under-context.html' title='How to add new action under Context menu in Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-1935991849064526313</id><published>2016-05-01T01:16:00.001-07:00</published><updated>2016-05-01T01:16:39.676-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="X++"/><title type='text'>How to Delete Company Transactions in AX 2012 including Trial balance?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To delete Transactions
data inside any company in ax, you can do by using the class
SysDatabaseTransDelete under AOT.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;But you may facing an
issue since the Trial Balance will not be deleted so,&amp;nbsp;to delete GL Trans
by deleting the following tables:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GeneralJournalAccountEntry&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;GeneralJournalEntry&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;LedgerEntryJournal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;LedgerEntry&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Ledgerjournaltrans&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Ledgerjournaltable&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;To remove the Trial
Balance you have to follow the steps below:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;1-) Modify
&#39;handleTable()&#39; method by adding 2 new cases&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Case TableGroup::TransactionHeader:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Case
TableGroup::TransactionLine:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt; margin-left: .25in; margin-right: 0in; margin-top: 0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;void&amp;nbsp;handleTable(SysDictTable
sysDictTable)&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TableGroup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tableGroup;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(tableSet.in(sysDictTable.id()))&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tableSet.add(sysDictTable.id());&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(sysDictTable
&amp;amp;&amp;amp; !sysDictTable.isTmp() &amp;amp;&amp;amp; !sysDictTable.isMap())&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tableGroup
= sysDictTable.tableGroup();&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//
Handle company specific tables to be deleted&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(sysDictTable.dataPrCompany())&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch(tableGroup)&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::Transaction:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::TransactionHeader:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::TransactionLine:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::WorksheetHeader:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::WorksheetLine:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.handleTransTable(sysDictTable);&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.handleNonTransTable(sysDictTable);&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//
Handle global tables to be deleted&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch(tableGroup)&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::Transaction:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::TransactionHeader:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::TransactionLine:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::TransactionHeader
:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::WorksheetHeader:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;TableGroup::WorksheetLine:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.handleGlobalTransTable(sysDictTable);&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 15.0pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;2) Add a new method to
handle LEDGERJOURNALTABLE:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;private void
deleteLedgerJournalTables()&lt;br /&gt;
{&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &amp;nbsp;
GeneralJournalEntry &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GJEntry;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; GeneralJournalAccountEntry &amp;nbsp;GJAEntry;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; LedgerJournalTable &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ledgerjournalTable;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; LedgerEntryJournal &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;ledgerEntryJournal;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ttsBegin;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; while select forupdate LedgerJournalTable&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while select forUpdate ledgerEntryJournal&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where
ledgerEntryJournal.JournalNumber == ledgerjournalTable.JournalNum&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //&amp;amp;&amp;amp; &amp;nbsp;
&amp;nbsp;ledgerEntryJournal.dataAreaId == ledgerjournalTable.dataAreaId&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while select forUpdate GJEntry&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where
GJEntry.LedgerEntryJournal == ledgerEntryJournal.RecId&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; delete_from
GJAEntry&amp;nbsp;&amp;nbsp;where GJAEntry.GeneralJournalEntry == GJEntry.RecId;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GJEntry.delete();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ledgerEntryJournal.delete();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LedgerJournalTable.delete();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ttsCommit;&lt;br /&gt;
}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;3) Modify the &#39;handleTransTable()&#39;
method to call the above method&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;void
handleTransTable(SysDictTable sysDictTable)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; switch(sysDictTable.id())&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case tablenum(CustCollectionLetterLine):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case tablenum(InventDim):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case tablenum(DocuRef):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case tablenum(DirPartyRelationship) :&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;case tablenum(LedgerJournalTable)
:&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
this.deleteLedgerJournalTables();&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.deleteTable(sysDictTable);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;4) You may have to
modify the &#39;deleteVoucher()&#39; method in the &#39;LedgerJournalTrans&#39; table to skip
over releasing non-existing voucher numbers&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;public server void
deleteVoucher(Voucher _voucher = this.Voucher)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; LedgerJournalTable &amp;nbsp;ledgerJournalTable =
LedgerJournalTable::find(this.JournalNum);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; if (! ledgerJournalTable.Posted &amp;amp;&amp;amp; !this.Transferred)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (_voucher &amp;amp;&amp;amp; !
LedgerJournalTrans::existTransMinusThis(this.JournalNum, _voucher, this.RecId))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (this.checkVoucherNotUsed(ledgerJournalTable,
_voucher))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if
(this.checkVoucherNotUsedDataSource(_voucher))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //
replace the voucher number so it can be re-used&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; if (ledgerJournalTable.NumberSequenceTable) /* 28Nov12-Admin */&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; NumberSeq::releaseNumber(ledgerJournalTable.NumberSequenceTable,
_voucher);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if
(this.Voucher == _voucher)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; // delete voucher template record if exists and the voucher on the line
is not being changed&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;
LedgerJournalTransVoucherTemplate::deleteForJournalOrVoucher(this.JournalNum,
_voucher);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;5) After running
&#39;SysDatabaseTransDelete&#39;, rebuild balances for the financial dimension sets
(General Ledger\Setup\Financial Dimensions\Financial dimension sets)&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;If you still have
non-zero amounts in the Trial balance then you must manually remove the &#39;left-over&#39;
rows in the shared tables (results of your previous executions of the
&#39;SysDatabaseTransDelete&#39;). Identify these entries in the &#39;LedgerEntryJournal&#39;
table then use the following job to clear them:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: #303131; font-family: &amp;quot;Segoe UI&amp;quot;,sans-serif; font-size: 11.5pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;static void
tg_deleteTables(Args _args)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; GeneralJournalEntry &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GJEntry;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; GeneralJournalAccountEntry &amp;nbsp;GJAEntry;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; LedgerJournalTable &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;ledgerjournalTable;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; LedgerEntryJournal &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp;ledgerEntryJournal;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ttsBegin;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while select forUpdate ledgerEntryJournal&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where
ledgerEntryJournal.JournalNumber like &#39;clau*&#39; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while select forUpdate GJEntry&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where
GJEntry.LedgerEntryJournal == ledgerEntryJournal.RecId&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; delete_from
GJAEntry&amp;nbsp;&amp;nbsp;where GJAEntry.GeneralJournalEntry == GJEntry.RecId;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GJEntry.delete();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ledgerEntryJournal.delete();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ttsCommit;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; info(&#39;completed&#39;);&lt;br /&gt;
}&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/1935991849064526313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2016/05/how-to-delete-company-transactions-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1935991849064526313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1935991849064526313'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2016/05/how-to-delete-company-transactions-in.html' title='How to Delete Company Transactions in AX 2012 including Trial balance?'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-2295201863227876448</id><published>2015-12-15T00:16:00.001-08:00</published><updated>2015-12-15T00:16:51.603-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamics AX"/><title type='text'>How to post PO by Code in Dynamics AX</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I have task to integrate Dynamics AX with another application by posting PO 
from out side Dynamics AX, so I used AIF and build new web service to be used 
from out of AX and call the method below to post PO (packing slip, or invoice) 
.&lt;br /&gt;
public str CreatePostProductReceipt(PurchId _PurchId, Num _PackingSlip, 
ItemId&amp;nbsp; Itemid, Qty qty,&lt;br /&gt;InventSiteId&amp;nbsp; InventSiteId =&#39;&#39;, InventLocationId&amp;nbsp; 
InventLocationId= &#39;&#39; , inventBatchid batchid = &#39;&#39;, InventSerialId&amp;nbsp; serialId = 
&#39;&#39;, inventsizeId inventsizeId =&#39;&#39;, InventColorId InventColorId 
=&#39;&#39;)&lt;br /&gt;{&lt;br /&gt;PurchFormLetter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchFormLetter;&lt;br /&gt;PurchParmUpdate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchParmUpdate;&lt;br /&gt;PurchParmTable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchParmTable;&lt;br /&gt;PurchParmLine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchParmLine;&lt;br /&gt;PurchTable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchTable;&lt;br /&gt;PurchLine&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchLine;&lt;br /&gt;PurchId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
purchId;&lt;br /&gt;Num&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
packingSlipId;&lt;br /&gt;InventDim&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inventDim;&lt;br /&gt;str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
ret=&#39;&#39;;&lt;br /&gt;System.Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; err;&lt;br /&gt;;&lt;br /&gt;
packingSlipId&amp;nbsp;&amp;nbsp; = _PackingSlip;&lt;br /&gt;purchTable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
PurchTable::find(_PurchId);&lt;br /&gt;
ttsBegin;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;// Create PurchParamUpdate table&lt;br /&gt;purchFormletter 
= PurchFormLetter::construct(DocumentStatus::PackingSlip); // to post invoice 
change to DocumentStatus::invoice&lt;br /&gt;
purchFormLetter.createParmUpdate(true);&lt;br /&gt;
purchParmUpdate = PurchFormLetter.purchParmUpdate();&lt;br /&gt;
// Set PurchParmTable 
table&lt;br /&gt;purchParmTable.clear();&lt;br /&gt;purchParmTable.TransDate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
SystemDateGet();&lt;br /&gt;purchParmTable.Ordering&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
DocumentStatus::PackingSlip;&lt;br /&gt;purchParmTable.ParmJobStatus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
ParmJobStatus::Waiting;&lt;br /&gt;purchParmTable.Num&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
packingSlipId;&lt;br /&gt;purchParmTable.PurchId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchTable.PurchId;&lt;br /&gt;purchParmTable.PurchName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchTable.PurchName;&lt;br /&gt;purchParmTable.DeliveryName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchTable.DeliveryName;&lt;br /&gt;purchParmTable.OrderAccount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchTable.OrderAccount;&lt;br /&gt;purchParmTable.CurrencyCode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchTable.CurrencyCode;&lt;br /&gt;purchParmTable.InvoiceAccount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchTable.InvoiceAccount;&lt;br /&gt;purchParmTable.ParmId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchParmUpdate.ParmId;&lt;br /&gt;purchParmTable.insert();&lt;br /&gt;
// Set PurchParmLine table&lt;br /&gt;while select purchLine&lt;br /&gt;where 
purchLine.PurchId == purchTable.purchId &amp;amp;&amp;amp; purchline.ItemId == 
Itemid&lt;br /&gt;{&lt;br /&gt;purchParmLine.InitFromPurchLine(purchLine);&lt;br /&gt;
inventDim = purchline.inventDim(true);&lt;br /&gt;
// Set batch and serial number&lt;br /&gt;if(InventSiteId != 
&#39;&#39;)&lt;br /&gt;inventDim.InventSiteId = InventSiteId;&lt;br /&gt;
if(InventLocationId != &#39;&#39;)&lt;br /&gt;inventDim.InventLocationId = 
InventLocationId;&lt;br /&gt;
if(batchid != &#39;&#39;)&lt;br /&gt;inventDim.inventBatchId = batchId;&lt;br /&gt;
if(serialid != &#39;&#39;)&lt;br /&gt;inventDim.inventSerialId = serialID;&lt;br /&gt;
if(inventsizeId != &#39;&#39;)&lt;br /&gt;inventDim.inventsizeId = inventsizeId;&lt;br /&gt;
if(InventColorId != &#39;&#39;)&lt;br /&gt;inventDim.InventColorId = InventColorId;&lt;br /&gt;
purchParmLine.InventDimId = 
inventDim::findOrCreate(inventdim).inventDimId;&lt;br /&gt;
purchParmLine.ReceiveNow&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1 ; 
//PurchLine.PurchQty;&lt;br /&gt;purchParmLine.setInventReceiveNow();&lt;br /&gt;purchParmLine.ParmId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
= purchParmTable.ParmId;&lt;br /&gt;purchParmLine.TableRefId&amp;nbsp;&amp;nbsp;&amp;nbsp; = 
purchParmTable.TableRefId;&lt;br /&gt;purchParmLine.setQty(DocumentStatus::PackingSlip, 
false, 
true);&lt;br /&gt;purchParmLine.setLineAmount();&lt;br /&gt;purchParmLine.insert();&lt;br /&gt;}&lt;br /&gt;
ttsCommit;&lt;br /&gt;purchFormLetter = 
PurchFormLetter::construct(DocumentStatus::PackingSlip);&lt;br /&gt;purchFormLetter.transDate(systemDateGet());&lt;br /&gt;purchFormLetter.proforma(false);&lt;br /&gt;purchFormLetter.specQty(PurchUpdate::PackingSlip);&lt;br /&gt;purchFormLetter.purchTable(purchTable);&lt;br /&gt;


















&lt;br /&gt;
// This is the ID we hard code as the product receipt ID, if we do the 
posting via UI&lt;br /&gt;// user would have the option to manually enter this 
value&lt;br /&gt;purchFormLetter.parmParmTableNum(purchParmTable.ParmId);&lt;br /&gt;purchFormLetter.parmId(purchParmTable.ParmId);&lt;br /&gt;purchFormLetter.purchParmUpdate(purchparmupdate);&lt;br /&gt;purchFormLetter.run();&lt;br /&gt;return 
&quot;OK&quot;;&lt;br /&gt;}&lt;br /&gt;catch (Exception::CLRError)&lt;br /&gt;{&lt;br /&gt;err = 
CLRInterop::getLastException();&lt;br /&gt;ret = err.ToString();&lt;br /&gt;return 
ret;&lt;br /&gt;}&lt;br /&gt;Return &quot;Error&quot;;&lt;br /&gt;}&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/2295201863227876448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/12/how-to-post-po-by-code-in-dynamics-ax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2295201863227876448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2295201863227876448'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/12/how-to-post-po-by-code-in-dynamics-ax.html' title='How to post PO by Code in Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-252994299544458573</id><published>2015-06-30T04:49:00.001-07:00</published><updated>2015-06-30T04:49:57.696-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamics AX"/><title type='text'>How to Call Report from Dynamics AX 2009</title><content type='html'>&lt;p&gt;After you created your report in AX you can call report from&amp;nbsp; AX form by follow the below steps:&lt;/p&gt; &lt;p&gt;1- Create menu item with type output by drag and drop report to MenuItems nodes under AOT.&lt;/p&gt; &lt;p&gt;2- Open the form that you need to call report from.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: the form should be have dataSource with the table in report&lt;/p&gt; &lt;p&gt;3-&amp;nbsp; Drag and Drop menu Item created in step 1 in the form under any button group.&lt;/p&gt; &lt;p&gt;4- Add the following method to Report &lt;/p&gt; &lt;p&gt;void initFromCaller(Args _args)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QrderId; // field used as Rang and used to filter data&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QueryBuildDataSource&amp;nbsp; qbds; // should be represent report datasource and selected record in the form  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (! _args ||&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! _args.caller() ||&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _args.dataset() != tablenum(TableName) )&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QrderId = _args.record().(fieldnum(TableName,FieldName));  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qbds&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; element.query().dataSourceTable(tablenum(TableName));  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!qbds.findRange(fieldnum(TableName,FieldName)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qbds.addRange(fieldnum(TableName,FieldName)) ;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qbds.findRange(fieldnum(TableName,FieldName)).value(queryvalue(QrderId));  &lt;p&gt;}&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/252994299544458573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/06/how-to-call-report-from-dynamics-ax-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/252994299544458573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/252994299544458573'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/06/how-to-call-report-from-dynamics-ax-2009.html' title='How to Call Report from Dynamics AX 2009'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-1203468711533563228</id><published>2015-06-04T03:01:00.001-07:00</published><updated>2015-06-04T03:01:37.027-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamics AX"/><title type='text'>Inventory Closing slow</title><content type='html'>&lt;p&gt;May The below link lead you to solve Dynamics ax closing slowness issue by creating new indexes in the main tables used in the recalculation and closing process in Dynamics ax.  &lt;p&gt;&lt;a href=&quot;https://ax4dev.wordpress.com/tag/inventsettlement/&quot;&gt;Inventory Closing slow&lt;/a&gt;:&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/1203468711533563228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/06/inventory-closing-slow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1203468711533563228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1203468711533563228'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/06/inventory-closing-slow.html' title='Inventory Closing slow'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-8845427087943158546</id><published>2015-04-15T06:40:00.001-07:00</published><updated>2015-04-15T06:40:45.893-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jobs"/><title type='text'>JOB OPPORTUNITY</title><content type='html'>&lt;p&gt;An Egyptian Group is hiring: &lt;/p&gt; &lt;p&gt;1- AX 2012 R3 Functional Specialist (specially Logistics, Banking, and GL) &lt;/p&gt; &lt;p&gt;2- AX 2012 R3 Junior Developer (X++, MS Visual Studio 2010 or newer, SSRS, MorphX)&lt;/p&gt; &lt;p&gt;Requirements: &lt;/p&gt; &lt;p&gt;+1 years experience in AX 2012 Microsoft certified is a plus &lt;/p&gt; &lt;p&gt;** If interested, please send your CV to: &lt;a href=&quot;mailto:m.anwar@raneen.com.eg&quot;&gt;m.anwar@raneen.com.eg&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Your email subject should include the Job you are seeking.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/8845427087943158546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/04/job-opportunity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/8845427087943158546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/8845427087943158546'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/04/job-opportunity.html' title='JOB OPPORTUNITY'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-1667772914334096284</id><published>2015-04-13T04:20:00.001-07:00</published><updated>2015-04-13T04:20:03.037-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jobs"/><title type='text'>(Vacancies)contracts and permanent jobs</title><content type='html'>&lt;p&gt;Good morning, &lt;br&gt;The market for Microsoft Dynamics is very busy at the moment and we have a number of contracts and permanent roles that might be of interest to you, please take a moment to have a look. &lt;br&gt;TPC 008 &lt;br&gt;Dynamics NAV Developer – based in southern Denmark, solid NAV development skills essential 5000DKK per day &lt;br&gt;TPC 015 &lt;br&gt;SSRS AND SSIS BI Developer in an AX environment – UK South Coast, must have proven commercial SSRS and SSIS experience, perm role up to £50k &lt;br&gt;TPC 016 &lt;br&gt;Dynamics CRM PreSales Consultant – London – working with a successful tier 1 international Microsoft Partner, £100k package available for the right person &lt;br&gt;TPC 017 &lt;br&gt;Dynamics CRM development consultant – Dynamics CRM development within the hedge fund industry, based in St James, London, immediate start £400 per day &lt;br&gt;TPC 018 &lt;br&gt;Dynamics AX Consultant – Paris based AX Financial Consultant, within the retail / fashion industry, this is an upgrade for a platform with over 4000 users, must have experience of larger implementations. €750 per day &lt;br&gt;TPC 019 &lt;br&gt;Dynamics AX Developer – Munich – For an aviation client must be able to work in Munich due to the nature of the project there is NO work offsite option €600 per day &lt;br&gt;TPC20 &lt;br&gt;Dynamics AX PM – Manchester based Dynamics AX PM role within the insurance industry, working for an end user, but will also have oversight of the Microsoft partner staff, this is an AX2015 upgrade from an AX2009 install. £700 per day &lt;br&gt;If you are interested in any of these roles or are becoming available, please get in touch on &lt;a href=&quot;mailto:CMerchant@templeton-recruitment.com&quot;&gt;CMerchant@templeton-recruitment.com&lt;/a&gt; &lt;br&gt;Have a great week&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/1667772914334096284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/04/vacanciescontracts-and-permanent-jobs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1667772914334096284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1667772914334096284'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/04/vacanciescontracts-and-permanent-jobs.html' title='(Vacancies)contracts and permanent jobs'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-220041219882311168</id><published>2015-03-22T06:20:00.001-07:00</published><updated>2015-03-22T06:20:12.164-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><title type='text'>Object has not been initialized Erro in Ax 2012</title><content type='html'>&lt;p&gt;When user open journal lines from GL ---&amp;gt; General journal&amp;nbsp; ---&amp;gt; Line&lt;/p&gt; &lt;p&gt;got below error&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIbVU7le078TCj-VIahof7L7ZL-RD_eiiUbibmX4Qo2xYEZYg_0Nc8RiQGi6Dpt3Cjqov7Qzeq_vf98oRThSP3FAE1xWlP3Did4CN217oicEJhyphenhyphenJIL3wubeWdr6z5U4O2yMGQpOv29sC4/s1600-h/objectnotinitialized%25255B7%25255D.png&quot;&gt;&lt;img title=&quot;objectnotinitialized&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;objectnotinitialized&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9gP1fInp5OKqnb9P_5ImdgnEYKa5LPVKuCjJeyvTzzMlksjZSsNwO9nnn70Uy6lhgRIjOVq92MRWusWRdhwyjiCMHaIwDPw5KPKC_qj1T8Xbvo4x_XRQFSx0FOrwf05GoQ3s3NR7HAxQ/?imgmax=800&quot; width=&quot;319&quot; height=&quot;331&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Solution:&lt;/p&gt; &lt;p&gt;1- Delete *.auc files from user Machine&lt;/p&gt; &lt;p&gt;2- release Usage data under Tools –&amp;gt; option –&amp;gt; Usage Data ---&amp;gt; reset button&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/220041219882311168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/03/object-has-not-been-initialized-erro-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/220041219882311168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/220041219882311168'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/03/object-has-not-been-initialized-erro-in.html' title='Object has not been initialized Erro in Ax 2012'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9gP1fInp5OKqnb9P_5ImdgnEYKa5LPVKuCjJeyvTzzMlksjZSsNwO9nnn70Uy6lhgRIjOVq92MRWusWRdhwyjiCMHaIwDPw5KPKC_qj1T8Xbvo4x_XRQFSx0FOrwf05GoQ3s3NR7HAxQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-1986912313576676246</id><published>2015-02-21T07:21:00.001-08:00</published><updated>2015-02-21T07:21:10.457-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Reporting"/><title type='text'>Running AX report through batch job in AX2009 (batch printing)</title><content type='html'>&lt;h5&gt;Running batch report in AX2009 (batch printing)&lt;/h5&gt; &lt;p&gt;Since the change of AX2009 batch framework, printing of report through batch can be done through two methods:&lt;br&gt;- Printing from server (to printer or file)&lt;br&gt;- Printing from client (the legacy batch processing)&lt;br&gt;&lt;b&gt;&lt;u&gt;Prerequisites&lt;/u&gt;:&lt;/b&gt; &lt;u&gt;For both of the method, there&#39;re some mandatory setup&lt;/u&gt;&lt;b&gt;:&lt;/b&gt;  &lt;ol&gt; &lt;li&gt;Enable any of the AOS that you want to make it as batch AOS&lt;br&gt;(Administration -&amp;gt; Setup -&amp;gt; Server configuration)  &lt;li&gt;Create batch group for printing.&lt;br&gt;Eg. One for client printing and one for server printing.&lt;br&gt;(Administration -&amp;gt; Setup -&amp;gt; Batch groups)  &lt;li&gt;Add the batch group created in #2 into the AOS enabled for batch processing (in #1)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;complete article available &lt;a href=&quot;http://mybhat.blogspot.com/2011/05/running-batch-report-in-ax2009.html&quot;&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/1986912313576676246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/02/running-ax-report-through-batch-job-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1986912313576676246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/1986912313576676246'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/02/running-ax-report-through-batch-job-in.html' title='Running AX report through batch job in AX2009 (batch printing)'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-351836222882473453</id><published>2015-01-24T22:13:00.001-08:00</published><updated>2015-01-24T22:13:11.179-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="Workflow"/><title type='text'>Dynamics AX Workflow types - AX 2012</title><content type='html'>&lt;blockquote&gt; &lt;p&gt;To create a workflow, you must first select the type of workflow that you want to create. This topic lists the types of workflows that you can create in each module. The topic also describes what each type of workflow is used for, and whether the workflows of each type are associated with a specific company in the organization or with the whole organization.&lt;/p&gt; &lt;p&gt;&lt;a title=&quot;https://technet.microsoft.com/en-us/library/dd362043.aspx&quot; href=&quot;https://technet.microsoft.com/en-us/library/dd362043.aspx&quot;&gt;https://technet.microsoft.com/en-us/library/dd362043.aspx&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/351836222882473453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/dynamics-ax-workflow-types-ax-2012.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/351836222882473453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/351836222882473453'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/dynamics-ax-workflow-types-ax-2012.html' title='Dynamics AX Workflow types - AX 2012'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-6094983723343923844</id><published>2015-01-21T23:55:00.001-08:00</published><updated>2015-01-21T23:55:02.729-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="DIXF"/><title type='text'>Data Import/Export Framework error</title><content type='html'>&lt;h5&gt;Troubleshoot issue with a Data Import/Export Framework installation from cumulative update 7 for Microsoft Dynamics AX 2012 R2&lt;/h5&gt; &lt;p&gt;After you install cumulative update 7 for Microsoft Dynamics AX 2012 R2, the Data Import/Export Framework appears to be installed, but you receive error messages when many forms are opened like the following:  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGsmKVbti5Hgu3TL78hxwHxA9M0UY2k7HTK0xKOdfNcv_FQYr9bGgfKEf6UEXqw1uQadqzzOnDbwvNB-9BgEIYsB8KKDhLHKvWzKrjXcCVoY63JtnOsi4l3mR1B8AjR7lZTWMEEO_Rs1cc/s1600/1.png&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGsmKVbti5Hgu3TL78hxwHxA9M0UY2k7HTK0xKOdfNcv_FQYr9bGgfKEf6UEXqw1uQadqzzOnDbwvNB-9BgEIYsB8KKDhLHKvWzKrjXcCVoY63JtnOsi4l3mR1B8AjR7lZTWMEEO_Rs1cc/s1600/1.png&quot; width=&quot;400&quot; height=&quot;215&quot;&gt;&lt;/a&gt;  &lt;p&gt;You receive an “Assembly containing type Microsoft.Dynamics.AX.DMF.ServiceProxy.DmfEntityProxy is not referenced.” error  &lt;p&gt;&lt;strong&gt;Reason&lt;/strong&gt;: When you install cumulative update 7 for Microsoft Dynamics AX 2012 R2, the Data Import/Export Framework appears to be installed for members of the System Administrators role. However, the binary components of the framework are not present.&lt;br&gt;&lt;strong&gt;Solution&lt;/strong&gt;: &lt;/p&gt;please click &lt;a href=&quot;http://shafeaa.blogspot.com/2014/08/troubleshoot-issues-with-data.html&quot;&gt;here&lt;/a&gt; to get solution    &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/6094983723343923844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/data-importexport-framework-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/6094983723343923844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/6094983723343923844'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/data-importexport-framework-error.html' title='Data Import/Export Framework error'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGsmKVbti5Hgu3TL78hxwHxA9M0UY2k7HTK0xKOdfNcv_FQYr9bGgfKEf6UEXqw1uQadqzzOnDbwvNB-9BgEIYsB8KKDhLHKvWzKrjXcCVoY63JtnOsi4l3mR1B8AjR7lZTWMEEO_Rs1cc/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-891059414672881658</id><published>2015-01-20T22:34:00.001-08:00</published><updated>2015-01-20T22:35:06.417-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><title type='text'>Regular maintenance activities in Dynamics AX that affect performance</title><content type='html'>&lt;h5&gt;The following list describes some of the maintenance activities that we recommend that you perform regularly in your production environment:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Defragment indexes&lt;/strong&gt; – You can defragment indexes from either SQL Server Management Studio or the Intelligent Data Management Framework (IDMF).&lt;/p&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Update SQL Server statistics from SQL Server Management Studio&lt;/strong&gt; – We recommend that you run both manual and automatic updates of statistics. Manual updates may become more important as the size of your database increases, because automatic updates are less likely to be completed on large data sets.&lt;/p&gt; &lt;li&gt; &lt;p&gt;&lt;strong&gt;Reduce the size of the database&lt;/strong&gt; – You can use IDMF to keep the size of the production database small. A small database makes database operations more efficient. For example, you can delete or archive data that is not required in your production system.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/891059414672881658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/regular-maintenance-activities-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/891059414672881658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/891059414672881658'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/regular-maintenance-activities-in.html' title='Regular maintenance activities in Dynamics AX that affect performance'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-528138436520128228</id><published>2015-01-20T02:57:00.001-08:00</published><updated>2015-01-20T02:57:57.065-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="DIXF"/><title type='text'>Troubleshoot an installation of the Data Import/Export Framework from InformationSource</title><content type='html'>&lt;p&gt;This post describes how to troubleshoot issues with a Data Import/Export Framework installation from InformationSource. &lt;/p&gt; &lt;h5&gt; &lt;p&gt;The Data Import/Export Framework does not compile&lt;/p&gt;&lt;/h5&gt; &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;After you install the Data Import/Export Framework, if you cannot compile, validate that the Data Import/Export Framework was installed correctly. &lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;p&gt;Verify that the Microsoft Dynamics AX Data Import/Export Framework service is running.&lt;/p&gt; &lt;li&gt; &lt;p&gt;Verify that the Data Import/Export Framework DLLs are present in C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin folder: &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Microsoft.Dynamics.AX.DMF.Mapper.dll&lt;/p&gt; &lt;li&gt; &lt;p&gt;Microsoft.Dynamics.AX.DMF.PreviewGrid.&lt;/p&gt; &lt;li&gt; &lt;p&gt;Microsoft.Dynamics.AX.DMF.ServiceProxy.dll&lt;/p&gt; &lt;li&gt; &lt;p&gt;DMFConfig.xml&lt;/p&gt; &lt;li&gt; &lt;p&gt;Microsoft.Dynamics.AX.DMF.DriverHelper.dll&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Copy the DLLs from the installation location (C:\Program Files\Microsoft Dynamics AX 2012 Data Import Export Framework Client Component) to the C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin folder. &lt;/p&gt; &lt;h5&gt; &lt;p&gt;Exception message while you use Data Import/Export Framework&lt;/p&gt;&lt;/h5&gt; &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;While you use the Data Import/Export Framework, you might receive the following error message: &lt;/p&gt; &lt;p&gt;System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---&amp;gt; System.InvalidOperationException &lt;/p&gt; &lt;p&gt;Verify that the following files are present in the C:\Program Files (x86)\Microsoft Dynamics AX\60\Server\Bin folder on the server that is running the AOS instance: &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;DMFConfig.xml&lt;/p&gt; &lt;li&gt; &lt;p&gt;DMFClientConfig.xml&lt;/p&gt; &lt;li&gt; &lt;p&gt;Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Copy the .xml and the config files from the installation location (C:\Program Files\Microsoft Dynamics AX 2012 Data Import Export Framework Server Component) to the C:\Program Files (x86)\Microsoft Dynamics AX\60\Server\Bin folder on the server that is running the AOS instance. &lt;/p&gt; &lt;h5&gt; &lt;p&gt;Changes to the location of the Data Import/Export Framework service&lt;/p&gt;&lt;/h5&gt; &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you have to update the location where you run Integration Services and the Data Import/Export Framework service, you can update the endpoint address in the Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config file to use the new server name. &lt;/p&gt; &lt;p&gt;&amp;lt;endpoint address=&quot;http://&amp;lt;&amp;lt;NEW MACHINE NAME&amp;gt;&amp;gt;:7000/DMFService/DMFServiceHelper.svc&quot; &lt;/p&gt; &lt;p&gt;&lt;img title=&quot;Note&quot; alt=&quot;Note&quot; src=&quot;http://i.technet.microsoft.com/areas/global/content/clear.gif&quot;&gt;&lt;strong&gt;Note&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;The Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config file is located in the C:\Program Files (x86)\Microsoft Dynamics AX\60\Server\Bin folder on the server that is running the AOS instance. &lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/528138436520128228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/troubleshoot-installation-of-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/528138436520128228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/528138436520128228'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2015/01/troubleshoot-installation-of-data.html' title='Troubleshoot an installation of the Data Import/Export Framework from InformationSource'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-2604852269317531757</id><published>2014-11-17T14:57:00.001-08:00</published><updated>2014-11-17T14:57:29.314-08:00</updated><title type='text'>12 Ways to Improve Your Productivity at Work</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEthZw8xPt5nO9WN8fxYSBvy1vUP_iNyNtZphKcL9blOH1w39TjgKyywQLcarKy6GFwWZeO2M_eDOWSiJPvMvDGRnhwVKXUkuHjyeZddehq_kH0GSy1-biRtlDyJC_pr-6AYcG911DX3M/s1600-h/image%25255B4%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVpok1kDtycevFvzXLTjzaV37NAFirj5Q6nxYMKDQEYfigFpmPdSjKXpsgiraWZGl13Uxq97Csp4SMBsJAhGmvQqZhBbsVzPGEfE50FbxuIFzzV6g3WpJKx_8Sb13n25kpxN92Vbk7Cso/?imgmax=800&quot; width=&quot;322&quot; height=&quot;208&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;p&gt;Between constant meetings, phone calls and emails, staying productive at work can be a challenge. However, the odds of staying productive can be greatly improved by taking some simple steps in order to stay efficient.&lt;/p&gt; &lt;p&gt;Here are 12 tips from the Bayt.com team to help you to make the most of your time at work:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1. Don’t let emails take over your day&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We are all so accustomed to email that as soon as we see a new email in our inbox we instinctively click it on, focus on the content of the email, and respond. These seemingly tiny activities during the day can quickly add up to large amounts of time that not only cause your day to slip away, but also distract you from completing your current task.&lt;/p&gt; &lt;p&gt;If replying to or disposing of an e-mail takes less than two minutes, do it right away. Send less to receive less: Keep your e-mails short, and write fewer of them. Here are some tips from the career experts at Bayt.com to help you &lt;a href=&quot;http://www.bayt.com/en/career-article-2921/&quot;&gt;control your work emails&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;2. Eliminate unnecessary meetings&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Face-to-face communication is essential (email is fraught with misinterpretation), but be ruthless about protecting your time. Avoid every meeting that isn’t truly necessary.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;3. Learn how to say ‘no’&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;While everyone wants to be a good team player at work, saying ‘no’ is sometimes the right thing to do. If you are not the best person for a task, or if you have other pending deadlines, it is OK to turn down a work request.&amp;nbsp; &lt;a href=&quot;http://blog.bayt.com/2014/01/12-ways-to-improve-your-productivity-at-work/&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/2604852269317531757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/12-ways-to-improve-your-productivity-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2604852269317531757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2604852269317531757'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/12-ways-to-improve-your-productivity-at.html' title='12 Ways to Improve Your Productivity at Work'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVpok1kDtycevFvzXLTjzaV37NAFirj5Q6nxYMKDQEYfigFpmPdSjKXpsgiraWZGl13Uxq97Csp4SMBsJAhGmvQqZhBbsVzPGEfE50FbxuIFzzV6g3WpJKx_8Sb13n25kpxN92Vbk7Cso/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-8946953029926876100</id><published>2014-11-12T02:24:00.001-08:00</published><updated>2014-11-12T02:24:53.022-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><title type='text'>The administration of number sequences – AX 2012</title><content type='html'>&lt;p&gt;The administration of number sequences is performed by using actions provided in the Administration group on the action pane on the Number sequences list page. &lt;/p&gt; &lt;p&gt;Organization Administration –&amp;gt; Common –&amp;gt; Number Sequences ---&amp;gt; Number Sequences &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHWVYqW8sChF-A0RK3z5gwkK0qcEDhMbpD_QnCJftCFadh6fl3Pl_-38U4SiTQHjB8fBXZJQP2XnAFmLBiydieMe5MMuGyK4yd6Zn58zJPrXK6NqwyjribYtdQJxZhQQp1MnF0P62VYyI/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-PKuAKSuEN7TZHpFOreBAfwZhreNg_ZIfmFCaQw1JgLBsUSKjWoYrhQBfrnvLCBqz0SHRQShq2BXzmAOWnIEDgDtfpiXa635cjNhy9vHdbNN3L-cbQLp13gf9AMBw_ccS8cmNYRZ7XeQ/?imgmax=800&quot; width=&quot;335&quot; height=&quot;182&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Status list &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Provides a list of numbers that have been generated for continuous number sequences, but which have not been committed to the database. The numbers are either currently being used in a user session, are reserved for future use in a user session, or are free for use if a new client user session requests a new number for a particular number sequence in the list. If a new number does not exist for a specific continuous number sequence, it is generated by the sequence number framework from the next value for that number sequence in the Number sequence table (NumberSequenceTable). &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXYiAiAPQ9s-giZI396omJe3fLHu-QPf62u_0WwS5VFPG7KfsAZCEKpioQl1TMV84HiT9rrcL0S3EuEfHfqzXV5v2kxaUqt-Jq6USdZrPH2aMYNps-WlQaVZChiA_DTBSTXS7UGcBZs4c/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNIrrpWkLRZiC_3Q0_TmvRbd7_-fbgvsitxEVC6pSnBLQwdMWXYrvHT-uZfPAWoPhr_p7J8hYYDJEZFReA7jx49ZMZQ2JqD6jdTNvm5NC6y7H26tl7ZdIbd-fJ6D9u77JWyz7M72eM6U0/?imgmax=800&quot; width=&quot;274&quot; height=&quot;157&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Manual cleanup&lt;/b&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Allows the administrator to manually clean up numbers in the status list. &lt;font style=&quot;background-color: #cccccc&quot;&gt;&lt;strong&gt;Use of this option is only recommended after an&lt;/strong&gt; &lt;strong&gt;unexpected system &lt;font style=&quot;background-color: #cccccc&quot;&gt;failure&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font style=&quot;background-color: #cccccc&quot;&gt;;&lt;strong&gt; in such rare circumstances, numbers might not be automatically cleaned up&lt;/strong&gt;&lt;/font&gt;. &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgul1z8rBlIJTroNYn7pSiSflaCPpXSfxVoISpDvtxWdG0n2vRPNIea6Xk7LVokP5sWuQQLqewKh5AJaihPadcTnVIFLePfAgGVzXwQ9acGkO4BlaiCRFtcFiYCU_xvNELnaF7HuRhUH68/s1600-h/image%25255B11%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEDgrFCzDrSonOo50Hgwib55oivjnyUVkGnXFZLEGPq9QK00_mkOgxlP0bvo1D524ectiqB1iUPP4RcbanfyNi5AiwP09ixKvT1IE4j17aqjy1b4_sStZCbYwhXDS2ja_NPNtTPJTTmrY/?imgmax=800&quot; width=&quot;244&quot; height=&quot;137&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;History&lt;/b&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Provides the history of changes to the number sequences themselves. &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMOO0WBNpQJNNVIYcoTovufvbYCpZTNzB14WDdeTmYCFpvtXSTvC5kOLcB9UDCA1d0aybWuUW-I2WQq-Pnyj4I9wQQTcchK12QVdiqwtbqKIUZBfk9-iLnmGsaQApovsSTggiZkG6xWzU/s1600-h/image%25255B17%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo2kaob-o9YZM61aJm5uP1sySdSWL3h4ZUTHc4jYodE4iO5IibB_zAIcz9nKUgnekDsNkMraheCHFD8qrorAoZVMT9M2hbWY0i_UlkZL6clC5WyXm6SRFucj7M8N-6y26Wv-MEeNE6GbY/?imgmax=800&quot; width=&quot;244&quot; height=&quot;132&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;A number of administrator tasks can be performed from the Details page. An administrator can, for example, schedule an automated periodic cleanup for every number sequence by entering intervals on the Automatic cleanup FastTab as displayed in image below &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpKrwvxjIhGrKyTlNjBex-XpQafY_GYB6Nf95kvKriMLkLaTDq6FIZ4hlRMsD62xAL54fl0GxdwRCRPviXMFhBhCtAQ_lCettNZvhoHqg4ZqbNPaEf5iu62q533Qk6wr4QixAG51vPD1Y/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQaQ41L1H-vWTHNmPNbUCUqOgXKp651OzgRg_lY9LG11hezVTpXvcd48ag1S1t748dS5U34ZUOq9iqXrYeFlYo4wZzaU-7wKaEBY9JQlrJUEzZSC4rfSjW4Tu8B8NkQp6zjCHg7HF6OWg/?imgmax=800&quot; width=&quot;244&quot; height=&quot;204&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;An administrator can also assign number sequences by using a page in the parameters forms in individual application modules. For example, you can view or assign the number sequences to specific references in the General ledger module. You can navigate to the form by using the path General ledger &amp;gt; Setup &amp;gt; Parameters. &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRIFYhakEYSG6Wt-kB0daNB16ee8_E7EU94VUxkaasyhH06B3tUlC7omdWeda_ZttIGq1segMjwqwAHUCexgSX-_kc3woQ2q0BAV8UY7cNhP33ndiogWzQbthg68hImQDIMGShoG_Xf5A/s1600-h/clip_image001%25255B4%25255D.png&quot;&gt;&lt;img title=&quot;clip_image001&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjISMaWiB8QBgZTzoB1SYStNc_9HIfziVdVnWPShKcHJUo_VlJUrBotNSzvmJBrbbxUHw4WtdTGOQQsGWQzYauTN_tw1PSrhHpMK5WYz2Di4x_XrSl72p5hoYn8JG9RNCHHeitUui224kU/?imgmax=800&quot; width=&quot;333&quot; height=&quot;255&quot;&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/8946953029926876100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/the-administration-of-number-sequences.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/8946953029926876100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/8946953029926876100'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/the-administration-of-number-sequences.html' title='The administration of number sequences – AX 2012'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-PKuAKSuEN7TZHpFOreBAfwZhreNg_ZIfmFCaQw1JgLBsUSKjWoYrhQBfrnvLCBqz0SHRQShq2BXzmAOWnIEDgDtfpiXa635cjNhy9vHdbNN3L-cbQLp13gf9AMBw_ccS8cmNYRZ7XeQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-2526780653512928087</id><published>2014-11-11T04:38:00.001-08:00</published><updated>2014-11-11T04:38:41.012-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>How to reset TTSBegin/TTSCommit in AX</title><content type='html'>&lt;p&gt;We are using TTSBegin and TTSCommit when update and create a record in AX, but some times an error is occurred&amp;nbsp; and through an exception.&lt;/p&gt; &lt;p&gt;If we did not abort TTS by using TTSAbort&amp;nbsp; statement between try and catch keyword as below&lt;/p&gt; &lt;p&gt;try&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;ttsBegin;&lt;/p&gt; &lt;p&gt;// your update code&lt;/p&gt; &lt;p&gt;ttsCommit;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;catch&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;ttsAbort;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;so we may facing this error below,&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXThoBZEUAeq8fggJYfrqr42YvPKJBpB8uAiwr4YTdWqRWL16SfhpRZtgnOivS4l92PZbIcCSw8Yd2JEYf3lfOF8_fmxh6f184H0ZP_gQoKkKOdjrWOtc9tncK0thyphenhyphenS5ZRviN0Do7vkk/s1600/ttsbeign+error.png&quot; width=&quot;314&quot; height=&quot;177&quot;&gt;&lt;/p&gt; &lt;p&gt;To fix this error please run the following job&lt;/p&gt; &lt;p&gt;static void ResetTTS(Args _args)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (appl.ttsLevel() &amp;gt; 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info(strfmt(&quot;Level %1 aborted&quot;,appl.ttsLevel()));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ttsAbort;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/2526780653512928087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/how-to-reset-ttsbeginttscommit-in-ax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2526780653512928087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2526780653512928087'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/how-to-reset-ttsbeginttscommit-in-ax.html' title='How to reset TTSBegin/TTSCommit in AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXXThoBZEUAeq8fggJYfrqr42YvPKJBpB8uAiwr4YTdWqRWL16SfhpRZtgnOivS4l92PZbIcCSw8Yd2JEYf3lfOF8_fmxh6f184H0ZP_gQoKkKOdjrWOtc9tncK0thyphenhyphenS5ZRviN0Do7vkk/s72-c/ttsbeign+error.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-4108682598892737590</id><published>2014-11-10T04:43:00.001-08:00</published><updated>2014-11-10T04:43:38.621-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX 2012"/><category scheme="http://www.blogger.com/atom/ns#" term="Batch Framework"/><title type='text'>Make sure that the X++ code has been compiled to Microsoft .NET Framework CIL - AX Batch Error</title><content type='html'>&lt;p&gt;I developed custom class which extend RunBaseBatch system class to run in server, After created my class and run the class though batch job, there is an error is occurred and got the following error in log.&lt;/p&gt; &lt;p&gt;&quot;&lt;em&gt;Unable to construct an object from the class Sample Class in the batch framework. Make sure that the X++ code has been compiled to Microsoft .NET Framework CIL, and that the constructor does not require any parameters&lt;/em&gt;&quot;&lt;/p&gt; &lt;p&gt;After search through internet I got solution by run “Generate incremental CIL” as&amp;nbsp; displayed below&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqSCsjqTalpIxrg3oXrdQBxx-SDLhd9AmLssEH1ja6QB8AgQ_H8FssashUdAuGEnhqsMIgSw6AhazCTHPB7Pbm_TS5bUx9cgilj7fXS9WWQXItLHC7uMIrVYfBlpQZQ9HDNa9o_Dl1Pyc/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSrTOKsHdh-ZyCcY3TPABDHeO8i00kpiaqDOzPPZEMY6dmVZ-Wj7AMxFeGF7yij1ukBafBfvLxC9jZjccOJ1D4QQZB_OIHRVAwkO2NKYQ0DsTEf77pLTWKgSan_DydvxELc9sfZjB7dRg/?imgmax=800&quot; width=&quot;296&quot; height=&quot;249&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Hint: May it takes time depend on server configuration.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/4108682598892737590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/make-sure-that-x-code-has-been-compiled.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/4108682598892737590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/4108682598892737590'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/make-sure-that-x-code-has-been-compiled.html' title='Make sure that the X++ code has been compiled to Microsoft .NET Framework CIL - AX Batch Error'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSrTOKsHdh-ZyCcY3TPABDHeO8i00kpiaqDOzPPZEMY6dmVZ-Wj7AMxFeGF7yij1ukBafBfvLxC9jZjccOJ1D4QQZB_OIHRVAwkO2NKYQ0DsTEf77pLTWKgSan_DydvxELc9sfZjB7dRg/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-3267484363459234877</id><published>2014-11-09T00:57:00.001-08:00</published><updated>2014-11-09T00:57:42.377-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dynamics AX"/><title type='text'>Performance considerations for number sequences in Dynamics AX</title><content type='html'>&lt;h5&gt; &lt;h4&gt;&lt;font style=&quot;font-weight: normal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font size=&quot;3&quot;&gt;Consider the following information about how the configuration of number sequences can affect system performance before you set up number sequences&lt;/font&gt;.&lt;/font&gt; &lt;/font&gt;&lt;/h4&gt; &lt;p&gt;&lt;font size=&quot;4&quot;&gt;Continuous and non-continuous number sequences&lt;/font&gt;&lt;/p&gt;&lt;/h5&gt; &lt;p&gt; &lt;p&gt;Number sequences can be continuous or non-continuous. A continuous number sequence does not skip any numbers, but numbers may not be used sequentially. Numbers from a non-continuous number sequence are used sequentially, but the number sequence may skip numbers. For example, if a user cancels a transaction, a number is generated, but not used. In a continuous number sequence, that number is recycled later. In a non-continuous number sequence, the number is not used.  &lt;p&gt;Continuous number sequences are typically required for external documents, such as purchase orders, sales orders, and invoices. However, continuous number sequences can adversely affect system response times because the system must request a number from the database every time that a new document or record is created.  &lt;p&gt;If you use a non-continuous number sequence, you can enable &lt;strong&gt;Preallocation&lt;/strong&gt; on the &lt;strong&gt;Performance&lt;/strong&gt; FastTab of the &lt;strong&gt;Number sequences&lt;/strong&gt; form. When you specify a quantity of numbers to preallocate, the system selects those numbers and stores them in memory. New numbers are requested from the database only after the preallocated quantity has been used.  &lt;p&gt;Unless there is a regulatory requirement that you use continuous number sequences, we recommend that you use non-continuous number sequences for better performance.  &lt;h5&gt; &lt;p&gt;&lt;strong&gt;&lt;font size=&quot;4&quot;&gt;Automatic cleanup of number sequences&lt;/font&gt;&lt;/strong&gt;&lt;/h5&gt; &lt;p&gt;&lt;a&gt;&lt;/a&gt; &lt;p&gt;In case of a power failure, an application error, or other unexpected failure, the system cannot recycle numbers automatically for continuous number sequences. You can run the cleanup process manually or automatically to recover the lost numbers.  &lt;p&gt;Carefully consider server usage when you plan the cleanup process. We recommend that you perform the cleanup as a batch job during non-peak hours.  &lt;h4&gt;&lt;/h4&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/3267484363459234877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/performance-considerations-for-number.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/3267484363459234877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/3267484363459234877'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/performance-considerations-for-number.html' title='Performance considerations for number sequences in Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-3515924685167251339</id><published>2014-11-05T01:02:00.001-08:00</published><updated>2014-11-05T01:02:26.048-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="X++"/><title type='text'>How to pass parameter to SSRS report from Dynamics AX</title><content type='html'>&lt;p&gt;The below code for Passing parameters to SSRS using X++ code.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MenuFunction SSRS_MyReport;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Args Args;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str parmId =&quot;&quot;;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; // create reference to menu item “OverTime” which is in AOT &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSRS_MyReport = new MenuFunction(menuItemOutputStr(OverTime),MenuItemType::Output);&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Args = new Args();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set parameters and parameter value &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // I have 3 Parameters Nationality, EmplGroup, PeriodID&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; parmId = &quot;Nationality=KSA&amp;amp;EmplGroup=HERD&amp;amp;PeriodID=2014_05&quot;;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Assign parameters to report &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Args.parm(parmId);&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Run the report &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSRS_MyReport.run(Args);&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Notes:&lt;/p&gt; &lt;p&gt;1- Parameters name is case sensitive, so it should set name as predefined in report.&lt;/p&gt; &lt;p&gt;2- You can pass more than one parameters by add “&amp;amp;”&amp;nbsp;&amp;nbsp; between each parameter.&lt;/p&gt; &lt;p&gt;3- Not add space between parameters, it cause an error&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/3515924685167251339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/how-to-pass-parameter-to-ssrs-report.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/3515924685167251339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/3515924685167251339'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/how-to-pass-parameter-to-ssrs-report.html' title='How to pass parameter to SSRS report from Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-3331888726080731903</id><published>2014-11-04T01:04:00.001-08:00</published><updated>2014-11-04T01:04:14.154-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamics AX"/><title type='text'>Recalculation Error Dynamics AX 2009</title><content type='html'>&lt;p&gt;while running inventory recalculation process, I got this error &lt;/p&gt; &lt;p&gt;“Cannot edit a record in stock transactions (InventTrans) An update &lt;br&gt;conflict occurred due to another user process deleting the record or changing &lt;br&gt;one or more fields in the record&quot;&lt;/p&gt; &lt;p&gt;solution to avoid this error, go to AOT –&amp;gt; DataDictionary –&amp;gt; Tables ----&amp;gt; InventTrans &lt;/p&gt; &lt;p&gt;right click on table to display properties window then change OccEnabled property to No.&lt;/p&gt; &lt;p&gt;then resume recalculation again, it will work successfully.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK7vwWGlMU9pAfgtSEmU9rSzUBbrGtdqoRwV4E7xsiRZxUGzNJjoDY5TqBBIy-7mKhwcvQnXKyB6-0zM9_ETwHJi_XzwmuvCvlpQlDWTiuiNThPIjvQGkKd4I4QUnv7IKXSX56tmHYbZM/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIhW06rgQn7_g6TdsGcO5r2eMxaL9dGWUWuiFRXk1QPWUvvFDMrgPEu1UAEnXNwAFuCzAMOpUsiv09tSFBHkGMSuGWLbFjy9m-_vzGJKk_o9rDX6O_UtfdM3BpRSPZ5yTAH9be_pCHj_c/?imgmax=800&quot; width=&quot;244&quot; height=&quot;158&quot;&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/3331888726080731903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/recalculation-error-dynamics-ax-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/3331888726080731903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/3331888726080731903'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/recalculation-error-dynamics-ax-2009.html' title='Recalculation Error Dynamics AX 2009'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIhW06rgQn7_g6TdsGcO5r2eMxaL9dGWUWuiFRXk1QPWUvvFDMrgPEu1UAEnXNwAFuCzAMOpUsiv09tSFBHkGMSuGWLbFjy9m-_vzGJKk_o9rDX6O_UtfdM3BpRSPZ5yTAH9be_pCHj_c/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-7345673277541010931</id><published>2014-11-01T22:45:00.001-07:00</published><updated>2014-11-01T22:45:01.784-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>Configuring the instance of SQL Server for Dynamics AX</title><content type='html'>&lt;p&gt;Improve SQL performance lead us to optimize AX performance, this post is one of posts to achieve that &lt;/p&gt; &lt;p&gt;&lt;b&gt;1- Configuring max degree of parallelism&lt;/b&gt; &lt;/p&gt; &lt;p&gt;The &lt;b&gt;max degree of parallelism&lt;/b&gt; option is a setting that affects the entire instance of SQL Server. Microsoft Dynamics AX workloads generally perform better when intra-query parallelism is disabled. However, the upgrade process benefits from parallelism, as do activities that are used exclusively for batch jobs or maintenance. Use the following settings when the system performs maintenance activities or an upgrade: &lt;/p&gt; &lt;p&gt;· Before an upgrade to a new release of Microsoft Dynamics AX, or before a large number of maintenance or batch activities, set &lt;b&gt;max degree of parallelism&lt;/b&gt; to the smallest of the following values: &lt;/p&gt; &lt;p&gt;· 8 &lt;/p&gt; &lt;p&gt;· The number of physical processor cores &lt;/p&gt; &lt;p&gt;· The number of physical processor cores per non-uniform memory access (NUMA) node &lt;/p&gt; &lt;p&gt;· When the Microsoft Dynamics AX database is used in a production environment, set &lt;b&gt;max degree of parallelism&lt;/b&gt; to 1. &lt;/p&gt; &lt;p&gt;Use the following statements to set the value of &lt;b&gt;max degree of parallelism&lt;/b&gt;. &lt;/p&gt; &lt;p&gt;Examine the output from the second sp_configure &#39;max degree of parallelism&#39; statement, and confirm that the value has been changed. In the following query, the first sp_configure &#39;max degree of parallelism&#39; statement sets the value of &lt;b&gt;max degree of parallelism&lt;/b&gt; to 1. The second sp_configure &#39;max degree of parallelism&#39; statement returns a value of 1. &lt;/p&gt; &lt;p&gt;EXEC sp_configure &#39;show advanced options&#39;, 1; &lt;/p&gt; &lt;p&gt;RECONFIGURE; &lt;/p&gt; &lt;p&gt;GO &lt;/p&gt; &lt;p&gt;EXEC sp_configure &#39;max degree of parallelism&#39;, 1; &lt;/p&gt; &lt;p&gt;RECONFIGURE; &lt;/p&gt; &lt;p&gt;GO &lt;/p&gt; &lt;p&gt;EXEC sp_configure; &lt;/p&gt; &lt;p&gt;For more information, see &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213211&quot;&gt;max degree of parallelism Option&lt;/a&gt;. For general guidelines, see Knowledge base article 329204, &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213212&quot;&gt;General guidelines to use to configure the MAXDOP option&lt;/a&gt;. For tips from the SQL Server team, visit the SQL Server Relational Engine team&#39;s blog, &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213213&quot;&gt;SQL Server Engine Tips&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;b&gt;2- Configuring max server memory&lt;/b&gt; &lt;/p&gt; &lt;p&gt;SQL Server dynamically acquires and frees memory as required. Typically, an administrator does not have to specify how much memory is allocated to SQL Server. However, the &lt;b&gt;max server memory&lt;/b&gt; option can be useful in some environments. Make sure that sufficient memory is available for the operation of Windows Server. For more information, see &lt;a href=&quot;http://technet.microsoft.com/EN-US/library/dd309734.aspx#Section5_monitor&quot;&gt;Configure SQL Server and storage settings&lt;/a&gt;, later in this topic. &lt;/p&gt; &lt;p&gt;If you find that the dynamic allocation of memory adversely affects the operation of Windows Server, adjust the value of &lt;b&gt;max server memory&lt;/b&gt; based on the available random access memory (RAM). For more information, see &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213214&quot;&gt;Effects of min and max server memory&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;b&gt;3- Monitoring available memory&lt;/b&gt; &lt;/p&gt; &lt;p&gt;Make sure that sufficient memory is available for the operation of Windows Server. For example, make sure that you run a dedicated instance of SQL Server on a server that has at least 4 gigabytes (GB) of memory. If the available memory for the server drops below 500 megabytes (MB) for extended periods, the performance of the server may degrade. &lt;/p&gt; &lt;p&gt;Use the &lt;b&gt;Memory: Available Mbytes&lt;/b&gt; performance counter for the Windows Server operating system to determine whether the available memory drops below 500 MB for extended periods. If the available memory drops below 500 MB frequently or for extended periods, we recommend that you reduce the &lt;b&gt;max server memory&lt;/b&gt; setting for SQL Server or increase the physical memory of the server. &lt;/p&gt; &lt;p&gt;Detailed guidance about memory management is beyond the scope of this topic. For more information about how to monitor memory and troubleshoot performance issues, see the Windows Server and SQL Server documentation. &lt;/p&gt; &lt;p&gt;&lt;b&gt;4- Allocating storage for tempdb&lt;/b&gt; &lt;/p&gt; &lt;p&gt;We recommend that you determine the total size of the data files and transaction log files that are required for the tempdb database, and that you set a specific value. Do not use automatic growth, or autogrow, setting for space management. Instead, use autogrow as a safety mechanism, so that tempdb can grow if tempdb files use the space that was originally allocated to them. Follow this process to determine the number and placement of data files. &lt;/p&gt; &lt;p&gt;· Determine the number of processors that are available to SQL Server. Unless you are using an affinity mask, this number is same as the total number of processors that you see on the &lt;b&gt;Performance&lt;/b&gt; tab of Windows Task Manager. When hyperthreading is not enabled, each processor corresponds to a processor core. Affinity masks and processor cores are beyond the scope of this topic. For more information, see the Windows Server and SQL Server documentation. &lt;/p&gt; &lt;p&gt;· Based on performance testing of the OLTP workload for Microsoft Dynamics AX, we recommend that you maintain one tempdb data file per processor. For more information, see the performance benchmark reports on &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=143994&quot;&gt;PartnerSource&lt;/a&gt; or &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213216&quot;&gt;CustomerSource&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;· Isolate tempdb on dedicated storage, if you can. We recommend that you move the primary data file and log file for tempdb to high-speed storage, if high-speed storage is available. The Microsoft Dynamics AX database runs in read committed snapshot isolation (RCSI) mode. In RCSI mode, row versions are stored in tempdb. By creating multiple files for tempdb data, even if these files reside on the same storage device, you can improve the performance of tempdb operations. &lt;/p&gt; &lt;p&gt;· Determine the size of the tempdb data files and log files. You must create one primary data file and one log file. Determine how many additional, secondary data files you require for the tempdb data. For best results, create data files of equal size. The total number of data files must equal the total number of processor cores. The aggregate size of the primary data file and all other data files must equal the total data size that you determined for the tempdb database. &lt;/p&gt; &lt;p&gt;For more information, see &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213217&quot;&gt;Optimizing tempdb performance&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;· Resize the primary data file and log file for tempdb. Move the primary data file and log file to dedicated storage, if dedicated storage is available. The primary tempdb data file cannot be moved while the instance of SQL Server is running. To complete the move, you must use an ALTER DATABASE statement and restart the instance of SQL Server. For more information, see &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213218&quot;&gt;ALTER DATABASE&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;The data files and transaction log files for tempdb can reside on the same storage device. &lt;/p&gt; &lt;p&gt;· If space is available on the drive where tempdb files are allocated, do not configure the autogrow property for data files and log files as a percentage. Instead, configure the autogrow property as a specific number of megabytes. If you can, configure the data files and log files to grow by 100 to 500 MB, depending on the available space. Monitor the data files, and when they grow, adjust the original allocation to prevent automatic growth later. If the autogrow property is configured in megabytes instead of as a percentage, the allocation of space is more predictable, and the chance of extremely small or large growth increments is reduced. &lt;/p&gt; &lt;p&gt;· Monitor the tempdb data files and log files to make sure that they are all sized correctly, and that all data files are of equal size. Use SQL Server Management Studio or a transact-SQL query to view the database properties. Verify that all the data files are of equal size, and that they have the same size as the value that you originally provided. If one or more files have grown, adjust the initial size of all files.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/7345673277541010931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/configuring-instance-of-sql-server-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/7345673277541010931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/7345673277541010931'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/11/configuring-instance-of-sql-server-for.html' title='Configuring the instance of SQL Server for Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-5024745126137894133</id><published>2014-10-27T21:57:00.001-07:00</published><updated>2014-10-27T21:57:02.380-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>Configuring physical storage for SQL server of Dynamics AX</title><content type='html'>&lt;p&gt;This post provides general recommendations for physical storage. Determine the applicability of these recommendations to your environment. Some storage area network (SAN) vendors may have alternative recommendations that take precedence. Recommendations are listed in order of priority. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Many factors contribute to optimal I/O performance for a disk. By default, Windows Server 2008 aligns partitions. When you upgrade to Windows Server 2008, preexisting partitions are not automatically aligned and must be manually rebuilt to guarantee optimal performance. Therefore, until you rebuild the migrated partitions, alignment of disk partitions remains a relevant technology. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Check existing disks on the server, and be aware of the differences in the analysis of basic partitions and dynamic volumes. Rebuild the partitions, if you can, and appropriate and create all new partitions based on guidance from the SAN vendor. If the vendor does not provide recommendations, follow the best practices for SQL Server. See &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=213222&quot;&gt;Disk Partition Alignment Best Practices for SQL Server&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;The partition offset value must be a multiple of the stripe size. In other words, the expression, &lt;em&gt;partition offset / stripe size&lt;/em&gt;, must resolve to an integer value. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Create the tempdb database files, data files for the Microsoft Dynamics AX database, and Microsoft Dynamics AX log files on disk arrays of type RAID 1, RAID 0 + 1, or RAID 10. We recommend RAID 10 for these files. Do not use RAID 5.  &lt;li&gt;Store the data files for the Microsoft Dynamics AX database on separate physical stores from the transaction log files.  &lt;li&gt;Store the tempdb data files on a separate physical store from the data files and log files for the Microsoft Dynamics AX database.  &lt;li&gt;Store other database files on separate physical stores from the data files and log files for tempdb and the Microsoft Dynamics AX database. &lt;/li&gt;&lt;/ul&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/5024745126137894133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/10/configuring-physical-storage-for-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/5024745126137894133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/5024745126137894133'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/10/configuring-physical-storage-for-sql.html' title='Configuring physical storage for SQL server of Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-5139240715210862455</id><published>2014-10-26T02:52:00.001-07:00</published><updated>2014-10-26T02:52:50.565-07:00</updated><title type='text'>Tune data access settings [AX 2012]</title><content type='html'>&lt;p&gt;You might want to tune the database settings for Microsoft Dynamics AX to improve performance. Settings that you can tune &lt;i&gt;include connections, query settings for the use of literals, string functions, or hints, concurrency mode used for database changes, and the table and index options, such as table and index data compression, and index fill factor and sort in tempdb settings&lt;/i&gt;. &lt;/p&gt; &lt;p&gt;Before changing settings, you should trace the usage of your Microsoft Dynamics AX database to ensure that you have clear understanding of performance under the current settings. &lt;/p&gt; &lt;p&gt;Test all tuning changes before implementing them in a production environment. In a test or development environment, make a single change and then test your system&#39;s performance before making another change. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Tune connections &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The following table lists common connection issues, and also some adjustments to try in the &lt;b&gt;Server Configuration Utility&lt;/b&gt;.  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Symptom&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Adjustments to try&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Queries that return a large number of rows execute slowly.&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Increase the &lt;b&gt;Maximum buffer size&lt;/b&gt; value in small increments. &lt;/p&gt; &lt;p&gt;If this adjustment has worked, the number of round trips to the database, as measured in Performance Monitor by a decrease in the value of &lt;strong&gt;SQL Server statistics: batchrequestsPerSecond&lt;/strong&gt; value. Stop increasing the value when the rate of improvement diminishes. &lt;/p&gt; &lt;p&gt;You may also want to change the &lt;b&gt;Maximum buffer size&lt;/b&gt; value if you receive an error similar to the following: &lt;/p&gt; &lt;p&gt;&lt;strong&gt;The total, internal size of the records in your joined Select statement is 29374 bytes, but Microsoft Dynamics is by default performance-tuned not to exceed 27646 bytes. It is strongly recommended that you split your tables(s) into smaller units.&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Maximum buffer size refers to the size of buffer the kernel allocates for holding input/output data to and from SQL Server. The buffer can be used to hold more than one row of the entire result set for output binding, and it should be allocated large enough to hold at least one row. The buffer size needed for one row depends on the number of tables joined (exist join excluded) and the size of the aggregated table columns. When large numbers of joins are used, or wide tables, a customer may encounter the issue that the maximum buffer size is less than the space needed to hold one row of the result set. &lt;/p&gt; &lt;p&gt;Due to the way the kernel handles data binding, the aggregated table column size is always the width of the entire table. Therefore, attempting to resolve the issue by limiting the field projection list does not help. You can fix the issue by rewriting the join, or by increasing the &lt;b&gt;Maximum buffer size&lt;/b&gt; value. &lt;/p&gt; &lt;p&gt;Because large joins and wide rows may lead to performance issues, we use this limit to catch performance issues and ask customers to rethink their joins.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Results for ad hoc queries are returned slowly&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Verify that the appropriate indexes are in place.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Tune queries &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If queries in the system are running slowly, you may want to change settings for literals, string functions, or hints. &lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;Adjust the use of hints &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;In Microsoft Dynamics AX, you can allow developers to override the index selected by the query optimizer. In most situations, allowing the query optimizer to select an index for a query results in improved performance. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Changes in the use of hints &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The following changes to hints have been made: &lt;/p&gt; &lt;p&gt;· The OPTION (FIRSTFAST) hint is applied by default for form data sources. It can be suppressed, or set to a specific value. Use of this option appends an OPTION (FAST) to the SQL Server query. &lt;/p&gt; &lt;p&gt;· OPTION( FAST) is now set to what we expect the number of rows to be returned to the database in a single roundtrip. This is based on maximum buffer size. &lt;/p&gt; &lt;p&gt;· FASTFORWARD cursors are used for all user queries unless the query is a full text search. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Change table and index options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Table and index options that can be changed from within Microsoft Dynamics AX include table compression settings, and index compression, fill factor, and sort in tempdb settings. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Data compression options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you have appropriate hardware, we recommend that you set all tables and indexes to use page-level compression. Compression saves disk space and memory consumption, but increases CPU consumption. &lt;/p&gt; &lt;p&gt;When page-level compression has been set, expect between 10-15 percent additional CPU consumption. &lt;/p&gt; &lt;p&gt;If you are concerned about CPU consumption, we recommend that you start by setting the ten largest tables in your system to use table compression. &lt;/p&gt; &lt;p&gt;Use the guidance in the following resources to help you determine how or whether to compress your tables and indexes: &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;· SQL Server Books online: &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=210430&quot;&gt;Creating Compressed Tables and Indexes&lt;/a&gt; &lt;/p&gt; &lt;p&gt;· SQLCat article: &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=210431&quot;&gt;Data Compression: Strategy, Capacity Planning and Best Practices&lt;/a&gt; &lt;/p&gt; &lt;p&gt;· Database Engine team blog post: &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=210424&quot;&gt;Compression Strategies&lt;/a&gt;.&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Fill factor options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We recommend that you not set the fill factor options (fill factor and pad index) for all indexes. Only set fill factor values on indexes that show rapid fragmentation, where fragmentation has a performance penalty. Adjusting fill factor can be important for tables that you want to retrieve sequential rows from, for example, sales line. &lt;/p&gt; &lt;p&gt;We recommend that you work with your database administrators to identify the tables to set this value for. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sort in tempdb&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We recommend that you not set the sort in tembdp options for all indexes. Only enable sort in tempdb for indexes that show rapid fragmentation, where fragmentation has a performance penalty. &lt;/p&gt; &lt;p&gt;We recommend that you work with your database administrators to identify the tables to set this value for. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;To change table and index options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. Click &lt;b&gt;System administration&lt;/b&gt; &amp;gt; &lt;b&gt;Periodic&lt;/b&gt; &amp;gt; &lt;b&gt;Database&lt;/b&gt; &amp;gt; &lt;b&gt;SQL administration&lt;/b&gt;. Select all tables, all indexes, or a specific table or index, and then click &lt;b&gt;Table and index options&lt;/b&gt;. &lt;/p&gt; &lt;p&gt;2. Select the options to set, and then click &lt;b&gt;Save&lt;/b&gt;. &lt;/p&gt; &lt;p&gt;The SQL statement that will be executed is displayed at the bottom of the form.  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuBgFKIHx4N8w5rA7PoPa02GzXA_reoYlHObyzm_6sWN6bxKjAXvrns5mTxQhEn0kWtmOxKFLH7k7wvt-uvAUdmJFrpQl-6KSgSKWLzvbcREaakoi3X5QOIYgObuXgnvFkddHDQUMSNmE/s1600-h/clip_image001%25255B3%25255D.gif&quot;&gt;&lt;img title=&quot;clip_image001&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_HtkZCl4qhs9ewmXmpmYSiMDJRapQk7u9EmbhZlLdEWOg1rilvcTprOrT57zrV9EEXGMVH0_hFqFKbQDUzR8Ek8zJ7z_t0lZ9IQwsglxZjgd_PTtHg6jKXJTo4yaOrS_c-A3HHM2X1Qs/?imgmax=800&quot; width=&quot;2&quot; height=&quot;2&quot;&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;Important&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;The changes that you have made will not be applied unless you specify that they should be applied by using the &lt;b&gt;SQL administration&lt;/b&gt; form. &lt;/p&gt; &lt;p&gt;To turn off data compression, click &lt;b&gt;Enable compression&lt;/b&gt;, click &lt;b&gt;None&lt;/b&gt; for the type of compression, and then close the &lt;b&gt;Select table and index options&lt;/b&gt; form, and then click &lt;b&gt;Apply compression&lt;/b&gt; in the &lt;b&gt;SQL administration&lt;/b&gt; form.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;3. To apply changes in the &lt;b&gt;SQL administration&lt;/b&gt; form: &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;o For tables, click &lt;b&gt;Table actions&lt;/b&gt;, and then click &lt;b&gt;Apply compression&lt;/b&gt;. &lt;/p&gt; &lt;p&gt;o For indexes, click &lt;b&gt;Index actions&lt;/b&gt;, and then click &lt;b&gt;Reindex&lt;/b&gt;. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Change the concurrency mode&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Concurrency mode settings enable you to reduce locking conflicts in your system. Set concurrency mode settings only at the table or statement level, not throughout your Microsoft Dynamics AX program. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Optimistic concurrency&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;An optimistic concurrency strategy does not lock data when the data is retrieved from the database for future modification. Therefore, no locks are held while filters and other business logic are being applied. Data is locked only when an update is performed. If any data has been changed by another transaction between the time of the retrieval and the time of the update, the change is detected and an Infolog exception is displayed. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Pessimistic concurrency&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;A pessimistic concurrency strategy uses an update lock to lock data when the data is retrieved from the database for future modification. Locks are held while filters and other business logic are being applied, in addition to being held during an update. Data cannot be changed by other transactions. &lt;/p&gt; &lt;p&gt;Acquiring an update lock for a large volume of rows increases the lock escalation from row level to table level in SQL Server. This can block other users and reduce transaction throughput. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Table-level concurrency settings&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If the global concurrency mode is set to &lt;b&gt;Optimistic concurrency mode enabled per table&lt;/b&gt;, table-level control of concurrency settings is available using the &lt;b&gt;OccEnabled&lt;/b&gt; property. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Runtime update options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you are encountering many update errors, you may want to use the runtime update options to help troubleshoot. These options are intended for temporary use only, as they might significantly slow performance. &lt;/p&gt; &lt;p&gt;Use &lt;b&gt;Writes all UPDATE conflict exceptions to the log&lt;/b&gt; to write all update conflict exceptions to the log. &lt;/p&gt; &lt;p&gt;Use &lt;b&gt;Update record version automatically&lt;/b&gt; to have Microsoft Dynamics AX search in memory for the recordID every time that that a record is updated, and then change the update values in all instances of the record. &lt;/p&gt; &lt;p&gt;If you have a table set to optimistic concurrency, and you are experiencing optimistic concurrency violations that affect the performance of the transactions that use the table, then first set the &lt;b&gt;Writes all UPDATE conflict exceptions to the log&lt;/b&gt; option. If, from your analysis, it appears that the use of optimistic concurrency is causing a problem, then set the table to pessimistic concurrency. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;To change concurrency settings &lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;1. Click &lt;b&gt;System administration&lt;/b&gt; &amp;gt; &lt;b&gt;Setup&lt;/b&gt; &amp;gt; &lt;b&gt;Database&lt;/b&gt; &amp;gt; &lt;b&gt;Select concurrency mode&lt;/b&gt;. &lt;/p&gt; &lt;p&gt;2. Select the appropriate concurrency mode and runtime options for your environment. &lt;/p&gt; &lt;p&gt;3. Click &lt;b&gt;Close&lt;/b&gt;. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Statement-level concurrency settings&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;You can use the &lt;b&gt;optimisticlock&lt;/b&gt; or &lt;b&gt;pessimisticlock&lt;/b&gt; keywords in a SELECT statement to override the global or table concurrency mode settings. &lt;/p&gt; &lt;p&gt;For more information, see the following topics: &lt;/p&gt; &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa854605.aspx&quot;&gt;Best Practice Performance Optimizations: Database Design and Operations&lt;/a&gt; &lt;/p&gt; &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa622564.aspx&quot;&gt;Transaction Integrity&lt;/a&gt; &lt;/p&gt; &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa893385.aspx&quot;&gt;Exception Handling with try and catch Keywords&lt;/a&gt; &lt;/p&gt; &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa656402.aspx&quot;&gt;Select Statement Syntax&lt;/a&gt; &lt;/p&gt; &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa871620.aspx&quot;&gt;Table Properties&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/5139240715210862455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/10/tune-data-access-settings-ax-2012_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/5139240715210862455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/5139240715210862455'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/10/tune-data-access-settings-ax-2012_26.html' title='Tune data access settings [AX 2012]'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_HtkZCl4qhs9ewmXmpmYSiMDJRapQk7u9EmbhZlLdEWOg1rilvcTprOrT57zrV9EEXGMVH0_hFqFKbQDUzR8Ek8zJ7z_t0lZ9IQwsglxZjgd_PTtHg6jKXJTo4yaOrS_c-A3HHM2X1Qs/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-2049830747600828805</id><published>2014-10-23T07:38:00.001-07:00</published><updated>2014-10-23T07:38:25.663-07:00</updated><title type='text'>Tune data access settings [AX 2012]</title><content type='html'>&lt;p&gt;You might want to tune the database settings for Microsoft Dynamics AX to improve performance. Settings that you can tune &lt;i&gt;include connections, query settings for the use of literals, string functions, or hints, concurrency mode used for database changes, and the table and index options, such as table and index data compression, and index fill factor and sort in tempdb settings&lt;/i&gt;.  &lt;p&gt;Before changing settings, you should trace the usage of your Microsoft Dynamics AX database to ensure that you have clear understanding of performance under the current settings.  &lt;p&gt;Test all tuning changes before implementing them in a production environment. In a test or development environment, make a single change and then test your system&#39;s performance before making another change.  &lt;p&gt;&lt;strong&gt;Tune connections &lt;/strong&gt; &lt;p&gt;The following table lists common connection issues, and also some adjustments to try in the &lt;b&gt;Server Configuration Utility&lt;/b&gt;.  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Symptom&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Adjustments to try&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Queries that return a large number of rows execute slowly.&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Increase the &lt;b&gt;Maximum buffer size&lt;/b&gt; value in small increments.  &lt;p&gt;If this adjustment has worked, the number of round trips to the database, as measured in Performance Monitor by a decrease in the value of &lt;strong&gt;SQL Server statistics: batchrequestsPerSecond&lt;/strong&gt; value. Stop increasing the value when the rate of improvement diminishes.  &lt;p&gt;You may also want to change the &lt;b&gt;Maximum buffer size&lt;/b&gt; value if you receive an error similar to the following:  &lt;p&gt;&lt;strong&gt;The total, internal size of the records in your joined Select statement is 29374 bytes, but Microsoft Dynamics is by default performance-tuned not to exceed 27646 bytes. It is strongly recommended that you split your tables(s) into smaller units.&lt;/strong&gt;  &lt;p&gt;Maximum buffer size refers to the size of buffer the kernel allocates for holding input/output data to and from SQL Server. The buffer can be used to hold more than one row of the entire result set for output binding, and it should be allocated large enough to hold at least one row. The buffer size needed for one row depends on the number of tables joined (exist join excluded) and the size of the aggregated table columns. When large numbers of joins are used, or wide tables, a customer may encounter the issue that the maximum buffer size is less than the space needed to hold one row of the result set.  &lt;p&gt;Due to the way the kernel handles data binding, the aggregated table column size is always the width of the entire table. Therefore, attempting to resolve the issue by limiting the field projection list does not help. You can fix the issue by rewriting the join, or by increasing the &lt;b&gt;Maximum buffer size&lt;/b&gt; value.  &lt;p&gt;Because large joins and wide rows may lead to performance issues, we use this limit to catch performance issues and ask customers to rethink their joins.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Results for ad hoc queries are returned slowly&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Verify that the appropriate indexes are in place.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;strong&gt;Tune queries &lt;/strong&gt; &lt;p&gt;If queries in the system are running slowly, you may want to change settings for literals, string functions, or hints.  &lt;p&gt;&lt;br&gt;&lt;strong&gt;Adjust the use of hints &lt;/strong&gt; &lt;p&gt;In Microsoft Dynamics AX, you can allow developers to override the index selected by the query optimizer. In most situations, allowing the query optimizer to select an index for a query results in improved performance.  &lt;p&gt;&lt;strong&gt;Changes in the use of hints &lt;/strong&gt; &lt;p&gt;The following changes to hints have been made:  &lt;p&gt;· The OPTION (FIRSTFAST) hint is applied by default for form data sources. It can be suppressed, or set to a specific value. Use of this option appends an OPTION (FAST) to the SQL Server query.  &lt;p&gt;· OPTION( FAST) is now set to what we expect the number of rows to be returned to the database in a single roundtrip. This is based on maximum buffer size.  &lt;p&gt;· FASTFORWARD cursors are used for all user queries unless the query is a full text search.  &lt;p&gt;&lt;strong&gt;Change table and index options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;Table and index options that can be changed from within Microsoft Dynamics AX include table compression settings, and index compression, fill factor, and sort in tempdb settings.  &lt;p&gt;&lt;strong&gt;Data compression options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;If you have appropriate hardware, we recommend that you set all tables and indexes to use page-level compression. Compression saves disk space and memory consumption, but increases CPU consumption.  &lt;p&gt;When page-level compression has been set, expect between 10-15 percent additional CPU consumption.  &lt;p&gt;If you are concerned about CPU consumption, we recommend that you start by setting the ten largest tables in your system to use table compression.  &lt;p&gt;Use the guidance in the following resources to help you determine how or whether to compress your tables and indexes:  &lt;blockquote&gt; &lt;p&gt;· SQL Server Books online: &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=210430&quot;&gt;Creating Compressed Tables and Indexes&lt;/a&gt;  &lt;p&gt;· SQLCat article: &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=210431&quot;&gt;Data Compression: Strategy, Capacity Planning and Best Practices&lt;/a&gt;  &lt;p&gt;· Database Engine team blog post: &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=210424&quot;&gt;Compression Strategies&lt;/a&gt;.&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Fill factor options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;We recommend that you not set the fill factor options (fill factor and pad index) for all indexes. Only set fill factor values on indexes that show rapid fragmentation, where fragmentation has a performance penalty. Adjusting fill factor can be important for tables that you want to retrieve sequential rows from, for example, sales line.  &lt;p&gt;We recommend that you work with your database administrators to identify the tables to set this value for.  &lt;p&gt;&lt;strong&gt;Sort in tempdb&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;We recommend that you not set the sort in tembdp options for all indexes. Only enable sort in tempdb for indexes that show rapid fragmentation, where fragmentation has a performance penalty.  &lt;p&gt;We recommend that you work with your database administrators to identify the tables to set this value for.  &lt;p&gt;&lt;strong&gt;To change table and index options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;1. Click &lt;b&gt;System administration&lt;/b&gt; &amp;gt; &lt;b&gt;Periodic&lt;/b&gt; &amp;gt; &lt;b&gt;Database&lt;/b&gt; &amp;gt; &lt;b&gt;SQL administration&lt;/b&gt;. Select all tables, all indexes, or a specific table or index, and then click &lt;b&gt;Table and index options&lt;/b&gt;.  &lt;p&gt;2. Select the options to set, and then click &lt;b&gt;Save&lt;/b&gt;.  &lt;p&gt;The SQL statement that will be executed is displayed at the bottom of the form.  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuBgFKIHx4N8w5rA7PoPa02GzXA_reoYlHObyzm_6sWN6bxKjAXvrns5mTxQhEn0kWtmOxKFLH7k7wvt-uvAUdmJFrpQl-6KSgSKWLzvbcREaakoi3X5QOIYgObuXgnvFkddHDQUMSNmE/s1600-h/clip_image001%25255B3%25255D.gif&quot;&gt;&lt;img title=&quot;clip_image001&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_HtkZCl4qhs9ewmXmpmYSiMDJRapQk7u9EmbhZlLdEWOg1rilvcTprOrT57zrV9EEXGMVH0_hFqFKbQDUzR8Ek8zJ7z_t0lZ9IQwsglxZjgd_PTtHg6jKXJTo4yaOrS_c-A3HHM2X1Qs/?imgmax=800&quot; width=&quot;2&quot; height=&quot;2&quot;&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;Important&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;The changes that you have made will not be applied unless you specify that they should be applied by using the &lt;b&gt;SQL administration&lt;/b&gt; form.  &lt;p&gt;To turn off data compression, click &lt;b&gt;Enable compression&lt;/b&gt;, click &lt;b&gt;None&lt;/b&gt; for the type of compression, and then close the &lt;b&gt;Select table and index options&lt;/b&gt; form, and then click &lt;b&gt;Apply compression&lt;/b&gt; in the &lt;b&gt;SQL administration&lt;/b&gt; form.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;3. To apply changes in the &lt;b&gt;SQL administration&lt;/b&gt; form:  &lt;blockquote&gt; &lt;p&gt;o For tables, click &lt;b&gt;Table actions&lt;/b&gt;, and then click &lt;b&gt;Apply compression&lt;/b&gt;.  &lt;p&gt;o For indexes, click &lt;b&gt;Index actions&lt;/b&gt;, and then click &lt;b&gt;Reindex&lt;/b&gt;. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Change the concurrency mode&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;Concurrency mode settings enable you to reduce locking conflicts in your system. Set concurrency mode settings only at the table or statement level, not throughout your Microsoft Dynamics AX program.  &lt;p&gt;&lt;strong&gt;Optimistic concurrency&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;An optimistic concurrency strategy does not lock data when the data is retrieved from the database for future modification. Therefore, no locks are held while filters and other business logic are being applied. Data is locked only when an update is performed. If any data has been changed by another transaction between the time of the retrieval and the time of the update, the change is detected and an Infolog exception is displayed.  &lt;p&gt;&lt;strong&gt;Pessimistic concurrency&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;A pessimistic concurrency strategy uses an update lock to lock data when the data is retrieved from the database for future modification. Locks are held while filters and other business logic are being applied, in addition to being held during an update. Data cannot be changed by other transactions.  &lt;p&gt;Acquiring an update lock for a large volume of rows increases the lock escalation from row level to table level in SQL Server. This can block other users and reduce transaction throughput.  &lt;p&gt;&lt;strong&gt;Table-level concurrency settings&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;If the global concurrency mode is set to &lt;b&gt;Optimistic concurrency mode enabled per table&lt;/b&gt;, table-level control of concurrency settings is available using the &lt;b&gt;OccEnabled&lt;/b&gt; property.  &lt;p&gt;&lt;strong&gt;Runtime update options&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;If you are encountering many update errors, you may want to use the runtime update options to help troubleshoot. These options are intended for temporary use only, as they might significantly slow performance.  &lt;p&gt;Use &lt;b&gt;Writes all UPDATE conflict exceptions to the log&lt;/b&gt; to write all update conflict exceptions to the log.  &lt;p&gt;Use &lt;b&gt;Update record version automatically&lt;/b&gt; to have Microsoft Dynamics AX search in memory for the recordID every time that that a record is updated, and then change the update values in all instances of the record.  &lt;p&gt;If you have a table set to optimistic concurrency, and you are experiencing optimistic concurrency violations that affect the performance of the transactions that use the table, then first set the &lt;b&gt;Writes all UPDATE conflict exceptions to the log&lt;/b&gt; option. If, from your analysis, it appears that the use of optimistic concurrency is causing a problem, then set the table to pessimistic concurrency.  &lt;p&gt;&lt;strong&gt;To change concurrency settings &lt;/strong&gt; &lt;blockquote&gt; &lt;p&gt;1. Click &lt;b&gt;System administration&lt;/b&gt; &amp;gt; &lt;b&gt;Setup&lt;/b&gt; &amp;gt; &lt;b&gt;Database&lt;/b&gt; &amp;gt; &lt;b&gt;Select concurrency mode&lt;/b&gt;.  &lt;p&gt;2. Select the appropriate concurrency mode and runtime options for your environment.  &lt;p&gt;3. Click &lt;b&gt;Close&lt;/b&gt;. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Statement-level concurrency settings&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt; &lt;p&gt;You can use the &lt;b&gt;optimisticlock&lt;/b&gt; or &lt;b&gt;pessimisticlock&lt;/b&gt; keywords in a SELECT statement to override the global or table concurrency mode settings.  &lt;p&gt;For more information, see the following topics:  &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa854605.aspx&quot;&gt;Best Practice Performance Optimizations: Database Design and Operations&lt;/a&gt;  &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa622564.aspx&quot;&gt;Transaction Integrity&lt;/a&gt;  &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa893385.aspx&quot;&gt;Exception Handling with try and catch Keywords&lt;/a&gt;  &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa656402.aspx&quot;&gt;Select Statement Syntax&lt;/a&gt;  &lt;p&gt;· &lt;a href=&quot;http://technet.microsoft.com/en-us/library/aa871620.aspx&quot;&gt;Table Properties&lt;/a&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/2049830747600828805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/10/tune-data-access-settings-ax-2012.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2049830747600828805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/2049830747600828805'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/10/tune-data-access-settings-ax-2012.html' title='Tune data access settings [AX 2012]'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_HtkZCl4qhs9ewmXmpmYSiMDJRapQk7u9EmbhZlLdEWOg1rilvcTprOrT57zrV9EEXGMVH0_hFqFKbQDUzR8Ek8zJ7z_t0lZ9IQwsglxZjgd_PTtHg6jKXJTo4yaOrS_c-A3HHM2X1Qs/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4498317961836705128.post-4828373421790556757</id><published>2014-09-30T05:35:00.001-07:00</published><updated>2014-09-30T05:35:46.429-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX Administration"/><title type='text'>Uninstall Microsoft Dynamics AX</title><content type='html'>&lt;p&gt;This topic explains how to uninstall Microsoft Dynamics AX by using &lt;b&gt;Add or Remove Programs&lt;/b&gt; on the Control Panel.  &lt;p&gt;Databases, log files, and application files must be removed manually. Information about how to manually remove components is also included in this topic.  &lt;p&gt;&lt;strong&gt;Uninstall components by using Add or Remove Programs&lt;/strong&gt;  &lt;p&gt;Use this procedure to remove Microsoft Dynamics AX components.  &lt;ol&gt; &lt;li&gt;Open &lt;b&gt;Add or Remove Programs&lt;/b&gt;. (&lt;b&gt;Start&lt;/b&gt; &amp;gt; &lt;b&gt;All Programs&lt;/b&gt; &amp;gt; &lt;b&gt;Control Panel&lt;/b&gt; &amp;gt; &lt;b&gt;Add or Remove Programs&lt;/b&gt;).  &lt;li&gt;Select the component that you want to remove, and then click &lt;b&gt;Remove&lt;/b&gt;. The components that are listed in the following table can be removed.&lt;/li&gt;&lt;/ol&gt; &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Option&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Removes&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Microsoft Dynamics AX Components&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Selecting this option removes the following components:  &lt;p&gt;o Client  &lt;p&gt;o Role Centers and the Enterprise Portal framework  &lt;p&gt;o Workflow  &lt;p&gt;o Reporting extensions  &lt;p&gt;o Debugger  &lt;p&gt;o Enterprise Portal developer tools  &lt;p&gt;o Reporting tools  &lt;p&gt;o .NET Business Connector  &lt;p&gt;o AIF Web services  &lt;p&gt;o BizTalk adapter  &lt;p&gt;o Synchronization proxy for Microsoft Office Project  &lt;p&gt;o Synchronization service for Microsoft Office Project  &lt;p&gt;This option removes all components that are installed on the local computer. You cannot select to remove individual components.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Microsoft Dynamics AX Client Help Files&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Select this option to remove all Help files in all installed languages. You should not remove Help files unless the client is also being removed.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Microsoft Dynamics AX Object Server (&lt;i&gt;instance name&lt;/i&gt;)&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Select this option to remove a specific Application Object Server (AOS) instance.  &lt;p&gt;Before you remove an AOS instance, use the Microsoft Dynamics AX Configuration utility to point all clients to a valid AOS instance, or update the shared configuration file.  &lt;p&gt;When you remove an AOS instance, it is not automatically removed from the list of batch and load balancing servers. After you uninstall an AOS instance, you must manually delete it by using the Server configuration form or the Cluster configuration form.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;ol start=&quot;3&quot;&gt; &lt;li&gt;A message box asks you to confirm that you want to uninstall. To proceed, click &lt;b&gt;Yes&lt;/b&gt;.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Remove remaining components manually&lt;/strong&gt;  &lt;p&gt;If you choose to remove an entire installation, some components remain after &lt;b&gt;Add or Remove Programs&lt;/b&gt; is finished. The following table provides more information about removing components manually.  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;To remove this&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;Do this&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Application files&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Delete the application file directory from the location that you installed it to.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Database and log files&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Use database server administration tools to delete the database and log files.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Role Centers and the Enterprise Portal framework&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Delete Web sites by using SharePoint Central Administration.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Reporting extensions&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;· Delete SQL Server Reporting Services objects, such as data sources, reports, and report models by using Reporting Services.  &lt;p&gt;· Delete the contents of the Microsoft Dynamics AX report folder.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Analysis extensions&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Delete SQL Server Analysis Services objects, such as databases, cubes, and models by using Analysis Services.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-0093924062064876&quot;;
google_ad_host = &quot;pub-1556223355139109&quot;;
/* TopBar-728x90 */
google_ad_slot = &quot;9731604514&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsaxarticles.blogspot.com/feeds/4828373421790556757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/09/uninstall-microsoft-dynamics-ax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/4828373421790556757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4498317961836705128/posts/default/4828373421790556757'/><link rel='alternate' type='text/html' href='http://dynamicsaxarticles.blogspot.com/2014/09/uninstall-microsoft-dynamics-ax.html' title='Uninstall Microsoft Dynamics AX'/><author><name>Saber Mahdy</name><uri>http://www.blogger.com/profile/09115396477260365591</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>