<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Developing for Dynamics GP</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/</link><description>by David Musgrave (Perth, WA, Australia) and the Microsoft Dynamics GP Developer Support Team (Fargo, ND, USA)</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Running Dynamics GP 2010, AX 2012, and SL 2011 on the same machine</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/06/01/running-dynamics-gp-2010-ax-2012-and-sl-2011-on-the-same-machine.aspx</link><pubDate>Fri, 01 Jun 2012 06:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10283440</guid><dc:creator>Patrick Roth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10283440</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/06/01/running-dynamics-gp-2010-ax-2012-and-sl-2011-on-the-same-machine.aspx#comments</comments><description>&lt;p&gt;&lt;img border="0" hspace="10" alt="Patrick Roth - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-02-05-96/prot.jpg_2D00_100x100.jpg" width="65" height="87" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;I ran across an issue a while back that a developer was running into after installing Dynamics SL 2011 on a machine with Dynamics GP 2010 (and Dynamics GP 10).&amp;nbsp; Then in the next few days we had two more cases of the same issue (and again &lt;a title="GP and AX on a same system" href="http://social.microsoft.com/Forums/en-US/partnerdynamicsgp/thread/a3b20ad6-b39e-4bef-b21b-8e99e2754c49" target="_blank"&gt;here&lt;/a&gt;, &lt;a title="AppCrash dynamics.exe" href="http://social.microsoft.com/Forums/en-US/partnerdynamicsgp/thread/f22c3e82-e6f7-4dbe-8271-3bd34811833c" target="_blank"&gt;here&lt;/a&gt;, and &lt;a title="GP 2010 and SL 2011 on same laptop" href="http://social.microsoft.com/Forums/en-US/partnerdynamicsgp/thread/782bc98c-fd78-4dd4-81b3-2beaa71c5dea" target="_blank"&gt;here&lt;/a&gt;).&amp;nbsp; But I'm getting ahead of myself in that we didn't notice that was a common thread until the third case.&lt;/p&gt;
&lt;p&gt;So anyway, what we found was that SL ran fine as did GP 10.0.&amp;nbsp; However Dynamics GP 2010 would crash consistently on launch.&lt;/p&gt;
&lt;p&gt;After discovering that SL was the common denominator, we had un-installed SL and found that Dynamics GP 2010 again launched just fine.&amp;nbsp; Reinstalling SL would again cause GP 2010 to crash on launch.&lt;/p&gt;
&lt;p&gt;But we found it interesting that Dynamics 10 would run fine.&lt;/p&gt;
&lt;p&gt;So how would we figure out the issue?&lt;/p&gt;
&lt;p&gt;About the only way to determine this was to collect a memory dump of the crash - I believe we used &lt;a href="http://technet.microsoft.com/en-us/sysinternals/dd996900" target="_blank"&gt;ProcDump&lt;/a&gt; from Microsoft Sysinternals Tools to gather this.&lt;/p&gt;
&lt;p&gt;Once the dump was gathered, I opened it in Windbg to take a look.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/7752.Crash_5F00_With_5F00_GP2010.PNG"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/7752.Crash_5F00_With_5F00_GP2010.PNG" width="1050" height="658" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We can see that the "OnShown" event of the Microsoft.Dexterity.Shell.NavigationForm is being invoked as Dynamics GP displays it (highlighted)&lt;/p&gt;
&lt;p&gt;Then some ".NET stuff" happens which ends badly throwing an exception (KERNELBASE!RaiseException and highlighted also) and the error bubbles up from there.&lt;/p&gt;
&lt;p&gt;Looking at source,&amp;nbsp;it appeared that&amp;nbsp;Dynamics was having an issue with one of the Navigation shell components (in one of the above links I offer Microsoft.Dynamics.Framework.UI.WinForms.Controls.dll as the file).&lt;/p&gt;
&lt;p&gt;Not having seen any issues here before and not sure right off what exactly might be the issue, I wanted to take look at the file and found the it was loaded from the GAC and not the GP folder as is typical.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/3835.Microsoft_5F00_Framework_5F00_lmvm.PNG"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/3835.Microsoft_5F00_Framework_5F00_lmvm.PNG" width="888" height="496" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/4846.Microsoft_5F00_Framework_5F00_lmvm.PNG"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the screenshot, we can see for the two Microsoft.Dynamics.Framework.* files; the ImagePath is the c:\windows\assembly folder which is the Windows&amp;nbsp;GAC.&lt;/p&gt;
&lt;p&gt;So yes, interesting.&amp;nbsp; I checked my GAC and did not have that file there (as expected).&lt;/p&gt;
&lt;p&gt;But I note the major/minor version of the assembly is the same is the same as mine though the build number is different 1.4.11166 vs 1.4.10877.03.&lt;/p&gt;
&lt;p&gt;Looking in the GAC on the problem machine, we noticed several of the Navigation shell components loaded there.&lt;/p&gt;
&lt;p&gt;As a test, we removed them from the GAC and tried launching Dynamics GP 2010 - this time it fired right up successfully.&lt;/p&gt;
&lt;p&gt;Now we're getting somewhere.&lt;/p&gt;
&lt;p&gt;So what are these files for?&lt;/p&gt;
&lt;p&gt;These files are part of the "common" framework controls that the Dynamics family products share.&amp;nbsp; What I had always assumed was that these were the same for all the products.&amp;nbsp; That was incorrect - they share the same 'base' library but then each product modifies them as desired.&lt;/p&gt;
&lt;p&gt;Ah - that makes more sense now.&amp;nbsp; Since we know that Dynamics GP doesn't put files in the GAC, then we'd guess that AX/SL does.&amp;nbsp; As it turns out, apparently these files are a bit 'incompatable' than what Dynamics GP is expecting and cause the crash.&lt;/p&gt;
&lt;p&gt;Why does GP pull these files from the GAC when they are in the GP folder?&amp;nbsp; Well, that is just how .NET works.&amp;nbsp; There isn't any way to make it NOT pull a matching file from the GAC - even if the one we want is right in the same folder.&amp;nbsp; Rats.&amp;nbsp; One comment in one of the forum posts was that .NET should honor side-by-side of the different versions.&amp;nbsp; But the problem is that the assemblies are all the _same_ version (1.4).&amp;nbsp; Same name, signed by Microsoft, and have the same version number.&amp;nbsp; So they look, smell, and taste the same.&lt;/p&gt;
&lt;p&gt;The good news is that Dynamics GP 10.0 runs completely fine - the assemblies it is compiled against are v 1.0 and therefore aren't loaded by Dynamics.exe/.NET and so we don't have an issue on that version.&lt;/p&gt;
&lt;p&gt;But at least knowing this we're in good shape - we just need to figure out a way to make all the apps work.&lt;/p&gt;
&lt;p&gt;There are a couple of solutions.&lt;/p&gt;
&lt;p&gt;The first one would work with GP &amp;amp; AX or GP &amp;amp; SL loaded together.&lt;/p&gt;
&lt;p&gt;For this, we would actually move the assemblies out of the GAC and put them into application folders to the respective applications can find then.&lt;/p&gt;
&lt;p&gt;In the files.zip attached - the move_ax.bat &amp;amp; move_sl.bat are simple batch files that move the "problem" assemblies from the GAC to the "proper" SL/AX local folders.&amp;nbsp; You would need to modify the paths in the files to take account of your actual install folder(s).&amp;nbsp; If I was a bit less lazy, I would re-write those as Powershell.&lt;/p&gt;
&lt;p&gt;The easiest solution and the one I would recommend would be to just temporarily rename the files in the GAC, launch Dynamics so that it loads the versions in the GP folder, and then rename the GAC files back again.&lt;/p&gt;
&lt;p&gt;In the files.zip file, the launch_gp.ps1 is a Powershell script that automates this for you.&lt;/p&gt;
&lt;p&gt;To use it, make a new shortcut to Powershell (v1, v2, or v3 as you have installed - the example below is v 1.1)&lt;/p&gt;
&lt;p&gt;The shortcut would be:&lt;/p&gt;
&lt;p&gt;%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "c:\dynamics\gp2010\launch_gp.ps1"&lt;/p&gt;
&lt;p&gt;You can modify the file by using Notepad, PowerGUI, or the windows Powershell Editor to adjust your path to Dynamics or the sleep time (30 seconds currently) to a smaller delay.&lt;/p&gt;
&lt;p&gt;Hope this tip helps!&lt;/p&gt;
&lt;p&gt;Patrick Roth&lt;br /&gt;Senior Escalation Engineer&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10283440" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-28-34-40/files.zip" length="1434" type="application/zip" /><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Exception/">Exception</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+2010/">GP 2010</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+2010+R2/">GP 2010 R2</category></item><item><title>Microsoft Dynamics GP Addins DAG Utility</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/30/microsoft-dynamics-gp-addins-dag-utility.aspx</link><pubDate>Wed, 30 May 2012 02:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10311625</guid><dc:creator>David Musgrave</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10311625</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/30/microsoft-dynamics-gp-addins-dag-utility.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Srinivas Ramidi - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="Srinivas Ramidi - Click for blog homepage" align="right" src="http://blogs.msdn.com/resized-image.ashx/__size/104x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2480.Srinivas-Ramidi.jpg" width="94" height="104" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Today,&amp;nbsp;I have another treat for Visual Studio Tools developers.&lt;/p&gt;
&lt;p&gt;After I posted the article: &lt;a title="How to update Microsoft Dynamics GP Visual Studio Tools Addins on a live system" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/09/live-updates-of-dynamics-gp-visual-studio-tools-addins.aspx" target="_blank"&gt;How to update Microsoft Dynamics GP Visual Studio Tools Addins on a live system&lt;/a&gt;, I was contacted by another community member, Srinivas Ramidi. He has&amp;nbsp;created a little utility that makes using the DAG (Dictionary Assembly Generator) tool easier by providing a Graphical User Interface (GUI) to the tool.&lt;/p&gt;
&lt;p&gt;Srinivas was graciously willing to share his utility and asked if I could post it.&lt;/p&gt;
&lt;p&gt;Srinivas Ramidi is&amp;nbsp;a developer since 2003 and currently works on the Microsoft Dynamics GP at InterDyn BMI (&lt;a title="http://www.interdynbmi.com" href="http://www.interdynbmi.com" target="_blank"&gt;www.interdynbmi.com&lt;/a&gt;), a Microsoft Certified Gold Partner since 2006. At InterDyn,&amp;nbsp;he mostly work on the customizations and&amp;nbsp;integration projects. His part-time love is looking around&amp;nbsp;at new technologies, finding better ways&amp;nbsp;for design and development.&lt;/p&gt;
&lt;p&gt;I will let Srinivas explain what the utility does....&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This utility is not supported by Microsoft. The code is written by a third party (Srinivas) is provided "as is" and no warranty is given or implied.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Have you ever thought how easy it would be if we have a user interface for creating managed code assembly for integration projects? &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well, here is the utility for you.&lt;/p&gt;
&lt;p&gt;The GP Addins DAG Utility is developed in Visual Studio 2008 C#. It has been&amp;nbsp;created to build an application&amp;nbsp;assembly for the main dictionary or forms dictionary and works with Microsoft Dynamics GP 10.0 and GP 2010 SDK (Software Development Kit).&lt;/p&gt;
&lt;p&gt;As you many of you know we have to use Dictionary Assembly Generator (DAG.exe), a command-line tool which is included with Visual Studio Tools for Microsoft Dynamics GP that creates a managed code assembly that provides access to resources in an application dictionary. Sometimes it is difficult to remember the syntax&amp;nbsp;or find the correct Product&amp;nbsp;ID to create the assembly.&lt;/p&gt;
&lt;p&gt;To make the process easy, this utility will give you all the options to select the product and it lets you to choose custom forms or main dictionary and format the correct command. It requires you to set the&amp;nbsp;path to the SDK Folder and DYNAMICS.SET file. These settings are stored in a config file, so they are remembered for next time the utility is used.&lt;/p&gt;
&lt;p&gt;Below are some screenshots of the utility in action:&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0724.DAG-Utility-1.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0724.DAG-Utility-1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0755.DAG-Utility-2.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0755.DAG-Utility-2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This utility does not&amp;nbsp;support overriding the application assembly name, or signing an assembly.&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;The utility with its documentation is available from the following link:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="http://sdrv.ms/KdRlBX" href="http://sdrv.ms/KdRlBX" target="_blank"&gt;http://sdrv.ms/KdRlBX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I hope you enjoy this free utility. Please join me in thanking Srinivas for his work and post a thank-you comment.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10311625" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/C_2300_/">C#</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Developer+Toolkit/">Developer Toolkit</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/VB/">VB</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Visual+Studio+Tools/">Visual Studio Tools</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Tools/">Tools</category></item><item><title>Working with Dates in Integration Manager VBScript</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/29/working-with-dates-in-integration-manager-vbscript.aspx</link><pubDate>Tue, 29 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10307941</guid><dc:creator>David Musgrave</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10307941</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/29/working-with-dates-in-integration-manager-vbscript.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Today I worked with my colleague Rob on an Integration Manager for Microsoft Dynamics GP issue.&lt;/p&gt;
&lt;p&gt;We had a customer who was importing some General Ledger journals into their system and wished for the journals to be set up as reversing journals with the Reversing Date set up as the first date of the next month. The plan was to use the following script to manipulate the Transaction Date to create the Reversing Date.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Field ScriptText for Reversing Date&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;'&amp;nbsp; Added by the IM Script Library&lt;br /&gt;'&amp;nbsp; Category: Microsoft Dynamics GP Scripts&lt;br /&gt;'&amp;nbsp; Script Type: field Script&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;dtTrxDate = DestinationFields("Transaction Date")&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;'Add one month to the transaction date. This will handle short months correctly.&amp;nbsp; For example, adding 1&lt;br /&gt;'month to January 31st will result in February 28th (or the 29th if it&amp;rsquo;s a leap year).&lt;br /&gt;dtDate = DateAdd("m", 1, dtTrxDate)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;'Set the new date to the first of the month following the transaction date&lt;br /&gt;dtDate = DateSerial(Year(dtDate), Month(dtDate), 1)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This is the code that the customer had in their system. It did not cause any errors, but the Reversing Date was being set to the current system date.&lt;/p&gt;
&lt;p&gt;While the code looks fine, I noticed that there was nothing in the code to "return" the dtDate variable to the Reversing Date field. Adding the following line to the code resolved this issue:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;CurrentField.Value = dtDate&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, when we run the integration, the script failed on the above line saying it was unable convert the value "01/06/2012 12:00:00 a.m." to a date.&lt;/p&gt;
&lt;p&gt;When I saw this a little alarm bell went off at the back of my head. I noticed something that was a (little) known issue.....&lt;/p&gt;
&lt;p&gt;The time suffix with periods/dots/full stops is not understood by SQL Server when converting strings to datetime variables. This is discussed in the blog post: &lt;a title="Quick Tip: Passing Date and Time Variables to SQL Server" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/12/16/quick-tip-passing-date-and-time-variables-to-sql-server.aspx" target="_blank"&gt;Quick Tip: Passing Date and Time Variables to SQL Server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After getting the customer to change their Time regional setting back to AM &amp;amp; PM rather than a.m. &amp;amp; p.m., the integration progressed, but gave us the following error:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="color: #ff0000;"&gt;DOC 1 ERROR: The reversing date must be the same as or later than the transaction date.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This then made me think that Integration Manager was trying to interpret "01/06/2012 12:00:00 AM" as January 6&lt;sup&gt;th&lt;/sup&gt; 2012 rather than the correct 1&lt;sup&gt;st&lt;/sup&gt; June 2012. To test we temporarily changed their Date regional setting to MM/DD/YYYY and surprise, surprise.... the integration worked.&lt;/p&gt;
&lt;p&gt;So, we restored the Date regional setting back and added code to convert the date into the required US format (MM/DD/YYYY).&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Updated Field ScriptText for Reversing Date&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;'&amp;nbsp; Added by the IM Script Library&lt;br /&gt;'&amp;nbsp; Category: Microsoft Dynamics GP Scripts&lt;br /&gt;'&amp;nbsp; Script Type: field Script&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;dtTrxDate = DestinationFields("Transaction Date")&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;'Add one month to the transaction date. This will handle short months correctly.&amp;nbsp; For example, adding 1&lt;br /&gt;'month to January 31st will result in February 28th (or the 29th if it&amp;rsquo;s a leap year).&lt;br /&gt;dtDate = DateAdd("m", 1, dtTrxDate)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;'Set the new date to the first of the month following the transaction date&lt;br /&gt;dtDate = DateSerial(Year(dtDate), Month(dtDate), 1)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;sDay = Right("00" + Trim(Day(dtDate)), 2)&lt;br /&gt;sMonth = Right("00" + Trim(Month(dtDate)), 2)&lt;br /&gt;sYear = Right("0000" + Trim(Year(dtDate)), 4)&lt;br /&gt;sDate = sMonth + "/" + sDay + "/" + sYear&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;CurrentField.Value = sDate&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Now the integration worked, regardless of the regional setting value. As the time component was no longer included in the script, the issue with 12 hour time suffixes also would not occur.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, as the 12 hour time&amp;nbsp;suffix issue can cause errors (below) elsewhere, we still suggested that this be changed system wide.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="color: #ff0000;"&gt;/*&amp;nbsp; Date: 12/15/2011&amp;nbsp; Time: 10:44:04 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff0000;"&gt;SQLSTATE:(22008) Native Err:(241) stmt(99398048):*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff0000;"&gt;[Microsoft][SQL Server Native Client 10.0][SQL Server]&lt;strong&gt;Conversion failed when converting date and/or time from character string&lt;/strong&gt;.*/&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So please be aware that when working with dates in Integration Manager you will need to ensure the resulting values are in US date format.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10307941" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/VB/">VB</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Integration+Manager/">Integration Manager</category></item><item><title>Microsoft Convergence 2012 Houston - Videos</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/28/microsoft-convergence-2012-houston-videos.aspx</link><pubDate>Mon, 28 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10306736</guid><dc:creator>David Musgrave</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10306736</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/28/microsoft-convergence-2012-houston-videos.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;&lt;a title="Convergence 2012 Houston" href="http://www.microsoft.com/dynamics/convergence/houston12/" target="_blank"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/289x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/6787.conv2012_2D00_logo.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Convergence 2012 in Houston, TX, USA is over, but I recently found these videos and wanted to share them.&amp;nbsp;Make sure you watch the Volunteer Highlight Video to see the amazing volunteer work that the Microsoft Dynamics community does for the host city of Convergence.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Dynamics Convergence 2012 Opening Video - A World of Opportunity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/28/microsoft-convergence-2012-houston-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Dynamics Convergence 2012 Volunteer Highlight Video &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/28/microsoft-convergence-2012-houston-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Convergence 2012 Closing Video&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/28/microsoft-convergence-2012-houston-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10306736" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Conference/">Conference</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>The Dynamics GP Blogster works with Report Writer and the Support Debugging Tool</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/24/the-dynamics-gp-blogster-works-with-report-writer-and-the-support-debugging-tool.aspx</link><pubDate>Thu, 24 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10306185</guid><dc:creator>David Musgrave</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10306185</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/24/the-dynamics-gp-blogster-works-with-report-writer-and-the-support-debugging-tool.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;My great friend Mariano Gomez, &lt;a title="The Dynamics GP Blogster" href="http://dynamicsgpblogster.blogspot.com/" target="_blank"&gt;The Dynamics GP Blogster&lt;/a&gt;, has been busy recently creating some fantastic step by step posts on customising reports using Report Writer.&lt;/p&gt;
&lt;p&gt;His first post shows a method to get the Customer Item User Defined fields showing on the SOP Invoice. Mariano discusses the more traditional methods of using Table Relationships (which won't work as the key fields are not available) or &lt;a title="Using ADO with VBA with Report Writer" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2008/10/30/using-ado-with-vba-with-report-writer.aspx" target="_blank"&gt;Using ADO with VBA with Report Writer&lt;/a&gt; (which his client did not want as VBA will not be compatible with the GP 2013 web client).&lt;/p&gt;
&lt;p&gt;So instead, he used the &lt;a title="Support Debugging Tool Portal" href="http://aka.ms/SDT" target="_blank"&gt;Support Debugging Tool's&lt;/a&gt; support for Report Writer and used a similar method to the one described in the post: &lt;a title="How to display more than 80 characters of an Extender Long String field in reports using the Support Debugging Tool&lt;br /&gt;" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/09/09/how-to-get-extender-long-strings-to-display-more-than-80-characters-in-report-writer.aspx" target="_blank"&gt;How to display more than 80 characters of an Extender Long String field in reports using the Support Debugging Tool&lt;/a&gt;. Check out his detailed post at the link below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Adding Customer Item User Defined fields to SOP Invoice  " href="http://dynamicsgpblogster.blogspot.com/2012/05/adding-customer-item-user-defined.html" target="_blank"&gt;Adding Customer Item User Defined fields to SOP Invoice&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;His second post shows how to use &lt;a title="Using the built-in Report Writer Functions" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2008/09/01/using-the-built-in-report-writer-functions.aspx" target="_blank"&gt;Report Writer Functions&lt;/a&gt; to add more comments to Purchase Order Processing documents. It uses a similar method to &lt;a title="Adding more comments to SOP Documents" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/02/02/adding-more-comments-to-sop-documents.aspx" target="_blank"&gt;Adding more comments to SOP Documents&lt;/a&gt; and explains steps required in detail. Have a look at this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Adding more comment lines to POP Purchase Orders" href="http://dynamicsgpblogster.blogspot.com/2012/05/adding-more-comment-lines-to-pop.html" target="_blank"&gt;Adding more comment lines to POP Purchase Orders&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks Mariano&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10306185" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Report+Writer/">Report Writer</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Support/">Support</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/RW+Functions/">RW Functions</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Blogsphere/">Blogsphere</category></item><item><title>Microsoft Dynamics GP 2013 Launch Portal and System Requirements</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/23/microsoft-dynamics-gp-2013-launch-portal-and-system-requirements.aspx</link><pubDate>Wed, 23 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10306189</guid><dc:creator>David Musgrave</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10306189</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/23/microsoft-dynamics-gp-2013-launch-portal-and-system-requirements.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;As the release of Microsoft Dynamics GP 2013 (formerly known as GP "12") gets closer, there are more and more resources and information being released to help partners and customers get ready.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kevin from the Microsoft Dynamics Partner Community Blog has let us know that the Microsoft Dynamics GP 2013 Launch Portal is up and running and it should be visited on a regular basis to keep up to date with developments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Microsoft Dynamics GP 2013 Launch Portal" href="https://mbs.microsoft.com/partnersource/newsevents/news/MSDGP2013LaunchPortal.htm" target="_blank"&gt;Microsoft Dynamics GP 2013 Launch Portal&lt;/a&gt; &lt;img title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-08-77-11-97/Padlock.gif" width="15" height="18" /&gt; (PartnerSource)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My colleague,Kelly Youells from the Microsoft Dynamics Support Team has post the initial System Requirements for Microsoft Dynamics GP 2013. The information is still subject to change as the product is still in development. However, it does give you a fairly good idea of what is required as well as highlight some of the older software that will not longer be supported. Make sure you check it out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="System Requirements for Microsoft Dynamics GP 2013" href="https://mbs.microsoft.com/partnersource/documentation/systemrequirements/mdgp2013_system_requirements.htm" target="_blank"&gt;System Requirements for Microsoft Dynamics GP 2013&lt;/a&gt; &lt;img title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-08-77-11-97/Padlock.gif" width="15" height="18" /&gt; (PartnerSource)&lt;/li&gt;
&lt;li&gt;&lt;a title="System Requirements for Microsoft Dynamics GP 2013" href="https://mbs.microsoft.com/customersource/documentation/systemrequirements/mdgp2013_system_requirements.htm" target="_blank"&gt;System Requirements for Microsoft Dynamics GP 2013&lt;/a&gt; &lt;img title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-08-77-11-97/Padlock.gif" width="15" height="18" /&gt; (CustomerSource)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Errol has notified us that the Statement of Direction for Microsoft Dynamics GP document has been updated, it can be downloaded from the following links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Statement of Direction for Microsoft Dynamics GP" href="https://mbs.microsoft.com/partnersource/marketing/statementofdirection/microsoftdynamicsgpsod.htm?printpage=false" target="_blank"&gt;Statement of Direction for Microsoft Dynamics GP&lt;/a&gt; &lt;img title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-08-77-11-97/Padlock.gif" width="15" height="18" /&gt; (PartnerSource)&lt;/li&gt;
&lt;li&gt;&lt;a title="Statement of Direction for Microsoft Dynamics GP" href="https://mbs.microsoft.com/customersource/documentation/whitepapers/MicrosoftDynamicsGPSOD" target="_blank"&gt;Statement of Direction for Microsoft Dynamics GP&lt;/a&gt; &lt;img title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-08-77-11-97/Padlock.gif" width="15" height="18" /&gt; (CustomerSource)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For more details see the original posts here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Dynamics Partner Community Blog: &lt;a title="Get Ready! - Microsoft Dynamics GP 2013 Partner Launch Portal" href="http://blogs.msdn.com/b/dynpartnercommunity/archive/2012/04/25/get-ready-microsoft-dynamics-gp-2013-partner-launch-portal.aspx" target="_blank"&gt;Get Ready! &amp;ndash; Microsoft Dynamics GP 2013 Partner Launch Portal&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Inside Dynamics GP: &lt;a title="Updated Microsoft Dynamics GP Statement of Direction" href="http://blogs.msdn.com/b/gp/archive/2012/05/02/updated-microsoft-dynamics-gp-statement-of-direction.aspx" target="_blank"&gt;Updated Microsoft Dynamics GP Statement of Direction&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Jivtesh Singh: &lt;a title="GP 2013 System Requirements" href="http://www.jivtesh.com/2012/05/gp-2013-system-requirements.html" target="_blank"&gt;GP 2013 System Requirements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope you find this useful.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10306189" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Blogsphere/">Blogsphere</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+_2600_quot_3B00_12_2600_quot_3B00_/">GP &amp;quot;12&amp;quot;</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+2013/">GP 2013</category></item><item><title>Early Bird Registration for the GPUG Summit 2012</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/22/early-bird-registration-for-the-gpug-summit-2012.aspx</link><pubDate>Tue, 22 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10306190</guid><dc:creator>David Musgrave</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10306190</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/22/early-bird-registration-for-the-gpug-summit-2012.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;&lt;a title="GPUG Summit 2012" href="http://www.gpugsummit.com" target="_blank"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2816.GPUG-Summit-2012.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kim Peterson from &lt;a title="GPUG" href="http://gpug.com/" target="_blank"&gt;GPUG&lt;/a&gt;&amp;nbsp;has sent another important email recently. This one reminds us that the Early Bird Registration for the GPUG Summit 2012 ends on the 29&lt;sup&gt;th&lt;/sup&gt; June.&lt;/p&gt;
&lt;p&gt;The GPUG Summit will be held in Seattle, WA, USA on the 15&lt;sup&gt;th&lt;/sup&gt; to 19&lt;sup&gt;th&lt;/sup&gt; of October at the Conference Center at the Washington State Convention Center.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;GPUG SUMMIT 2012&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's happening October 15-19, 2012 at The Conference Center at the Washington State Convention Center- all Dynamics GP Users are invited, so mark your calendars now for this exclusive Dynamics GP User-led event. &lt;a title="GPUG Summit 2012" href="http://www.gpugsummit.com" target="_blank"&gt;Learn More&lt;/a&gt;.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Join us in Seattle for a User Conference Designed Just for the &lt;br /&gt;Microsoft Dynamics GP Community! October 15-19, 2012&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Connect&lt;/strong&gt; with other Dynamics GP Users and experts in your industry, role or region.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Learn&lt;/strong&gt; from the experiences of Users who share similar goals and challenges.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Share&lt;/strong&gt; your own experiences and expertise with the GPUG community.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Register Today!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Early Bird Registration! &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Register by June 29th and Save $200&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Upgrade and Save Even More!&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Premium GPUG members receive even greater discounts on Summit. &lt;a title="GPUG Membership" href="http://www.gpug.com/join-gpug/user-membership/" target="_blank"&gt;Upgrade Today!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;**** &lt;a title="GPUG Summit 2012 Registration" href="http://www.regonline.com/Register/Checkin.aspx?EventID=1027177" target="_blank"&gt;REGISTER TODAY&lt;/a&gt;&amp;nbsp;****&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Learn from the Dynamics GP Community&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GPUG Summit 2012 provides Microsoft Dynamics GP users a unique and intimate opportunity to dive deep into Dynamics GP, tackle challenges and learn from the experiences of other users who think and work like you. You'll engage in interactive learning sessions, roundtable discussions and valuable networking opportunities at an event hand-crafted exclusively for Dynamics GP users. Visit &lt;a title="GPUG Summit 2012" href="http://www.gpugsummit.com" target="_blank"&gt;www.gpugsummit.com&lt;/a&gt; to see the event agenda and learn more.&lt;/p&gt;
&lt;p&gt;Summit 2012 is designed to provide learning opportunities for every Dynamics GP User within your organization. Whether you're a GP rookie or seasoned expert in a finance, HR/payroll, administrator, IT/DBA or business analyst role - you'll find networking opportunities and educational sessions developed just for you.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Arrive in Seattle in Time for Training&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While you're planning your trip to Seattle, make sure you plan to arrive early enough to take in some instructor-led, classroom training from GPUG Academy on Monday, October 15 and Tuesday October 16. It's a cost-effective training opportunity and a great way to get even more value from your participation in GPUG Summit 2012. Training course topics and details are being ironed out now and will be made available at &lt;a title="GPUG Summit 2012" href="http://www.gpugsummit.com" target="_blank"&gt;www.gpugsummit.com&lt;/a&gt; soon.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Register now as it will save you money and I can guarantee that it will be a worthwhile investment.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10306190" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Conference/">Conference</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>Microsoft Dynamics GP MVP News</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/21/microsoft-dynamics-gp-mvp-news.aspx</link><pubDate>Mon, 21 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10306187</guid><dc:creator>David Musgrave</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10306187</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/21/microsoft-dynamics-gp-mvp-news.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Today is Sivakumar Venkataraman's first official day as a "Microsoftie". It has been a dream of his to sell his soul and join the dark side, but sadly that did not happen and instead he has joined Microsoft.&lt;/p&gt;
&lt;p&gt;He will still be working with Microsoft Dynamics and Microsoft Dynamics GP and while he can't officially be an MVP (Most Valuable Professional) anymore, he will still be able to contribute to the community with his efforts on his &lt;a title="Interesting Findings &amp;amp; Knowledge Sharing" href="http://msdynamicstips.com/" target="_blank"&gt;blog&lt;/a&gt; and the forums. We also have the opportunity for Siva to now post on this &lt;a title="Developing for Dynamics GP" href="http://aka.ms/Dev4DynGP" target="_blank"&gt;blog&lt;/a&gt; and we&amp;nbsp;look forward to some great input from him.&lt;/p&gt;
&lt;p&gt;While on the subject of MVP's, congratulations to the following MVPs who have been re-awarded MVP status for another year:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Andrew Karasev&lt;/li&gt;
&lt;li&gt;Ian Stewart (who I finally met at Convergence 2012)&lt;/li&gt;
&lt;li&gt;Mohammad Daoud&lt;/li&gt;
&lt;li&gt;Monzer Osama&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Have a look at these posts for more details:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sivakumar Venkataraman: &lt;a title="Moving into Microsoft" href="http://msdynamicstips.com/2012/05/03/moving-into-microsoft/" target="_blank"&gt;Moving into Microsoft&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Frank Hamelly: &lt;a title="4 GP MVP's Re-awarded" href="http://gp2themax.blogspot.com.au/2012/04/4-gp-mvps-re-awarded.html" target="_blank"&gt;4 GP MVP's Re-awarded&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Well done to all.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;
&lt;p&gt;PS: Happy Birthday to Siva for the 23&lt;sup&gt;rd &lt;/sup&gt;May.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10306187" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Blogsphere/">Blogsphere</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>Dynamics GP Developer Insights: Web Client Window Ribbon - Part 2</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/18/dynamics-gp-developer-insights-web-client-window-ribbon-part-2.aspx</link><pubDate>Fri, 18 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10303784</guid><dc:creator>David Musgrave</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10303784</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/18/dynamics-gp-developer-insights-web-client-window-ribbon-part-2.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Rushi Patel - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="Rushi Patel - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8765.Rushi-Patel.jpg" width="80" height="112" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Hey, I am Rushi Patel. I am a software developer working on the Microsoft Dynamics GP team in Fargo the last 3 years. I like to spend my time with my family, watching movies and cricket.&lt;/p&gt;
&lt;p&gt;At Microsoft, I have worked on Office Accounting and Dynamics GP Workflow prior to my current project &amp;ndash; the GP web client. I mostly worked on the UI features of web client before I started working on the Window Ribbon feature. Window Ribbons, as the name implies, appears to be a purely UI concept. That&amp;rsquo;s true, however there are many dependencies to make Window Ribbons render on web client such as sanScript code and Dexterity support/enhancements that will be explained in depth in this series of articles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Click on the images for larger versions.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post is continued from last week's &lt;a title="Dynamics GP Developer Insights: Web Client Window Ribbon - Part 1" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/11/dynamics-gp-developer-insights-web-client-window-ribbon-part-1.aspx" target="_blank"&gt;post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Customized Ribbon&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As you can imagine, the Default Ribbon Rules might not cater to needs of all the windows on the web client. There are situations where there needs to be a customized Window Ribbon for a certain functionality.&amp;nbsp; This can be done by overriding the default rules and setting the Window Ribbon up as needed for those windows. I&amp;rsquo;ll discuss this after I explain the design for the window ribbons.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Design &amp;amp; Implementation Details&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We leveraged the design of the existing Dynamics GP desktop client list page Ribbon that uses Command(s) and Command List(s) for Dynamics GP Window Ribbons.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0358.image9.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0358.image9.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To support everything on the Dynamics GP Web Client some new properties were needed such as Button Size, to support the Window Ribbon rendering and these have been made available to support the desktop client Ribbons.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;InitializeDefaultRibbon_Main or InitializeDefaultRibbon Global Script&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;IntializeDefaultRibbon_Main procedure is in the core dictionary. This procedure will create the default ribbon command list structure which will be sufficient for most windows. Any necessary window level customizations to the Window Ribbon need to be done in that windows form InitializeWindowRibbon procedure.&lt;/p&gt;
&lt;p&gt;If the default Window Ribbon rules need to be overridden a 3rd party dictionary can create an InitializeDefaultRibbon global procedure which, if it exists, will be called by the Dexterity Runtime instead of InitializeDefaultRibbon_Main procedure of the core dictionary. If the procedure does not exist, InitializeDefaultRibbon_Main will be called for that 3rd party dictionary and receive all the default rules defined by the core product.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;InitializeWindowRibbon Form Level Procedure&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is an optional form level procedure that will allow for any necessary customizations to be made to the Window Ribbon command list. If this is necessary, it should always follow a call to the InitializeDefaultRibbon global script to take advantage of the default logic to build the Window Ribbon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Dexterity Runtime Logic&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2541.image10.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2541.image10.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;New Dexterity API(s)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lots of thought and design went into making sure we could implement the Window Ribbon functionality and allow for customizations. As such there has been new functionality added to the Dexterity tool to accommodate these. Some of those new functions and APIs leveraged for Window Ribbons are the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CommandList_CreateList&lt;/strong&gt;&lt;br /&gt;This API creates a command list that is associated with the specified form.&amp;nbsp; The list is created empty and must be manipulated using the already-existing command based functions.&amp;nbsp; The list will be unloaded when the form closes.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window_GetRibbonCommandTag&lt;/strong&gt;&lt;br /&gt;This API gets the command tag of the command list that serves as the "ribbon root" for the specified window.&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Form_GetMenuListCommandTag&lt;/strong&gt;&lt;br /&gt;This API gets the command that is associated with the static form-level menu list of the specified form.&amp;nbsp; The list returned is not the 'Extras' menu whose contents vary based on the current focus, but rather points to a list whose contents are fixed at the time the form loads.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field_CreateLinkedCommand&lt;/strong&gt;&lt;br /&gt;This API creates a command that is associated with the specified field.&amp;nbsp; The command will be associated with the same form as the field and will be unloaded at the same time the form is cleaned up.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;Since for Dynamics GP web client we are moving fields to the Window Ribbon commands, any changes to the field (such as hiding and disabling) need to be done for command as well. Manually doing those changes in app code is a challenge. This API will help us link command to the field that will take necessary actions on the command when the field property changes.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field_GetLinkedCommandTag&lt;/strong&gt;&lt;br /&gt;This API gets the command that is linked to the specified field.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field_BDLCreateLinkedCommandList&lt;/strong&gt;&lt;br /&gt;This API creates a command list that is associated with the specified button drop list.&amp;nbsp; The list is structured just like the BDL (in terms of the hierarchy).&amp;nbsp; Also, it will be associated with the same form as the BDL and will be unloaded at the same time the form is cleaned up.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;As mentioned in point 4, this API will help us link BDL field to the command to take advantage of auto actions performed on the command when field property changes. Any add, remove or update operations performed on a BDL item will be applied to the linked command as well.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field_BDLGetLinkedItemCommandTag&lt;/strong&gt;&lt;br /&gt;This API gets the command associated with a button drop list item that is part of the control's linked command list.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;How to customize a Window Ribbon?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Example 1: &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The default Ribbon rules doesn&amp;rsquo;t include any Edit menu related commands. But we want to have Insert Row and Delete Row buttons from Edit Menu as Window Ribbon items under Actions group on the web client.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0815.image11.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0815.image11.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;InitializeWindowRibbon procedure&lt;/strong&gt;&lt;/p&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;{InitializeWindowRibbon procedure}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;in integer productId;&lt;br /&gt;in integer formId;&lt;br /&gt;in integer windowId;&lt;br /&gt;in integer windowType;&lt;br /&gt;inout integer ribbonTag;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;local string windowName;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;{call InitializeDefaultRibbon}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;windowName = Resource_GetSubResourceName(productId, MT_FORM, formId, DT_WINDOW, windowId);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;if (windowName = &amp;ldquo;POP_Invoice_Entry&amp;rdquo;) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;{Add insert row to actions group}&lt;br /&gt;&amp;nbsp;cmdTag =&amp;nbsp; Command_GetTag(command 'cmdInsertRow');&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME, &amp;ldquo;Insert Row&amp;rdquo;);&amp;nbsp;CommandList_Add(actionGroup, cmdTag);&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;{Add delete row to actions group}&lt;br /&gt;&amp;nbsp;cmdTag =&amp;nbsp; Command_GetTag(command 'cmdDeleteRow');&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME, &amp;ldquo;Delete Row&amp;rdquo;);&amp;nbsp;CommandList_Add(actionGroup, cmdTag);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;end if;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Example 2: &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We want to move buttons to the Window Ribbon in web client. As shown below we are moving Bins, Quantity Type, Distributions and Serial/Lot buttons to the Go To group on the Window Ribbon in the web client.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/5545.image12.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/5545.image12.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;InitializeWindowRibbon procedure&lt;/strong&gt;&lt;/p&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;{InitializeWindowRibbon procedure}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;in integer productId;&lt;br /&gt;in integer formId;&lt;br /&gt;in integer windowId;&lt;br /&gt;in integer windowType;&lt;br /&gt;inout integer ribbonTag;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;local string windowName;&lt;br /&gt;local integer fileGroup, helpGroup, actionGroup, gotoGroup, additionalGroup, viewGroup, optionsGroup, workflowGroup, clFormMenu;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;{call InitializeDefaultRibbon}&lt;br /&gt;call InitializeDefaultRibbon of form syWebClientRibbon, productId, formId, windowId, ribbonTag, fileGroup, helpGroup, actionGroup, gotoGroup, additionalGroup, viewGroup, optionsGroup, workflowGroup,&amp;nbsp; clFormMenu;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;windowName = Resource_GetSubResourceName(productId, MT_FORM, formId, DT_WINDOW, windowId);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;if(windowName = &amp;ldquo;IV_Transaction_Inquiry&amp;rdquo;) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;{Seup Goto group}&lt;br /&gt;&amp;nbsp;clGoTo = CommandList_CreateList(productId, formId, CL_GOTO);&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME,&amp;rdquo;GoTo&amp;rdquo;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;&amp;nbsp;{Add Bins Button}&lt;br /&gt;&amp;nbsp;cmdTag = Field_CreateLinkedCommand('(L) Bins Button' of window IV_Transaction_Inquiry, "(L) Bins Button_w_IV_Transaction_Inquiry_f_IV_Transaction_Inquiry");&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME, Field_GetStringProperty('(L) Bins Button' of window IV_Transaction_Inquiry, FIELD_PROP_CAPTION));&lt;br /&gt;&amp;nbsp;CommandList_Add(clGoTo, cmdTag);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;{Add Distributions Button}&lt;br /&gt;&amp;nbsp;cmdTag = Field_CreateLinkedCommand('Distributions Button' of window IV_Transaction_Inquiry, "Distributions Button_w_IV_Transaction_Inquiry_f_IV_Transaction_Inquiry");&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME, Field_GetStringProperty('Distributions Button' of window IV_Transaction_Inquiry, FIELD_PROP_CAPTION));&lt;br /&gt;&amp;nbsp;CommandList_Add(clGoTo, cmdTag);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;{Add Serial/Lot Button}&lt;br /&gt;&amp;nbsp;cmdTag = Field_CreateLinkedCommand('Serial/Lot Button (/)' of window IV_Transaction_Inquiry, "Serial/Lot Button (/)_w_IV_Transaction_Inquiry_f_IV_Transaction_Inquiry");&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME, Field_GetStringProperty('Serial/Lot Button (/)' of window IV_Transaction_Inquiry, FIELD_PROP_CAPTION));&lt;br /&gt;&amp;nbsp;CommandList_Add(clGoTo, cmdTag);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;{Add Quantity Type Button}&lt;br /&gt;&amp;nbsp;cmdTag = Field_CreateLinkedCommand('Quantity Type Button Q' of window IV_Transaction_Inquiry, "Quantity Type Button Q_w_IV_Transaction_Inquiry_f_IV_Transaction_Inquiry");&lt;br /&gt;&amp;nbsp;Command_SetStringProperty(cmdTag, COMMAND_PROP_DISPLAY_NAME, Field_GetStringProperty('Quantity Type Button Q' of window IV_Transaction_Inquiry, FIELD_PROP_CAPTION));&lt;br /&gt;&amp;nbsp;CommandList_Add(clGoTo, cmdTag);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;CommandList_Add(gotoGroup, clGoTo);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;end if;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Example 3: &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This example shows how to suppress the Window Ribbon for a specific window in the form. Suppose Form1 contains Window1 and Window2. We want a Ribbon on Window1 and not on Window2.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;InitializeWindowRibbon procedure&lt;/strong&gt;&lt;/p&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;{InitializeWindowRibbon procedure}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;in integer productId;&lt;br /&gt;in integer formId;&lt;br /&gt;in integer windowId;&lt;br /&gt;in integer windowType;&lt;br /&gt;inout integer ribbonTag;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;local string windowName;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;windowName = Resource_GetSubResourceName(productId, MT_FORM, formId, DT_WINDOW, windowId);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;if(windowName = &amp;ldquo;Window1&amp;rdquo;) then&lt;br /&gt;&amp;nbsp;{Suppress Ribbon}&lt;br /&gt;ribbonTag = 0;&lt;br /&gt;else&lt;br /&gt;&amp;nbsp;{call InitializeDefaultRibbon}&lt;br /&gt;end if;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Summary&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So today, we learned about the Window Ribbon support in Dynamics GP web client. It gives details about the default Window Ribbon rules, why do we need those rules and the Window Ribbon design. Most importantly it gives you details about how to customize the Window Ribbon and its default rules. In close, we hope that you have found this article useful and informative.&lt;/p&gt;
&lt;p&gt;Rushi Patel&lt;/p&gt;
&lt;p&gt;For other posts in this series go to: &lt;a title="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/" target="_blank"&gt;http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10303784" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Dexterity/">Dexterity</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+_2600_quot_3B00_12_2600_quot_3B00_/">GP &amp;quot;12&amp;quot;</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Web+Client/">Web Client</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Developer+Insights/">Developer Insights</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+2013/">GP 2013</category></item><item><title>Microsoft Dynamics Top 100 Most Influential People for 2012 published</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/17/microsoft-dynamics-top-100-most-influential-people-for-2012-published.aspx</link><pubDate>Thu, 17 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10305177</guid><dc:creator>David Musgrave</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10305177</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/17/microsoft-dynamics-top-100-most-influential-people-for-2012-published.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;You may remember that I posted a little while ago about the &lt;a title="Top 100 Most Influential People in Microsoft Dynamics 2012 Nominations" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/03/05/top-100-most-influential-people-in-microsoft-dynamics-2012-nominations.aspx" target="_blank"&gt;Top 100 Most Influential People in Microsoft Dynamics 2012 Nominations&lt;/a&gt;&amp;nbsp;and had a couple of reminders in other articles once voting started. Well &lt;a title="Dynamics World UK" href="http://www.dynamicsworld.co.uk/" target="_blank"&gt;Dynamics World UK&lt;/a&gt;&amp;nbsp;have now published their&amp;nbsp;&lt;a title="Microsoft Dynamics Most Influential People Top 100" href="http://www.dynamicsworld.co.uk/top-100/" target="_blank"&gt;Microsoft Dynamics Most Influential People Top 100&lt;/a&gt;&amp;nbsp;list.&lt;/p&gt;
&lt;p&gt;Firstly, congratulations must go to those who made the top 100 list. Here are a few Dynamics GP people that should be highlighted (sorry if I missed anyone):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Andy Vabulus (14)&lt;/li&gt;
&lt;li&gt;Andy Hafer (17)&lt;/li&gt;
&lt;li&gt;Andy Snook (18)&lt;/li&gt;
&lt;li&gt;Mark Polino MVP (20)&lt;/li&gt;
&lt;li&gt;Shane Hall (24)&lt;/li&gt;
&lt;li&gt;Jon Rivers (38)&lt;/li&gt;
&lt;li&gt;Joe Tews (49)&lt;/li&gt;
&lt;li&gt;Clinton Weldon (53)&lt;/li&gt;
&lt;li&gt;Mariano Gomez MVP (66)&lt;/li&gt;
&lt;li&gt;Frank Hamelly MVP (67)&lt;/li&gt;
&lt;li&gt;Mark Rhodes (71)&lt;/li&gt;
&lt;li&gt;Bob McAdam (83)&lt;/li&gt;
&lt;li&gt;Anya Ciecierski (90)&lt;/li&gt;
&lt;li&gt;Victoria Yudin MVP (93)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you can see,&amp;nbsp;myself&amp;nbsp;and many other worthy Dynamics GP people that are huge in the community are&amp;nbsp;not in that list. But it does seem to help if your name is "Andy".&lt;/p&gt;
&lt;p&gt;However, what means more to me than actually being on the list is the strength and volume of the support I get from the Microsoft Dynamics GP Blogging and Forum Communities.&lt;/p&gt;
&lt;p&gt;Mariano and I had the top ranked Microsoft Dynamics GP session at Convergence 2012 and had two sessions in the overall top 10 (3&lt;sup&gt;rd&lt;/sup&gt; &amp;amp; 9&lt;sup&gt;th&lt;/sup&gt;). This blog is the number one Microsoft Dynamics GP related blog, the &lt;a title="Support Debugging Tool Portal" href="http://aka.ms/SDT" target="_blank"&gt;Support Debugging Tool&lt;/a&gt; and &lt;a title="Menus for Visual Studio Tools" href="http://aka.ms/MVST" target="_blank"&gt;Menus for Visual Studio Tools&lt;/a&gt; are loved globally. So, I must be doing something right....&lt;/p&gt;
&lt;p&gt;That said, it warmed my heart to read through the posts from my fellow bloggers who all believe that I should have been recognised:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vaidy Mohan - &lt;a title="Microsoft Dynamics Most Influential People Top 100" href="http://vaidymohan.com/2012/05/09/microsoft-dynamics-most-influential-people-top-100/" target="_blank"&gt;Microsoft Dynamics Most Influential People Top 100&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;John Lowther - &lt;a title="Microsoft Dynamics Most Influential People Top 100 for 2012" href="http://community.dynamics.com/product/gp/gptechnical/b/gpdba/archive/2012/05/09/microsoft-dynamics-most-influential-people-top-100-for-2012.aspx" target="_blank"&gt;Microsoft Dynamics Most Influential People Top 100 for 2012&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Jivtesh Singh - &lt;a title="2012 - Microsoft Dynamics Most Influential People Top 100" href="http://www.jivtesh.com/2012/05/2012-microsoft-dynamics-most.html" target="_blank"&gt;2012 - Microsoft Dynamics Most Influential People Top 100&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Mark Polino - &amp;nbsp;&lt;a title="Microsoft Dynamics Most Influential People Top 100 | DynamicsWorld" href="http://msdynamicsgp.blogspot.com.au/2012/05/microsoft-dynamics-most-influential.html" target="_blank"&gt;Microsoft Dynamics Most Influential People Top 100 | DynamicsWorld&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Doug Pitcher - &lt;a title="Doug Pitcher's OFFICIAL 100 most famous, awesome and totally influential Dynamics people for 2012" href="http://gp.rosebizincblogs.com/2012/05/doug-pitchers-official-100-most-famous-awesome-and-totally-influential-dynamics-people-for-2012.html" target="_blank"&gt;Doug Pitcher&amp;rsquo;s OFFICIAL 100 most famous, awesome and totally influential Dynamics people for 2012&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Vaidy Mohan - &amp;nbsp;&lt;a title="Doug Pitcher's OFFICIAL 100 Most Famous, Awesome &amp;amp;amp; Totally Influence People for 2012" href="http://vaidymohan.com/2012/05/11/doug-pitchers-official-100-most-famous-awesome-totally-influence-people-for-2012/" target="_blank"&gt;Doug Pitcher&amp;rsquo;s OFFICIAL 100 Most Famous, Awesome &amp;amp; Totally Influence People for 2012&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Sivakumar Venkataraman&amp;nbsp;- &lt;span class="wpb-postheadericon"&gt;&lt;a title="Microsoft Dynamics Most Influential People Top 100" href="http://msdynamicstips.com/2012/05/11/microsoft-dynamics-most-influential-people-top-100-2/" target="_blank"&gt;Microsoft Dynamics Most Influential People Top 100&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="wpb-postheadericon"&gt;John Lowther - &lt;a title="Check out Doug Pitcher's OFFICIAL 100 most famous, awesome and totally influential Dynamics people for 2012 " href="http://community.dynamics.com/product/gp/gptechnical/b/gpdba/archive/2012/05/11/check-out-doug-pitcher-s-official-100-most-famous-awesome-and-totally-influential-dynamics-people-for-2012.aspx" target="_blank"&gt;Check out Doug Pitcher&amp;rsquo;s OFFICIAL 100 most famous, awesome and totally influential Dynamics people for 2012&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Mark Polino - &lt;a title="Microsoft Dynamics Most Influential People Top 100 | Interesting Findings &amp;amp;amp; Knowledge Sharing" href="http://msdynamicsgp.blogspot.com.au/2012/05/microsoft-dynamics-most-influential_14.html" target="_blank"&gt;Microsoft Dynamics Most Influential People Top 100 | Interesting Findings &amp;amp; Knowledge Sharing&lt;/a&gt; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Janakiram - &lt;a title="Microsoft Dynamics Most Influential People Analysis" href="http://dynamicsblogger.com/microsoft-dynamics-most-influential-people-analysis/" target="_blank"&gt;Microsoft Dynamics Most Influential People Analysis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For those who wonder about the criteria that Dynamics World uses, I took this excerpt from their website:&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;We base our selections on a number of criteria including: Number of nominations received; Number of Microsoft Dynamics employees employed; Number of clients your ISV/VAR has; As an end user how many user licences taken; Social Media Followers (bloggers/twitter/ linkedin) (bonuses for group owners); Number of years experience of Microsoft Dynamics; MVP Recipients; Developers of Add-Ons and new verticals; Speakers and writers about Microsoft Dynamics; Forum contributors and Number of votes received. We attempt to limit what can actually be described as a sphere of influence. The advantage that we have had in quantifying influence in Microsoft Dynamics is that we are dealing with a group of people with similar interests, and so it is possible to be able to quantify one persons influence over the group against another person&amp;rsquo;s influence.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I made &lt;a title="Doug Pitcher&amp;rsquo;s OFFICIAL 100 most famous, awesome and totally influential Dynamics people for 2012" href="http://gp.rosebizincblogs.com/2012/05/doug-pitchers-official-100-most-famous-awesome-and-totally-influential-dynamics-people-for-2012.html" target="_blank"&gt;Doug's List&lt;/a&gt; and that is what counts, maybe next year I can make the "&lt;a title="Microsoft Dynamics Most Influential People Top 100" href="http://www.dynamicsworld.co.uk/top-100/" target="_blank"&gt;other list&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10305177" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Blogsphere/">Blogsphere</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Fun/">Fun</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>Understanding Tax: How to setup Australian Wine Equalisation Tax using Tax Included with Item Price</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/16/understanding-tax-how-to-setup-australian-wine-equalisation-tax-using-tax-included-with-item-price.aspx</link><pubDate>Wed, 16 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10300290</guid><dc:creator>David Musgrave</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10300290</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/16/understanding-tax-how-to-setup-australian-wine-equalisation-tax-using-tax-included-with-item-price.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img width="94" height="94" align="right" alt="David Meego - Click for blog homepage" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" border="0" hspace="10" /&gt;&lt;img width="1" height="1" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" border="0" /&gt;&lt;/a&gt;This post is about setting up Tax Details and Tax Schedules to handle the Wine Equalisation Tax for Australian GST when Tax is Included with the Item Price. While this is a specific request, the post discusses some generic concepts and limitations with how the tax engine in Microsoft Dynamics GP works.&lt;/p&gt;
&lt;p&gt;When the Goods and Services Tax (GST) was introduced&amp;nbsp;in July 2000, part of the process of adding a GST to the retail price of almost all goods and services was the removal of the old wholesale sales tax system.&amp;nbsp;The GST was applied at every level of the sales cycle at a rate of 10% (and is still 10%). If you are not the end consumer, you can claim the GST you paid back as a credit and apply the GST when you sell the item on. So, the net result is that GST is applied at the final consumer sale.&lt;/p&gt;
&lt;p&gt;The old wholesale sales tax was applied on the last transaction prior to the final consumer sale... the final wholesale transaction. The rates varied depending on the type of goods, but could range from 20% to 40% or more. Services did not have a tax previously, but would now incur the GST. Definition: A Service is anything that is not a Good. Goods are physical and tangible, Services are "Not Goods".&lt;/p&gt;
&lt;p&gt;Ok, so why the quick lesson in Australian taxation history?&lt;/p&gt;
&lt;p&gt;This was so I could explain what the Wine Equalisation Tax is. Before the GST the government received a certain amount of tax for each bottle of wine sold. When the GST was introduced, that amount decreased significantly. So to maintain the revenue stream, an additional tax was added to wine so that the tax recieved after the GST was equal to the tax received before the GST. Hence, the 29%&amp;nbsp;Wine Equalisation Tax or WET.&lt;/p&gt;
&lt;p&gt;Now, to simplify the creation of the Tax Details and Tax Schedules need for Australian GST, there is a Tax Information Setup wizard in the Busines Activity Statement (BAS) Reporting dictionary that is installed when you select Australia as your country during the Microsoft Dynamics GP installation. This wizard allows the user to select the types of tax needed and the naming conventions desired and will then generate the Tax Details and Tax Schedules and apply them to setup and master records.&lt;/p&gt;
&lt;p&gt;The wizard can set up Wine Equalisation Tax, but it only does this for the situation&amp;nbsp;when Tax is a Percentage of Sale/Purchase and is added to the Item Price.&lt;/p&gt;
&lt;p&gt;The wizard creates the Tax Details which work in the following way:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Sale of Wine: $100.00&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;GST on Wine:&amp;nbsp; &amp;nbsp;$10.00 (10% of $100.00)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;WET on Wine:&amp;nbsp; &amp;nbsp;$29.00 (29% of $100.00)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;GST on WET:&amp;nbsp; &amp;nbsp;&amp;nbsp; $2.90 (10% of&amp;nbsp; $29.00)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Total:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$141.90 ($100.00 Wine + $29.00 WET and $12.90 GST)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This uses&amp;nbsp;3 Tax Details, one for GST, one for WET and one for GST on WET, also known as WEG.&lt;/p&gt;
&lt;p&gt;So, now I have a customer asking to have all the taxes Included with the Item Price.&amp;nbsp; They want to enter $141.90 as the Sale amount and have the system work backwards to calculate the tax amounts. This is a little harder than you might think at first.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The problem is that the&amp;nbsp;Dynamics GP Tax Engine works in a serial fashion.&amp;nbsp;Let's try and implement the same configuration as discussed above with a 10% GST, a 29% WET and&amp;nbsp;a 10% WEG on the WET.&lt;/p&gt;
&lt;p&gt;If GST is calculated and removed from the Item Price first and then WET is removed, the calculation is incorrect.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Sale of Wine (inc tax): $141.90&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;GST on Sale:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $12.90 (10% out of $141.90)*&lt;br /&gt;WET on Balance of Sale:&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp; $29.00 (29% out of $129.00)&lt;br /&gt;WEG on WET:&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; $2.64 (10% out of&amp;nbsp; $29.00)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Total:&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; $141.90 (&lt;span style="background-color: #ffff00;"&gt;$97.36 Wine + $29.00 WET + $15.54 GST&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;* This is calculated by mulitplying the amount (inc tax) by (Tax rate) / (100% + Tax rate). &lt;br /&gt;For example: for a 10% tax = 10% / (100% + 10%) = 10 / 110 = 1 / 11, or divide by 11.&lt;/p&gt;
&lt;p&gt;If WET is calculated and removed from the Item Price first and then GST is removed, the calculation is also incorrect.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Sale of Wine (inc tax): $141.90&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;WET on Sale:&lt;span style="font-family: courier new,courier;"&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;$31.90 (29% out of $141.90)&lt;br /&gt;WEG on WET:&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; $2.90 (10% out of&amp;nbsp; $31.90)&lt;br /&gt;&lt;/span&gt;GST on&amp;nbsp;Balance of Sale:&amp;nbsp; &amp;nbsp;$9.73 (10% out of $107.10)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Total:&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; $141.90 (&lt;span style="background-color: #ffff00;"&gt;$97.37 Wine + 31.90 WET + $12.63 GST&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The issue is that the&amp;nbsp;order the Tax Details are calculated is the order specified by the alphabetic sorting of the Tax Detail IDs and as each one is calculated, the Item Price is reduced by the amount of the tax calculated.&lt;/p&gt;
&lt;p&gt;The solution is fairly simple. Two changes in the&amp;nbsp;settings will make this work. If we get rid of the WEG (don't create&amp;nbsp;the Tax Details for it), and&amp;nbsp;select the option to make the WET a&amp;nbsp;Taxable Tax, it will simplify the calculations and make sure that the GST is calculated first:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Sale of Wine (inc tax): $141.90&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;GST on Sale (inc WEG):&amp;nbsp;&amp;nbsp; $12.90 (10% out of $141.90)&lt;br /&gt;WET on Balance of Sale:&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp; $29.00 (29% out of $129.00)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Total:&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; $141.90 ($100.00 Wine + $29.00 WET and $12.90 GST)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Finally we have the correct calculation for a Tax Included in Price configuration.&lt;/p&gt;
&lt;p&gt;Below are the screenshots for the Tax Details needed (based on default naming conventions for the Tax Information Setup wizard):&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/7624.TaxDetailSales.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/7624.TaxDetailSales.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Tax Detail for Sales with WET Included in Item Price&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8816.TaxDetailPurch.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8816.TaxDetailPurch.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Tax Detail for Purchases with WET Included in Item Price&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/5516.TaxSchedule.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/5516.TaxSchedule.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Tax Schedule for WET Included in Item Price&lt;/p&gt;
&lt;p&gt;Below is an example Receivables Batch Edit List showing an example of a WET transaction with the Tax added to the price and the Tax included in the price.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Receivables Batch Edit List&lt;/strong&gt;&lt;/div&gt;
&lt;div class="code" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;&amp;nbsp;System:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15/05/2012&amp;nbsp; 17:22:53&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;&amp;nbsp;&amp;nbsp; Fabrikam, Ltd.&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page:&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;&amp;nbsp;User Date:&amp;nbsp; 12/04/2017&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRANSACTION EDIT LIST&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; User ID: sa&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;Batch ID:&amp;nbsp; TEST&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; Audit Trail Code:&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; Batch Frequency: Single Use&lt;br /&gt;&amp;nbsp;Posting Date:&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/04/2017&amp;nbsp;&amp;nbsp; Batch Comment:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test Batch&lt;br /&gt;&amp;nbsp;Trn Total Actual:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&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; Trn Total Control:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;Batch Total Actual:&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; $283.80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Batch Total Control:&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; $0.00&lt;br /&gt;&amp;nbsp;Approved:&amp;nbsp; NO&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; Approved By:&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; Approval Date: 0/00/0000&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;&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;&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;&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; &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;&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;&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;&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; &lt;br /&gt;&amp;nbsp;Type Document Number&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Doc Date&amp;nbsp;&amp;nbsp;&amp;nbsp; Post Date&amp;nbsp;&amp;nbsp;&amp;nbsp; Debtor ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Salesperson&lt;br /&gt;&amp;nbsp;------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sales Amount&amp;nbsp; Trade Discount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freight Amount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Misc Amount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tax Amount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document Total&amp;nbsp;&amp;nbsp; Discount Avail&lt;br /&gt;&amp;nbsp;------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&amp;nbsp;SLS SALES00000001005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/04/2017&amp;nbsp;&amp;nbsp; 12/04/2017&amp;nbsp;&amp;nbsp; AARONFIT0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Aaron Fitz Electrical&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;&amp;nbsp;&amp;nbsp; $100.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&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; $0.00&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; $0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $41.90&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; $141.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&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;&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;&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;&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; &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;&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;&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;&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; &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;&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;&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;&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; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; General Ledger Distributions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Account Number&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; Account Description&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; Account Type&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; Debit Amount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit Amount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000-4110-01&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; US Sales - Retail/Parts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SALES&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&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; 100.00&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000-2300-00&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; IL State Sales Tax Payable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TAXES&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&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; 41.90&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000-1200-00&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; Accounts Receivable&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; RECV&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 141.90&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; 0.00&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;&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;&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;&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;&amp;nbsp;&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;&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;&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;&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;&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; 141.90&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; 141.90&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;&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;&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;&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;&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;&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; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tax Detail Distributions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tax Detail ID&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; Tax Detail Description&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;&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; Tax Amount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUSGST-GST&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; GST Taxable Sale&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10.00&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUSGST-WEG&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; GST on WET Sale&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.90&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUSGST-WET&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; GST Wine Equal. Tax Sale&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;&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; 29.00&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;&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;&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;&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;&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;&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;&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;&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;&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; 41.90&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;&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;&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;&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;&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;&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; &lt;br /&gt;&amp;nbsp;SLS SALES00000001006&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/04/2017&amp;nbsp;&amp;nbsp; 12/04/2017&amp;nbsp;&amp;nbsp; AARONFIT0001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Aaron Fitz Electrical&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;&amp;nbsp;&amp;nbsp; $141.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&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; $0.00&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; $0.00&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; $0.00&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; $141.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&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;&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;&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;&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; &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;&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;&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;&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; &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;&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;&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;&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; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; General Ledger Distributions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Account Number&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; Account Description&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; Account Type&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; Debit Amount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Credit Amount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000-4110-01&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; US Sales - Retail/Parts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SALES&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&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; 100.00&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000-2300-00&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; IL State Sales Tax Payable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TAXES&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&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; 41.90&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 000-1200-00&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; Accounts Receivable&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; RECV&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 141.90&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; 0.00&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;&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;&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;&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;&amp;nbsp;&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;&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;&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;&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;&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; 141.90&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; 141.90&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;&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;&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;&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;&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;&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; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tax Detail Distributions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tax Detail ID&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; Tax Detail Description&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;&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; Tax Amount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUSGST-GST&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; GST Taxable Sale&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUSGSTI-GST&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; GST Inc Taxable Sale&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;&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; 12.90&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AUSGSTI-WET&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; GST Inc Wine Equal. Tax Sale&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;&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; 29.00&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;&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;&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;&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;&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;&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;&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;&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;&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; 41.90&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;&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;&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;&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;&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;&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; &lt;br /&gt;&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;&amp;nbsp;&amp;nbsp; $241.90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $41.90&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; $283.80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0.00&lt;br /&gt;&amp;nbsp;===================== ================ ================= ================= ================== ==================== =================&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Hope you found this discussion&amp;nbsp;interesting.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10300290" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category></item><item><title>More An Inside Look Videos</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/15/more-an-inside-look-videos.aspx</link><pubDate>Tue, 15 May 2012 02:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10305161</guid><dc:creator>David Musgrave</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10305161</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/15/more-an-inside-look-videos.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;The &lt;a title="Inside Dynamics GP" href="http://blogs.msdn.com/b/gp/" target="_blank"&gt;Inside Dynamics GP&lt;/a&gt;&amp;nbsp;Blog has published more videos in its series of "Inside Look" videos hosted by Daniel Bartholomay (The Inside Look Guy).&lt;/p&gt;
&lt;p&gt;These videos provide an inside look to the inner workings of Dynamics GP. Here is the next installment of 3 videos.&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Inside Look with&amp;nbsp;Brian Meier&lt;/strong&gt;&amp;nbsp;(&lt;a title="Inside Look: with Brian Meier" href="http://blogs.msdn.com/b/gp/archive/2012/04/10/an-inside-look-with-brian-meier-part-two.aspx" target="_blank"&gt;Original Post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/15/more-an-inside-look-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Inside Look with&amp;nbsp;Theresa Nistler&lt;/strong&gt;&amp;nbsp;(&lt;a title="An Inside Look Featuring Theresa Nistler" href="http://blogs.msdn.com/b/gp/archive/2012/04/10/an-inside-look-with-theresa-nistler.aspx" target="_blank"&gt;Original Post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/15/more-an-inside-look-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Inside Look with&amp;nbsp;Jared Hall&lt;/strong&gt;&amp;nbsp;(&lt;a title="An Inside Look with Jared Hall" href="http://blogs.msdn.com/b/gp/archive/2012/04/10/an-inside-look-with-jared-hall.aspx" target="_blank"&gt;Original Post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/15/more-an-inside-look-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10305161" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>Dynamics GP Developer Insights: Web Client Window Ribbon - Part 1</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/11/dynamics-gp-developer-insights-web-client-window-ribbon-part-1.aspx</link><pubDate>Fri, 11 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10303088</guid><dc:creator>David Musgrave</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10303088</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/11/dynamics-gp-developer-insights-web-client-window-ribbon-part-1.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Rushi Patel - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="Rushi Patel - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8765.Rushi-Patel.jpg" width="80" height="112" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Hey, I am Rushi Patel. I am a software developer working on the Microsoft Dynamics GP team in Fargo the last 3 years. I like to spend my time with my family, watching movies and cricket.&lt;/p&gt;
&lt;p&gt;At Microsoft, I have worked on Office Accounting and Dynamics GP Workflow prior to my current project &amp;ndash; the GP web client. I mostly worked on the UI features of web client before I started working on the Window Ribbon feature. Window Ribbons, as the name implies, appears to be a purely UI concept. That&amp;rsquo;s true, however there are many dependencies to make Window Ribbons render on web client such as sanScript code and Dexterity support/enhancements that will be explained in depth in this series of articles.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Click on the images for larger versions.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Introduction&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Are most of you aware that the Dynamics GP desktop client already has a Ribbon rendered on its list pages?&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1362.image2.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1362.image2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The web client will have a similar Ribbon with the same features rendered on its window. All non-modal windows by default will have a Window Ribbon displayed when they are rendered in Dynamics GP web client.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0871.image3.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0871.image3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Default Ribbon Rule&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;There are hundreds of windows that require a Window Ribbon on the Dynamics GP web client. Instead of creating a Window Ribbon definition for each of those windows separately (which is not only time consuming but also a maintenance challenge), we designed a set of&amp;nbsp; default Window Ribbon rules that will be applied to each window that requires a Window Ribbon on the Dynamics GP web client. Here are some of those rules:&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Rule 1: Ribbon Groups&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;A Window Ribbon must have predefined groups in the following order and Window Ribbon groups will be displayed only if items exist for that group.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="text-align: left;"&gt;Actions&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style="text-align: left;"&gt;Form level menus&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style="text-align: left;"&gt;Additional&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style="text-align: left;"&gt;GoTo&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style="text-align: left;"&gt;File&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style="text-align: left;"&gt;Help&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Rule 2: Action Group&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;All Push Buttons and Button Drop Lists (BDL) in control area (except for a few that belong to an exception list) must be part of Actions Window Ribbon Group.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1651.image4.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1651.image4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Some Push Buttons (e.g. field &amp;ldquo;Ok Button&amp;rdquo;) if exist in footer of the window should go in to Actions Window Ribbon Group.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8132.image5.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8132.image5.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Rule 3: Form level menus&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Form-level menus are used to add menu items that are specific to a single form. They are created using the form definition window.&lt;/p&gt;
&lt;p&gt;Each form level menu will have respective Window Ribbon group when rendered on web client window.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1832.image6.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1832.image6.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Rule 4: Additional menu&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There is a built-in command list (cmdListFormTriggers) that gets rendered as a &amp;ldquo;Additional&amp;rdquo; menu on Dexterity window when a form is registered with a trigger (e.g. Trigger_RegisterForm()).&lt;/p&gt;
&lt;p&gt;The Additional menu, if it exists on a Dexterity window, must be displayed as the Additional Window Ribbon group on web client window.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Rule 5: GoTo Group&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If a &amp;ldquo;GoTo&amp;rdquo; button drop list exists in the control area, make it a GoTo Window Ribbon group on the web client window.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0042.image7.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/0042.image7.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Rule 6: Built-in Commands&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Several built-in commands are already defined in Dexterity, and can be used in your application. These commands provide access to system-level features, such as the print, print setup, help, copy/paste etc.&lt;/p&gt;
&lt;p&gt;The Print (cmdPrint) and Print Setup (cmdPrintSetup) commands from File built-in command will be part of File Window Ribbon group on web client window.&lt;/p&gt;
&lt;p&gt;The Help Window Ribbon group on web client window will display the Help menu commands (cmdHelpContents, cmdHelpOnHelp etc).&lt;/p&gt;
&lt;p&gt;Additionally, the Window Note will be part of the Help Ribbon group if that button exists in the footer of the window.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1777.image8.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1777.image8.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To be continued next&amp;nbsp;week....&amp;nbsp;in this &lt;a title="Dynamics GP Developer Insights: Web Client Window Ribbon - Part 2" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/18/dynamics-gp-developer-insights-web-client-window-ribbon-part-2.aspx" target="_blank"&gt;post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Rushi Patel&lt;/p&gt;
&lt;p&gt;For other posts in this series go to: &lt;a title="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/" target="_blank"&gt;http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/developer+insights/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10303088" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Dexterity/">Dexterity</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+_2600_quot_3B00_12_2600_quot_3B00_/">GP &amp;quot;12&amp;quot;</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Web+Client/">Web Client</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Developer+Insights/">Developer Insights</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+2013/">GP 2013</category></item><item><title>How to update Microsoft Dynamics GP Visual Studio Tools Addins on a live system</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/09/live-updates-of-dynamics-gp-visual-studio-tools-addins.aspx</link><pubDate>Wed, 09 May 2012 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10302011</guid><dc:creator>David Musgrave</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10302011</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/09/live-updates-of-dynamics-gp-visual-studio-tools-addins.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Luc St-Yves - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img width="94" height="106" align="right" alt="Luc St-Yves - Click for blog homepage" src="http://blogs.msdn.com/resized-image.ashx/__size/94x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2577.LucSt_2D00_Yves.jpg" border="0" hspace="10" /&gt;&lt;img width="1" height="1" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" border="0" /&gt;&lt;/a&gt;Today I have a treat for all the Visual Studio Tools developers out there.&lt;/p&gt;
&lt;p&gt;While at &lt;a title="Microsoft Convergence 2012 Houston" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/03/30/microsoft-convergence-2012-houston-wrap-up.aspx" target="_blank"&gt;Microsoft Convergence 2012 Houston&lt;/a&gt;, I was approached by Luc St-Yves to discuss a tool that he was creating that would allow Visual Studio Tools Addins to be updated on a live system.&amp;nbsp;This is especially useful on a terminal server or Citrix system where you cannot get every user to disconnect when you want to put an update into production.&lt;/p&gt;
&lt;p&gt;This tool allows the latest version of the Addin code to be placed into the live system and all new sessions to use the new code. Existing sessions keep using the code that was current at the time the Dynamics GP application was started until they log out.&lt;/p&gt;
&lt;p&gt;Luc is a business analyst since 1992 and has developed his skills managing different ERPs systems since 2000. He has performed ERP implementations and developed an expertise on numerous ERP systems. From his SQL and programming knowledge, he developed several customizations to help go the step ahead where ERP stops. He is a Microsoft Dynamics GP customer since 2011, working at &lt;a title="Humanware Technologies" href="http://www.humanware.com" target="_blank"&gt;Humanware Technologies&lt;/a&gt;, a company developing products for blinds and visually impaired people.&lt;/p&gt;
&lt;p&gt;I will let Luc explain what the tool does....&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This method and tool while really useful are not supported by Microsoft. The code is written by a third party (Luc) is provided "as is" and no warranty&amp;nbsp;is given or implied.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;How to update your Visual Studio development for Dynamics GP while users are using it&amp;hellip;..&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Ever wonder?&amp;nbsp; Ever been tired of asking your Dynamics GP users to log off because you need to update your customizations, when your changes are only affecting 1 or 2 users, and even then, are not quite rush?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Well here is the trick:&amp;nbsp; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Windows does not allow you to delete currently used DLLs.&amp;nbsp; But it allows you to MOVE THEM in another folder and will manage a pointer to the moved file for currently used DLLs by some processes!&lt;/p&gt;
&lt;p&gt;Knowing this will let any developer who needs to update a current set of DLLs under Dynamics GP\AddIn folder LIVE !&amp;nbsp; All you have to do is create a subfolder under the AddIn folder, then move the current set of DLLs in this subfolder.&lt;/p&gt;
&lt;p&gt;Then, you can copy a new set of updated DLLs under the AddIn folder which will be used by the next users who will log in.&lt;/p&gt;
&lt;p&gt;The only thing is that you have to be fast between those 2 operations so that users would not login during the process, having a Dynamics GP not customized being open.&lt;/p&gt;
&lt;p&gt;I managed to do this very often, manually, doing my CTRL+C to mark my new version of DLLs to be copied from my source folder, then creating the backup folder, moving the current DLLs into it and then clicking in the AddIn folder and quickly do my CTRL+V.&lt;/p&gt;
&lt;p&gt;I then thought &amp;ldquo;Why wouldn&amp;rsquo;t I just create a small application that will manage this operation, create the backup folder, increment the backup version number, move the current DLLs to it and manage the copy of the new version, file by file?&amp;nbsp; This would reduce the time it takes and bring it to almost 0.000001% of chances to have a user logging in during the process ?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;And here is an app !!!:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So here I come with this first version of GP AddIns live update tool.&lt;/p&gt;
&lt;p&gt;The GP AddIns live update is a tool developed in Visual Studio 2008 VB.Net.&amp;nbsp; It has been designed to ease the deployment of customizations made using Visual Studio and placed under the "AddIn" subfolder from "Microsoft Dynamics\GP" folder.&lt;/p&gt;
&lt;p&gt;The application currently contains two different tools.&lt;/p&gt;
&lt;p&gt;The main one will allow to mark the DLLs from a source folder and execute the update to a destination Dynamics GP AddIn subfolder, even while some users are currently using the replaced version, by moving the current used DLLs into a backup folder.&lt;/p&gt;
&lt;p&gt;The second one will help you clean the old versions backup folders when they are no more useful to be kept.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do not deploy new DLLs version if the changes brought are not compatible with the old version currently used!&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;You can still use this tool to deploy but if the changes your a deploying result by having the currently used version being replaced to crash, this tool will not do miracle.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;An example for this would be an SQL table alteration needed by the new version, which would have the old version to crash.&amp;nbsp; In this case, you still have to ask all users to leave Dynamics GP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In most cases, deploying new versions of our customizations will only affect a small group of users, sometimes only 1 to 3 users.&lt;/p&gt;
&lt;p&gt;And in most cases, the changes does not affect the structure of tables but simply fix some glitches or brings up new features needed by some few users, and not affecting the currently used version. This tool is perfect for this situation.&lt;/p&gt;
&lt;p&gt;It will allow you to deploy the new version of your customizations while they are being used (without updating the currently used DLLs until they close/reopen GP), and call only the few users you are impacting and ask them to close and reopen their Dynamics GP to have your changes.&lt;/p&gt;
&lt;p&gt;Again, since most of the time these changes we apply are new features or bug fixes, it allows the user to finish what he is doing before closing its Dynamics GP since most of the time, they dont need the deployed changes right away.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Luc&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;The tool with its documentation is available from the following link:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="http://www.mediafire.com/?4n1x0f3p903mdmd" href="http://www.mediafire.com/?4n1x0f3p903mdmd" target="_blank"&gt;http://www.mediafire.com/?4n1x0f3p903mdmd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I hope you enjoy this free tool. Please join me in thanking Luc for his work on this utility and post a thank-you comment.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10302011" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/C_2300_/">C#</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Developer+Toolkit/">Developer Toolkit</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/VB/">VB</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Visual+Studio+Tools/">Visual Studio Tools</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Tools/">Tools</category></item><item><title>Early Bird Registration for the Microsoft Dynamics GP Technical Airlift 2012</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/07/early-bird-registration-for-the-microsoft-dynamics-gp-technical-airlift-2012.aspx</link><pubDate>Mon, 07 May 2012 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10301712</guid><dc:creator>David Musgrave</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10301712</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/07/early-bird-registration-for-the-microsoft-dynamics-gp-technical-airlift-2012.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;&lt;a title="Microsoft Dynamics GP Technical Airlift 2012" href="http://gptechnicalairlift.com/" target="_blank"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/6266.GPTechnicalAirlift2012.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Over the weekend I received an email from Kim Peterson from &lt;a title="GPUG" href="http://gpug.com/" target="_blank"&gt;GPUG&lt;/a&gt;, reminding us that Early Bird Registration for the &lt;a title="Microsoft Dynamics GP Technical Airlift 2012" href="http://gptechnicalairlift.com/" target="_blank"&gt;Microsoft Dynamics GP Technical Airlift 2012&lt;/a&gt; ends July 31&lt;sup&gt;st&lt;/sup&gt;. So don't delay! &lt;a title="Microsoft Dynamics GP Technical Airlift 2012 Registration" href="http://www.regonline.com/Register/Checkin.aspx?EventID=1076691" target="_blank"&gt;Reserve your spot&lt;/a&gt; today for just US$550.&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;THE&lt;/strong&gt; event for Microsoft Dynamics GP Partners to get up to speed on Microsoft Dynamics GP 2013 (previously code named as GP "12").&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;Elevate your Dynamics GP 2013 technical knowledge at the Microsoft Dynamics GP Technical Airlift 2012, Hosted by GPPC.&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a title="Microsoft Dynamics GP Technical Airlift 2012" href="http://gptechnicalairlift.com/" target="_blank"&gt;Click here&lt;/a&gt; to explore the event!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Dynamics GP Partner Connections (GPPC) invites Dynamics GP VARs and ISVs to join us in Fargo, ND, USA on&amp;nbsp;September 12-14. This year's event will be focused on delivering advanced technical skills around Microsoft Dynamics GP 2013 for implementation professionals, consultants, developers and technical sales engineers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Why should you attend the Microsoft Dynamics GP Technical Airlift 2012, Hosted by GPPC?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Learn about the WOW!&lt;/strong&gt; Come to find out why the new Microsoft Dynamics GP2013 web client is totally cool.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Be in the know&lt;/strong&gt;. Learn about what a developer needs to know about the new web client Microsoft Dynamics GP 2013.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get ready&lt;/strong&gt;. Learn how to deploy and maintain Microsoft Dynamics GP 2013, including the desktop client and web client.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan ahead&lt;/strong&gt;. Learn what's new in the core application that you can use to help your customers.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network&lt;/strong&gt;. Connect with developers and consultants to share best practices and geek out.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get excited&lt;/strong&gt;. Gain an understanding of the product vision for the next several years and on which technologies Microsoft will focus.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get schooled&lt;/strong&gt;. CPE Credits will be available from GPPC for a number of sessions.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Go deeper&lt;/strong&gt;. Get direct access to Microsoft Development and Support resources. Get the answers to all of your questions.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get ready&lt;/strong&gt;. Learn about Management Reporter including 2012 functionality, as well as how to implement and convert from FRx.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Have Fun&lt;/strong&gt;. The Microsoft Band, dfrag, will rock the house for an evening of fun. The band - who are mostly developers - has a long history with Microsoft Dynamics GP.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Registration is open now and space is limited. &lt;a title="Microsoft Dynamics GP Technical Airlift 2012 Registration" href="http://www.regonline.com/Register/Checkin.aspx?EventID=1076691" target="_blank"&gt;Register today&lt;/a&gt; to reserve your seat!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Sadly, I will not be able to attend this year, but that means one more space is available for you to go. ;-)&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10301712" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Conference/">Conference</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GPUG/">GPUG</category></item><item><title>SQL Error: Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/03/sql-error-maximum-stored-procedure-function-trigger-or-view-nesting-level-exceeded-limit-32.aspx</link><pubDate>Thu, 03 May 2012 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10300289</guid><dc:creator>David Musgrave</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10300289</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/03/sql-error-maximum-stored-procedure-function-trigger-or-view-nesting-level-exceeded-limit-32.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Today, I resolved a very interesting case. We had a customer who had just upgraded from an early build of Microsoft Dynamics GP 10.0 to Microsoft Dynamics GP 2010 (11.0) and after the upgrade they were unable to save from the Customer Maintenance window.&lt;/p&gt;
&lt;p&gt;Every time they would try to add a new record or update an existing Customer Master record, the system throw an unhandled exception error with the following details:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Unhandled database exception:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;A save operation on table 'RM_Customer_MSTR'&amp;nbsp; (45).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;[Microsoft][SQL Server Native Client 10.0][SQL Server]&lt;span style="color: #ff0000;"&gt;Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;EXCEPTION_CLASS_DB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;DB_ERR_SQL_OBJ_NOT_FOUND&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Capturing a DEXSQL.LOG for the problem showed the call to the zDP_RM00101SI stored procedure to insert the record followed by the reporting of the error. As the stored procedure failed, Dexterity tries again with an actual SQL INSERT statement which also failed with the same error message.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;/*&amp;nbsp; Date: 05/02/2012&amp;nbsp; Time: 15:38:48 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;SQLSTATE:(37000) Native Err:(217) stmt(456758368):*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;[Microsoft][SQL Server Native Client 10.0][SQL Server]&lt;span style="color: #ff0000;"&gt;Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).&lt;/span&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;/*&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;There is a Knowledge Base (KB) article which discusses this error:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Error message when you work in Microsoft Dynamics GP, apply an update, or install an additional module: &amp;amp;rdquo;Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)&amp;amp;rdquo; (KB 2102990)" href="https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb;en-us;2102990" target="_blank"&gt;Error message when you work in Microsoft Dynamics GP, apply an update, or install an additional module: &amp;rdquo;Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)&amp;rdquo; (KB 2102990)&lt;/a&gt; &lt;img style="width: 15px; height: 18px;" title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/photos/developingfordynamicsgp/images/8771197/original.aspx" width="15" height="18" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The article explains how the miscellaneous Database Property option for &lt;strong&gt;Recursive Triggers Enable&lt;/strong&gt; should be set to false. This will prevent a trigger on a table from triggering itself again when it makes a change to table it is registered against. In our case this setting was already correctly set to false.&lt;/p&gt;
&lt;p&gt;As this problem does not seem to affect most Dynamics sites, I felt that it must be related to some sort of customisation. As the error was being generated at the SQL level, the customisation would need to be at the SQL level....I suspected a custom trigger on the RM_Customer_MSTR (RM00101) table.&lt;/p&gt;
&lt;p&gt;So, I asked the partner to check for triggers on the RM00101 table, and try disabling them to see if that allows the record to be saved.&lt;/p&gt;
&lt;p&gt;On a standard GP 2010 system there is a zDT_RM00101U trigger. This is a new trigger (added for v10.0 SP2 and GP2010)&amp;nbsp;which writes a UTC time stamp to the DEX_ROW_TS column of the table every time the table is updated. The DEX_ROW_TS field is used for synchronization with external systems, such as Dynamics CRM. Also see &lt;a title="Understanding how Microsoft Dynamics GP works with Microsoft SQL Server" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2009/05/22/understanding-how-microsoft-dynamics-gp-works-with-microsoft-sql-server.aspx" target="_blank"&gt;Understanding how Microsoft Dynamics GP works with Microsoft SQL Server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2548.RM00101-Triggers.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block;" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/211x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/2548.RM00101-Triggers.png" /&gt;&lt;/a&gt;When the partner checked the triggers on the RM00101 table, they found a custom trigger. Below is the code for that trigger:&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Original SQL Trigger on RM00101 table&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;ALTER trigger [dbo].[tr_UpdateAddressShipTaxtoDebtorMain] on [dbo].[RM00101]&lt;br /&gt;after insert, update as&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;update RM00102&lt;br /&gt;set SHIPMTHD = RM00101.SHIPMTHD , TAXSCHID = RM00101.TAXSCHID&lt;br /&gt;from RM00101&lt;br /&gt;where RM00101.CUSTNMBR = RM00102.CUSTNMBR&lt;br /&gt;and RM00101.CUSTNMBR in&lt;br /&gt;(select CUSTNMBR from inserted)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The code updates the Shipping Method and Tax Schedule ID from the RM_Customer_MSTR (RM00101) table to the RM_Customer_MSTR_ADDR (RM00102) table for the saved customer. Once the trigger was disabled, the error went away.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; The scripts use the ALTER TRIGGER command as we were editing an existing trigger.&lt;/p&gt;
&lt;p&gt;Why would this trigger which worked previously for the customer fail after the upgrade?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The answer becomes clearer when you check the RM_Customer_MSTR_ADDR (RM00102) table for triggers.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/4812.RM00102-Triggers.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block;" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/211x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/4812.RM00102-Triggers.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The RM00102 table also has zDT triggers for the Create, Delete and Update events. Reading the trigger scripts you can see that they also write back to the RM00101 table to update the time stamp in the DEX_ROW_TS column.&lt;/p&gt;
&lt;p&gt;Can you see what was happening yet? .... Let me break it down:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;User Saves data from Microsoft Dynamics GP application.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Data written to RM00101 table.&lt;/li&gt;
&lt;li&gt;Trigger zDT_RM00101U on RM00101 table executes and updates time stamp.&lt;/li&gt;
&lt;li&gt;Custom Trigger executes and updates RM00102 table.&lt;/li&gt;
&lt;li&gt;Data written to RM00102 table.&lt;/li&gt;
&lt;li&gt;Trigger zDT_RM00102U on RM00102 table executes and writes back to RM00101 table.&lt;/li&gt;
&lt;li&gt;Go back to step 2, and repeat until nesting level error generated.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;When error generated, all changes captured in the transaction are rolled back.&lt;/li&gt;
&lt;li&gt;Unhandled Exception reported back at the application.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So now we understand what is happening; How can we modify the custom trigger code to stop it causing an infinite loop?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;My first thought was that we could change the custom trigger so that it would not update records that did not need to be changed.&lt;/p&gt;
&lt;p&gt;So we rewrote the trigger to use joins and added statements into the where clause so that the update would only only change a record if the Shipping Method or Tax Schedule ID were not the desired final values and the Shipping Method and Tax Schedule ID from the Customer Master table were not blank.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;First Revision of SQL Trigger on RM00101 table&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;ALTER trigger [dbo].[tr_UpdateAddressShipTaxtoDebtorMain] on [dbo].[RM00101]&lt;br /&gt;after insert, update as&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;update a set SHIPMTHD = c.SHIPMTHD, TAXSCHID = c.TAXSCHID&lt;br /&gt;from RM00102 a&lt;br /&gt;join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt;join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt;where (a.SHIPMTHD &amp;lt;&amp;gt; c.SHIPMTHD or a.TAXSCHID &amp;lt;&amp;gt; c.TAXSCHID)&lt;br /&gt; and (c.SHIPMTHD &amp;lt;&amp;gt; '' and c.TAXSCHID &amp;lt;&amp;gt; '')&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This code does work correctly by itself, but it did not prevent the nesting level exceeded error. The problem was that the update statement itself causes the triggers to fire&amp;nbsp;even if the update does not actually change any records. So while the inserted data set returned to the trigger was empty, the update event still happens.&lt;/p&gt;
&lt;p&gt;So we needed a way to prevent the update statement from running&amp;nbsp;when it was not needed.&lt;/p&gt;
&lt;p&gt;The second revision (below)&amp;nbsp;included an if exists statement with a select query to check if there were any records that needed updating and so&amp;nbsp;only execute the update statement when it is really needed.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Second Revision of SQL Trigger on RM00101 table&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;ALTER trigger [dbo].[tr_UpdateAddressShipTaxtoDebtorMain] on [dbo].[RM00101]&lt;br /&gt;after insert, update as&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;if exists(&lt;br /&gt; select a.CUSTNMBR, a.ADRSCODE, a.SHIPMTHD, a.TAXSCHID, c.CUSTNMBR, c.ADRSCODE, c.SHIPMTHD, c.TAXSCHID&lt;br /&gt; from RM00102 a&lt;br /&gt; join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; where (a.SHIPMTHD &amp;lt;&amp;gt; c.SHIPMTHD or a.TAXSCHID &amp;lt;&amp;gt; c.TAXSCHID)&lt;br /&gt;&amp;nbsp; and (c.SHIPMTHD &amp;lt;&amp;gt; '' and c.TAXSCHID &amp;lt;&amp;gt; '')&lt;br /&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;begin&lt;br /&gt; update a set SHIPMTHD = c.SHIPMTHD, TAXSCHID = c.TAXSCHID&lt;br /&gt; from RM00102 a&lt;br /&gt; join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; where (a.SHIPMTHD &amp;lt;&amp;gt; c.SHIPMTHD or a.TAXSCHID &amp;lt;&amp;gt; c.TAXSCHID)&lt;br /&gt;&amp;nbsp; and (c.SHIPMTHD &amp;lt;&amp;gt; '' and c.TAXSCHID &amp;lt;&amp;gt; '')&lt;br /&gt;end&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This version of the code fixed the problem by breaking the infinite loop.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, while testing the code we noticed that if you entered only one of the Shipping Method or Tax Schedule ID fields, the code did not roll down that one field change to the Address (RM00102) table.&lt;/p&gt;
&lt;p&gt;So the last change was to separate the code into two sections, one to handle the Shipping Method and one to handle the Tax Schedule ID.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Final Revision of SQL Trigger on RM00101 table&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; padding: 4px; border: 1px solid gray; width: 97.5%; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, consolas, monospace; font-size: 8pt; white-space: nowrap; cursor: text; max-height: 200px; background-color: #f4f4f4;" class="code"&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;ALTER trigger [dbo].[tr_UpdateAddressShipTaxtoDebtorMain] on [dbo].[RM00101]&lt;br /&gt;after insert, update as&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;if exists(&lt;br /&gt; select a.CUSTNMBR, a.ADRSCODE, a.SHIPMTHD, c.CUSTNMBR, c.ADRSCODE, c.SHIPMTHD&lt;br /&gt; from RM00102 a&lt;br /&gt; join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; where (a.SHIPMTHD &amp;lt;&amp;gt; c.SHIPMTHD)&lt;br /&gt;&amp;nbsp; and (c.SHIPMTHD &amp;lt;&amp;gt; '')&lt;br /&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;begin&lt;br /&gt; update a set SHIPMTHD = c.SHIPMTHD&lt;br /&gt; from RM00102 a&lt;br /&gt; join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; where (a.SHIPMTHD &amp;lt;&amp;gt; c.SHIPMTHD)&lt;br /&gt;&amp;nbsp; and (c.SHIPMTHD &amp;lt;&amp;gt; '')&lt;br /&gt;end&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;if exists(&lt;br /&gt; select a.CUSTNMBR, a.ADRSCODE, a.TAXSCHID, c.CUSTNMBR, c.ADRSCODE, c.TAXSCHID&lt;br /&gt; from RM00102 a&lt;br /&gt; join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; where (a.TAXSCHID &amp;lt;&amp;gt; c.TAXSCHID)&lt;br /&gt;&amp;nbsp; and (c.TAXSCHID &amp;lt;&amp;gt; '')&lt;br /&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; background-color: #f4f4f4;" face="Courier New"&gt;begin&lt;br /&gt; update a set TAXSCHID = c.TAXSCHID&lt;br /&gt; from RM00102 a&lt;br /&gt; join inserted i on i.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; join RM00101 c on c.CUSTNMBR = a.CUSTNMBR&lt;br /&gt; where (a.TAXSCHID &amp;lt;&amp;gt; c.TAXSCHID)&lt;br /&gt;&amp;nbsp; and (c.TAXSCHID &amp;lt;&amp;gt; '')&lt;br /&gt;end&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;With this final code, we had fixed the error and made the code behave much better than the original design.&lt;/p&gt;
&lt;p&gt;Hope you enjoyed reading post, I know it was "fun" to solve the problem.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #76923c;" color="#76923c"&gt;// Copyright &amp;copy; Microsoft Corporation.&amp;nbsp; All Rights Reserved.&lt;br /&gt;// This code released under the terms of the &lt;br /&gt;// Microsoft Public License (MS-PL, &lt;a title="http://opensource.org/licenses/ms-pl.html" href="http://opensource.org/licenses/ms-pl.html" target="_blank" mce_href="http://opensource.org/licenses/ms-pl.html"&gt;http://opensource.org/licenses/ms-pl.html&lt;/a&gt;.)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10300289" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/SQL/">SQL</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Exception/">Exception</category></item><item><title>Kinect and Microsoft Dynamics GP at Convergence 2012</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/02/kinect-and-microsoft-dynamics-gp-at-convergence-2012.aspx</link><pubDate>Wed, 02 May 2012 07:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10299779</guid><dc:creator>David Musgrave</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10299779</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/02/kinect-and-microsoft-dynamics-gp-at-convergence-2012.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Last year,&amp;nbsp;I spoke about &lt;a title="Using Microsoft Kinect with Microsoft Dynamics GP" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/08/30/using-microsoft-kinect-with-microsoft-dynamics-gp.aspx" target="_blank"&gt;Using Microsoft Kinect with Microsoft Dynamics GP&lt;/a&gt;; in this post I highlighted the great demo that MVP Jivtesh Singh created to control the Microsoft Dynamics GP 2010 R2 Business Analyser with gestures.&lt;/p&gt;
&lt;p&gt;This year at the recent Convergence conference in Houston, we were treated to a couple of demos involving Microsoft Dynamics GP and the Kinect.&amp;nbsp;I mentioned them in my post for the day, &lt;a title="Microsoft Convergence 2012 Houston - Day 1: Dynamics GP General Session" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/03/28/microsoft-convergence-2012-houston-day-1-dynamics-gp-general-session.aspx" target="_blank"&gt;Microsoft Convergence 2012 Houston - Day 1: Dynamics GP General Session&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As not everyone had a chance to see the demo live or via the &lt;a title="Virtual Convergence" href="http://www.microsoft.com/dynamics/convergence/houston12/VirtualConvergence.aspx" target="_blank"&gt;Virtual Convergence&lt;/a&gt; site, Jivtesh reposted one of&amp;nbsp;them in his post, &lt;a title="The Kinect with GP Demo at Convergence" href="http://www.jivtesh.com/2012/04/kinect-with-gp-demo-at-convergence.html" target="_blank"&gt;The Kinect with GP Demo at Convergence&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Later the product team decided to re-film the demos and make them available for download. Jay discusses this in his post, &lt;a title="Convergence Kinect Demonstrations - Business Analyzer and Pick, Pack, Ship Scenario" href="http://blogs.msdn.com/b/gp/archive/2012/04/12/convergence-kinect-demonstrations-business-analyzer-and-pick-pack-ship-scenario.aspx" target="_blank"&gt;Convergence Kinect Demonstrations - Business Analyzer and Pick, Pack, Ship Scenario&lt;/a&gt;, which announces a new sales and demo tools page for Microsoft Dynamics GP 2013.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span id="Title"&gt;&lt;a title="Sales and Demo Tools for Microsoft Dynamics GP 2013" href="https://mbs.microsoft.com/partnersource/marketing/marketingcollateral/demos/SalesDemoToolsMicrosoftDynamicsGP2013" target="_blank"&gt;Sales and Demo Tools for Microsoft Dynamics GP 2013&lt;/a&gt;&amp;nbsp;&lt;img style="width: 15px; height: 18px;" title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/photos/developingfordynamicsgp/images/8771197/original.aspx" width="15" height="18" /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below are the videos of the Kinect Demos for you to enjoy.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kinect Warehouse Demo at Convergence &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/02/kinect-and-microsoft-dynamics-gp-at-convergence-2012.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Dynamics GP, Business Analyzer and Kinect&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/02/kinect-and-microsoft-dynamics-gp-at-convergence-2012.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Dynamics GP, Kinect and a Pick/Pack/Ship scenario&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/05/02/kinect-and-microsoft-dynamics-gp-at-convergence-2012.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This demo was created&amp;nbsp;by Jivtesh working with the product team in Fargo. Excellent work Jivtesh.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10299779" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Conference/">Conference</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/GP+2013/">GP 2013</category></item><item><title>Are you using SkyDrive? If not.... why not?</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/30/are-you-using-skydrive-if-not-why-not.aspx</link><pubDate>Mon, 30 Apr 2012 14:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10299048</guid><dc:creator>David Musgrave</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10299048</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/30/are-you-using-skydrive-if-not-why-not.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;If you have a Microsoft Account... also known as, Microsoft passport; Windows Live ID, XBox Live ID, Live ID, or Zune ID; Hotmail or Live email account; Windows Messenger, MSN messenger, Windows Live Messenger account.... you already have an account on &lt;a title="SkyDrive" href="http://skydrive.com/" target="_blank"&gt;SkyDrive.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;SkyDrive offers free online storage as well as access to the web based versions of the Microsoft Office applications. It has integrated support on Windows Phone devices and also has apps for other mobile devices and computers.&lt;/p&gt;
&lt;p&gt;I will let Steven Sinofsky give you the full rundown in his post: &lt;a title="Making personal cloud storage for Windows available anywhere, with the new SkyDrive" href="http://blogs.msdn.com/b/b8/archive/2012/04/23/the-next-chapter-for-skydrive-personal-cloud-storage-for-windows-available-anywhere.aspx" target="_blank"&gt;Making personal cloud storage for Windows available anywhere, with the new SkyDrive.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However, I wanted to highlight two points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is now a really cool SkyDrive application for Windows, which allows the contents of a folder (and its subfolders) to be synchronised with SkyDrive. If you have more than one machine, you can have the contents of the folder automatically synchronised between systems. Make a change on one machine and it updates SkyDrive and then SkyDrive updates the other machines. Just awesome.&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Note: This is similar to &lt;a title="What is Windows Live Mesh?" href="http://windows.microsoft.com/en-US/windows-live/mesh-devices-sync-upgrade-ui" target="_blank"&gt;Live Mesh&lt;/a&gt;, but incorporated into your main SkyDrive storage and simpler to use. &lt;br /&gt;&amp;nbsp;&lt;br /&gt;Watch the video below and then go download the SkyDrive app for your computer and/or device using the following link: &lt;a title="SkyDrive Apps Download" href="https://apps.live.com/skydrive" target="_blank"&gt;SkyDrive Apps Download&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="center"&gt;&lt;video poster="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43/8535.SkyDrive-_2D00_-creating-a-winning-presentation.jpg" controls="controls" width="480" height="270"&gt;&lt;source src="http://ak.channel9.msdn.com/ch9/21e1/f6b769d8-f61b-4bf0-a156-5d85461621e1/SkyDriveVideo.mp4" /&gt;&lt;span style="color: #260859; font-size: 1.15em;"&gt;&lt;strong&gt;Your browser doesn't support HTML5 video. &lt;/strong&gt;&lt;/span&gt;&lt;/video&gt;&amp;nbsp;&lt;br /&gt;&lt;span&gt;&lt;em&gt;Download this video to view it in your favorite media player: &lt;/em&gt;&lt;br /&gt;&lt;a href="http://ak.channel9.msdn.com/ch9/21e1/f6b769d8-f61b-4bf0-a156-5d85461621e1/SkyDriveVideo_high.mp4"&gt;High quality MP4&lt;/a&gt; | &lt;a href="http://ak.channel9.msdn.com/ch9/21e1/f6b769d8-f61b-4bf0-a156-5d85461621e1/SkyDriveVideo.mp4"&gt;Lower quality MP4&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The default storage size for the SkyDrive is dropping from 25GB to 7GB. However, if you are already a SkyDrive user and have uploaded files before 22&lt;sup&gt;nd&lt;/sup&gt; April, for a limited time, you can opt in to keep your 25GB allowance. Note: If you were using more than 4GB as of 1&lt;sup&gt;st&lt;/sup&gt; April, your allowance would already have been set to 25GB for you. For more information &lt;a title="Manage SkyDrive Storage" href="https://skydrive.live.com/ManageStorage" target="_blank"&gt;sign in here&lt;/a&gt; or &lt;a title="Limited time loyalty offer" href="http://windows.microsoft.com/en-us/skydrive/loyalty" target="_blank"&gt;view the FAQ&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For more information, here are those links again:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SkyDrive home: &lt;a title="http://skydrive.com/" href="http://skydrive.com/" target="_blank"&gt;http://skydrive.com/&lt;br /&gt;&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="Making personal cloud storage for Windows available anywhere, with the new SkyDrive" href="http://blogs.msdn.com/b/b8/archive/2012/04/23/the-next-chapter-for-skydrive-personal-cloud-storage-for-windows-available-anywhere.aspx" target="_blank"&gt;Making personal cloud storage for Windows available anywhere, with the new SkyDrive&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="SkyDrive Apps Download" href="https://apps.live.com/skydrive" target="_blank"&gt;SkyDrive Apps Download&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="Manage SkyDrive Storage" href="https://skydrive.live.com/ManageStorage" target="_blank"&gt;Manage SkyDrive Storage&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="Limited time loyalty offer" href="http://windows.microsoft.com/en-us/skydrive/loyalty" target="_blank"&gt;Limited time loyalty offer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So, are you using SkyDrive? If not.... why not?&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;
&lt;p&gt;PS: Jivtesh Singh has also posted on the 25GB offer: &lt;a title="Skydrive - 25 GB free for existing users  " href="http://www.jivtesh.com/2012/04/skydrive25-gb-free-for-existing-users.html" target="_blank"&gt;Skydrive&amp;ndash;25 GB free for existing users&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10299048" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>Choosing between eConnect for Microsoft Dynamics GP and Web Services for Microsoft Dynamics GP</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/27/choosing-between-econnect-for-microsoft-dynamics-gp-and-web-services-for-microsoft-dynamics-gp.aspx</link><pubDate>Fri, 27 Apr 2012 02:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10086082</guid><dc:creator>Chris Roehrich</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10086082</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/27/choosing-between-econnect-for-microsoft-dynamics-gp-and-web-services-for-microsoft-dynamics-gp.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Chris Roehrich - Click for blog homepage" href="http://blogs.msdn.com/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="Chris Roehrich - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-11-33-18/cpr_5F00_blog2.JPG_2D00_100x100.jpg" width="62" height="87" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Should I write this integration using eConnect or Web Services for&amp;nbsp;Microsoft Dynamics GP?&amp;nbsp;&amp;nbsp;&amp;nbsp;This is often a question we receive at conferences like Convergence or&amp;nbsp;in support cases from both Customers and Partners.&amp;nbsp; Like most questions in our field, there really is no&amp;nbsp;concrete answer to this one.&amp;nbsp; The answer is usually the dreaded&amp;nbsp;"Well, it depends on...".&amp;nbsp;&amp;nbsp; What I hope to do here&amp;nbsp;with this post is&amp;nbsp;point out some of the differences of the two&amp;nbsp;integration platforms, give you my opinion on what&amp;nbsp;I like about them, and&amp;nbsp;then you can decide how you would leverage them in your own projects.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Coding Differences&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;When you&amp;nbsp;retrieve data out of Dynamics GP using Web Services, you will&amp;nbsp;receive a type that inherits from a BusinessObject type&amp;nbsp;and&amp;nbsp;when you use eConnect you will receive a XML string that describes the data.&amp;nbsp;&amp;nbsp;&amp;nbsp; So the deserialization process automatically takes place with GP Web Services which is handy and easier to use in my opinion.&amp;nbsp;&amp;nbsp; I would rather write code using Visual Studio's intellisense and interact with the object representation than have to worry about parsing the XML nodes.&amp;nbsp; The following screen shots illustrate what I am talking about using an example of retrieving of a Customer from Dynamics GP.&lt;/p&gt;
&lt;p&gt;The Customer type returned from Web Services by calling GetCustomerByKey:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/3730.web-service-customer.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/3730.web-service-customer.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The XML string for the Customer returned from eConnect by calling GetEntity method:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/4857.econnect-customer.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/4857.econnect-customer.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Additionally, the object you retrieve from Web Services is the &lt;span style="text-decoration: underline;"&gt;entire&lt;/span&gt; object so you get all the data associated to all the properties of the object.&amp;nbsp;&amp;nbsp; So when you perform updates on an object after calling the GetByKey method, the entire object is sent back in which can also be helpful.&amp;nbsp;&amp;nbsp; An example might be if you are updating sales orders.&amp;nbsp;&amp;nbsp; If you perform a GetSalesOrderByKey, and then call an UpdateSalesOrder, you will be providing all the existing data for the properties related to the sales order automatically&amp;nbsp;so nothing would be removed or changed.&amp;nbsp;&amp;nbsp; Using eConnect, you need to provide the entire sales document&amp;nbsp;or some of the existing data may be changed.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The methods and their signatures&amp;nbsp;for eConnect and Web Services are different also as one might expect.&amp;nbsp;&amp;nbsp; The eConnect methods are discussed in MSDN &lt;a title="eConnect Methods" href="http://msdn.microsoft.com/en-us/library/ff623630.aspx" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; For eConnect, you provide a connection string and a XML string that describes the document or transaction you are integrating.&amp;nbsp;&amp;nbsp; As part of the eConnect installation, we provide a serialization assembly named Microsoft.Dynamics.GP.eConnect.Serialization.dll that you can use to help you create the XML string.&amp;nbsp; Note the CreateTransactionEntity method requires the two string parameters in the screen shot below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/0675.createtransactionentity.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/0675.createtransactionentity.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For Web Services which are discussed in MSDN &lt;a title="Web Service Methods" href="http://msdn.microsoft.com/en-us/library/cc508424.aspx" target="_blank"&gt;here&lt;/a&gt;, you will use a specific method for the type of document or transaction you need to use.&amp;nbsp;&amp;nbsp; The signatures vary but all require a Context object which would provide the desired company.&amp;nbsp;&amp;nbsp; For write operations a Policy object is required which I will discuss below.&amp;nbsp;&amp;nbsp; Then you will also provide the object type (Ex: SalesReturn type&amp;nbsp;for a Sales Return transaction or CustomerKey type&amp;nbsp;for a GetCustomerByKey method to retrieve a Customer).&amp;nbsp; The following screen shot shows the CreateSalesReturn method which requires the SalesReturn, Context, and Policy types:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/4035.createsalesreturn.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/4035.createsalesreturn.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Both eConnect and Web Services reference information in MSDN is very helpful.&amp;nbsp;&amp;nbsp; There are also sample applications for both products available.&amp;nbsp;&amp;nbsp; For eConnect on 64 bit computers, the sample applications will install to the C:\Program Files (x86)\Microsoft Dynamics\eConnect 11.0\eConnect Samples folder when you install eConnect 2010.&amp;nbsp;&amp;nbsp; For Web Services, you will need to download the SDK from &lt;a title="GP 2010 Web Services SDK" href="https://mbs.microsoft.com/customersource/downloads/servicepacks/mdgp2010_webservicessdk.htm?printpage=false" target="_blank"&gt;here&lt;/a&gt; and the samples install to the C:\Program Files (x86)\Microsoft Dynamics\GPWebServicesSDK\v11\Samples folder.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Feature Differences&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If&amp;nbsp;transaction performance is a priority and you also want to have less complexity involved, I may lean towards&amp;nbsp;recommending eConnect.&amp;nbsp;&amp;nbsp; This&amp;nbsp;is because of the overhead introduced by the security layer of GP Web services and its serialization\deserialization process.&amp;nbsp;&amp;nbsp;Also, the installation for Web Services adds more SQL objects like views and tables that maintain its installation status.&amp;nbsp; However, this overhead introduced by Web Services may have&amp;nbsp;some definite advantages for you also and for many&amp;nbsp;integrations the overhead may be negligible too.&amp;nbsp;&amp;nbsp; The&amp;nbsp;security&amp;nbsp;service&amp;nbsp;layer in Web Services for&amp;nbsp;Microsoft Dynamics GP is powerful and easy to take advantage of in your integrations.&amp;nbsp;&amp;nbsp; The idea behind it is that you can manage users or groups of users across the organization and give them access to the desired web service&amp;nbsp;operations by placing them in a built-in or custom&amp;nbsp;role.&amp;nbsp;&amp;nbsp;If a user does not have access&amp;nbsp;to the web service operation, an error is raised by the security system.&amp;nbsp;&amp;nbsp; You manage users by&amp;nbsp;using a simple MMC tool called the Dynamics Security Console under Administrative Tools.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/5504.DSC.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/5504.DSC.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Dynamics Security Console also allows you to manage the Policy objects and Entity ID Assignments for Web Services.&amp;nbsp;&amp;nbsp; The Policy node allows you to control the Behaviors that certain operations allow.&amp;nbsp;&amp;nbsp; For example, the Create Sales Order Policy has a behavior called "Calculate Unit Price Behavior".&amp;nbsp;&amp;nbsp; You can set this so you can pass a unit price manually or you will let the system default the unit price for you.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/6114.policy-node.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/6114.policy-node.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Entity ID Assignment node allows you to associated users to specific Dynamics GP Users, Customers, Employees, Sales Territories, Salespersons, and Vendors:&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/7750.entity-id.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/7750.entity-id.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once you have&amp;nbsp;your Entity ID's setup,&amp;nbsp;you can limit the records a user has access to when calling the web services methods so they only see their associated records.&amp;nbsp;&amp;nbsp; For example if you assign users to Salesperson ID's, then when you call GetCustomerList, you can make sure they only see the customer records assigned to their Salesperson ID.&amp;nbsp; This is accomplished by using the &lt;a title="CustomerScope on MSDN" href="http://msdn.microsoft.com/en-us/library/cc533992.aspx" target="_blank"&gt;CustomerScope&lt;/a&gt; property of&amp;nbsp;the &lt;a title="CustomerCriteria on MSDN" href="http://msdn.microsoft.com/en-us/library/cc507900.aspx" target="_blank"&gt;CustomerCriteria&lt;/a&gt; object.&amp;nbsp;&amp;nbsp; This is a very powerful feature!&lt;/p&gt;
&lt;p&gt;The Web Services also have an Exception system that can also be used to retrieve&amp;nbsp;System and Validation type exceptions whereas eConnect&amp;nbsp;will just&amp;nbsp;write exceptions to the eConnect event log under Event Viewer.&amp;nbsp; &amp;nbsp;You can view exceptions from Web Services by using the Exception Console under Administrative Tools which is another MMC tool or can you can also call Web Service operations like GetLoggedExceptionDataList to retrieve exception data.&amp;nbsp; The Exception Console can also be installed on a different computer than the GP Web Services computer so it can go on multiple computers in the organization.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/6131.exception.png" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;eConnect gives you an option to&amp;nbsp;install&amp;nbsp;a couple services that you may wish to take advantage of in your integration strategy.&amp;nbsp;&amp;nbsp; The services are called the "eConnect Incoming Service for Microsoft Dynamics GP 2010" and the "eConnect Outgoing Service for Microsoft Dynamics GP 2010".&amp;nbsp; These services can only be installed on a computer that has Microsoft Message Queueing (MSMQ) enabled.&amp;nbsp; If MSMQ is not enabled you will not see the option to install the services.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/1665.services.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/1665.services.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MSMQ provides queues which can be securely managed.&amp;nbsp;&amp;nbsp; The eConnect Incoming and Outgoing services interact with the Queues:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/2783.msmq.png"&gt;&lt;img style="margin-right: auto; margin-left: auto; display: block; max-width: 550px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80-Chris/2783.msmq.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The incoming service reads a Message Queue that would contain eConnect XML messages and processes these messages by sending them to the eConnect API.&amp;nbsp;&amp;nbsp;The eConnect API&amp;nbsp;calls the&amp;nbsp;stored procedures&amp;nbsp;in the&amp;nbsp;Dynamics GP database&amp;nbsp;at that point.&amp;nbsp;&amp;nbsp;&amp;nbsp;It is up to the developer to write an application that interacts with the&amp;nbsp;Message Queue&amp;nbsp;to place the eConnect XML document in the Queue.&amp;nbsp;&amp;nbsp;&amp;nbsp;The .Net Framework provides the &lt;a title="System.Messaging on MSDN" href="http://msdn.microsoft.com/en-us/library/system.messaging.aspx" target="_blank"&gt;System.Messaging&lt;/a&gt; namespace to use.&lt;/p&gt;
&lt;p&gt;The outgoing service uses triggers on the Dynamics GP database tables&amp;nbsp;that write records to the eConnect_Out table.&amp;nbsp;&amp;nbsp; The outgoing service pulls the records out of the eConnect_Out table and sends a XML message that describes that data into a Message Queue. It is then up to the developer&amp;nbsp;to handle what to do with the Dynamics GP data sitting in the Message&amp;nbsp;Queue.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To work with MSMQ using .Net,&amp;nbsp;a&amp;nbsp;VB sample is located under the&amp;nbsp;C:\Program Files (x86)\Microsoft Dynamics\eConnect 11.0\eConnect Samples\VB DOT NET Queue Client folder.&amp;nbsp;&amp;nbsp; I recommend to check it out if using MSMQ is something you can consider.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In the projects I have worked on, I lean towards using GP Web Services when I can.&amp;nbsp;&amp;nbsp; In the end, it's just a personal preference of a better experience for me with Visual Studio and working with the business objects provided by the service.&amp;nbsp;&amp;nbsp;&amp;nbsp; But I will say that you&amp;nbsp;may end up using both integration tools in your project.&amp;nbsp; I have coined this "the hybrid approach".&amp;nbsp;&amp;nbsp; You may use both because not all eConnect business logic is in GP Web Services.&amp;nbsp;&amp;nbsp; So you may start with using GP web services and come across a scenario where what you want to do is not available in the GP Web service object model.&amp;nbsp;&amp;nbsp; An example might be to create POP Receivings Transactions that are Shipment\Invoice types (POPTYPE=3), apply Cash Receipts, or provide your own taxes with Sales Orders.&amp;nbsp; All three of these items at this point in time cannot be done with GP web services but can be done&amp;nbsp;with eConnect.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Good Luck!&lt;/p&gt;
&lt;p&gt;Chris&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10086082" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Developer+Toolkit/">Developer Toolkit</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/eConnect/">eConnect</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Web+Services/">Web Services</category></item><item><title>Getting data from ISV tables onto reports without needing to create alternate reports</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/26/getting-data-from-isv-tables-onto-reports-without-needing-to-create-alternate-reports.aspx</link><pubDate>Thu, 26 Apr 2012 09:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10279609</guid><dc:creator>David Musgrave</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10279609</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/26/getting-data-from-isv-tables-onto-reports-without-needing-to-create-alternate-reports.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;As a Dexterity developer, I have written a number of customisations to Microsoft Dynamics GP which add additional fields to the system. These additional fields are often have a relationship to existing data in Dynamics GP.&lt;/p&gt;
&lt;p&gt;It is quite common to store the additional data in a parallel table (sometimes called companion or shadow table). This is a&amp;nbsp;table having same primary key as an existing table, with the additional fields.&lt;/p&gt;
&lt;p&gt;If the fields need to be displayed via the user interface, they would normally use an alternate window. This is created by modifying&amp;nbsp;the original window from Dynamics.dic and including it in your custom dictionary. Triggers are used to handle the display, save and delete events.&lt;/p&gt;
&lt;p&gt;If the fields need to be displayed on a report, you would have to use an alternate report with custom Report Writer functions to pull your data in.&amp;nbsp;Alternate reports are&amp;nbsp;also created by modifying the original report from Dynamics.dic and including it in your dictionary.&lt;/p&gt;
&lt;p&gt;There are three problems with alternate windows and reports:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;They only work with an original window or report is contained in&amp;nbsp;the core Dynamics.dic dictionary. You cannot have an alternate window or report based on a&amp;nbsp;third party dictionary.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Only one alternate window or report can be active for a user/company combination at one time. Using one alternate window or report can&amp;nbsp;mean sacrificing functionality from other developers.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If the window or report has been changed with Modifier or Report Writer (respectively), those changes will have to be remade against your alternate window or report to get your additional data to show.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So, Is there a better way?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Yes, there is....&lt;/p&gt;
&lt;p&gt;For the windows, you have two options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a parallel synchronised window. This is a window in your dictionary which can be opened from the original window and remains synchronised by triggers as you move&amp;nbsp;through data in the original window.&amp;nbsp; You can make the window open and close automatically with the original window.&amp;nbsp;Also if you want to, it is possible to use field post triggers to move focus between the windows so the user can just tab through the user interface and it will jump between windows as desired.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Use Modifier, to modify the original window and add local fields which can then be populated with your data using Visual Basic for Applications (VBA) or Visual Studio Tools for Microsoft Dynamics GP (VSTDGP) code (either C# or VB.Net). This method adds complexity as it uses multiple development tools to achieve the final result.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For the reports, you can't create "parallel" reports, so you must use Report Writer, but you still have two options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You use VBA with ADO to access the SQL data directly. For more info: &lt;a title="Using ADO with VBA with Report Writer" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2008/10/30/using-ado-with-vba-with-report-writer.aspx" target="_blank"&gt;Using ADO with VBA with Report Writer&lt;/a&gt;. This method also&amp;nbsp;adds complexity as it uses multiple development tools to achieve the final result.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Or you use a custom Report Writer function in a calculated field to pull the data using Dexterity sanScript code. The problem is that a custom Report Writer function that you create in your dictionary is only visible from reports in your dictionary. So now we finally get to the message for this blog post. There are six "placeholder" report writer functions in the core Dynamics.dic dictionary which a Dexterity developer can trigger against. As these Report Writer functions are in the core Dynamics.dic dictionary, they can be accessed from any report in any dictionary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For details on these functions and how to writer triggers for them, see the Knowledge Base (KB) article &lt;a title="Useful functions for developers to use instead of creating alternate reports in Microsoft Dynamics GP (KB 888884)" href="http://support.microsoft.com/kb/888884" target="_blank"&gt;888884&lt;/a&gt;.The article&amp;nbsp;has the parameter lists and example code for the six functions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;rw_ReportStart()&lt;/li&gt;
&lt;li&gt;rw_ReportEnd()&lt;/li&gt;
&lt;li&gt;rw_TableHeaderString()&lt;/li&gt;
&lt;li&gt;rw TableHeaderCurrency()&lt;/li&gt;
&lt;li&gt;rw_TableLineString()&lt;/li&gt;
&lt;li&gt;rw_TableLineCurrency()&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are the same functions used by Extender to allow Extender data to be added to reports and by the &lt;a title="Support Debugging Tool Portal" href="http://aka.ms/SDT" target="_blank"&gt;Support Debugging Tool&lt;/a&gt; to allow creation of user defined Report Writer functions.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For more information on this topic have a read of the following articles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Useful functions for developers to use instead of creating alternate reports in Microsoft Dynamics GP (KB 888884)" href="http://support.microsoft.com/kb/888884" target="_blank"&gt;Useful functions for developers to use instead of creating alternate reports in Microsoft Dynamics GP (KB 888884)&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="How to use Customization Maintenance packages to enable Great Plains Report Writer functions from a 3rd party report dictionary (KB 862665)" href="http://support.microsoft.com/kb/862665" target="_blank"&gt;How to use Customization Maintenance packages to enable Great Plains Report Writer functions from a 3rd party report dictionary (KB 862665)&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="How to improve the performance of user-defined Report Writer functions in Microsoft Dynamics GP 9.0 or in Microsoft Great Plains (KB 920830)&lt;br /&gt;" href="http://support.microsoft.com/kb/920830" target="_blank"&gt;How to improve the performance of user-defined Report Writer functions in Microsoft Dynamics GP 9.0 or in Microsoft Great Plains (KB 920830)&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="How to create a calculated field in Report Writer to print Extender fields in Microsoft Dynamics GP reports (KB 935385)" href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/support.microsoft.com/kb/935385" target="_blank"&gt;How to create a calculated field in Report Writer to print Extender fields in Microsoft Dynamics GP reports (KB 935385)&lt;br /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="How to display more than 80 characters of an Extender Long String field in reports using the Support Debugging Tool" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/09/09/how-to-get-extender-long-strings-to-display-more-than-80-characters-in-report-writer.aspx" target="_blank"&gt;How to display more than 80 characters of an Extender Long String field in reports using the Support Debugging Tool&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="Using ADO with VBA with Report Writer" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2008/10/30/using-ado-with-vba-with-report-writer.aspx" target="_blank"&gt;Using ADO with VBA with Report Writer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;Hope you found this information helpful.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10279609" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Dexterity/">Dexterity</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Report+Writer/">Report Writer</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Best+Practice/">Best Practice</category></item><item><title>Convergence 2012 Fun: Complete the Sentence....</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/25/convergence-2012-fun-complete-the-sentence.aspx</link><pubDate>Wed, 25 Apr 2012 02:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10297414</guid><dc:creator>David Musgrave</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10297414</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/25/convergence-2012-fun-complete-the-sentence.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;&lt;a title="Convergence 2012 Houston" href="http://www.microsoft.com/dynamics/convergence/houston12/" target="_blank"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/289x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/6787.conv2012_2D00_logo.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While going through my photographs from&amp;nbsp;Convergence 2012 in Houston&amp;nbsp;we came across this photo and decided that it would be fun for you to "Complete the Sentence...."&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is from the &lt;a title="Microsoft Convergence 2012 Houston - Day 1: Opening Keynote" href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/03/28/microsoft-convergence-2012-houston-day-1-opening-keynote.aspx" target="_blank"&gt;Opening Keynote&lt;/a&gt; on Day 1 with Kevin Turner (Chief Operating Officer, Microsoft Corporation) and Kirill Tatarinov (President, Microsoft Business Solutions Division).&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1106.Kevin-and-Kirill.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/1106.Kevin-and-Kirill.png" /&gt;&lt;/a&gt;&lt;br /&gt;Kevin Turner and Kirill Tatarinov&lt;/p&gt;
&lt;p&gt;So Kirill says to Kevin: "When I meet with our customers, partners and prospects ...."&lt;/p&gt;
&lt;p&gt;Now you post a comment to complete the sentence.&lt;/p&gt;
&lt;p&gt;Have fun, this is just between you and me, no-one else will see it.... OK, a few might see it.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10297414" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Conference/">Conference</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Fun/">Fun</category></item><item><title>An Inside Look Videos</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/23/an-inside-look-videos.aspx</link><pubDate>Mon, 23 Apr 2012 13:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10296508</guid><dc:creator>David Musgrave</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10296508</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/23/an-inside-look-videos.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;The &lt;a title="Inside Dynamics GP" href="http://blogs.msdn.com/b/gp/" target="_blank"&gt;Inside Dynamics GP&lt;/a&gt; Blog has been publishing a series of "Inside Look" videos hosted by Daniel Bartholomay (The Inside Look Guy).&lt;/p&gt;
&lt;p&gt;These videos provide an inside look to the inner workings of Dynamics GP. I have gathered them together in this post to make sure you don't miss them.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Inside Look with Chad Sogge&lt;/strong&gt;&amp;nbsp;(&lt;a title="Inside Look: with Chad Sogge" href="http://blogs.msdn.com/b/gp/archive/2012/04/03/inside-look-with-chad-sogge.aspx" target="_blank"&gt;Original Post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/23/an-inside-look-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Inside Look with Paul Lindgren&lt;/strong&gt;&amp;nbsp;(&lt;a title="An Inside Look Featuring Paul Lindgren" href="http://blogs.msdn.com/b/gp/archive/2012/04/10/an-inside-look-featuring-paul-lindgren.aspx" target="_blank"&gt;Original Post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/23/an-inside-look-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An Inside Look with Kevin Racer&lt;/strong&gt; (&lt;a title="An Inside Look with Kevin Racer" href="http://blogs.msdn.com/b/gp/archive/2012/04/10/an-inside-look-with-kevin-racer.aspx" target="_blank"&gt;Original Post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/23/an-inside-look-videos.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Just in case you missed Errol Schoenfish's videos from last year, here are the links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Microsoft Dynamics GP Product Vision" href="http://www.youtube.com/watch?v=eatm7K4Gn2w" target="_blank"&gt;Microsoft Dynamics GP Product Vision&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="Key Themes for Microsoft Dynamics GP 2010 R2" href="http://www.youtube.com/watch?v=IZYkpgMEC2U" target="_blank"&gt;Key Themes for Microsoft Dynamics GP 2010 R2&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a title="Microsoft Dynamics GP Product Roadmap" href="http://www.youtube.com/watch?v=z9bCvXKcOS4" target="_blank"&gt;Microsoft Dynamics GP Product Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy&amp;nbsp;&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10296508" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/News/">News</category></item><item><title>Workflow does not show up on Dexterity Alternate Window</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/20/workflow-does-not-show-up-on-dexterity-alternate-window.aspx</link><pubDate>Fri, 20 Apr 2012 04:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10295348</guid><dc:creator>Patrick Roth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10295348</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/20/workflow-does-not-show-up-on-dexterity-alternate-window.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Patrick Roth" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="Patrick Roth - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-02-05-96/prot.jpg_2D00_100x100.jpg" width="65" height="87" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;We had a case where the workflow functionality for the Purchase Order Processing PO Entry window would show when the original window was used, but would not appear when the developer's Dexterity alternate version of the window was used.&lt;/p&gt;
&lt;p&gt;The Dynamics.exe.config is what can control the .NET wrapper that goes around each GP window.&amp;nbsp; This wrapper is extended by the Workflow client assembly which is why we see the workflow visualization, approve/deny/etc buttons.&lt;/p&gt;
&lt;p&gt;To determine which assembly is used for a window wrapper, an entry in the Dynamics.exe.config describing the product/form/window and which assembly is to be used.&lt;/p&gt;
&lt;p&gt;So if we look at the Dynamics.exe.config, we see there are 2 entries for the PO Entry window (window ID = 1 and formid = 829).&lt;/p&gt;
&lt;p&gt;The first for product 0 is the GP base window.&amp;nbsp; The 2nd is for the alternate Project Accounting version of the window.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Excerpt from Dynamics.exe Config File&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; background-color: #f4f4f4; font-size: 8pt; font-family: 'Courier New', courier, consolas, monospace; white-space: nowrap; border: gray 1px solid; padding: 4px;" class="code"&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;span style="color: #993300;"&gt;add &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;="Workflow-POP_PO_Entry/POP_PO_Entry" &lt;span style="color: #ff0000;"&gt;productId&lt;/span&gt;="0" &lt;span style="color: #ff0000;"&gt;formId&lt;/span&gt;="829" &lt;span style="color: #ff0000;"&gt;windowId&lt;/span&gt;="1" factoryType="Microsoft.Dynamics.GP.Workflow.WorkflowFormFactory,Microsoft.Dynamics.GP.Workflow.Client,&lt;/span&gt;&lt;span style="color: #0000ff; font-family: courier new,courier; font-size: x-small;"&gt;Version=11.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #993300; font-family: courier new,courier;"&gt;add&lt;/span&gt;&lt;span style="color: #0000ff; font-family: courier new,courier;"&gt;&lt;span style="color: #ff0000;"&gt; name&lt;/span&gt;="Workflow-POA_PO_Entry/POA_PO_Entry" &lt;span style="color: #ff0000;"&gt;productId&lt;/span&gt;="258" &lt;span style="color: #ff0000;"&gt;formId&lt;/span&gt;="829" &lt;span style="color: #ff0000;"&gt;windowId&lt;/span&gt;="1" factoryType="Microsoft.Dynamics.GP.Workflow.WorkflowFormFactory,Microsoft.Dynamics.GP.Workflow.Client,Version=11.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;In this case what was happening and why the wrapper doesn&amp;rsquo;t show was that the alternate version is opening and since an entry isn&amp;rsquo;t listed for that product, the default wrapper is used instead of the workflow client wrapper.&lt;/p&gt;
&lt;p&gt;The resolution is therefore easy with no extra work on the developer's part &amp;ndash; just add an identical entry below these with a different name and your product id.&amp;nbsp; The rest should be the same since we&amp;rsquo;re going to have it use the GP workflow functionality.&lt;/p&gt;
&lt;div class="legend"&gt;&lt;strong&gt;Added Line&amp;nbsp;Example&lt;/strong&gt;&lt;/div&gt;
&lt;div style="margin: 20px 0px 10px; overflow: auto; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; background-color: #f4f4f4; font-size: 8pt; font-family: 'Courier New', courier, consolas, monospace; white-space: nowrap; border: gray 1px solid; padding: 4px;" class="code"&gt;
&lt;p&gt;&lt;span style="color: #0000ff; font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;span style="color: #993300;"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;="Workflow-POP_PO_Entry&lt;span style="background-color: #ffff00;"&gt;_XXXX&lt;/span&gt;/POP_PO_Entry&lt;span style="background-color: #ffff00;"&gt;_XXXX&lt;/span&gt;" &lt;span style="color: #ff0000;"&gt;productId&lt;/span&gt;="&lt;span style="background-color: #ffff00;"&gt;XXXX&lt;/span&gt;" &lt;span style="color: #ff0000;"&gt;formId&lt;/span&gt;="829" &lt;span style="color: #ff0000;"&gt;windowId&lt;/span&gt;="1" factoryType="Microsoft.Dynamics.GP.Workflow.WorkflowFormFactory,Microsoft.Dynamics.GP.Workflow.Client,Version=11.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Just replace the XXXX in the line above with your product ID. Problem solved.&lt;/p&gt;
&lt;p&gt;Patrick Roth&lt;br /&gt;Sr. Escalation Engineer&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10295348" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Dexterity/">Dexterity</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category></item><item><title>How to format Microsoft Dynamics GP SQL Stored Procedures</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/19/how-to-format-microsoft-dynamics-gp-sql-stored-procedures.aspx</link><pubDate>Thu, 19 Apr 2012 04:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10295200</guid><dc:creator>David Musgrave</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10295200</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/19/how-to-format-microsoft-dynamics-gp-sql-stored-procedures.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Have you ever decided to have a look at one of the SQL stored procedures in your Dynamics GP databases?&lt;/p&gt;
&lt;p&gt;If you have, you would have noticed that they are extremely difficult to read. This is because comments and formatting white space are removed by Dynamics Utilities when it creates the stored procedures. This step was taken to improve performance of the resulting code, but has the side effect of making the code impossible to read.&lt;/p&gt;
&lt;p&gt;In the past, when I have needed to analyse code in a stored procedure, I have manually formatted the code as I read it so I can see the levels of indentation and individual commands.&lt;/p&gt;
&lt;p&gt;A&amp;nbsp;little while ago, my friend Steve Gray talked about &lt;a title="Formatting SQL" href="http://dyndeveloper.com/article.aspx?articleid=86" target="_blank"&gt;Formatting SQL&lt;/a&gt;. In his post he mentioned the free &lt;a title="Format SQL" href="http://www.format-sql.com/" target="_blank"&gt;Format SQL&lt;/a&gt;&amp;nbsp;site from Redgate (the people behind the &lt;a title="SQL Prompt" href="http://www.red-gate.com/products/sql-development/sql-prompt/" target="_blank"&gt;SQL Prompt&lt;/a&gt; tool). I had heard of SQL Prompt before, but did not require all the features it offered and did not want to buy anything. I also found that the free Format SQL site did not work well when pasting in scripts via the clipboard.&lt;/p&gt;
&lt;p&gt;I just wanted a free online tool to format cut and pasted text from a SQL stored procedure so I can read it.&lt;/p&gt;
&lt;p&gt;So today, I used that wonderful invention.... an &lt;a title="internet search engine" href="http://tinyurl.com/bw427t5" target="_blank"&gt;internet search engine&lt;/a&gt;, and found a number of&amp;nbsp;free tools that work well:&lt;/p&gt;
&lt;p&gt;In no particular order:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;T-SQL Tidy&amp;nbsp;(&lt;a title="http://www.tsqltidy.com/" href="http://www.tsqltidy.com/" target="_blank"&gt;http://www.tsqltidy.com/&lt;/a&gt;)&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Instant SQL Formatter&amp;nbsp;(&lt;a title="http://www.dpriver.com/pp/sqlformat.htm" href="http://www.dpriver.com/pp/sqlformat.htm" target="_blank"&gt;http://www.dpriver.com/pp/sqlformat.htm&lt;/a&gt;)&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Poor SQL (&lt;a title="http://poorsql.com/" href="http://poorsql.com/" target="_blank"&gt;http://poorsql.com/&lt;/a&gt;)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enjoy&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10295200" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/SQL/">SQL</category></item><item><title>Editing Standard SmartLists with SmartList Builder</title><link>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/18/editing-standard-smartlists-with-smartlist-builder.aspx</link><pubDate>Wed, 18 Apr 2012 10:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10279608</guid><dc:creator>David Musgrave</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/developingfordynamicsgp/rsscomments.aspx?WeblogPostID=10279608</wfw:commentRss><comments>http://blogs.msdn.com/b/developingfordynamicsgp/archive/2012/04/18/editing-standard-smartlists-with-smartlist-builder.aspx#comments</comments><description>&lt;p&gt;&lt;a title="David Meego - Click for blog homepage" href="http://blogs.msdn.com/b/DevelopingForDynamicsGP/"&gt;&lt;img border="0" hspace="10" alt="David Meego - Click for blog homepage" align="right" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Components-PostAttachments/00-09-96-23-97/David-Meego.gif" width="94" height="94" /&gt;&lt;img border="0" align="right" src="http://www.myworldmaps.net/map.ashx/00bb0d70-4fc5-45a1-8753-6af01cdb9beb/ping" width="1" height="1" /&gt;&lt;/a&gt;Every now and then I get asked "How you can modify an existing SmartList favorite with SmartList Builder?".&lt;/p&gt;
&lt;p&gt;The short answer is you cannot.&lt;/p&gt;
&lt;p&gt;This is because the standard SmartLists are written as Dexterity code in each of the dictionaries that integrate with the SmartList dictionary.&amp;nbsp;The Dexterity Integration Guide document (IG.PDF) has an entire section that explains how to write the necessary cross dictionary code to make this work.&amp;nbsp;It requires Dexterity skills and is hard to get working well even for experienced developers. Some developers just provide exported SmartList Builder favorites for their products instead.&lt;/p&gt;
&lt;p&gt;So where does that leave us...&lt;/p&gt;
&lt;p&gt;Do we have to reverse engineer and recreate the standard SmartLists in SmartList Builder?&lt;/p&gt;
&lt;p&gt;Actually No.... thankfully.&lt;/p&gt;
&lt;p&gt;That is because&amp;nbsp;our wonderful Microsoft Dynamics GP Support team have aleady done this mammoth task for us.&amp;nbsp;We just need to go to the CustomerSource page below and download the zip files containing the SmartLists we want.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="SmartList Templates for Microsoft Dynamics GP" href="https://mbs.microsoft.com/customersource/support/downloads/reportslibrary/gp_smartlist_templates.htm" target="_blank"&gt;SmartList Templates for Microsoft Dynamics GP&lt;/a&gt;&amp;nbsp;(CustomerSource)&amp;nbsp;&lt;img style="width: 15px; height: 18px;" title="Secure Link" alt="Secure Link" src="http://blogs.msdn.com/photos/developingfordynamicsgp/images/8771197/original.aspx" width="15" height="18" mce_src="http://blogs.msdn.com/photos/developingfordynamicsgp/images/8771197/original.aspx" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How&amp;nbsp;easy is that?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;
&lt;p&gt;PS: If you find this helpful, remember to post a comment to say thanks to the team who did all the hard work for us.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10279608" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Application/">Application</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/SmartList+Builder/">SmartList Builder</category><category domain="http://blogs.msdn.com/b/developingfordynamicsgp/archive/tags/Smartlist/">Smartlist</category></item></channel></rss>
