<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6691994129222744759</id><updated>2012-01-31T04:10:35.609-08:00</updated><category term='general ledger'/><category term='smartlist builder error'/><category term='control'/><category term='line set'/><category term='tools'/><category term='gp addin window modal'/><category term='translate'/><category term='mass printing'/><category term='FUTA'/><category term='void'/><category term='payables management'/><category term='convergence'/><category term='upgrade'/><category term='adjustment'/><category term='GP10'/><category term='sales tax'/><category term='timesheet'/><category term='extender'/><category term='taxes'/><category term='customizations'/><category term='process holds'/><category term='rdp'/><category term='account format'/><category term='sql browser service'/><category term='report options'/><category term='smartlist builder'/><category term='web client'/><category term='purchase order processing'/><category term='quality report'/><category term='eConnect 2010'/><category term='microsoft office sharepoint server'/><category term='posting'/><category term='great plains search'/><category term='copy and paste'/><category term='use tax'/><category term='DTC'/><category term='account security'/><category term='payroll tax'/><category term='modify'/><category term='table import'/><category term='cost category'/><category term='941'/><category term='webinar'/><category term='Account Framework'/><category term='payables'/><category term='inventory'/><category term='fee'/><category term='report library'/><category term='networking'/><category term='kits'/><category term='online'/><category term='zero dollar checks'/><category term='Instructors'/><category term='consolidation'/><category term='vendors'/><category term='payroll'/><category term='remote desktop'/><category term='home page'/><category term='summary'/><category term='disable'/><category term='deductions'/><category term='error'/><category term='account'/><category term='commissions'/><category term='non-inventory'/><category term='word templates'/><category term='top 100'/><category term='unhandled object'/><category term='technology'/><category term='Microsoft'/><category term='introduction'/><category term='Microsoft Dynamics GP'/><category term='client'/><category term='deduction'/><category term='expense reports'/><category term='.Net'/><category term='import'/><category term='dynamics convergence'/><category term='smartlist'/><category term='purchase order'/><category term='item classes'/><category term='customers'/><category term='customer alias'/><category term='voids'/><category term='allocation'/><category term='solutions'/><category term='development tools'/><category term='tasks'/><category term='human resources'/><category term='work in progress'/><category term='database creation wizard'/><category term='readiness'/><category term='hyperv virtual server'/><category term='report groups'/><category term='relevancy'/><category term='account index'/><category term='programming language'/><category term='forecaster.ini'/><category term='learning'/><category term='menu'/><category term='reconcile to gl'/><category term='update'/><category term='cost variances'/><category term='dynamics partner connections'/><category term='FRx'/><category term='customization'/><category term='fiscal period setup'/><category term='new budget year'/><category term='cascading parameters'/><category term='exam'/><category term='deductions in arrears'/><category term='taxable wages'/><category term='management reporter'/><category term='Forecaster'/><category term='implementation'/><category term='bill of materials'/><category term='currency translation'/><category term='integration manager'/><category term='ps time and expense'/><category term='Consultant Tools'/><category term='shipping methods'/><category term='software implementation'/><category term='state tax'/><category term='ach file'/><category term='databases'/><category term='budgeting'/><category term='wip'/><category term='columns'/><category term='multinational'/><category term='year end'/><category term='bank transactions'/><category term='payroll year end'/><category term='sql'/><category term='report viewer'/><category term='data entry'/><category term='compliance'/><category term='user account control'/><category term='information_schema'/><category term='dynamics gp search'/><category term='SUTA'/><category term='direct deposit'/><category term='add fields'/><category term='active directory'/><category term='address parsing'/><category term='gp search'/><category term='econnect'/><category term='web'/><category term='custom view'/><category term='batch approval'/><category term='activity tracking'/><category term='methodology'/><category term='gp 9'/><category term='item setup'/><category term='auto-post batches'/><category term='windows 7'/><category term='troubleshooting'/><category term='withholding'/><category term='dynamics world'/><category term='check printing'/><category term='white papers'/><category term='tips'/><category term='refresh test company'/><category term='shortcuts'/><category term='local taxes'/><category term='roles'/><category term='project accounting'/><category term='SQL query optimization'/><category term='launch'/><category term='401k'/><category term='sop'/><category term='changes'/><category term='backup'/><category term='benefit'/><category term='1099 reporting'/><category term='64-bit'/><category term='garnishments'/><category term='multi company'/><category term='security'/><category term='Web Services'/><category term='ODBC DSN'/><category term='sql tables'/><category term='dex.ini'/><category term='XML'/><category term='dynamics gp 12'/><category term='check register'/><category term='sales order'/><category term='professional services'/><category term='sql reporting services'/><category term='hidden'/><category term='mekorma micr'/><category term='integration'/><category term='XPath'/><category term='segment'/><category term='check distribution report'/><category term='tax detail'/><category term='reconcile'/><category term='Notes'/><category term='inventory transfer'/><category term='moving on'/><category term='detail'/><category term='receivables'/><category term='moss'/><category term='vista'/><category term='landed cost'/><category term='sql reports'/><category term='users'/><category term='prospects'/><category term='microsoft dynamics forecaster'/><category term='dynamics gp'/><category term='company setup'/><category term='connection'/><category term='edit distributions'/><category term='modifier'/><category term='forums'/><category term='wages'/><category term='multientity'/><category term='check on the fly'/><category term='fica change'/><category term='accounting books'/><category term='asset'/><category term='match'/><category term='dynamics gp 2010'/><category term='delete'/><category term='customer project info'/><category term='deep dive'/><category term='issues'/><category term='class'/><category term='versions'/><category term='domain'/><category term='upgrades'/><category term='corrections'/><category term='default'/><category term='microsoft dynamics sure step'/><category term='report models'/><category term='advanced search'/><category term='vba'/><category term='service packs'/><category term='overtime'/><category term='area page'/><category term='SSPI'/><category term='hyperv'/><category term='checks on the fly'/><category term='dynamics database'/><category term='sql server'/><category term='virtual server'/><category term='items'/><category term='sure step'/><category term='posting setup'/><category term='budgets'/><category term='manage applications'/><category term='setup checklist'/><category term='system error'/><category term='icon'/><category term='posting options'/><category term='search'/><category term='calculation'/><category term='excel reports'/><category term='fica'/><category term='msdtc'/><category term='fixed assets'/><category term='myths'/><category term='Training'/><category term='sales order processing'/><title type='text'>Dynamics GP Land</title><subtitle type='html'>Christina Phillips, an MCT with BKD Technologies, and Steve Endow, an MCT and owner of Precipio Services, maintain this blog as a way to encourage collaboration and knowledge sharing between Dynamics GP consultants, trainers, and end-users.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default?start-index=101&amp;max-results=100'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>326</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3539605111755190136</id><published>2012-01-27T22:23:00.000-08:00</published><updated>2012-01-27T22:23:03.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='account security'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Why care about User Classes?</title><content type='html'>With recent version of Dynamics GP, the user security model shifted away from user classes to security roles, tasks, and operations.&amp;nbsp; So, I am often asked why worry about user classes now?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-eoDutuyPHFQ/TyORchAI_0I/AAAAAAAAAMk/m5GamToXGLk/s1600/UserClassSetup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="111px" src="http://4.bp.blogspot.com/-eoDutuyPHFQ/TyORchAI_0I/AAAAAAAAAMk/m5GamToXGLk/s400/UserClassSetup.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP-Tools-Setup-System-User Classes&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Users are assigned to a class in Setup-System-Users&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;Well, user classes still have a number of benefits in Dynamics GP.&amp;nbsp; I thought I would take you through some of them.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You can assign shortcuts to an entire user class.&amp;nbsp; Simply log in to Dynamics GP as 'sa', and you will see on your navigation pane a folder for each user class.&amp;nbsp; Add a shortcut in to one of those folders, and it will appear on the navigation pane for all users that belong to the class.&lt;/li&gt;&lt;li&gt;If you are using Account Level Security/Organizational Structures, you can assign an entire class to a branch of the organization structure, Cards-System-Organizational Tree.&amp;nbsp; This is especially useful when users are added to Dynamics GP, you can place them in to the correct class and they will automatically receive the associated account level security rather than having to assign their user individually to the organizational structure.&lt;/li&gt;&lt;li&gt;If you use project accounting, you can restrict access to certain processes and activities in project accounting by user class.&amp;nbsp; Microsoft Dynamics GP-Tools-Setup-Project-User Classes.&amp;nbsp; You can control things like being able to change project status, change the billing type of a line item, or add a budget line item "on the fly" from a transaction.&lt;/li&gt;&lt;/ol&gt;Please feel free to share your own continued uses for User Classes.&amp;nbsp; These functions may not be important on all implementations, but in some cases User Classes can still be very helpful!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3539605111755190136?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3539605111755190136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3539605111755190136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3539605111755190136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3539605111755190136'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2012/01/why-care-about-user-classes.html' title='Why care about User Classes?'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-eoDutuyPHFQ/TyORchAI_0I/AAAAAAAAAMk/m5GamToXGLk/s72-c/UserClassSetup.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6832160522570434770</id><published>2012-01-24T07:05:00.000-08:00</published><updated>2012-01-24T07:05:17.082-08:00</updated><title type='text'>Management Reporter- Using Dimension Sets for Report Design Efficiency</title><content type='html'>Every calendar year end, I feel like all I can come up with are payroll-related blog posts.&amp;nbsp; So, I am trying tonight to come up with something, anything other than payroll topics.&amp;nbsp; Thinking through the projects on my plate lately, Management Reporter is a common theme.&amp;nbsp;&amp;nbsp; When working on large report projects in Management Reporter, I always try to find ways to make the report design (and therefore ongoing maintenance) more efficient.&amp;nbsp; One of the simplest way to do this is through the use of Dimension Sets.&lt;br /&gt;&lt;br /&gt;Back in the FRx, these were called Account Sets and allowed you to group accounts for use on multiple reports.&amp;nbsp; And in Management Reporter, the functionality is similar.&amp;nbsp; You can create dimension sets to bundle groups of dimensions (any particular segment of your GL) in to named sets to be referenced in row, column, or tree definitions.&lt;br /&gt;&lt;br /&gt;The benefits of using dimension sets include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Reference the same dimension set on multiple row, column, and/or tree definitions&lt;/li&gt;&lt;li&gt;Have clients configure dimension sets in advance of report design, to simplify the report building process&lt;/li&gt;&lt;li&gt;Update a dimension set, and all reports that reference the set are automatically updated&lt;/li&gt;&lt;li&gt;Add, subtract, include ranges in a dimension et&lt;/li&gt;&lt;li&gt;Simplify the "look" of a row definition, in particular, to make it easier to spot what is included in a row&lt;/li&gt;&lt;li&gt;Centralize maintenance of key dimension sets referenced on several reports, like Net Sales or Administrative Expenses&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Within a row, column, and/or tree definition you can reference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Multiple dimension sets (for example, multiple Account dimension sets, or an Account dimension set and a Department dimension set)&lt;/li&gt;&lt;li&gt;Combinations of dimension sets and other dimensions (for example an Account dimension set plus a department segment)&lt;/li&gt;&lt;/ul&gt;Of course, dimension sets do require you to think through the design of a report before you begin actually creating it.&amp;nbsp; And it is even more beneficial if you analyze all reports to be created, to find the common groupings that can leverage dimension sets.&lt;br /&gt;&lt;br /&gt;Once you have identified the dimension sets, it is very easy to create them in Management Reporter.&amp;nbsp; With any building block (row, column, or tree) open,&amp;nbsp;simply go to Edit&amp;gt;&amp;gt;Manage Dimension Sets.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Dsh4m82iNgc/Tx7EdFlgWZI/AAAAAAAAAMU/kSngjcUMu3Y/s1600/Create+a+Dimension+Set.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="147" src="http://1.bp.blogspot.com/-Dsh4m82iNgc/Tx7EdFlgWZI/AAAAAAAAAMU/kSngjcUMu3Y/s400/Create+a+Dimension+Set.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;First, select the Dimension for the set using the drop-down list, you can select any segment of your chart of accounts (for example, main account or department or division).&amp;nbsp; Then you can either select an existing Dimension Set and click Modify or click New to begin a new one.&amp;nbsp; Note that you can also Delete and Save As for existing dimension sets.&lt;br /&gt;&lt;br /&gt;After you click New, the New dimension set window appears and you can enter a Set Name and Set Description.&amp;nbsp; Then you can specify the segment values and ranges that should be included in the Dimension Set.&amp;nbsp; Use the + and - signs to add or subtract additional segment values and ranges within the set.&amp;nbsp; Click OK to save the dimension set.&lt;br /&gt;&lt;br /&gt;To use a dimension set, you need to access the Dimensions window from either a tree, row, or column building block.&amp;nbsp; For example..&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In a row definition, double-click in the Link to Financial Dimensions field&lt;/li&gt;&lt;li&gt;In a column definition, double-click in the Column Restriction field&lt;/li&gt;&lt;li&gt;In a tree definition, double-click in the Dimensions field&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CpGTkIKlujM/Tx7GRc-xLpI/AAAAAAAAAMc/LlSosi3T8yI/s1600/Selecting+Dimension+Set.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="231" src="http://3.bp.blogspot.com/-CpGTkIKlujM/Tx7GRc-xLpI/AAAAAAAAAMc/LlSosi3T8yI/s400/Selecting+Dimension+Set.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once you are in the dimension window, double-click in the segment/dimension field you wish to populate and the corresponding segment/dimension window will open (in this case, MainAccount).&amp;nbsp; Now, you can select the Dimension Set radio button and use the ellipsis (three dots) button to select from a list of available Dimension Sets for the selected segment/dimension.&amp;nbsp; You can also use the Manage Dimension Sets button as a shortcut to edit and create new Dimension Sets.&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Click OK to save the entries you have made, and then you can repeat the process for additional dimensions in the same window, or move on to another row, column, or tree branch on your report.&amp;nbsp; Now, if you need to add an segment value to Net Sales or to the Domestic Divisions rollup, you can simply edit the Dimension Set and all reports that reference the Dimension Set will be updated!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6832160522570434770?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6832160522570434770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6832160522570434770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6832160522570434770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6832160522570434770'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2012/01/management-reporter-using-dimension.html' title='Management Reporter- Using Dimension Sets for Report Design Efficiency'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Dsh4m82iNgc/Tx7EdFlgWZI/AAAAAAAAAMU/kSngjcUMu3Y/s72-c/Create+a+Dimension+Set.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-1188672384652992767</id><published>2012-01-10T08:47:00.000-08:00</published><updated>2012-01-10T08:47:18.272-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='payroll year end'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='local taxes'/><title type='text'>Local Taxes Set Up As Deductions?</title><content type='html'>It is not unusual, in my experience, for some local taxes to be set up as deductions.&amp;nbsp; This most commonly occurs with an earnings tax or "head" tax that is based on an income threshold.&amp;nbsp; For example, Denver has&amp;nbsp;a "head" tax that only applies an individual who earns more than $500 in a month.&lt;br /&gt;&lt;br /&gt;As you may already know, GP doesn't have the capability out of the box to calculate a threshold other than per pay period, year to date, or life to date.&amp;nbsp; So, if we paid an employee weekly, or semimonthly but wanted a threshold to be based on a month...we would be out of luck.&lt;br /&gt;&lt;br /&gt;For this reason, you might choose to set up your local tax as a deduction.&amp;nbsp; This would allow you to include/exclude the deduction in the build, or enter transactions for the head tax.&amp;nbsp; Of course, there are other ways to approach it including manually entering a local tax code when needed on the payroll transactions or creating a customization.&lt;br /&gt;&lt;br /&gt;But for those of you that do use a deduction to track local taxes, it can present an issue at year end.&amp;nbsp; If you map the deduction (using the W2 Box and Label fields from the Deduction Setup and Employee Deduction Maintenance windows) to the actual local tax field on a W2, the Microsoft Dynamics GP year end closing process for payroll will ignore the deduction.&amp;nbsp; I assume this is because it knows that the local taxes set up in GP as local taxes (Payroll Local Tax Setup) belong in that field.&lt;br /&gt;&lt;br /&gt;If we caught this before year end, we could simply code the deduction to a box and label that is not currently being used and then modify the W2 form in Report Writer so that the field prints in the local tax box instead.&amp;nbsp; But what happens if we don't catch it in time?&lt;br /&gt;&lt;br /&gt;Fortunately, if you can produce a spreadsheet of the employee ID with the tax amount and taxable wage, you can insert it in to the UPR10106 table, which is the Payroll Year End Local Table. Admittedly, I do this sort of thing a little oddly, but here it goes...&lt;br /&gt;&lt;br /&gt;I add a column to my excel spreadsheet that says "INSERT INTO UPR10106 (RPTNGYR, EMPLOYID, SEQNUMBR, LOCLCODE, LOCLWGES, LCLINTAX, TAXTYPE) VALUES (".&lt;br /&gt;&lt;br /&gt;Then I create a concatenated formula in Excel that appears like this:&lt;br /&gt;=CONCATENATE(F2,"2011,'", A2,"',",1,",'DENVER',",D2,",",C2,",1",")")&lt;br /&gt;To break these components down:&lt;br /&gt;-F2 is the field with the static text mentioned above&lt;br /&gt;-2011 is the hard coded reporting year for the W2&lt;br /&gt;-A2 is the field with the Employee ID&lt;br /&gt;-1 is the hard coded sequence number (I will discuss this more below)&lt;br /&gt;-DENVER is the hard coded W2 Box Label/Local Code to appear on W2&lt;br /&gt;-D2 is the field with the&amp;nbsp;local taxable wages&lt;br /&gt;-C2 is the field with the local tax&lt;br /&gt;-1 is the hard coded tax type of City Income Tax (based on drop down in W2 Local Tax window)&lt;br /&gt;&lt;br /&gt;Of course, you could choose to source the hard coded items from columns as well if you want.&amp;nbsp; The end result of this is a series of INSERT scripts that can be run against the company database to update the UPR10106 by inserting records.&lt;br /&gt;&lt;br /&gt;INSERT INTO UPR10106 (RPTNGYR, EMPLOYID, SEQNUMBR, LOCLCODE, LOCLWGES, LCLINTAX, TAXTYPE) VALUES (2011,'ACKE001',1,'DENVER',10000,50.00,1)&lt;br /&gt;&lt;br /&gt;One thing to watch out for, though, is the sequence number.&amp;nbsp; For each employee, for each year, the sequence number is an incremental number.&amp;nbsp; So, for example, if an employee had two local taxes withheld, the first one would have a sequence number of 1 and the second would have a sequence number of 2.&amp;nbsp; So if you have more than once local tax, you need to adjust the script accordingly.&amp;nbsp; And if a local tax is already included in the UPR10106 table for the year you are updating, you would also need to take this in to consideration or you will get a primary key error when attempting to insert the records with a duplicate employee ID, year, and sequence number.&lt;br /&gt;&lt;br /&gt;Good luck with year end, and always always always make a backup before attempting these or any other scripts :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-1188672384652992767?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/1188672384652992767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=1188672384652992767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1188672384652992767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1188672384652992767'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2012/01/local-taxes-set-up-as-deductions.html' title='Local Taxes Set Up As Deductions?'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3652793636614512336</id><published>2012-01-10T08:17:00.000-08:00</published><updated>2012-01-10T08:17:29.946-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='payroll tax'/><title type='text'>Recapture Provision?  What Recapture Provision?</title><content type='html'>We have had a few clients ask about the recapture provision of the payroll tax cut extension.&amp;nbsp; Essentially, the recapture provision says that if an employee makes more than a set amount in the first two months of this year, the excess has to be taxed at 6.2%.&amp;nbsp; What?&amp;nbsp; How does that work?&lt;br /&gt;&lt;br /&gt;Well, fortunately Terry Heley at Microsoft wrote a fabulous blog post explaining this provision and why GP doesn't do it...&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;a href="http://blogs.msdn.com/b/dynamicsgp/archive/2012/01/05/payroll-tax-cut-temporarily-extended-into-2012-translated-so-a-user-can-understand-and-how-it-affects-microsoft-dynamics-gp.aspx"&gt;&lt;span style="color: blue; font-family: Calibri;"&gt;http://blogs.msdn.com/b/dynamicsgp/archive/2012/01/05/payroll-tax-cut-temporarily-extended-into-2012-translated-so-a-user-can-understand-and-how-it-affects-microsoft-dynamics-gp.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Check it out!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3652793636614512336?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3652793636614512336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3652793636614512336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3652793636614512336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3652793636614512336'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2012/01/recapture-provision-what-recapture.html' title='Recapture Provision?  What Recapture Provision?'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5895765572957743075</id><published>2012-01-03T21:12:00.000-08:00</published><updated>2012-01-03T21:12:00.109-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1099 reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='year end'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>1099 Reporting, Or Not?</title><content type='html'>Recent versions of Dynamics GP have included terrific enhancements to 1099 tracking.&amp;nbsp; The ability to track 1099 amounts per type and box at a transaction level allows users to track in greater detail without having to assume that all of a vendor's payments go to the same 1099 type and box number.&lt;br /&gt;&lt;br /&gt;Along with these enhancements, though, there are not a lot of great reporting capabilities to review this information by type and box.&amp;nbsp; Of course, you can inquire on the information easily (Inquiry--Purchasing--Vendor 1099 Details, Cards--Purchasing--1099 Details).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Ip8JxBGyde8/TwM4nCIUU8I/AAAAAAAAAKY/eOtUCaSNJl0/s1600/1099detailswindow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" rea="true" src="http://1.bp.blogspot.com/-Ip8JxBGyde8/TwM4nCIUU8I/AAAAAAAAAKY/eOtUCaSNJl0/s400/1099detailswindow.png" width="311" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Cards--Purchasing--1099 Details&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;1099 Details window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The issue with these windows is that you have to review the 1099 information vendor by vendor.&amp;nbsp; This is normally fine if you have a small amount of 1099 vendors.&amp;nbsp; But for those users who have 100, 200, or even 500 1099 vendors, a report or export is much easier to use.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So, we look to SmartList, where there are 1099 fields available...&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-HaKTUxu80B4/TwM52yI7QGI/AAAAAAAAAKs/_0tUqYQB62U/s1600/1099+SmartList+fields.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="235" rea="true" src="http://3.bp.blogspot.com/-HaKTUxu80B4/TwM52yI7QGI/AAAAAAAAAKs/_0tUqYQB62U/s400/1099+SmartList+fields.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP--SmartList--Purchasing--Vendors&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;With 1099 fields added&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;However, if we look at the 1099 fields available directly in SmartList, we will see that they are the "Amounts Since Last Close" summary fields. Which means that they are not date sensitive (they would be based on the last time you closed the calendar year for Purchasing), and they also do not include amounts by 1099 type and 1099 box although&amp;nbsp;you can display the vendor's default 1099 type.&amp;nbsp; So, this may work okay if a vendor uses only one type and one box, and you are confident that you closed the Purchasing module on time for the prior calendar year and did not post back to the prior year or forward to the new year.&lt;br /&gt;&lt;br /&gt;So, what about reporting?&amp;nbsp; Yes, you can print a report from Cards--Purchasing--1099 Details, but is only available for one vendor at a time.&amp;nbsp; In the past, I would tell users to print the 1099 edit list from Routines--Purchasing--Print 1099.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nC3gzEbibNs/TwM5-n5E4iI/AAAAAAAAAK4/usGxEHlWd4w/s1600/1099+reporting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="126" rea="true" src="http://4.bp.blogspot.com/-nC3gzEbibNs/TwM5-n5E4iI/AAAAAAAAAK4/usGxEHlWd4w/s400/1099+reporting.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Routines--Purchasing--Print 1099&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;1099 Edit List&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Although this report is based on the actual transaction dates (therefore it is date sensitive), it does not break out the 1099 amounts by 1099 type and box.&amp;nbsp; So, although it may work better than the SmartList, it still would work best for those vendors that use the same 1099 type and box.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So what to do if you have a variety of vendors with a variety of 1099 types and boxes?&amp;nbsp; Aside from actually printing the 1099 themselves to review?&amp;nbsp; Well, if you have SmartList Builder, it is not all that hard to create a summary SmartList to display 1099 information.&amp;nbsp; There are two primary tables involved:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-y89vNNk7wjI/TwM7sAHa-7I/AAAAAAAAALE/JAaN2b3DMUg/s1600/1099+Tables.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="99" rea="true" src="http://4.bp.blogspot.com/-y89vNNk7wjI/TwM7sAHa-7I/AAAAAAAAALE/JAaN2b3DMUg/s320/1099+Tables.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿The Purchasing 1099 Period Detail table includes the key fields necessary for reporting the 1099 amounts by box and type:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MOzuL3ThXmM/TwM78xd0L5I/AAAAAAAAALQ/SEQs0k8XKGw/s1600/1099+table+fields.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="126" rea="true" src="http://4.bp.blogspot.com/-MOzuL3ThXmM/TwM78xd0L5I/AAAAAAAAALQ/SEQs0k8XKGw/s400/1099+table+fields.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿It is important to note that the 1099 Box Number noted in this table is NOT the actual 1099 box number.&amp;nbsp; Rather it is an incremental number assigned to the boxes in order.&amp;nbsp; So, for example the second box on a 1099-DIV is actually labeled as box 1b on the 1099 form but it would be noted as 1099 Box Number 2 in this table.&amp;nbsp;&amp;nbsp; I also added the PM Vendor Master file to the SmartList, in order to pull the vendor's Tax ID Number and address.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Now, at this point, you could use this SmartList as is but you would get multiple lines for each vendor since it would list out the amounts per box per period.&amp;nbsp; If you would prefer to condense the SmartList to one line per vendor, per type, and per box you can make it a summary SmartList.&amp;nbsp; To do this, you can click the Options button in the upper right corner of the SmartList Builder window.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-umzIoPs4eQ0/TwM-ks7JW8I/AAAAAAAAALw/VNq9SjH9kmQ/s1600/SLB+Options+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" rea="true" src="http://3.bp.blogspot.com/-umzIoPs4eQ0/TwM-ks7JW8I/AAAAAAAAALw/VNq9SjH9kmQ/s400/SLB+Options+1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jqI6dXeeKRo/TwM-lXdW9cI/AAAAAAAAAL4/xMXrnhAhpg0/s1600/SLB+Options+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" rea="true" src="http://3.bp.blogspot.com/-jqI6dXeeKRo/TwM-lXdW9cI/AAAAAAAAAL4/xMXrnhAhpg0/s400/SLB+Options+2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;SmartList Builder Options button&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Options Window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Select table to display summary options&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Mark the Summary SmartList checkbox in the Options window to convert the SmartList to a summarized a version.&amp;nbsp; Then for each field available in the SmartList, you must select the Summary Type.&amp;nbsp; To change the Summary Type, double-click on the field.&amp;nbsp; In the first screenshot above, we are selecting the options for the fields in the Purchasing 1099 Period Details SmartList.&amp;nbsp; Note that we select the option of Group By on those fields we want to summarize by... in this case, by 1099 Box Number, 1099 Type, Vendor ID, and Year.&amp;nbsp; The 1099 Amount field is then set to be a Sum.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;For the PM Vendor Master File, we have set many of the fields to Maximum.&amp;nbsp; Keep in mind that since we are grouping by Vendor ID, the fields should be the same for each vendor.&amp;nbsp; So when we say to pull the Maximum, we are simply saying to pull that common value for the vendor.&amp;nbsp; In this case, we also set to group by the Vendor Check Name.&amp;nbsp; This is redundant, though, since we have already grouped by vendor ID.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You may also want to add a restriction to display only those summaries with a 1099 amount greater than zero.&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-12eD126nglw/TwNAaSJOrUI/AAAAAAAAAME/N0uGgavtgWE/s1600/1099+restrictionsa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" rea="true" src="http://1.bp.blogspot.com/-12eD126nglw/TwNAaSJOrUI/AAAAAAAAAME/N0uGgavtgWE/s320/1099+restrictionsa.png" width="315" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;SmartList Builder Restrictions button&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Restrictions window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Click the Restrictions button at the top of the SmartList Builder window to add a restriction.&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The final SmartList will appear something like this:﻿&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="211" rea="true" src="http://2.bp.blogspot.com/-9EGtNKrwpFc/TwNAbtcat7I/AAAAAAAAAMM/1yxh-AVYHOg/s400/1099+summary.png" width="400" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Summary SmartList Grouped by 1099 Box Number, 1099 Type, Year, and Vendor ID&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The final SmartList will display the summarized information, including the 1099 Amount by type and box number (keeping in mind that is the sequential box number).&amp;nbsp; For extra credit, you can even create a series of calculated fields to break the amount out in the correct box labels.&amp;nbsp; If you do this&amp;nbsp;using a CASE statement to test for the sequential box number, a couple things to keep in mind...&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1.&amp;nbsp; Because box labels change for 1099 type, I would suggest creating a separate SmartList for each 1099 type and adding a restriction to only display one 1099 type per SmartList.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2.&amp;nbsp; You will want to remove the group by on the 1099 Box Number and not display it in the SmartList.&amp;nbsp; As you will be summarizing only by the 1099 Type, Year, and Vendor ID.&amp;nbsp; The calculated fields will then display (with a separate column for each box) the amounts broken out by box.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Here is a sample of a CASE statement used to pull an amount for a specific box.&amp;nbsp; You will need a separate calculated field for each box on the 1099.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;CASE WHEN {Purchasing 1099 Period Detail:1099 Box Number}= '1' THEN {Purchasing 1099 Period Detail:1099 Amount} ELSE 0.00 END&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Good luck and happy new year!!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5895765572957743075?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5895765572957743075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5895765572957743075' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5895765572957743075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5895765572957743075'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2012/01/1099-reporting-or-not.html' title='1099 Reporting, Or Not?'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Ip8JxBGyde8/TwM4nCIUU8I/AAAAAAAAAKY/eOtUCaSNJl0/s72-c/1099detailswindow.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-468310917663276942</id><published>2011-12-22T20:38:00.000-08:00</published><updated>2011-12-22T20:38:03.960-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management reporter'/><title type='text'>Management Reporter Size Limitation</title><content type='html'>Over the past couple of weeks, I have been working with a client on a series of odd Management Reporter issues.&amp;nbsp; The first issue they reported happened when they were working with trees.&amp;nbsp; The user would add a branch to a tree in MR, and then enter a series of dimension codes for that branch.&amp;nbsp; Randomly, it seemed, the dimensions code would not save on some branches of the tree.&amp;nbsp; Odd.&amp;nbsp; The tree branch/unit would be there, but the dimension field would be blank.&lt;br /&gt;&lt;br /&gt;So, we spent some time one afternoon trying to figure out some sort of common thread with the disappearing dimensions.&amp;nbsp; It seemed like different combinations of dimensions would cause the issue.&amp;nbsp; After talking with Microsoft, it was determined that the issue is a 512 character limitation on the dimension field in the tree.&amp;nbsp; So, when you add multiple dimensions to a tree branch/unit, it may add up to 512 pretty quickly since MR includes the dimension name for each dimension you include.&lt;br /&gt;&lt;br /&gt;I know that this may be working as designed, but this seems like something that many users would encounter over time-- particularly those with large/long account strings.&lt;br /&gt;&lt;br /&gt;As a workaround, I suggested that the client used dimension sets on the branches of the tree instead.&amp;nbsp; And this worked great, except that there also appears to be a size limitation on the dimension set as well.&amp;nbsp; So if the user tries to add too many dimension combinations (apparently also variable based on the dimension name and other characters included in the string) it also causes a series of errors.&amp;nbsp; In this client's case, they would get one of the following errors:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Object is currently in use elsewhere &lt;/li&gt;&lt;li&gt; Column ‘ParentAccountSetID,  LinkIndex’ is constrained to be unique.&amp;nbsp; Value  ‘8e1f4448-f5c1-461a-b898-f7c7cc572bf2,23’ is already present &lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal"&gt;In both cases, it would force Management Reporter to close and the building block would then be checked out to the user.&amp;nbsp; The second error message above is possibly a quality report (per Microsoft) and is being analyzed, it does appear to be caused by some sort of limitation on the size of dimension set.&lt;/div&gt;&lt;br /&gt;I know that both of these issues may seem to minor for a lot of clients.&amp;nbsp; But as I have recently been working on MR reports for a Dynamics AX client with a large account string and long chart of accounts, I do worry that we might start to hit up against these sort of issues more frequently.&amp;nbsp; The workarounds that seem to be available for now include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Keeping dimension sets small&lt;/li&gt;&lt;li&gt;Using dimension sets instead of including large lists of dimensions on a tree&lt;/li&gt;&lt;li&gt;Using ranges and/or wildcards wherever possible to decrease the number of characters used&lt;/li&gt;&lt;li&gt;Use shorter names for your segments, so that they take up less space when repeated in a dimension list&lt;/li&gt;&lt;/ul&gt;Will keep you posted as I hear back on the status of both of these items.&amp;nbsp; And, yes, I still love Management Reporter :)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP  Certified Professional. She is a supervising consultant with BKD  Technologies, providing training, support, and project management  services to new and existing Microsoft Dynamics customers. This blog  represents her views only, not those of her employer.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-468310917663276942?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/468310917663276942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=468310917663276942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/468310917663276942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/468310917663276942'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/12/management-reporter-size-limitation.html' title='Management Reporter Size Limitation'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-590983433588065347</id><published>2011-12-16T21:00:00.000-08:00</published><updated>2011-12-16T21:00:07.485-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forecaster'/><title type='text'>Helpful Microsoft Forecaster Scripts</title><content type='html'>I know I have been quite absent from the blogosphere lately, but I hope that Steve has been keeping everyone entertained (or at least keeping you in deep thought over complex technical issues).&amp;nbsp; I wish I could say that I was on a boat in the middle of the ocean with not a care in the world, or sitting on&amp;nbsp;a beach somewhere with a frosty beverage in hand.&amp;nbsp; But, alas, that is not the case.&amp;nbsp; Sadly, my father passed away last week after an 8-month battle with pancreatic cancer.&amp;nbsp; Cancer sucks.&lt;br /&gt;&lt;br /&gt;But, on to something helpful regarding Forecaster.&amp;nbsp; When working with a large chart of accounts, it can be helpful to use SQL scripts to compare your line sets with your segment setup, or check to see if every department has a line set assigned as an override.&amp;nbsp; Here are a few scripts I&amp;nbsp;have used to help with these sorts of reviews.&lt;br /&gt;&lt;br /&gt;--Identify&amp;nbsp;the assignable segment values&amp;nbsp;(Setup&amp;gt;&amp;gt;Segments) that do not have an override line set defined (Setup-Budgets-Input Set-Overrides tab), does not include&amp;nbsp;assignable segments&amp;nbsp;defined as summary departments.&amp;nbsp; Note that depending on the position of your assignable segment in your segment definition, you may need to modify this to use a different M_SEG table (e.g., M_SEG2).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;select M_SEG1.ID, M_SEG1.Label from M_SEG1 where M_SEG1.ID not in (Select Z_INP_SEG2.SEG1 from Z_INP_SEG2) and M_SEG1.LN=-1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--Identify accounts in line sets (Build-Lines) that are not set up in the master (Setup-Segments).&amp;nbsp; This is helpful when you have created line sets by copying and pasting, rather than using the wizard and/or inserting from segments.&amp;nbsp;Note that depending on the position of your main/reversable segment in your segment definition, you may need to modify this to use a different M_SEG table.&lt;br /&gt;&lt;br /&gt;select Z_LIN.LINE, Z_LIN.CODE from Z_LIN where Z_LIN.CODE not in (select M_SEG0.ID from M_SEG0)&lt;br /&gt;&lt;br /&gt;--Here is the opposite of the script above, this one identifies accounts that are in the account master (Setup-Segments) but doesn't exist in a line set (Build-Lines) to ensure you caught everything.&amp;nbsp; Same note about the M_SEG table applies here as well.&lt;br /&gt;&lt;br /&gt;select M_SEG0.ID, M_SEG0.LABEL from M_SEG0 where M_SEG0.ID not in (select Z_LIN.CODE from Z_LIN)&lt;br /&gt;&lt;br /&gt;I am looking forward to getting back in to the swing of things here on the blog, and I hope everyone is enjoying their holiday season!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-590983433588065347?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/590983433588065347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=590983433588065347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/590983433588065347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/590983433588065347'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/12/helpful-microsoft-forecaster-scripts.html' title='Helpful Microsoft Forecaster Scripts'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7318179902461729841</id><published>2011-12-12T07:29:00.000-08:00</published><updated>2011-12-12T07:29:13.870-08:00</updated><title type='text'>Decisions Fall 2011 On Demand Presentations Now Available</title><content type='html'>In case you missed the excellent MS Dynamics World Decisions Fall 2011 virtual conference, all of the presentations are now available for replay on demand:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://decisions.msdynamicsworld.com/"&gt;http://decisions.msdynamicsworld.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are 12 Dynamics GP presentations available, plus presentations for AX, NAV, and CRM!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7318179902461729841?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7318179902461729841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7318179902461729841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7318179902461729841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7318179902461729841'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/12/decisions-fall-2011-on-demand.html' title='Decisions Fall 2011 On Demand Presentations Now Available'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-8508367711622069733</id><published>2011-12-01T22:45:00.000-08:00</published><updated>2011-12-01T23:52:28.822-08:00</updated><title type='text'>GP Developer Tip:  List All Parameters for a SQL Server Stored Procedure</title><content type='html'>Occasionally I work on a Dynamics GP integration where I have to call a Dynamics GP stored procedure from a .NET application.&amp;nbsp; As always, there are several ways to do this, but I typically use one of two approaches.&lt;br /&gt;&lt;br /&gt;In situations where the procedure returns one or more values in OUTPUT parameters, I usually like to call the stored procedure directly in a procedure (rather than rely on a separate call to a data access class).&amp;nbsp; In this case, I use the very, very cool DeriveParameters method:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;gpCommand = sqlConn.CreateCommand();&lt;br /&gt;gpCommand.CommandType = CommandType.StoredProcedure;&lt;br /&gt;gpCommand.CommandText = "zDP_PM10200SI";&lt;br /&gt;&lt;br /&gt;//Get all of the parameters from the stored procedureSystem.Data.SqlClient.SqlCommandBuilder.DeriveParameters(gpCommand);&lt;/blockquote&gt;&lt;br /&gt;When you call DeriveParameters, .NET interrogates the stored procedure and builds a list of all of the parameter objects for you.&amp;nbsp; This saves ALOT of typing, and ensures that all of the parameters are properly declared.&lt;br /&gt;&lt;br /&gt;On the other hand, when I don't need to get return values from a stored procedure, I use my data access class, which requires an array of SqlParameter objects that includes the parameter name and data type.&amp;nbsp; In this case, I have to assemble the array and assign the SqlParameters.&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SqlParameter[] sqlParameters = new SqlParameter[29];&lt;br /&gt;sqlParameters[0] = new SqlParameter("@EMPLOYID", System.Data.SqlDbType.VarChar, 15);&lt;br /&gt;sqlParameters[1] = new SqlParameter("@ID_Accrual_Code", System.Data.SqlDbType.VarChar, 11);&lt;br /&gt;sqlParameters[2] = new SqlParameter("@ID_Accrual_Code_2", System.Data.SqlDbType.VarChar, 11);&lt;/blockquote&gt;&lt;br /&gt;In this case I need the parameter name and data type.&amp;nbsp; Some stored procedures are simple and only have a few parameters.&amp;nbsp; But there are a few that have dozens of parameters, which makes this type of coding a tedious chore.&lt;br /&gt;&lt;br /&gt;So make this process easier, I wanted to get a list of all of the stored procedure parameters.&lt;br /&gt;&lt;br /&gt;It turns out that this is pretty easy--just use sp_help:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sp_help zDP_PM10200SI&lt;/blockquote&gt;&lt;br /&gt;This provides a very nice parameter listing, with data types, that can be copied and pasted into Excel or text editor, and then easily converted into code.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-MPLd1GCcX-o/TthzZ5ZjqfI/AAAAAAAAAWQ/jeAd3i8Gsy0/s1600/sqlparams.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="http://3.bp.blogspot.com/-MPLd1GCcX-o/TthzZ5ZjqfI/AAAAAAAAAWQ/jeAd3i8Gsy0/s320/sqlparams.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-8508367711622069733?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/8508367711622069733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=8508367711622069733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8508367711622069733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8508367711622069733'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/12/gp-developer-tip-list-all-parameters.html' title='GP Developer Tip:  List All Parameters for a SQL Server Stored Procedure'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-MPLd1GCcX-o/TthzZ5ZjqfI/AAAAAAAAAWQ/jeAd3i8Gsy0/s72-c/sqlparams.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-2994415598958560972</id><published>2011-11-21T09:48:00.000-08:00</published><updated>2011-11-21T09:50:36.841-08:00</updated><title type='text'>Importing 10 Million Transactions Into Dynamics GP: At the Decisions Fall 2011 Virtual Conference</title><content type='html'>The &lt;a href="http://decisions.msdynamicsworld.com/"&gt;Decisions Fall 2011 Conference&lt;/a&gt; is in two weeks, with the Dynamics GP day on Tuesday, December 6!&lt;br /&gt;&lt;br /&gt;Registration is free and only takes a minute.&amp;nbsp; This is a virtual conference, so no travel, no hotel, no convention centers--the entire conference can be accessed using your web browser.&lt;br /&gt;&lt;br /&gt;I'll be giving a presentation at the conference titled "&lt;a href="http://decisions.msdynamicsworld.com/session/importing-10-million-transactions-dynamics-gp-lessons-learned"&gt;Importing 10 Million Transactions Into Dynamics GP: Lessons Learned&lt;/a&gt;".&amp;nbsp; It is based on a large project that I worked on over the last few years where I've gained a new perspective on what matters most for an environment with very high volume, complex integrations.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In addition to great presentations, there will be several vendors in the virtual conference hall presenting their enhancements for Microsoft Dynamics GP.&amp;nbsp; I will be at the &lt;a href="http://envisagesoftware.com/"&gt;Envisage Software Solutions&lt;/a&gt; booth showing customers the very popular &lt;a href="http://envisagesoftware.com/post-master-for-dynamics-gp/"&gt;Post Master&lt;/a&gt; add-on for GP, which fully automates the batch posting process, as well as the very powerful &lt;a href="http://envisagesoftware.com/search-master-for-dynamics-gp/"&gt;Search Master&lt;/a&gt; product, which allows you to instantly find any data in any of your Dynamics GP databases.&lt;br /&gt;&lt;br /&gt;Please take a minute to register and devote a few hours of that Tuesday to learn more about Dynamics GP!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-2994415598958560972?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/2994415598958560972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=2994415598958560972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/2994415598958560972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/2994415598958560972'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/importing-10-million-transactions-into.html' title='Importing 10 Million Transactions Into Dynamics GP: At the Decisions Fall 2011 Virtual Conference'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3730262432448989834</id><published>2011-11-18T19:21:00.000-08:00</published><updated>2011-11-18T19:21:46.847-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='payroll'/><title type='text'>My Favorite Payroll Support Articles</title><content type='html'>It seems like the vast majority of payroll issues are related to taxability, which in turn is related to the setup of the payroll module.&amp;nbsp; So I thought I would share a couple of my favorite payroll support articles related to taxability.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to correct overwithholding of payroll taxes&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/858712"&gt;http://support.microsoft.com/kb/858712&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have used this article time and time again.&amp;nbsp; It can be broken down in to three key steps: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Refund the overwithheld taxes&lt;/li&gt;&lt;li&gt;Correct the tax summary information for total taxes and taxable wages&lt;/li&gt;&lt;li&gt;Adjust the pay code used to pay back the taxes&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Correcting differences in federal wages on the 941 -vs- Payroll Summary report&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/862929"&gt;http://support.microsoft.com/kb/862929&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article explains how both reports calculate, and the subtle differences between them.&amp;nbsp; The key is that the 941 report uses the current tax status of deductions to recalculate taxable wages while the payroll summary relies on the taxable wages calculated at the time the payroll was posted.&lt;br /&gt;&lt;br /&gt;To minimize tax issues in payroll in GP, you should (in my humble opinion)...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ensure that the payroll setup tax flags for pay codes, deductions, and benefits are set up correctly from the start (Setup-Payroll-Deduction, Benefit, Pay Code)&lt;/li&gt;&lt;li&gt;Resist the urge to change tax flags at the individual employee level (Cards-Payroll-Pay Code, Deduction, Benefit)---simply because it becomes more complicated in terms of the variations in taxability that could exist for a single code&lt;/li&gt;&lt;li&gt;Ensure that all pay codes that are marked as SUTA taxable also have a SUTA state specified (this is a required field when manually setting up a pay code, but the behavior can vary when rolling down pay code assignments)&lt;/li&gt;&lt;li&gt;Ensure that a default state tax code is specified for the employee, this is DIFFERENT than setting the employee up for a state tax (Cards-Payroll-State Tax).&amp;nbsp; You need to go to Cards-Payroll-Tax and make sure a default state tax code is specified for transaction entry.&lt;/li&gt;&lt;li&gt;Print your 941 after every payroll when you first go live, and validate the results.&lt;/li&gt;&lt;/ul&gt;Have a great Thanksgiving!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3730262432448989834?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3730262432448989834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3730262432448989834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3730262432448989834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3730262432448989834'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/my-favorite-payroll-support-articles.html' title='My Favorite Payroll Support Articles'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7284492682824607289</id><published>2011-11-15T21:49:00.000-08:00</published><updated>2011-11-15T21:49:19.085-08:00</updated><title type='text'>Consultant Tools Series: Travel Power Outlets</title><content type='html'>Nearly every hotel I've stayed at the last several years has had one limitation:&amp;nbsp; Not enough power outlets.&amp;nbsp; There may be one outlet available on the desk, or two if I'm lucky, but sadly, that isn't enough to handle the laptop, cell phone, bluetooth headset, iPad, and hotspot.&amp;nbsp; I have often had to charge my cell phone using a bathroom power outlet and leave my laptop powered on all night so that I can charge something else via a USB port.&lt;br /&gt;&lt;br /&gt;I was poking around the electronics section of one of those massive discount retail stores a few months ago and I came across a gadget that looked pretty interesting.&amp;nbsp; It is a mini power-strip of sorts that provides three full outlets, but what is unique is that it also includes two USB charging ports.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xf5MIQ49AdI/TsNLNCHuBXI/AAAAAAAAAVo/_JWDzA0lhyA/s1600/photo+3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="145" src="http://2.bp.blogspot.com/-xf5MIQ49AdI/TsNLNCHuBXI/AAAAAAAAAVo/_JWDzA0lhyA/s320/photo+3.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I brought it home, and to break it in, I tried it on my overburdened kitchen counter power outlet where we have a pile of iPhones, an iPod, and iPod Touch, and a few other devices.&amp;nbsp; It worked perfectly, allowing us to use two USB cables to charge phones, freeing up two outlets.&lt;br /&gt;&lt;br /&gt;This week I had a chance to try it on the road.&amp;nbsp; The desk in my hotel room has two outlets in a recessed compartment that would have made it difficult to use two of my chargers, so the power strip worked like a charm.&amp;nbsp; I was able to charge my iPhone and hotspot via USB, and then plugged in my laptop and bluetooth headset in the power outlets.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-wCsRUpfOsLI/TsNNQFHv-AI/AAAAAAAAAVw/yrAL0EFYm6c/s1600/photo+2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://2.bp.blogspot.com/-wCsRUpfOsLI/TsNNQFHv-AI/AAAAAAAAAVw/yrAL0EFYm6c/s320/photo+2.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Since I have a MacBook Air with only 2 USB ports, one of which is always used by my Logitech wireless mouse receiver, my one remaining USB port is pretty valuable, and can now remain available.&lt;br /&gt;&lt;br /&gt;The only minor downside is that the power strip is a bit bulky, but given it's value, I don't mind carrying it in my luggage.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bIUbea9iE3I/TsNNq9JF8pI/AAAAAAAAAV4/vVFxJnmG_a4/s1600/photo+4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://1.bp.blogspot.com/-bIUbea9iE3I/TsNNq9JF8pI/AAAAAAAAAV4/vVFxJnmG_a4/s320/photo+4.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bGeneUxW3Xo/TsNNvkLxwrI/AAAAAAAAAWA/gGkBU2m9GBQ/s1600/photo+5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://1.bp.blogspot.com/-bGeneUxW3Xo/TsNNvkLxwrI/AAAAAAAAAWA/gGkBU2m9GBQ/s320/photo+5.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7284492682824607289?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7284492682824607289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7284492682824607289' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7284492682824607289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7284492682824607289'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/consultant-tools-series-travel-power.html' title='Consultant Tools Series: Travel Power Outlets'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-xf5MIQ49AdI/TsNLNCHuBXI/AAAAAAAAAVo/_JWDzA0lhyA/s72-c/photo+3.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5050694530406659598</id><published>2011-11-10T12:27:00.000-08:00</published><updated>2011-12-26T15:05:53.823-08:00</updated><title type='text'>One Massive Flaw in SugarSync:  It is not a backup solution...</title><content type='html'>I've been a huge fan of SugarSync since I started using it several years ago.&amp;nbsp; It will automatically backup files on my desktop and synchronize them with my laptop, and vice versa.&amp;nbsp; It even works with my mobile phone so that I can easily access frequently used files when I'm away from a computer.&amp;nbsp; It also let's me share files or entire folders with other people.&amp;nbsp; It's not perfect, but it's been nearly perfect for me.&amp;nbsp; But today I discovered an interesting flaw.&amp;nbsp; Admittedly, this is probably a potentially unusual situation, and I'm waiting to hear back from SugarSync Support on whether this is a bug or whether it was a highly unusual fluke, but it definitely got my attention. &lt;br /&gt;&lt;br /&gt;So with that out of the way...&lt;br /&gt;&lt;br /&gt;My desktop machine has been misbehaving lately, primarily in the form of &lt;a href="http://dynamicsgpland.blogspot.com/2011/11/tale-of-two-bsods-diagnosing-windows.html"&gt;Blue Screens&lt;/a&gt;.&amp;nbsp; After further digging, it seems that there is some type of issue with one or more hard drives or the motherboard.&amp;nbsp; To diagnose the issue, I unplugged all drives except the C: drive.&amp;nbsp; I tried booting with just the C: drive, and although Windows will load and work for a while, I am still getting the blue screens.&lt;br /&gt;&lt;br /&gt;Well, a funny thing happened while I was doing those tests.&amp;nbsp; Well, maybe not so funny.&lt;br /&gt;&lt;br /&gt;On my desktop, I have a dedicated C: drive with only Windows and Program files.&amp;nbsp; I store all of my user data and files on a D: drive.&amp;nbsp; That way, if I ever need to reinstall Windows, I can just wipe the C: drive and not worry about losing any data.&amp;nbsp; And naturally, I have SugarSync backup all of my files on the D: drive and synchronize them to my laptop.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;It seems that when I disconnected the D: drive on my desktop, SugarSync decided that I had deleted all of my files.&amp;nbsp; And I mean ALL OF MY FILES.&amp;nbsp; Apparently since it could no longer see the D: drive, it sent messages up to the SugarSync servers telling the Mother Ship that ALL OF MY FILES were deleted.&lt;br /&gt;&lt;br /&gt;And then what happened?&amp;nbsp; Well, when I fired up my laptop, SugarSync on my laptop dutifully downloaded all of the synchronization commands to delete ALL OF MY FILES from my laptop.&lt;br /&gt;&lt;br /&gt;At the time, I was looking for some files on my laptop and noticed that one directory was missing.&amp;nbsp; I checked my backups on my local server to confirm the files existed, and by the time I switched back to my laptop directory listing, everything was gone.&amp;nbsp; Tens of thousands of files and thousands of directories were wiped from my laptop.&lt;br /&gt;&lt;br /&gt;I just stared at the screen in disbelief, thinking that Windows Explorer wasn't refreshing or that I was going blind.&amp;nbsp; But nope, everything had been deleted.&amp;nbsp; In a panic, it took me about 30 seconds to realize what had happened.&lt;br /&gt;&lt;br /&gt;Initially, the first level SugarSync support rep quickly claimed that when SugarSync detects that a drive is missing, it will automatically "disconnect" the synchronized folders, whatever that means.&amp;nbsp; But clearly that didn't occur in my case, and the SugarSync web site shows all of my files have been deleted.&amp;nbsp; I am now waiting for them to review my log files and see if they can figure out what happened.&amp;nbsp; The support rep foolishly closed the chat session with "...please remember that you should not disconnect a drive on which the SugarSync folders are present", which is a preposterous statement, especially since he initially claimed that SugarSync would "disconnect" the backed up folders if a drive was not found.&lt;br /&gt;&lt;br /&gt;And thinking about the obvious real world situations, what if you want to backup data on an external USB drive?&amp;nbsp; Does SugarSync suddenly delete files everywhere when you disconnect that drive?&amp;nbsp; What if my D: drive had died?&amp;nbsp; Will my laptop be wiped out when that happens too?&amp;nbsp; It doesn't make any sense that the files should be deleted when a drive is no longer detected.&lt;br /&gt;&lt;br /&gt;Since I rely heavily on SugarSync (or at least I used to before this happened), I apparently need to test all of these scenarios to assess the damage that may occur.&lt;br /&gt;&lt;br /&gt;Fortunately, I am only highly annoyed by all of this, primarily because of the time it has wasted and will continue to waste until I get a resolution.&amp;nbsp; I'm not going insane for a few reasons:&lt;br /&gt;&lt;br /&gt;1. It appears that all of my files are still present on the SugarSync servers, but are marked as deleted.&amp;nbsp; So I'm guessing they should be able to revive them, assuming their second level support is more competent their their first level reps.&amp;nbsp; I could double click on the deleted files to restore them myself, but I am waiting for them to figure out what happened before I touch anything.&lt;br /&gt;&lt;br /&gt;2. My D: drive on my desktop did not die, I just had to unplug it, so my files are still intact on that drive.&amp;nbsp; But I am now very wary of plugging the drive back in, should SugarSync decide that it needs to wipe that drive as well.&lt;br /&gt;&lt;br /&gt;3. I also use Carbonite to backup all of the files handled by SugarSync, plus many, many more, so I have another copy on Carbonite's servers.&amp;nbsp; Apparently Carbonite does not have the same flaw as SugarSync and does not immediately delete my files when the drive is not connected.&amp;nbsp; But Carbonite sometimes gets back logged with my photos and other large files I backup, so files that I change regularly may be several days old on the Carbonite server.&lt;br /&gt;&lt;br /&gt;4. Every evening a scheduled task runs on my desktop that uses RoboCopy to backup my files from my desktop to my file server.&amp;nbsp;&amp;nbsp; Unfortunately because of the issues with my desktop, it looks like it has been a few days since that ran successfully. &amp;nbsp; So I do have another copy of everything, but several files will be a few days old.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So this has been a good lesson about an ironic downside to a seemingly fantastic backup solution.&amp;nbsp; And it's been a good, albeit unwanted, test of my neurotic multi-layered backup strategy.&amp;nbsp; It seems to work, but like most things, it isn't perfect.&amp;nbsp; I now have some clear validation that you can't have too many backups...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE 1:&lt;/b&gt;&amp;nbsp; I have since had several rounds of discussions with the very mediocre support at SugarSync, and they have essentially confirmed that SugarSync is designed to delete all of your files on all of your synchronized computers if a hard drive is no longer detected or a drive fails.&amp;nbsp; They have effectively said that SugarSync isn't a backup solution--it's a synchronization solution, and if a non-system drive fails on any of your synchronized computers, then SugarSync is supposed to consider all of the files on that drive deleted, and that all of those files should therefore be deleted on every other computer that is synchronized.&amp;nbsp; Of course this is preposterous, as I think anyone would agree there is an obvious difference between a hard drive disappearing on a system and a file being deleted.&amp;nbsp; Heaven forbid if you change the drive letters on a computer--I assume that would cause SugarSync to delete everything as well.&lt;br /&gt;&lt;br /&gt;All of the deleted files are technically available to recover via their web site, but you have to recover each sub-directory individually.&amp;nbsp; There is no way to recover a directory and all of its sub-directories.&amp;nbsp; For serious users with thousands or even just hundreds of directories, this is a nightmare.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE 2:&lt;/b&gt;&amp;nbsp; Since I now know that I can't rely on SugarSync to safeguard my data, I now use Acronis TrueImage to make a full image backup of my D: drive, along with the existing full image backup of my C: drive.&amp;nbsp; Because you can't have too many backups!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE 3:&lt;/b&gt;&amp;nbsp; A reader, Loren M., saw my post and appears to have experienced the same hassle I did, so it seems that this is not a random issue.&amp;nbsp; And as he points out, the irony is that a casual / non-critical SugarySync user would probably never experience this issue--only the serious power user with multiple hard drives and multiple synchronized computers would encounter this issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;Steve,&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;It  is interesting you would note this.&amp;nbsp; Unfortunately I can conclusively  confirm that SugarSync has not fixed the problem since you reported it,  since I fell victim to the &lt;/i&gt;&lt;i&gt;&lt;u&gt;same fate&lt;/u&gt; with terrifyingly  similar results.&amp;nbsp; I also discovered a few additional tidbits of  information… To go through the reason you mentioned point by point and  why I think people should still be worried:&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;First,  take no comfort in the idea that SugarSync allows you to recover your  deleted items. &amp;nbsp;I also had thousands of directories and subdirectories  on my system.&amp;nbsp; The initial problem in trying to recover these files is  that each and every one of these subdirectories must be recovered  individually – there is no way to select one directory and all the  subdirectories below it, each subdirectory (and underlying subdirectory)  must be opened, and all the files selected, and a restore stared.&amp;nbsp; This  alone may take the better part of one’s life to work through.&amp;nbsp; However  even those willing to suffer through this will be disappointed with the  results. &amp;nbsp;I found major sections of my file structure were no longer  recoverable at all – the subdirectories simply did not exist on the  SugarSync server. They were just gone.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;In  my situation, the removed drive was only disconnected for an hour or  so.&amp;nbsp; It automatically remounted itself, by that time it came back online  SugarSync had already decided to delete all the synchronized files from  my three other computers.&amp;nbsp; When the offline drive came back, it then  “synchronized” with the deleted computers and also deleted everything.&amp;nbsp;  If the reason you or anyone is using SugarSync is to have a “backup”  copy, you should stop using SugarSync right now even if you have paid  for it.&amp;nbsp; Once you have SugarSync up and running, it is &lt;/i&gt;&lt;i&gt;the opposite of a backup – loss of your document drive on &lt;/i&gt;&lt;i&gt;any  of your synchronized computers will ensure it will be deleted from each  and every computer you are syncing to.&amp;nbsp; This is the worst possible  “fail deadly” configuration imaginable for “backup” system, yet it is  exactly how SugarSync operates and this can be proven by repeatable  testing.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The  only possible way to save yourself from the horrors of SugarSync is to  backup all of your data somewhere else.&amp;nbsp; I happened to be using  Crashplan, which is the only way I got my data back.&amp;nbsp; If anyone out  there is using SugarSync – and I can’t stress this enough – a separate  backup tool &lt;/i&gt;&lt;i&gt;must also be used which does not rely on SugarSync to  protect data.&amp;nbsp;&amp;nbsp; Keep in mind however that if the backup tool is running  in the background or on some schedule, there may well come a time when  SugarSync has deleted all of the data from the drive being backed up –  recovery of deleted files from the backup service is the only possible  route at this point, but this too can be problematic since the backup  service has no way of discerning what was intentionally deleted vs. what  SugarSync deleted when it went crazy.&amp;nbsp; &lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;In  a scenario eerily similar to Steve, I was using Allwaysync to  synchronize all my files to my file server.&amp;nbsp; Unfortunately I had been  setup to “synchronize” instead of copy, and since deletions were  synchronized this copy was promptly deleted as well.&amp;nbsp; I have since  switched to a “copy” mode, however it is less than ideal, since it means  nothing I legitimately delete will ever be deleted from the server, and  I’ll have to manage this additional copy manually just to make sure I  don’t suffer the “SugarSync Suicide” again.&lt;/i&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;My  takeaway from this whole experience was that SugarSync is not a backup  solution – it is a synchronization tool with a nasty penchant for  destruction of file systems.&amp;nbsp; To anyone using SugarSync - you need a  separate backup solution (and a very good one) to protect yourself from  what SugarSync will eventually do to you if your synchronized drive goes  bad.&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;Another  insidious aspect of this problem is that “casual” users of SugarSync or  those who are simply using the free few GB as a trial before purchasing  more storage are highly unlikely to ever experience a problem.&amp;nbsp; However  paying customers who are more often than not synchronizing entire  documents devices (on a separate drive) will almost certainly be hit by  this problem at some point, and it will be when they are most vulnerable  -- after a drive failure.&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;i&gt;Good luck, and let’s hope SugarSync addresses these problems soon!&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;Loren&lt;/i&gt; &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5050694530406659598?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5050694530406659598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5050694530406659598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5050694530406659598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5050694530406659598'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/one-significant-flaw-in-sugarsync.html' title='One Massive Flaw in SugarSync:  It is not a backup solution...'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7842174255856409775</id><published>2011-11-08T11:40:00.000-08:00</published><updated>2011-11-08T11:40:51.523-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp 12'/><category scheme='http://www.blogger.com/atom/ns#' term='web client'/><title type='text'>Dynamics GP 12 Web Client Coolness</title><content type='html'>There was a lot of talk at GPPC about the new web client for Dynamics GP 12.&amp;nbsp; It really got me to thinking about how we might incorporate it in to our deployment strategies, and which customers (and prospects) might benefit from it.&amp;nbsp; Of course, there are those that ask for it directly (I see it on requirements lists constantly) but it still leaves me wondering, practically, how the web client will be used.&lt;br /&gt;&lt;br /&gt;I will not pretend to know how to explain the architecture and technology that goes in to delivering the web client, but I can appreciate the effort and complexity of what they have accomplished with it.&amp;nbsp; And here are the practical tidbits I have taken away from the keynote and sessions I have attended here in Vegas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The web client represents a move to a &lt;a href="http://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture"&gt;3 tier architecture&lt;/a&gt;-- a presentation layer, an application/logic layer, and the data layer.&amp;nbsp; From a non-technical perspective, I think the key concept is that the user interface (UI) has been separated from the application/logic layer.&amp;nbsp; So we can have these windows in the web client that use the same application/logic as the hard client, without the need to replicate/duplicate all of the logic contained in Dynamics GP today.&amp;nbsp;Not the most technical answer, I know, but I have to distill these things down to the basics for me :)&lt;/li&gt;&lt;li&gt;The web client windows will include ribbons across the top to initiate actions, and hopefully will also contain sub-windows on separate tabs.&amp;nbsp; And, just like the hard client, you will be able to have multiple windows open at the same time in the web client (woohoo!).&lt;/li&gt;&lt;li&gt;Windows will be dynamically generated using Silverlight, which means all of your dexterity customizations and third party products will be availab, including macro capability.&amp;nbsp; The only hitch in this right now is VBA, which will not transfer to the web client.&amp;nbsp; Microsoft is working on some ideas on how to address this, due to the technical complexity.&lt;/li&gt;&lt;li&gt;I asked specifically about Word Templates and emailing of documents, as these are two items that sometimes complicate terminal server deployments (since Word and Outlook have to be on the terminal server, in the same environment as GP).&amp;nbsp; These are also issues that are still be worked out, and there may be some assumptions about Outlook and/or Word on client machines that are using the web client (which seems reasonable to me).&lt;/li&gt;&lt;/ul&gt;As far as technology goes, if you plan on supporting and deployment the web client, these are the technologies that Microsoft recommends that you familiarize yourself with:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IIS&lt;/li&gt;&lt;li&gt;Dexterity&lt;/li&gt;&lt;li&gt;Silverlight&lt;/li&gt;&lt;li&gt;Web Services&lt;/li&gt;&lt;li&gt;Internet Explorer (including security)&lt;/li&gt;&lt;li&gt;XML&lt;/li&gt;&lt;li&gt;Visual Studio (potentially a tool for modifying the templates used to generate the web client windows)&lt;/li&gt;&lt;/ul&gt;And, of course, you will need to think about how the web client will be used (for your clients, your prospects, or for yourself)&amp;nbsp; and what processes in GP will be initiated via the web client.&lt;br /&gt;&lt;br /&gt;Well, that is my totally non-technical post on the web client.&amp;nbsp; I personally am very excited by the potential, and can't wait to see more.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7842174255856409775?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7842174255856409775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7842174255856409775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7842174255856409775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7842174255856409775'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/dynamics-gp-12-web-client-coolness.html' title='Dynamics GP 12 Web Client Coolness'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6855301266603596656</id><published>2011-11-08T07:36:00.000-08:00</published><updated>2011-11-08T07:36:20.428-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp 12'/><title type='text'>GP12 Update From The Partner Connections Conference</title><content type='html'>The past three days have reminded me of just exactly how old I am.&amp;nbsp; Vegas wears me OUT!&amp;nbsp; And I am not very good at gambling, either. I have been learning and mingling at the GPPC Partner Connections conference in Las Vegas since Saturday.&amp;nbsp; I presented a couple of sessions on Sure Step, and have sat in on sessions covering GP12, the new web client, demo tools, and the fabulous SQL report builder.&amp;nbsp; Very informative and fun few days. &lt;br /&gt;&lt;br /&gt;I thought I would share a few of the most enhancements I heard about in GP12, exciting stuff coming!!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business Analyzer can appear on the home page (Cool!)&lt;/li&gt;&lt;li&gt;Customizable area pages (Also cool!)&lt;/li&gt;&lt;li&gt;Select printer at the time of printing (oh, my, so super cool that it garnered applause...long time coming)&lt;/li&gt;&lt;li&gt;Reprint PM check remittance (much-requested)&lt;/li&gt;&lt;li&gt;Print SQL reports from a Dynamics GP form (I can't help but wonder if this is a precursor for SQL reports to be able to replace a Dynamics GP report similar to Word templates)&lt;/li&gt;&lt;li&gt;Subledger reconciliation for Bank Rec to GL (also much-requested)&lt;/li&gt;&lt;li&gt;Prepayments on purchase orders (yay!)&lt;/li&gt;&lt;li&gt;Bank rec void indicator, so if you try to void a check that is reconciled you will get a message (will help so many customers avoid this issue!)&lt;/li&gt;&lt;li&gt;BAI format for EFT&lt;/li&gt;&lt;li&gt;Document attachment (not quite document management, but it is a cool start...with the documents stored in the SQL server)&lt;/li&gt;&lt;li&gt;PO tolerance handling (I get so many questions about this, so I am very excited!)&lt;/li&gt;&lt;/ul&gt;Also, big changes coming in Fixed Assets, it sounds like a real overhaul including:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Historical depreciation reporting&lt;/li&gt;&lt;li&gt;Mass deprecation reversal&lt;/li&gt;&lt;/ul&gt;So, when will we have a chance to see these enhancements in action?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Feb 2012- TAP program&lt;/li&gt;&lt;li&gt;Mar 2012- Convergence&lt;/li&gt;&lt;li&gt;July 2012- Beta program&lt;/li&gt;&lt;li&gt;Sept 2012- GP Technical Airlift&lt;/li&gt;&lt;li&gt;Oct/Nov 2012- Launch activities&lt;/li&gt;&lt;/ul&gt;Also, I should mention one of the biggest enhancements- the new GP web client!!&amp;nbsp; Will post more on that later.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6855301266603596656?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6855301266603596656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6855301266603596656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6855301266603596656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6855301266603596656'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/gp12-update-from-partner-connections.html' title='GP12 Update From The Partner Connections Conference'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-8158342231881655526</id><published>2011-11-05T18:26:00.000-07:00</published><updated>2011-11-05T18:26:51.832-07:00</updated><title type='text'>Simplifying Your Passwords</title><content type='html'>A few months ago, I came across three great items regarding passwords.&lt;br /&gt;&lt;br /&gt;The first is &lt;a href="http://xkcd.com/936/"&gt;an excellent comic&lt;/a&gt; on &lt;a href="http://www.blogger.com/goog_1341572052"&gt;XKCD&lt;/a&gt;&lt;a href="http://xkcd.com/"&gt;.com&lt;/a&gt;.&amp;nbsp; It helps to debunk a common misinterpretation about passwords:&amp;nbsp; that passwords must be "complex" in order to be effective.&amp;nbsp; Or perhaps more accurately, it reframes the concept of "complexity" with regard to passwords.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://xkcd.com/936/"&gt;&lt;img border="0" height="323" src="http://imgs.xkcd.com/comics/password_strength.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It makes the great distinction that "hard to remember" (for humans) and "hard to guess" (for computers) are two very different things, and demonstrates that it is possible to have a password that is easy for you to remember, yet very secure against brute force attacks performed by a computer.&lt;br /&gt;&lt;br /&gt;It's an excellent explanation in comic form, and great lesson about how to think differently about passwords.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The second resource is an &lt;a href="https://www.grc.com/haystack.htm"&gt;informative article and tool by Steve Gibson&lt;/a&gt; at &lt;a href="http://grc.com/"&gt;GRC.com&lt;/a&gt;.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Steve's "password haystack" concept is insightful, and is very similar to the XKCD lesson.&amp;nbsp; Steve's calculations with "search space" are different than XKCD's calculation with entropy, but Steve explains that in terms of brute force password guessing (versus attacking the underlying encryption algorithm or keys), it's the search space that matters, not entropy.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;And the key lesson is that increasing the search space is MUCH easier than increasing the entropy.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;He provides a nice demonstration comparing two sample passwords:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: center;"&gt;D0g.....................&lt;br /&gt;&lt;br /&gt;PrXyc.N(n4k77#L!eVdAfp9&lt;/div&gt;&lt;br /&gt;Which one do you think is more "secure"?&lt;br /&gt;&lt;br /&gt;Which one is easy to remember and type?&lt;br /&gt;&lt;br /&gt;The first password, "D0g", followed by a bunch of periods, theoretically wins on both counts.&amp;nbsp; As he points out, the first one may have much less entropy, but when it comes to brute force password crackers, the only aspect of entropy that matters is making sure that you are using at least one character from each "type": uppercase letters, lowercase letters, numbers, and symbols.&amp;nbsp; Once you have at least one of each of those (preferrably more than just 4 characters), you can then start using padding to dramatically increase your search space.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The third item is a comment that a friend made when I discussed this topic with him.&amp;nbsp; He works alot with IT security, and he pointed out that "password" is semantically flawed.&amp;nbsp; We should refer to them as "pass-phrases".&amp;nbsp;&amp;nbsp; If we can transition away from the idea of using a single "word", to phrases that can contain multiple words, it should increase the search space, and also increase the ease of memorization.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Together, I think these provide a great basis for how we should start thinking about passwords, and how they should educate users about passwords.&lt;br /&gt;&lt;br /&gt;Users hate passwords like "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dqkGx^D,c=41S5a&lt;/span&gt;", but something like "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Fargo Is #1!!!&lt;/span&gt;" can be memorized very quickly, and can be recalled very easily.&lt;br /&gt;&lt;br /&gt;So, having learned all of this, how do I use it?&lt;br /&gt;&lt;br /&gt;I have been using RoboForm for securely managing all of my passwords, so in theory, I only have to remember one "master password" for RoboForm.&amp;nbsp; I can then let RoboForm use high entropy, difficult to remember passwords, like "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;dqkGx^D,c=41S5a&lt;/span&gt;" for my various web site logins.&amp;nbsp; But in the rare occasions when I have to manually login to a site without RoboForm, those cryptic passwords are a hassle, so I may just convert most of my passwords to "haystack" style passwords.&lt;br /&gt;&lt;br /&gt;Unfortunately, there are probably some applications or web sites that will make it difficult to use these passwords, such as ones that may limit password length, and others that require combinations of passwords and PINs.&amp;nbsp; And there are quite a few "random password" generators that are widely used (including the one in RoboForm) that don't support this methodology, so you will need to come up with your own technique for generating the pass-phrases and using padding.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-8158342231881655526?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/8158342231881655526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=8158342231881655526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8158342231881655526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8158342231881655526'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/simplifying-your-passwords.html' title='Simplifying Your Passwords'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5939103743972085764</id><published>2011-11-03T11:25:00.000-07:00</published><updated>2011-11-05T17:04:44.547-07:00</updated><title type='text'>A Tale of Two BSODs: Diagnosing Windows Blue Screen of Death</title><content type='html'>Ever had a Windows machine display the Blue Screen of Death?&amp;nbsp; Through amazing coincidence, blue screens showed up on both my desktop machine and a client's production Dynamics GP Terminal Server in the same week!&amp;nbsp; I got fed up with the cryptic errors and finally decided to learn how to diagnose the infamous BSOD.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-V8GUy1FJ4p8/TrLZpe6ct0I/AAAAAAAAAVY/HahetGsG-Tg/s1600/BlueScreen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="196" src="http://4.bp.blogspot.com/-V8GUy1FJ4p8/TrLZpe6ct0I/AAAAAAAAAVY/HahetGsG-Tg/s320/BlueScreen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-V8GUy1FJ4p8/TrLZpe6ct0I/AAAAAAAAAVY/HahetGsG-Tg/s1600/BlueScreen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A few months ago I built a new desktop machine. Although there were a few quirks with 64-bit Windows 7, it seemed to work well.&amp;nbsp; Until the day when I started to get the dreaded Blue Screen error.&lt;br /&gt;&lt;br /&gt;Having dealt with blue screens occasionally over the years, my general interpretation is that once you start getting them on a machine, they don't tend to go away on their own.&amp;nbsp; Sure enough, my desktop started to blue screen a few times a week.&lt;br /&gt;&lt;br /&gt;While at my desk, I saw the blue screen occur and flash on my monitors, but my computer instantly rebooted, preventing me from seeing the message.&amp;nbsp; By default, Windows 7 and Server 2008 are set to automatically restart when a "System failure" occurs.&amp;nbsp; This option is set under System Properties -&amp;gt; Startup and Recovery Settings.&amp;nbsp; The first change I made was to disable the automatic restart option so that I could know when the blue screen occured and see the error messages.&lt;br /&gt;&lt;br /&gt;Sure enough, the blue screens showed up again a few days later, but unfortunately, the message displayed wasn't very helpful.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-V8GUy1FJ4p8/TrLZpe6ct0I/AAAAAAAAAVY/HahetGsG-Tg/s1600/BlueScreen.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="http://4.bp.blogspot.com/-V8GUy1FJ4p8/TrLZpe6ct0I/AAAAAAAAAVY/HahetGsG-Tg/s320/BlueScreen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sometimes you will get lucky and see a specific driver listed, like "ETRON_USB_3", which can tell you immediately that a third party USB 3 driver is causing the problem.&lt;br /&gt;&lt;br /&gt;But in my case, since a specific driver wasn't listed on the blue screen, just a cryptic "STOP" error, I didn't have any clues as to a possible cause.&amp;nbsp; I figured that my only option would be to try and reinstall Windows, which isn't on my favorite-things-to-do list.&amp;nbsp; So I put it off and just ignored the occasional crash, knowing I would eventually have to deal with it.&lt;br /&gt;&lt;br /&gt;Then, the other evening, while connected remotely to a client's server, I was suddenly disconnected.&amp;nbsp; When I was able to reconnect, I saw a message indicating that the server had experienced a blue screen and had restarted automatically.&lt;br /&gt;&lt;br /&gt;Figuring that two systems with blue screens in the same week was too much of a coincidence, I took it as a challenge to learn how to diagnose the cause of the dreaded BSOD.&lt;br /&gt;&lt;br /&gt;To my surprise, it turns out that it is shockingly simple to get diagnostic information about the BSOD error--if you know what tools to use and once you know how to use them.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In the Startup and Recovery options in Windows, there is an option to "Write debugging information".&amp;nbsp; In the latest versions of windows, the default setting is to write a "Small memory dump", also known as a "minidump".&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-JZLqtEv1SXY/TrLaOjmpYnI/AAAAAAAAAVg/a3N5CJXFhZ8/s1600/StartupAndRecovery.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-JZLqtEv1SXY/TrLaOjmpYnI/AAAAAAAAAVg/a3N5CJXFhZ8/s320/StartupAndRecovery.jpg" width="273" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;When Windows encounters a "system error", it writes certain diagnostic information to this memory dump file explaining the specific area of the operating system that caused the crash and possible causes of the problem.&lt;br /&gt;&lt;br /&gt;I naively thought that reading memory dumps were some type of complex process that only Wizards at MS Support could perform, but to my surprise, there are several tools available to make the diagnostic process extremely easy.&lt;br /&gt;&lt;br /&gt;I found this &lt;a href="http://blogs.technet.com/b/markrussinovich/archive/2008/12/30/3174871.aspx"&gt;blog post by the famous Mark Russinovich&lt;/a&gt;, which got me started on the "old school" method of reading the debug files using the Microsoft WinDbg utility.&lt;br /&gt;&lt;br /&gt;There are a few challenges with this approach.&amp;nbsp; First, you have to figure out which version of WinDbg you need for your OS, and Microsoft seems to want to make it as difficult as possible to get just that one tool.&amp;nbsp; You either need to download the Windows Driver Development Kit (MSDN subscription and login required), or you have to download the Windows SDK just to get one little EXE file.&amp;nbsp; It's absurd.&amp;nbsp; You then have to try and figure out the extremely arcane tool, since it is obviously not designed to be a polished consumer-friendly product.&lt;br /&gt;&lt;br /&gt;Anyway, I jumped through all of these hoops, installed WinDbg, and read my minidump files.&amp;nbsp; Immediately, the tool showed me the cause of the blue screens:&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Probably caused by : memory_corruption&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wow.&amp;nbsp; With a few clicks, I was able to determine the cause of a blue screen!&amp;nbsp; It seemed like magic.&lt;br /&gt;&lt;br /&gt;So I ran MemTest on my workstation, and sure enough, it instantly showed memory errors.&amp;nbsp; Since I know just enough to be dangerous when it comes to these things, I figured that it was possible that my memory was physically fine, but that there was something else that was causing the issue.&lt;br /&gt;&lt;br /&gt;I booted into the BIOS settings and disabled the XMP memory profile, which has the memory operate at a faster speed.&amp;nbsp; Sure enough, once I saved that setting and ran MemTest again, no errors.&amp;nbsp; I tried changing various settings with XMP enabled to see if I could get XMP working, but I couldn't get rid of the errors, so for now I'm running sans-XMP, which is fine for the relatively simple tasks that I perform on my desktop.&lt;br /&gt;&lt;br /&gt;Feeling very confident after conquering my first BSOD in a matter of minutes, I then decided to diagnose the BSOD on the client's production Dynamics GP Terminal Server.&lt;br /&gt;&lt;br /&gt;I launched WinDbg, set the debug symbol path, and loaded the minidump, and well, unfortunately the results weren't quite as simple as my workstation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Probably caused by : Ntfs.sys ( Ntfs!NtfsDeleteFile+8d3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what does this mean?&amp;nbsp; My interpretation is that something about a file delete operation caused the server to crash.&amp;nbsp; Later on, there is a reference to iexplore.exe, which is Internet Explorer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PROCESS_NAME:&amp;nbsp; iexplore.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is where an expert would be required, since this just doesn't seem to be enough information to determine a specific cause.&amp;nbsp; My only interpretation is that some aspect of Internet Explorer is somehow causing the crash.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;So for now, no magic solutions like what I found with my workstation, but we at least have some information that we can use to monitor the server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Having gone through the process, here's a summary of what I learned:&lt;br /&gt;&lt;br /&gt;1. It seems that WinDbg comes in two flavors, listed on this MSDN Dev Center web page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx"&gt;http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The newer version (6.2.8102 8/23/2011) is included with the Windows Developer Preview WDK (MSDN subscriber only), which seems to work fine for Windows 7 minidump files (and perhaps Server 2008 R2).&amp;nbsp; But when I tried to use this version on the client's Windows Server 2008 (not R2), it spewed a bunch of complaints about being unable to load ntoskrnl.exe.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;So, for Windows 2008 and versions prior to Windows 7, there is a second version (6.12.2.633 2/1/2010), available in the Windows SDK.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=8279"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=8279&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you install the Windows SDK, you only need the Debugging Tools, and can uncheck all of the other options.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. In order to properly read the dump files, you need to first set the symbols path.&amp;nbsp; The Russinovich blog post mentions one (a), but I found a different one on a forum thread that seemed to work better for me (b).&lt;br /&gt;&lt;br /&gt;a)&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;asrv*c:\symbols*http://msdl.microsoft.com/download/symbols&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;b)&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SRV*C:\WebSymb*http://msdl.microsoft.com/download/symbols&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Version (a) worked on my Windows 7 machine with the newer WinDbg, but I had to use bersion (b) with the older WinDbg.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. To perform the debugging, launch WinDbg, select File -&amp;gt; Symbol File Path and paste in one of the symbol paths from above.&amp;nbsp; Then select File -&amp;gt; Open Crash Dump and select your minidump file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Wait a few seconds for WinDbg to analyze the file and display results.&amp;nbsp; Hopefully you see something like the following, including the helpful "Probably caused by" note:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;***********************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;*&amp;nbsp; Bugcheck Analysis&amp;nbsp; *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;***********************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Use !analyze -v to get detailed debugging information.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;BugCheck 24, {1904aa, c941b6a0, c941b39c, 9247f5fc}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Probably caused by : Ntfs.sys ( Ntfs!NtfsDeleteFile+8d3 )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. You should see a link on the text "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;!analyze -v&lt;/span&gt;".  If you click on that link, it will display more information that may help you further diagnose the problem.&amp;nbsp; It's all pretty cryptic looking, but a technical person or developer should be able to pick out a few clues.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. There are apparently other tools that are much easier to use than WinDbg, but may not be as comprehensive.&amp;nbsp; I quickly tried one called BlueScreenView that is amazingly simple and easy to use.&amp;nbsp; The only downside is that it doesn't appear to offer the "Probably caused by" note provided by WinDbg.&amp;nbsp; Once you get familiar with the typical errors, you may not need that helpful message, but I still need that pointer, so for now I'll stick with WinDbg.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My experience has been that blue screen errors are pretty rare these days, but obviously they do still occur.&amp;nbsp; If you are feeling adventurous, hopefully this information helps you navigate the relatively simple process of doing some initial diagnostics on your own before rebuilding a server or paying for a support case.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5939103743972085764?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5939103743972085764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5939103743972085764' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5939103743972085764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5939103743972085764'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/11/tale-of-two-bsods-diagnosing-windows.html' title='A Tale of Two BSODs: Diagnosing Windows Blue Screen of Death'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-V8GUy1FJ4p8/TrLZpe6ct0I/AAAAAAAAAVY/HahetGsG-Tg/s72-c/BlueScreen.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-177997773696098684</id><published>2011-10-27T12:58:00.000-07:00</published><updated>2011-10-27T12:58:09.167-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='payroll'/><title type='text'>TXSHANTY and Tax Sheltered Deductions</title><content type='html'>Whew! Back from vacation and a whirlwind week before and after!&lt;br /&gt;&lt;br /&gt;I have been battling a bit of an odd issue for a client regarding FUTA and SUTA taxable wages.&amp;nbsp; Let me start by giving you some background:&lt;br /&gt;&lt;br /&gt;1. Deduction configured as non-TSA, no tax sheltered boxes marked (Setup-Payroll-Deduction, Cards-Payroll-Deduction)&lt;br /&gt;&lt;br /&gt;2. Activity posted using the deduction code&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp; Deduction setup changed to now be TSA, with three of the tax sheltered boxes marked (Setup-Payroll-Deduction) and change to set up rolled down&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp; Deduction maintenance not updated with new tax sheltered settings, as their was already activity on the code (Cards-Payroll-Deduction)&lt;br /&gt;&lt;br /&gt;So, the bottom line is that the employee deduction maintenance (Cards-Payroll-Deduction) showed no tax sheltered checkboxes marked but the setup did (Setup-Payroll-Deduction).&amp;nbsp; Normally, this would not be a problem.&amp;nbsp; New employees would get the new settings while older employees would not.&amp;nbsp; But then the weirdness began :)&lt;br /&gt;&lt;br /&gt;When printing the FUTA and SUTA summary reports, it was noticed that the wages were off by the amount of these deductions.&amp;nbsp; Both FUTA and SUTA were set&amp;nbsp; up (Setup-Payroll-Unemployment Tax) to NOT include any TSA deductions as wages.&amp;nbsp; But, in this case, the deduction in question was NOT sheltered.&amp;nbsp; So it should NOT have been excluded from wages.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;If we changed the FUTA and SUTA setup to include the deduction as wages, it fixed the employees who did NOT have tax sheltered flags marked.&amp;nbsp; But it created another problem, since it also now included the deduction as wages for employees who DID have the tax shelted flags marked.&amp;nbsp; Eek.&amp;nbsp; Fun.&lt;br /&gt;&lt;br /&gt;So why was it sheltered the deductions that were NOT marked as tax sheltered?&amp;nbsp; All 'cuz of TXSHANTY.&amp;nbsp; Many thanks to Michelle Blaser at Microsoft,&amp;nbsp;who asked the question and had us check this setting.&amp;nbsp; In the&amp;nbsp;UPR00500 field there is a field called TXSHANTY.&amp;nbsp; This is a boolean field, with a zero if NONE of the tax sheltered checkboxes are marked (SHFRFEDTX, SHFRFICA, SHFRSTTX, SHFRLCLTX) or a 1 id any of the tax sheltered checkboxes are marked.&lt;br /&gt;&lt;br /&gt;In the case of these employees that had deductions that were NOT marked as tax sheltered, the TXSHANTY setting was 1 although the tax sheltered checkboxes were all zeroes&amp;nbsp; (SHFRFEDTX, SHFRFICA, SHFRSTTX, SHFRLCLTX).&amp;nbsp; How could this happen?&lt;br /&gt;&lt;br /&gt;Well, with a little testing with Microsoft we found that the rolldown from the setup did not rolldown the tax sheltered checkboxes (SHFRFEDTX, SHFRFICA, SHFRSTTX, SHFRLCLTX) because there was activity but it was still updating the TXSHANTY field behind the scenes.&amp;nbsp; The interesting part of this is that there is not logical situation where TXSHANTY would be 1 while all of the other checkboxes are zero.&lt;br /&gt;&lt;br /&gt;So we used the following scripts to identify and correct the affected records:&lt;br /&gt;&lt;br /&gt;--Run select statement to verify number of records to be affected&lt;br /&gt;select * from UPR00500 where TXSHANTY=1 and SFRFEDTX=0 and SHFRFICA=0 and SHFRSTTX=0 and SFRLCLTX=0&lt;br /&gt;--Run update statement to set Tax Sheltered Annuity field to 0 where are all Tax sheltered tax fields are 0&lt;br /&gt;update UPR00500 set TXSHANTY=0 where TXSHANTY=1 and SFRFEDTX=0 and SHFRFICA=0 and SHFRSTTX=0 and SFRLCLTX=0&lt;br /&gt;--Verify number of affected rows against select statement rows&lt;br /&gt;&lt;br /&gt;Once we did this, FUTA and SUTA now calculate correctly per the settings in GP.&amp;nbsp; On an interesting side note, we also found that something in GP might be resetting the TXSHANTY to zero, although we could not figure out what-- we just noticed that over time (with no as zero.&amp;nbsp; Odd.&lt;br /&gt;&lt;br /&gt;Microsoft is working on writing this up as a quality report, but I thought I would share it with you all in case you run across the same oddity!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-177997773696098684?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/177997773696098684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=177997773696098684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/177997773696098684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/177997773696098684'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/txshanty-and-tax-sheltered-deductions.html' title='TXSHANTY and Tax Sheltered Deductions'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-329444058183554224</id><published>2011-10-12T19:56:00.000-07:00</published><updated>2011-10-12T19:56:39.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='management reporter'/><category scheme='http://www.blogger.com/atom/ns#' term='columns'/><title type='text'>Zero Columns Not Aligning In Management Reporter</title><content type='html'>We had an odd little issue pop up in Management Reporter.&amp;nbsp; One of those little oddities that doesn't seem like much, but is annoying nonetheless.&amp;nbsp; Here is an example of the issue, in a calculated column that is rounded to 1 decimal place:&lt;br /&gt;&lt;br /&gt;1.0&lt;br /&gt;4.4&lt;br /&gt;2.0&lt;br /&gt;3.4&lt;br /&gt;&amp;nbsp;0.0&lt;br /&gt;2.2&lt;br /&gt;&lt;br /&gt;Notice the problem?&amp;nbsp; Look closer.&amp;nbsp; Do you see it?&amp;nbsp; The 0.0 value does not align to the rest of the numbers.&amp;nbsp; Why?&amp;nbsp; Well, the issue is that the 0.0 is actually being rounded from -0.02 (for example).&amp;nbsp; So when it rounds to 0.0 it is not aligned correctly in the column.&amp;nbsp; If it was -.06 it would be fine, as that would round to -1.0.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;A small issue, sure, but one that can be quite annoying in presentation-quality financials.&lt;br /&gt;&lt;br /&gt;Fortunately, it is fairly simple fix.&amp;nbsp; Set the Print Control for the column to NP, and then add a new calculated column with this formula: &lt;br /&gt;&lt;br /&gt;IF B&amp;gt;-.05 AND B&amp;lt;0 THEN 0 ELSE B&lt;br /&gt;&lt;br /&gt;Replace B with the original column that was set to NP.&amp;nbsp; This eliminates the issue with the negative value rounding to the out of alignment 0.0.&amp;nbsp; This is logged as a quality report with Microsoft.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-329444058183554224?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/329444058183554224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=329444058183554224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/329444058183554224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/329444058183554224'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/zero-columns-not-aligning-in-management.html' title='Zero Columns Not Aligning In Management Reporter'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3524826940728475948</id><published>2011-10-12T19:44:00.000-07:00</published><updated>2011-10-12T19:44:21.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='word templates'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Word Templates and Synchronization</title><content type='html'>Yet again, the Developing for Dynamics GP blog has saved me!&amp;nbsp; Having an issue with a field not printing on a Microsoft Word template, my forehead was bruised from beating my head against a desk...and then I stumbled upon this great little article.&amp;nbsp; What a lifesaver if you are having issues with fields not printing on the template, although they do print properly on the report in GP.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/05/06/keeping-word-templates-in-synch-with-report-writer.aspx"&gt;http://blogs.msdn.com/b/developingfordynamicsgp/archive/2011/05/06/keeping-word-templates-in-synch-with-report-writer.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3524826940728475948?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3524826940728475948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3524826940728475948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3524826940728475948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3524826940728475948'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/word-templates-and-synchronization.html' title='Word Templates and Synchronization'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3462503113415058036</id><published>2011-10-09T19:41:00.000-07:00</published><updated>2011-10-09T19:41:01.604-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartlist'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='extender'/><title type='text'>Did You Know? Extender Setup</title><content type='html'>Yes, I am one of the those people that read and re-read the training manuals each time I teach a class or train a customer.&amp;nbsp;&amp;nbsp; So, I was rereading the Extender manual a few weeks ago, and came across an interesting tidbit that many of you may already know.&amp;nbsp; It is recommended that the Auto-Update SmartLists option in the Extender Options window (Microsoft Dynamics GP-Tools-Extender-Options)&amp;nbsp;only be marked in one company.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-q9-9-vZOFwA/TpJUkvW1tVI/AAAAAAAAAJI/QAwlDaBChNw/s1600/Extender+Options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="330" kca="true" src="http://1.bp.blogspot.com/-q9-9-vZOFwA/TpJUkvW1tVI/AAAAAAAAAJI/QAwlDaBChNw/s400/Extender+Options.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This is ﻿due to the fact that SmartLists is system wide, while Extender windows are company-specific.&amp;nbsp; The recommended workaround for this is to mark the option in the "main" company and complete all of your Extender configuration in that same company then export/import the necessary windows to the other companies.&amp;nbsp; There is a KnowledgeBase article that describes the issue and recommended workaround, find it &lt;a href="https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyyuskwotvunvlmrysmoxnwvxksqzklvvn"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp; ﻿&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿In my opinion, this is one of those things that I wouldn't have even thought to worry about.&amp;nbsp; But it can cause a lot of issues including inaccurate/incorrect results in SmartList if you do have the Auto-update option marked in multiple companies. &lt;br /&gt;&lt;br /&gt;Would love to hear from anyone who has run in to issues related to this setting, and how you have managed the "develop all windows in one company" approach when Extender is being used extensively in multiple companies in the same installation.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3462503113415058036?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3462503113415058036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3462503113415058036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3462503113415058036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3462503113415058036'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/did-you-know-extender-setup.html' title='Did You Know? Extender Setup'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-q9-9-vZOFwA/TpJUkvW1tVI/AAAAAAAAAJI/QAwlDaBChNw/s72-c/Extender+Options.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7567949020279211789</id><published>2011-10-09T19:08:00.000-07:00</published><updated>2011-10-09T19:08:21.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='word templates'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Adding Fields To Word Templates</title><content type='html'>Sometimes things are much easier than you would even think possible.&amp;nbsp; I know, I know, hard to believe, right?&amp;nbsp; But a&amp;nbsp; great example of this is adding fields to a Word Template in Microsoft Dynamics GP.&amp;nbsp; So, for example, let's say that I want to add the order date to the SOP Blank Invoice Word Template.&lt;br /&gt;&lt;br /&gt;The Report Writer report actually feeds the XML for the Word Template, so for the field to be available in the Word Template, you must first add it to the report in Report Writer (Microsoft Dynamics GP-Tools-Customize-Report Writer)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jKKPjDJ8dJ4/To9X86XtZeI/AAAAAAAAAIw/oMUfP5DLyV4/s1600/Report+Writer+Adding+Field.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" kca="true" src="http://1.bp.blogspot.com/-jKKPjDJ8dJ4/To9X86XtZeI/AAAAAAAAAIw/oMUfP5DLyV4/s400/Report+Writer+Adding+Field.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Add the field to the correct section of the report, although it doesn't matter cosmetically where it appears.&amp;nbsp;You will also want to make sure that&amp;nbsp;you have security to&amp;nbsp;print&amp;nbsp;the modified report, to ensure that it is pulling the proper data (Microsoft Dynamics GP-Tools-Setup-Alternate/Modified Forms and Reports ID, User Security).&lt;br /&gt;&lt;br /&gt;Next,&amp;nbsp;open the Template&amp;nbsp;Report Maintenance window, Reports-Template Maintenance.&amp;nbsp; Click on the Report Name dropdown, and select More Reports to open the Reports menu.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-gE8uMnJSpD0/TpJNK6fPTDI/AAAAAAAAAI0/3sqe8fOdPpk/s1600/ReportName.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" kca="true" src="http://1.bp.blogspot.com/-gE8uMnJSpD0/TpJNK6fPTDI/AAAAAAAAAI0/3sqe8fOdPpk/s400/ReportName.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Select&amp;nbsp;the Product (in this case, Microsoft Dynamics GP), the Series (in this case, Sales), and the Status should be Modified.&amp;nbsp; Selecting Modified for the Status matches the template to the modified report, enabling the additional fields to be pulled on to the template.&amp;nbsp; Click Select to return to the Report Template Maintenance window.&amp;nbsp; Then click the New button to create a new template.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-XNX1ibPTnQU/TpJPf6cs1kI/AAAAAAAAAI8/1Yyc894pjwY/s1600/AddTemplate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="277" kca="true" src="http://1.bp.blogspot.com/-XNX1ibPTnQU/TpJPf6cs1kI/AAAAAAAAAI8/1Yyc894pjwY/s400/AddTemplate.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿You can choose to create&amp;nbsp;a Blank Template, or From Existing Template.&amp;nbsp; If you choose From Existing Template, select the Template to copy from.&amp;nbsp;Even if you copy from an existing template, the additional fields&amp;nbsp;from the modified report will still be available to be added to the report.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-De8q7M4XsmU/TpJSHMMteGI/AAAAAAAAAJA/fMXf0Ht0iYs/s1600/EditTemplate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" kca="true" src="http://1.bp.blogspot.com/-De8q7M4XsmU/TpJSHMMteGI/AAAAAAAAAJA/fMXf0Ht0iYs/s400/EditTemplate.png" width="375" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Next, click Modify to open the selected template in Microsoft Word.&amp;nbsp; Note that the Order Date field is now available for selection.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VJphPdvdQto/TpJSwe-nfPI/AAAAAAAAAJE/n7zg8wy_RI8/s1600/Report+Available.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" kca="true" src="http://2.bp.blogspot.com/-VJphPdvdQto/TpJSwe-nfPI/AAAAAAAAAJE/n7zg8wy_RI8/s400/Report+Available.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿Now you can add the field to the template as needed.&amp;nbsp; Easy, huh?&amp;nbsp; The downside is that you do need to know Report Writer in order to modify the underlying report so that the field is available in the template.&amp;nbsp; But the good news is that is a rather simple process to make the new fields available on the template.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Good luck! And feel free to share any other tips and tricks you have run across while working with the Word Templates.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7567949020279211789?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7567949020279211789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7567949020279211789' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7567949020279211789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7567949020279211789'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/adding-fields-to-word-templates.html' title='Adding Fields To Word Templates'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-jKKPjDJ8dJ4/To9X86XtZeI/AAAAAAAAAIw/oMUfP5DLyV4/s72-c/Report+Writer+Adding+Field.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5491269269953241848</id><published>2011-10-06T11:59:00.000-07:00</published><updated>2011-10-06T11:59:20.845-07:00</updated><title type='text'>Join Us At The Dynamics GP Partner Conenctions Conference 2011</title><content type='html'>Some more information from the fabulous folks at GPUG/GPCC! Please considering joining us in Las Vegas Nov 6-8 for learning and networking with fellow partners, ISVs, and Microsoft!&lt;br /&gt;&lt;br /&gt;The Dynamics GP Partner Connections (GPPC) Conference 2011 is a unique opportunity for Dynamics GP Partners and ISVs to build connections, share best practices, pick up new skills, develop new or improved strategies to drive revenue, and meet with Microsoft Dynamics GP leaders and influencers to help prepare for and shape the future of Dynamics GP.&lt;br /&gt;&lt;strong&gt;Event: GPPC Connections Conference 2011&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Date: November 6-8, 2011&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Location: Caesars Palace, Las Vegas, NV&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Register: http://www.gppartnerconnections.com/ (Save $100 when you sign up by October 1)&lt;/strong&gt;&lt;br /&gt;The agenda for Connections 2011 includes more than 30 breakout sessions led by fellow GP Partners, MVPs and subject matter experts – including roundtable discussions, interactive workshops and how-to sessions – designed to enhance your GP knowledge and competencies. Additionally, structured networking opportunities are a prime opportunity to develop and strengthen alliances with leading Dynamics GP partners. The event also features an ever-popular Microsoft Town Hall meeting – a rapid-fire Q&amp;amp;A session where you can ask your top GP questions of key Dynamics GP leaders, including Anders Spatzek, Errol Schoenfish, Pam Misialek, Chris Lerum, Chad Sogge, Mark Albrecht and Jeff Hensel. &lt;br /&gt;&lt;strong&gt;Who Should Attend?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Dynamics GP consultants, developers, technical sales engineers, practice managers, project managers, and business leaders.&lt;br /&gt;&lt;strong&gt;Learn More and Register&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You can learn more about GPPC Connections 2011 by visiting the conference website at http://www.gppartnerconnections.com/. Here you’ll find the event agenda, registration information, and complete session descriptions. Note that there is a $100 registration discount that ends October 1st – sign up today and book your travel to take advantage of low registration and air fare rates.&lt;br /&gt;Connections 2011 is held in conjunction with GPUG Summit, the annual conference for the Dynamics GP User Group. Come for Connections and stay for Summit, where you'll have a chance to network, learn and mingle with GP users from around the country. Summit is happening Nov 8-11, 2011 at Caesars Palace – visit www.gpugsummit.com for more information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5491269269953241848?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5491269269953241848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5491269269953241848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5491269269953241848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5491269269953241848'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/join-us-at-dynamics-gp-partner.html' title='Join Us At The Dynamics GP Partner Conenctions Conference 2011'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-175922675516632802</id><published>2011-10-01T18:49:00.000-07:00</published><updated>2011-10-01T18:49:38.157-07:00</updated><title type='text'>Virtual Town Hall Meeting for Microsoft Dynamics GP Partners</title><content type='html'>Hey Partners!&amp;nbsp;Interested in&amp;nbsp;leaning more about&amp;nbsp;upcoming changes to the MPN?&amp;nbsp; Here is your chance!&amp;nbsp; Many thanks to GP Partner Connections (GPPC) for arranging this virtual town hall meeting!&amp;nbsp; "See" you on the call-- Christina&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Microsoft Dynamics GP Partner Connections (GPPC) Town Hall Meeting with Microsoft’s Jeff Edwards&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Join Microsoft's Jeff Edwards, Director of Channel Strategy, for the next GPPC virtual Town Hall Meeting on Wednesday, October 19 at 1:00pm (ET). In this radio talk-show style call, GPPC Director Kim Peterson will talk to Jeff about hot topics that affect Partners and ISVs. This meeting will focus on the MPN transition to Pay for Performance, which will take effect in January 2012. Dial in to understand Microsoft’s perspective on how the changes are landing and the impacts and opportunities for the Dynamics GP Channel.&lt;br /&gt;&lt;br /&gt;You’re also invited to submit your own questions that will be covered in the partner Q&amp;amp;A portion of the call. Please submit your questions to Kim@GPUG.com prior to the event with the subject line ‘Jeff Edwards.’&lt;br /&gt;&lt;br /&gt;Event: Dynamics GP Partner Town Hall Meeting with Jeff Edwards&lt;br /&gt;&lt;br /&gt;Date: Wednesday, October 19&lt;br /&gt;&lt;br /&gt;Time: 1:00 - 2:00pm (ET)&lt;br /&gt;&lt;br /&gt;Cost: Free&lt;br /&gt;&lt;br /&gt;Register: &lt;a href="http://www.gpug.com/events/virtualpartnertownhallmeetingjeffedwards10192011?date=2011-10"&gt;http://www.gpug.com/events/virtualpartnertownhallmeetingjeffedwards10192011?date=2011-10&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Who Should Attend? All Microsoft Dynamic GP Partners and ISVs are welcome to attend the Town Hall Meeting. &lt;br /&gt;About GPPC Town Hall Meetings: It’s more important than ever for partners to have open connections with Microsoft executives. GPPC wants to play an important role by being an advocate to both partners and Microsoft. That’s why we’ve created this exciting series of quarterly Virtual Town Hall Meetings. Dynamics GP VARs and ISVs are invited to this exclusive virtual event on a quarterly basis. The event will help build competencies in the Partner community and provides a means of keeping key Microsoft executives in tune with the issues and topics partners care about. &lt;br /&gt;About Jeff Edwards: Jeff is responsible for Microsoft's ERP Partner Strategy which includes partner program (MPN) requirements, Partner branding and Partner compensation.&lt;br /&gt;About GPPC: GP Partner Connections (GPPC) is a peer-to-peer, independent professional networking group for Dynamics GP Implementation Partners and ISVs. GPPC is dedicated to increasing the knowledge and competency of Implementation Professionals, Consultants, and Technical Sales Engineers. The group provides a conduit for all parties to hear, listen, plan and move forward together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-175922675516632802?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/175922675516632802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=175922675516632802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/175922675516632802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/175922675516632802'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/10/virtual-town-hall-meeting-for-microsoft.html' title='Virtual Town Hall Meeting for Microsoft Dynamics GP Partners'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5183074119456210559</id><published>2011-09-30T20:21:00.000-07:00</published><updated>2011-09-30T20:26:39.005-07:00</updated><title type='text'>Limitations of the Dynamics GP eConnect Transaction Requester</title><content type='html'>Dynamics GP eConnect has a "feature" called Transaction Requester that, among other things, allows it to compile a list of all records or transactions that have been inserted, updated, or deleted in Dynamics GP.&lt;br /&gt;&lt;br /&gt;eConnect Requester fundamentally consists of SQL Server database triggers that monitor changes to the Dynamics GP database tables and record any inserts, updates, or deletes that are made to that table.&amp;nbsp; When the triggers detect a change, they write a record to the eConnect_Out table.&lt;br /&gt;&lt;br /&gt;If you want, you can also use the eConnect Outgoing Service, which can output XML files or send XML to a queue in MSMQ.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;eConnect Requester is a feature that is very valuable for integrations where Dynamics GP is the system of record and data needs to be sent from Dynamics GP to an external system.&amp;nbsp; For instance, if an external system needs the ability to create purchase requisitions, you may want to automatically send all new or updated vendor records and inventory items from GP to that system so that they only need to be maintained in GP.&amp;nbsp; Or if you use a third-party logistics vendor or fulfillment center, you may need to send purchase orders or sales invoices to those facilities so that they can receive and ship your products.&lt;br /&gt;&lt;br /&gt;This all sounds great, and in concept it is, but there is one significant fundamental limitation to eConnect Requester.&amp;nbsp; If you look at the eConnect_Out database table, you will see that it really only tells you which table was updated, the index value (document number) for the record, and whether the record was inserted, updated, or deleted.&lt;br /&gt;&lt;br /&gt;This approach typically works fine for two types of database records:&amp;nbsp; Master records, such as customers, vendors, items, GL accounts, etc., and transaction records that are &lt;u&gt;posted&lt;/u&gt; and fully committed, such as posted GL journal entries, posted vouchers, posted receivables transactions, etc.&lt;br /&gt;&lt;br /&gt;This means that eConnect Requester has some drawbacks with transactions that are not posted, such as Purchase Orders.&amp;nbsp; Purchase Orders are somewhat unique because they can be created, saved, edited, approved, printed, released, changed, printed again, voided, and deleted.&amp;nbsp; This is a challenge because eConnect Requester doesn't track these higher level document "states" or status--it only tells you whether a new record has been inserted into a table, whether a record has been updated, or whether a record has been deleted.&lt;br /&gt;&lt;br /&gt;This is a limitation / challenge / problem when you have to export purchase orders.&amp;nbsp; Let's say that you are sending purchase orders to an external 3PL warehouse that will be receiving your inventory.&amp;nbsp; The warehouse needs to receive any new purchase orders that have been entered into Dynamics GP.&amp;nbsp; But not every PO.&amp;nbsp; You probably don't want to send unapproved POs.&amp;nbsp; And you probably don't want to send unreleased POs.&amp;nbsp; So when your export process sees a PO record in the eConnect_Out, you can't just assume that it is ready to be exported.&amp;nbsp; You have to check the status first and determine whether the PO has been approved and released.&lt;br /&gt;&lt;br /&gt;So what if the PO is then changed?&amp;nbsp; Maybe a line is added, another line is cancelled, and one or more quantities are updated.&amp;nbsp; Your 3PL warehouse needs to know about these changes so that they can receive against accurate purchase orders.&amp;nbsp; The warehouse doesn't want the entire PO sent to them after every change--they only want the changes sent to them.&lt;br /&gt;&lt;br /&gt;Quickly you will learn that eConnect Requester can't tell you about any of those things.&amp;nbsp; Even though Purchase Order Line (POP10110) is an option in the Requester Setup, it turns out that the Requester only tells you that a PO record in the POP10100 table has been updated.&amp;nbsp; You have to figure out what changed on that purchase order and whether that change needs to be sent to the 3PL warehouse.&amp;nbsp; And unfortunately, eConnect requester offers no help there.&lt;br /&gt;&lt;br /&gt;One approach is to store a copy of every PO line that has been exported.&amp;nbsp; That way you essentially have a full copy of the PO and all of its lines and quantities, so if anything changes on the PO, you can compare the old values to the current values to determine what has changed.&amp;nbsp; This may seem like a fair amount of overhead just to export POs, but it isn't difficult, works well, and has the benefit of serving as an audit trail for the export process, allowing you to verify that records were exported properly.&amp;nbsp; But, you have to write the queries and code that will perform all of the comparisons, and handle all of the logic to determine what to export when a PO is changed.&amp;nbsp; Trust me when I say that this can get very, very tricky for reasons you would least expect.&lt;br /&gt;&lt;br /&gt;Although this "limitation" does seem burdensome, eConnect Requester can't fulfill all requirements, so it fulfills the fundamental and basic ones, and you are free to develop a solution that meets your specific business requirements.&lt;br /&gt;&lt;br /&gt;Overall, eConnect Transaction Requester is a great, reliable resource for automating the exporting new data from Dynamics GP--just make sure that you are aware of the limitations before you jump into a project that requires it.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5183074119456210559?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5183074119456210559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5183074119456210559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5183074119456210559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5183074119456210559'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/limitations-of-dynamics-gp-econnect.html' title='Limitations of the Dynamics GP eConnect Transaction Requester'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5613974619090699424</id><published>2011-09-30T18:03:00.000-07:00</published><updated>2011-09-30T18:04:14.254-07:00</updated><title type='text'>Dynamics GP Reminders Make GP Load Very Slowly</title><content type='html'>This week I have been working with a client who is preparing a new SQL Server in preparation for their Dynamics GP 2010 upgrade.&lt;br /&gt;&lt;br /&gt;One strange behavior that he observed is that when he launched Dynamics GP 2010 directly on the SQL Server, it would take over 5 minutes to load.&amp;nbsp; During that time, the GP window would be blank and have the famous "Not Responding" message in the title bar.&lt;br /&gt;&lt;br /&gt;However, when GP was launched on a new Terminal Server, it "only" took about 100 seconds to load.&amp;nbsp; Since we were troubleshooting other issues with the SQL Server, we thought that the server might be the problem.&amp;nbsp; But after running SQL Profiler and tracing the Dynamics GP activity during the load process, we discovered that GP was running over 50,000 queries against the database before the application was usable.&amp;nbsp; Once the queries stopped, GP seemed fine.&lt;br /&gt;&lt;br /&gt;We traced the activity when launching GP on the Terminal Server, and the same 50,000 queries were being run, but for some reason it took less than 2 minutes for GP to fully launch on that server.&lt;br /&gt;&lt;br /&gt;What originally seemed like a SQL Server issue now seemed to be a GP issue.&lt;br /&gt;&lt;br /&gt;Reviewing the queries, we saw that they were against the service contract table, and GP was requesting every single record in that table, one record at a time.&amp;nbsp; After scratching his head for a while, the client realized that the sa user had a reminder related to service contracts.&amp;nbsp; Sure enough, after deleting that reminder, GP loaded fine, and loaded quickly.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://community.dynamics.com/product/gp/f/32/p/31920/54777.aspx"&gt;issue isn't new&lt;/a&gt;, but because the symptoms can vary dramatically from machine to machine, and because reminders for one GP user can be completely different than reminders for another user, it isn't always obvious that reminders are causing the problem.&amp;nbsp; And when this client's reminder was originally setup, it may have worked fine, but as they added thousands of contracts over the years, it would have gradually caused GP to become slower and slower.&lt;br /&gt;&lt;br /&gt;I'm not a fan of the Reminder pop-up window that appears after login anyway, so after seeing how certain reminders can cripple GP, it is just another reason to avoid their general use.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5613974619090699424?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5613974619090699424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5613974619090699424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5613974619090699424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5613974619090699424'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/dynamics-gp-reminders-makes-gp-load.html' title='Dynamics GP Reminders Make GP Load Very Slowly'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-2429080211552242402</id><published>2011-09-29T22:33:00.000-07:00</published><updated>2011-09-29T22:33:14.984-07:00</updated><title type='text'>How do you cope with the torrent of email?</title><content type='html'>Several years ago I was out of town at a conference and I didn't have any internet access during the day.&amp;nbsp; This was before smart phones were in the hands of every teenager, and before 3G wireless internet cards or personal hotspots were common.&amp;nbsp; And I was staying at a cheap hotel that at the time didn't provide internet access.&amp;nbsp; (Gasp! Can you imagine!?!?)&lt;br /&gt;&lt;br /&gt;Yes kids, it was the Stone Age.&lt;br /&gt;&lt;br /&gt;Anyway, after my conference and dinner, I headed to the nearby Starbucks around 8:45pm to use their (then paid) WiFi service.&amp;nbsp; I fired up my laptop, got connected to the internet, and then opened Outlook to deal with the day's e-mail.&lt;br /&gt;&lt;br /&gt;Over 100 e-mail messages slammed into my Inbox, and then the Starbucks employee informed me they were closing in a few minutes.&amp;nbsp; I sat in my rental car in the parking lot in front of Starbucks, with a weak WiFi signal, trying to respond to messages.&amp;nbsp; After a few minutes, I realized it was futile.&amp;nbsp; That was when I realized that there was a specific limit to the number of e-mails that I could handle in a day.&amp;nbsp; It's an arbitrary number, but 100 a day is where things definitely start to fall apart.&lt;br /&gt;&lt;br /&gt;If I were doing nothing else but handling my e-mail, I could easily handle the messages coming in every 5 minutes.&amp;nbsp; And sure, many are probably the dreadful CC messages that infect every Inbox.&amp;nbsp; But the ones that required my attention would still potentially take several minutes to respond to and fill my day.&lt;br /&gt;&lt;br /&gt;So now let's head back to the real world where I actually have to get lots of real work done completely independent of e-mail, and where I am not paid solely to pounce on every e-mail message as soon as that little Outlook envelope icon appears in my system tray.&lt;br /&gt;&lt;br /&gt;Today I was away from my computer at meetings for 3 hours and I received 30 e-mails during that period.&amp;nbsp; My iPhone was vibrating constantly during my meetings and while I was driving.&amp;nbsp; 30 messages may not sound like a lot, but I have so much actual work piled up with looming deadlines that even if I didn't touch my e-mail at all, my day (and evening!) would be completely full.&amp;nbsp; Consider the 75 e-mail messages that I received today, and yesterday, and the day before, and I have a pile of e-mail on my hands.&amp;nbsp; I've received over 1,400 messages so far this month, and although I know there are people who receive far more than that, managing all of those messages represent a major "time suck" for me.&lt;br /&gt;&lt;br /&gt;So why am I writing a blog post instead of doing work?&amp;nbsp; Valid question.&amp;nbsp; I thought I would share a few of the practices that I have used over the last year to try and deal with the endless stream of e-mail that I receive.&amp;nbsp; Collectively, these practices obviously aren't enough to fully resolve my dilemma, but every little bit helps.&lt;br /&gt;&lt;br /&gt;1. Unsubscribe.&amp;nbsp; I receive the usual marketing e-mail from dozens of companies, just like everyone else.&amp;nbsp; For the companies I have used or liked, I used to tolerate their e-mails thinking that I might find something interesting.&amp;nbsp; No longer.&amp;nbsp; Unless I actively receive value from the marketing e-mails, I unsubscribe.&amp;nbsp; If I don't have time to deal with all of my work or client e-mail, I don't need 10 different digests from Linked In groups that I never read.&lt;br /&gt;&lt;br /&gt;2. No More Folders.&amp;nbsp; I used to fastidiously organize my e-mail into folders by client and sometimes by project.&amp;nbsp; I had dozens and dozens and dozens of folders.&amp;nbsp; Naturally, I thought I was just being organized, just in case I needed to find that one message for that one project.&amp;nbsp; I never realized how much time and mental energy I was expending on that useless task.&amp;nbsp; Based on the recommendation of a friend, I got rid of all of them.&amp;nbsp; Other than my Inbox, I now have one folder called "Read", which exists solely to get messages out of my Inbox.&amp;nbsp; Unless I have to specifically reply or somehow follow up on that e-mail, I glance at it, and it then goes straight to the one and only Read folder to get it out of my Inbox.&amp;nbsp; If I ever need to find an e-mail, I will either use the Outlook Search feature (not so great), or &lt;a href="http://www.x1.com/products/professional-client"&gt;X1 Professional Client Desktop Search&lt;/a&gt; (excellent, but not perfect).&lt;br /&gt;&lt;br /&gt;3. Quick Steps:&amp;nbsp; Outlook 2010 has a feature called Quick Steps (a rebranded version of what is available in earlier versions of Outlook).&amp;nbsp; It allows you to define a "macro" of sorts to perform organizational operations on your e-mail.&amp;nbsp; I created a Quick Step called "Read" that will send a message to my single Read folder when I press CTRL+SHIFT+9.&amp;nbsp; I got so sick of dragging messages to the folder using my mouse that I finally looked around and found that Quick Steps would let me do it with a keyboard shortcut.&amp;nbsp; Now I don't even have to touch the mouse to file messages with a vengeance.&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp; Categories:&amp;nbsp; I started using Outlook Categories to try and help me prioritize my e-mail.&amp;nbsp; Although Categories is a nice theoretical concept, it only works if you actually have time to deal with all of the e-mail that you have categorized.&amp;nbsp; I can categorize my messages, but when the e-mails arrive faster than I can clear out the categorized messages, it's a futile exercise and the categories just grow and grow.&amp;nbsp; I'll categorize 10 e-mails, but as I start doing actual work on one of the high priority items (or some other actual work), 10 more e-mails arrive, making my categorized list that much longer.&amp;nbsp; I end up only being able to deal with high priority e-mails, and the "Follow Up" and "Personal" categories just grow indefinitely and collect dust.&lt;br /&gt;&lt;br /&gt;5.&amp;nbsp; Turn Off Notifications:&amp;nbsp; After installing Outlook, the first thing I do is turn off the annoying Outlook desktop notification  messages that appear every single time an e-mail arrives.&amp;nbsp; What a  horrible feature that is designed to distract people and keep  them from doing any productive work.&amp;nbsp; I then disable the sound that  Outlook makes when a new message arrives.&amp;nbsp; Now I only have the little  envelope icon that appears in the system tray, and I'm considering disabling that.&lt;br /&gt;&lt;br /&gt;6.&amp;nbsp; Define "Email Time" and "Email Free Time":&amp;nbsp; If I were to respond to emails as they arrive, I would be constantly interrupted.&amp;nbsp; Even if I just have to glance at an e-mail and file it away, it takes may attention away from the proposal, the code, the estimate, the query, the report, or whatever billable task I'm working on.&amp;nbsp; And if I start to reply to some messages, which is a bad habit I have, then before I know it, 5, 15, or 30 minutes slips by while my real work is left unattended.&amp;nbsp; Now, when I have to focus on certain tasks, I now close Outlook entirely for several hours at a time.&amp;nbsp; I also close my web browser, just to minimize the opportunities for distraction.&lt;br /&gt;&lt;br /&gt;7.&amp;nbsp; Smart Phone: When I got my first Blackberry, I thought that it would be handy to send or receive the occasional e-mail.&amp;nbsp; It was definitely handy, but one thing it made me realize was how much waiting I did when I was out of the office.&amp;nbsp; I realized that at a minimum, I could file away messages while in line for 2 minutes at Starbucks, or while waiting for my order at lunch, and especially while sitting at the airport.&amp;nbsp; Even if you don't compose any e-mail or actively deal with a task related to your e-mail, you can at least file away the messages that don't need to be cluttering up your Inbox, saving some time when you return to your computer.&lt;br /&gt;&lt;br /&gt;8.&amp;nbsp; Spring Cleaning:&amp;nbsp; After sever months of growth, my Inbox will be littered with old threads that I either took care of and forgot to file, or are now obsolete.&amp;nbsp; Occasionally I'll take time to sort messages by sender, quickly scan them, and then file them en masse, clearing out my Inbox to a handful of messages.&amp;nbsp; An empty Inbox is a great feeling.&amp;nbsp; After it's done, I e-mail a few colleagues to brag about how few messages I have in my Inbox--and of course they then reply a dozen times to clutter it up again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I know there are many tools available for managing e-mail, and even more tips and techniques and preferences, but going back to my original point, when the volume of incoming e-mail exceeds a certain threshold, and when I have lots of actual work to do, it eventually overwhelms me.&lt;br /&gt;&lt;br /&gt;How do you cope?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-2429080211552242402?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/2429080211552242402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=2429080211552242402' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/2429080211552242402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/2429080211552242402'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/how-do-you-cope-with-torrent-of-email.html' title='How do you cope with the torrent of email?'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5403711110329817634</id><published>2011-09-28T21:40:00.000-07:00</published><updated>2011-09-28T21:40:57.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='payables'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='check distribution report'/><title type='text'>Hidden Gem- Check Distribution Report</title><content type='html'>Do you need a report to show you the invoices that were paid by a particular check?&amp;nbsp; How about viewing the distributions associated with the invoices that were paid by a particular check?&amp;nbsp; These are fairly common requests, and often lead to a bit of head scratching for users.&amp;nbsp; We look in SmartList, and there really isn't a great option (unless you have SmartList Builder-- but even then, you have to create it) since the relationship between a check and invoices can be one to many (one check can pay many invoices).&lt;br /&gt;&lt;br /&gt;So when I get this question, and the client doesn't own SmartList Builder or they want a solution that is quick and easy, I point them to the Check Distribution Report.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-XI8WhWhEtmQ/ToP1jlfeQAI/AAAAAAAAAIo/jdjIuHPS48w/s1600/CheckDistReportOption.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="257px" kca="true" src="http://2.bp.blogspot.com/-XI8WhWhEtmQ/ToP1jlfeQAI/AAAAAAAAAIo/jdjIuHPS48w/s400/CheckDistReportOption.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Reports-Purchasing-Check Information-Check Distribution&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Click New Option&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When setting up the report option﻿, you can restrict to a range of Vendor IDs, Dates, or Check Numbers.&amp;nbsp; You can also select to Include Dist Types, to include only PURCH type distributions for example.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-NqCWRXwQDlA/ToP1kqhFxjI/AAAAAAAAAIs/DIex_URF-jw/s1600/CheckReport.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181px" kca="true" src="http://1.bp.blogspot.com/-NqCWRXwQDlA/ToP1kqhFxjI/AAAAAAAAAIs/DIex_URF-jw/s400/CheckReport.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Check Distribution Report&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿﻿The report displays each check followed by each invoice paid.&amp;nbsp; The distributions appear directly below each invoice that is listed.&amp;nbsp; This report can be quite handy when trying to track back checks to their associated invoices.&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;I know that similar information can be displayed using SmartList Builder, but this report is a great option when you need a quick solution and/or you don't own SmartList Builder.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5403711110329817634?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5403711110329817634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5403711110329817634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5403711110329817634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5403711110329817634'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/hidden-gem-check-distribution-report.html' title='Hidden Gem- Check Distribution Report'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-XI8WhWhEtmQ/ToP1jlfeQAI/AAAAAAAAAIo/jdjIuHPS48w/s72-c/CheckDistReportOption.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5952268514108601975</id><published>2011-09-28T21:30:00.000-07:00</published><updated>2011-09-28T21:30:42.108-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='check register'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='fica'/><category scheme='http://www.blogger.com/atom/ns#' term='payroll'/><title type='text'>Adding Employer Tax Fields To Payroll Check Register</title><content type='html'>We had an issue pop up this month that was&amp;nbsp;a bit puzzling on the surface.&amp;nbsp; When a client printed the payroll Check Register when the payroll posted, they were getting different results than when they reprinted the same report using Reports-Payroll-Reprint Journals-Check Register.&lt;br /&gt;&lt;br /&gt;On the standard Check Register and Reprint Check Register reports, the Employer FICA taxes are totaled in to one field called Employer FICA Owed.&amp;nbsp; However, on the client's reports, this amount was also broken out in to two additional fields for Employer FICA/Social Security and Employer FICA/Medicare.&amp;nbsp; Given that these fields are not standard on the report, we knew (and confirmed through Microsoft Dynamics GP-Tools-Customize-Customization Maintenance) that the reports were modified.&lt;br /&gt;&lt;br /&gt;In looking at these modified versions of the reports, we noticed that all of the fields matched with the exception of the Employer FICA/Social Security and Employer FICA/Medicare fields that were added to the reports.&amp;nbsp; But, why would the fields be different?&amp;nbsp; If the same fields were added to the reports?&amp;nbsp; Well, that is the big IF.&lt;br /&gt;&lt;br /&gt;So, I opened each report in Report Writer, and here is what I found.&amp;nbsp; There are a total of four fields that store Employer FICA information, two for Social Security and two for Medicare.&amp;nbsp; When working with the Reprint Check Register report, the fields are located in the Payroll Check History table (for the Check Register report, the table is Payroll Work Header): Employer FICA/Med Tax On Tips, Employer FICA/Medicare Withholding, Employer FICA/SS Tax On Tips, and Employer FICA/Social Security Withholding.&lt;br /&gt;&lt;br /&gt;In the client's case, one report was modified to pull only the "withholding" fields while the other report was modified with calculated fields to combine the "withholding" field with the corresponding "tax on tips" field (e.g., Employer FICA/Medicare Withholding + Employer FICA/Med Tax On Tips).&amp;nbsp; And because the client had employees with tips, the amount displayed for each of the FICA fields was off by the FICA on tips.&lt;br /&gt;&lt;br /&gt;So, lesson learned, if you want to add the Employer FICA/Medicare and Employer FICA/Social Security to the payroll check register reports, make sure you either display all four fields or create calculated fields to summarize them appropriately.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5952268514108601975?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5952268514108601975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5952268514108601975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5952268514108601975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5952268514108601975'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/adding-employer-tax-fields-to-payroll.html' title='Adding Employer Tax Fields To Payroll Check Register'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4807091431155821093</id><published>2011-09-23T17:34:00.000-07:00</published><updated>2011-09-23T17:34:36.829-07:00</updated><title type='text'>Gigabyte Motherboard Reboots Multiple Times Before Loading Windows</title><content type='html'>This is completely unrelated to Dynamics GP, but since I just resolved this issue after HOURS of frustration, I wanted to share it in case some other unfortunate individual is experiencing the same issue.&lt;br /&gt;&lt;br /&gt;I recently built two new PCs.&amp;nbsp; One desktop with a Gigabyte GA-Z68X-UD3H-B3 motherboard, and one "server" with a Gigabyte GA-Z68A-D3H-B3 motherboard.&amp;nbsp; Both have Intel Core i7-2600 processors.&lt;br /&gt;&lt;br /&gt;As always, after getting everything installed, the first thing that I did after powering them on was update the BIOS.&amp;nbsp; I then set the BIOS CMOS settings the way I liked, and then went to install Windows.&lt;br /&gt;&lt;br /&gt;But when I tried to install Windows, I noticed something strange.&amp;nbsp; When the system was powered on, it would display the POST screen, then display the AHCI controller screen and drive listing, and then reboot.&amp;nbsp; It would repeat this process and keep rebooting after the AHCI screen.&amp;nbsp; Sometimes it would just start to load Windows, and then reboot, causing Windows to detect a boot failure.&amp;nbsp; Sometimes it would reboot 3 times, sometimes 8 times, sometimes 2 times.&amp;nbsp; Rarely just once.&amp;nbsp; It would even reboot from within the BIOS configuration windows.&lt;br /&gt;&lt;br /&gt;Something definitely felt wrong, but I didn't know where to start.&amp;nbsp; I tried removing some memory, unplugging and disabling any peripherals, changing CPU and memory voltage settings.&amp;nbsp; Nothing seemed to make the systems boot properly.&lt;br /&gt;&lt;br /&gt;I even ordered 24 GB of new RAM, thinking that maybe the memory I purchased wasn't incompatible.&amp;nbsp; But I received the new memory yesterday, plugged it in, but the multiple reboots still persisted.&lt;br /&gt;&lt;br /&gt;Fortunately a friend of mine was available, so he stopped by to help me troubleshoot.&amp;nbsp; After trying everything we could think of, with no success, he suggested that we try the "Reset to factory defaults" option in the BIOS.&amp;nbsp; The Gigabyte boards have a "Reset to Fail Safe Defaults" option, so we tried that.&amp;nbsp; Magically, the system would reboot fine.&lt;br /&gt;&lt;br /&gt;After that, I was able to use the "Optimized" default settings and adjust the other options, and the machines worked fine.&lt;br /&gt;&lt;br /&gt;It seems that after a BIOS update, some invalid values or corruption may exist in some of the CMOS settings.&amp;nbsp; Resetting to a default configuration appears to clear all of those values, reset everything, and provide you with a stable configuration.&amp;nbsp; I've never, ever used that option previously, so it would have never occurred to me to try it, but I'm now a believer.&amp;nbsp; He said that he's seen that recommendation previously from some other motherboard manufacturers, so that is how he was aware of it.&lt;br /&gt;&lt;br /&gt;So, the bottom line is:&amp;nbsp; After updating your BIOS, make sure to reset to default values, and then reconfigure your settings.&lt;br /&gt;&lt;br /&gt;And now I'm off to fill out the RMA form for the extra RAM that I didn't need... &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4807091431155821093?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4807091431155821093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4807091431155821093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4807091431155821093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4807091431155821093'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/gigabyte-motherboard-reboots-multiple.html' title='Gigabyte Motherboard Reboots Multiple Times Before Loading Windows'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-698244697811446946</id><published>2011-09-22T15:00:00.000-07:00</published><updated>2011-09-22T21:52:21.019-07:00</updated><title type='text'>eConnect 2010 Error:  The transaction has aborted</title><content type='html'>I have a client for which I have developed over a dozen eConnect integrations.&amp;nbsp; They have been running on GP 9 for several years, and since the client recently upgraded to GP 2010, I upgraded them all a few months ago.&lt;br /&gt;&lt;br /&gt;Although the upgraded integrations work properly, one issue that we have observed is that several of them receive an error occasionally that simply says "The transaction has aborted."&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;This error is occurring with multiple imports for different entities and transaction types.&amp;nbsp; For example, the error occurs when importing an inventory item, an AR cash receipt, an AR payment application, and a SOP invoice.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The error occurs intermittently and inconsistently, and the error does not seem to be related to any specific entity or transaction.&amp;nbsp; For example, when importing 2,577 inventory items, one item received the error.&amp;nbsp; If the same file is re-imported, a different item will receive the transaction aborted error.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;All of the integrations are submitting each transaction individually, and each of the integrations usually processes thousands of transactions at a time.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If you check your eConnect Event Log, you will see two different messages related to the transaction aborted error.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Example 1:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Action:&amp;nbsp; Create Transaction&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Current User Name:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Input parameters:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Exception type:&amp;nbsp; Microsoft.Dynamics.GP.eConnect.eConnectException&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Exception message:&amp;nbsp; &lt;span style="color: red;"&gt;The transaction has aborted.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Stack Trace:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.ServiceProxy.&lt;span style="color: red;"&gt;CreateTransactionEntity&lt;/span&gt;(String connectionString, String xml)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.eConnectMethods.EntityImportImplementation(String connectionString, String sXML, Boolean isTransaction)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.eConnectMethods.ProcessEntityImport(String connectionString, String sXML, Boolean isTransaction)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.eConnectMethods.CreateTransactionEntity(String ConnectionString, String sXML)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Example 2:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Action: Service Create Transaction&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Current User Name:&amp;nbsp; DELIVERYAGENT\greatplains&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Input parameters:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Exception type:&amp;nbsp; &lt;span style="color: red;"&gt;System.Transactions.TransactionAbortedException&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Exception message:&amp;nbsp; &lt;span style="color: red;"&gt;The transaction has aborted&lt;/span&gt;.&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Stack Trace:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at System.Transactions.&lt;span style="color: red;"&gt;TransactionStateAborted.EndCommit&lt;/span&gt;(InternalTransaction tx)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at System.Transactions.CommittableTransaction.Commit()&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at System.Transactions.TransactionScope.InternalDispose()&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at System.Transactions.TransactionScope.Dispose()&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.eConnectMethods.EntityImportImplementation(String connectionString, String sXML, Boolean isTransaction)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.eConnectMethods.ProcessEntityImport(String connectionString, String sXML, Boolean isTransaction)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.eConnectMethods.CreateTransactionEntity(String ConnectionString, String sXML)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; at Microsoft.Dynamics.GP.eConnect.Service.CreateTransactionEntity(String ConnectionString, String sXML)&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Exception type:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;System.InvalidOperationException&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;Exception message:&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin-left: 0.5in;"&gt;&lt;span style="color: red;"&gt;The requested operation cannot be completed because the connection has been broken.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;After trying several tests and various troubleshooting at the client, we submitted a support case.&amp;nbsp; Aaron at Microsoft called me promptly to review the details, and after searching through his notes and databases, found that this appears to be an issue with eConnect 2010 that was resolved in Service Pack 2.&lt;br /&gt;&lt;br /&gt;The client currently has eConnect 2010 Service Pack 1 installed, so I'm going to install the Post-SP2 June 2011 Hotfix (KB 2561289), which will bring eConnect up to version 11.0.1812, to see if that resolves the issue.&lt;br /&gt;&lt;br /&gt;I'll add an update next week as to whether this resolves the issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-698244697811446946?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/698244697811446946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=698244697811446946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/698244697811446946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/698244697811446946'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/econnect-2010-error-transaction-has.html' title='eConnect 2010 Error:  The transaction has aborted'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4821218653733361787</id><published>2011-09-22T14:21:00.000-07:00</published><updated>2011-10-11T12:15:11.180-07:00</updated><title type='text'>How to Serialize eConnect XML - Properly</title><content type='html'>I'm posting this for my own reference because I can never remember the full syntax and I regularly have to look it up.&lt;br /&gt;&lt;br /&gt;I think I've seen at least 3 or 4 different code samples showing how to serialize eConnect XML in .NET.&lt;br /&gt;&lt;br /&gt;One version, which I think is actually based on sample eConnect code that Microsoft provided years ago, writes the XML out to a file on the hard drive, then reads it back into memory.&amp;nbsp; The first time I saw this my eyes rolled in disbelief.&amp;nbsp; Clearly that is a terrible idea and is completely unnecessary.&lt;br /&gt;&lt;br /&gt;The other versions, which I have used over the last few years, used in-memory techniques to serialize the XML using a combinations of a MemoryStream, XmlTextReader, and StringBuilder.&amp;nbsp; Although these worked fine, the process to use an XmlTextReader and StringBuilder never seemed ideal.&lt;br /&gt;&lt;br /&gt;The best example I've seen so far is the one that &lt;a href="http://mbsguru.blogspot.com/2010/12/microsoft-dynamics-10-econnect-c-40-net.html"&gt;Brian Prince posted on the MBS Guru blog&lt;/a&gt; back in December 2010.&amp;nbsp; The XML Document approach is simple and very clean, and it is the technique I've been using ever since he wrote about it.&lt;br /&gt;&lt;br /&gt;Here is Brian's approach: &lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: consolas;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: #2b91af;"&gt;MemoryStream&lt;/span&gt; memoryStream = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;MemoryStream&lt;/span&gt;();&lt;br /&gt;&lt;span style="color: #2b91af;"&gt;XmlSerializer&lt;/span&gt; xmlSerializer = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;XmlSerializer&lt;/span&gt;(eConnectType.GetType());&lt;br /&gt;xmlSerializer.Serialize(memoryStream, eConnectType);&lt;br /&gt;memoryStream.Position = 0;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;&lt;span style="color: #2b91af;"&gt;XmlDocument&lt;/span&gt; xmlDocument = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;XmlDocument&lt;/span&gt;();&lt;br /&gt;xmlDocument.Load(memoryStream);&lt;br /&gt;memoryStream.Close();&lt;br /&gt;&lt;br /&gt;econnectMethods.eConnect_EntryPoint(&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: consolas;"&gt;&lt;span class="Apple-style-span"&gt;connectionString, &lt;span style="color: #2b91af;"&gt;EnumTypes&lt;/span&gt;.&lt;span style="color: #2b91af;"&gt;ConnectionStringType&lt;/span&gt;.SqlClient,&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: consolas;"&gt;&lt;span class="Apple-style-span"&gt;xmlDocument.OuterXml, &lt;span style="color: #2b91af;"&gt;EnumTypes&lt;/span&gt;.&lt;span style="color: #2b91af;"&gt;SchemaValidationType&lt;/span&gt;.None, &lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: consolas;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP  Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of  Precipio Services, which provides Dynamics GP integrations,  customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4821218653733361787?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4821218653733361787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4821218653733361787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4821218653733361787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4821218653733361787'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/serializing-econnect-xmlproperly.html' title='How to Serialize eConnect XML - Properly'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6843841333234710237</id><published>2011-09-20T07:31:00.000-07:00</published><updated>2011-09-20T10:58:08.996-07:00</updated><title type='text'>Little Tricks With Report Writer Package Files</title><content type='html'>I remember when I figured out that I could open, in Notepad,&amp;nbsp;a package file (Microsoft Dynamics GP-Tools-Customize-Customization Maintenance-Export) containing a report. I thought, hey, that's cool.&amp;nbsp; And then I figured out that I could copy the "guts" of a report from one package to another in order to do something like....make the SOP Other Invoice Form look exactly like the SOP Blank Invoice Form.&amp;nbsp; With that, I thought, hey, that is really cool!&amp;nbsp; So, I thought I had it all figured out-- easy enough to do as long as the tables of the reports were pretty much the same.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;But, then, my coworker Cindy Boersma asked if I knew I could make the SOP Blank History Invoice Form look exactly like the SOP Blank Invoice Form using the same method.&amp;nbsp; Holy cow!&amp;nbsp; No, I did not, although it all makes logical sense.&amp;nbsp; Since all the information, including table names, is in the package file.&amp;nbsp; So, here are the basic steps, adapted from Cindy's notes.&amp;nbsp; As always, please make sure you either keep backups of the package files or the reports dictionary before attempting any of these steps to avoid the loss of your modifications :)&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;1.&amp;nbsp; Export the report you want to use as the "basis" of the other report (Microsoft Dynamics GP-Tools-Customize-Customization Maintenance-Export)&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;2.&amp;nbsp; Open the package file created using Notepad&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;3.&amp;nbsp; At the top of the package file, you should see the component and report name as highlighted in the screenshot below&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-F6NiK9pzxjs/TnjRIGKNDnI/AAAAAAAAAIk/73gSxhco2_g/s1600/packagebefore.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176px" rba="true" src="http://2.bp.blogspot.com/-F6NiK9pzxjs/TnjRIGKNDnI/AAAAAAAAAIk/73gSxhco2_g/s400/packagebefore.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;﻿4.&amp;nbsp; Simply edit these two (2) references to the report name to match the report that you wish to copy the package to (for example, SOP Blank History Invoice Form"). Check Report Writer if you have issues finding the report name (it needs to be the name used in Report Writer for the report, which is also the name that appears across on the top border of the Screen Output window when you print a report to the screen-- NOT the name that prints on the report itself, this is not always the report writer name).&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;5.&amp;nbsp; Next, if the report you are copying to uses different tables (e.g., the SOP Blank History Invoice Form uses the SOP history tables while the SOP Blank Invoice Form uses the SOP work tables), you will need to use Edit-Replace in Notepad to make the substitutions.&amp;nbsp; Now, in this case, it assumes that the field names in the tables are the same.&amp;nbsp; So we find/replace SOP_LINE_WORK with SOP_LINE_HIST and SOP_HDR_WORK with SOP_HDR_HIST.&amp;nbsp; And here are the results...&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-B1c0Hz2K4Qs/TnjRHZi6INI/AAAAAAAAAIg/lCIZmy0pYQE/s1600/Packageafter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173px" rba="true" src="http://4.bp.blogspot.com/-B1c0Hz2K4Qs/TnjRHZi6INI/AAAAAAAAAIg/lCIZmy0pYQE/s400/Packageafter.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;Not only did we replace the component and report identifiers, but the find/replace also updated the table references in the report package as well.&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;﻿6.&amp;nbsp; Now, we can import our package file back in to GP, Microsoft Dynamics GP-Tools-Customize-Customization Maintenance-Import.&amp;nbsp; Remember, no other users can be in Dynamics GP when you complete this process (assuming you are accessing a shared reports dictionary).&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;And there you go.&amp;nbsp; Creating a historical invoice that looks identical to the standard invoice in minutes! So cool.&amp;nbsp; And why I love this job-- learn something new (even if it was sooo obvious) every day!&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6843841333234710237?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6843841333234710237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6843841333234710237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6843841333234710237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6843841333234710237'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/little-tricks-with-report-writer.html' title='Little Tricks With Report Writer Package Files'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-F6NiK9pzxjs/TnjRIGKNDnI/AAAAAAAAAIk/73gSxhco2_g/s72-c/packagebefore.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-1457527796920393292</id><published>2011-09-19T20:11:00.000-07:00</published><updated>2011-09-22T15:02:14.295-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='icon'/><title type='text'>Using Custom Icons to Differentate GP Versions</title><content type='html'>I develop Dynamics GP customizations and integrations for alot of different customers, and currently they are running GP 9, GP 10, GP 2010, and GP 2010 R2 (thankfully nothing older than GP 9!).&amp;nbsp; Most use only the core GP modules, while some use Project Accounting, and a few use Analytical Accounting.&amp;nbsp; Because of this, I have to maintain several different versions of GP on multiple virtual servers.&lt;br /&gt;&lt;br /&gt;This is a pretty standard situation, but one small annoyance I have had is that the GP 10 icon is the same as the GP 2010 icon.&amp;nbsp; So if I have both versions installed on a server, I have to try and differentiate the icons on my start menu, task bar, and desktop so that I can tell which is GP 10 versus 2010.&amp;nbsp; And then I have one machine with GP 2010 and a separate install of GP 2010 R2, so that is also fun.&lt;br /&gt;&lt;br /&gt;I don't know why it didn't occur to me earlier, but tonight I thought I would try and create custom icons for each version of GP.&amp;nbsp; If you are using Visual Studio 2008 or Visual Studio 2010, it's a pretty simple process.&lt;br /&gt;&lt;br /&gt;I already have a standard &lt;a href="http://www.precipioservices.com/gpland/files/Dynamics.ico"&gt;Dynamics GP icon file&lt;/a&gt; that I created several years ago, or if you want to create your own, you can use an &lt;a href="http://www.axialis.com/iconworkshop/"&gt;icon editor&lt;/a&gt; or extractor.&lt;br /&gt;&lt;br /&gt;I just made a copy of the icon file, opened it in Visual Studio, and then added a basic "2010 R2" to the 32x32 icon, and just an "R2" to the 24x24 and 16x16 icons.&amp;nbsp; I've made a similar one for GP 10.&amp;nbsp; And now I can use the same technique to create one for my separate Analytical Accounting, Project Accounting, and Manufacturing installs.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-46PqDpljX1o/TngD5gf5kZI/AAAAAAAAAVI/0XnJI1zPzEY/s1600/icons1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="109" src="http://4.bp.blogspot.com/-46PqDpljX1o/TngD5gf5kZI/AAAAAAAAAVI/0XnJI1zPzEY/s200/icons1.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Obviously desktop icons have a text label, but the custom icons are very helpful for the icons in the system tray.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-n_NbewEQI90/TngD-cwq56I/AAAAAAAAAVM/T4CRdZ8pwA4/s1600/icons2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://1.bp.blogspot.com/-n_NbewEQI90/TngD-cwq56I/AAAAAAAAAVM/T4CRdZ8pwA4/s200/icons2.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, while writing this, I just discovered one very big limitation.&amp;nbsp; The Visual Studio 2010 icon editor does not support editing of 32-bit (color depth) icons.&amp;nbsp; Since I am using my custom icons on a virtual server that I access via RDP, the 16-bit icons are fine for me.&amp;nbsp; But if you want to make 32-bit versions, you'll need a real icon editor, such as the very good &lt;a href="http://www.axialis.com/iconworkshop/"&gt;Axialis Icon Workshop&lt;/a&gt;, or perhaps there is a free product available.&lt;br /&gt;&lt;br /&gt;It appears that Axialis Icon Workshop includes a Visual Studio 2010 Add In, so that's a nice feature if you do much icon editing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP  Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of  Precipio Services, which provides Dynamics GP integrations,  customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-1457527796920393292?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/1457527796920393292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=1457527796920393292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1457527796920393292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1457527796920393292'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/using-custom-icons-to-differentate-gp.html' title='Using Custom Icons to Differentate GP Versions'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-46PqDpljX1o/TngD5gf5kZI/AAAAAAAAAVI/0XnJI1zPzEY/s72-c/icons1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6724209355833097059</id><published>2011-09-09T22:09:00.000-07:00</published><updated>2011-09-09T22:09:55.563-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='process holds'/><category scheme='http://www.blogger.com/atom/ns#' term='sales order processing'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Credit Limits and Sales Process Holds</title><content type='html'>I just finished up a post for the BKD blog on sales process holds, and I thought I might spend a little time here on one the neat side benefits of using process holds.&amp;nbsp; For those of you that are not familiar with them, sales process holds are user-definable holds that you can assign to Sales Order Processing transactions (Quotes, Orders, Invoices, etc) that can prevent the document from being printed, posted, fulfilled, and/or transferred.&amp;nbsp; These holds are quite handy, as they can be applied to ranges of documents, individual documents, or even default when certain document types are used.&lt;br /&gt;&lt;br /&gt;There is a bit of a "bonus" to using sales process holds in tandem with customer credit limits. You can actually specify a process hold to be automatically assigned to a document when the customer exceeds their credit limit.&amp;nbsp; For example, let's say that your credit manager has to review all documents that exceed a customer's credit limit.&amp;nbsp; By assigning the process hold automatically, the credit manager could complete his or her review and remove the holds on those documents that can continue to be processed.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;The setup for this feature is quite simple.&amp;nbsp; Start by setting up the process hold, Microsoft Dynamics GP-Tools-Setup-Sales-Process Holds.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-pFz3HdCKnp8/TmrsLL6p5eI/AAAAAAAAAIQ/rW9o0NoRLD0/s1600/Sales+Process+Holds+Setup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245px" nba="true" src="http://4.bp.blogspot.com/-pFz3HdCKnp8/TmrsLL6p5eI/AAAAAAAAAIQ/rW9o0NoRLD0/s320/Sales+Process+Holds+Setup.png" width="320px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Enter the Process Hold ID and Description.&amp;nbsp; Specify a Password if you want users to enter a password in order to remove the hold.&amp;nbsp; And then mark the items you want to "Apply Hold To".&amp;nbsp; Click Save.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Next, you need to specify the hold on the specify invoice and order types that should automatically have a credit limit hold applied.&amp;nbsp; Go to Microsoft Dynamics GP-Tools-Setup-Sales-Sales Order Processing Setup.&amp;nbsp; Click the Sales Document Setup button and choose either Invoice or Order.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-m3ZNbhx7hoA/Tmrtqc9qehI/AAAAAAAAAIU/_KLMraTzc3s/s1600/Sales+Doc+Setup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="278px" nba="true" src="http://3.bp.blogspot.com/-m3ZNbhx7hoA/Tmrtqc9qehI/AAAAAAAAAIU/_KLMraTzc3s/s400/Sales+Doc+Setup.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Select the Order or Invoice ID, and then select the appropriate process hold in the Credit Limit Hold ID field.&amp;nbsp; Click Save.&amp;nbsp; Now, when you enter an order using this Order ID and the customer exceeds their credit limit, the process hold specified will be automatically assigned to the order.&amp;nbsp; In order for this functionality to work, you CANNOT have a password specified for the "Exceed Credit Limit" option in Receivables Management Setup (Microsoft Dynamics GP-Tools-Setup-Sales-Receivables).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-HYjgUWcv-BI/TmrwD_jka0I/AAAAAAAAAIY/cqnFwRUJo7U/s1600/EXCEED+CREDIT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270px" nba="true" src="http://3.bp.blogspot.com/-HYjgUWcv-BI/TmrwD_jka0I/AAAAAAAAAIY/cqnFwRUJo7U/s400/EXCEED+CREDIT.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;When entering an order that exceeds the customer's credit limit, a warning will be displayed.&amp;nbsp; Choose Continue, and the hold will automatically be applied to the order when it is saved.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5U6YcIKip1w/TmrwFqW5a3I/AAAAAAAAAIc/ITR_dCRa6Dk/s1600/hOLD+APPLIED.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237px" nba="true" src="http://2.bp.blogspot.com/-5U6YcIKip1w/TmrwFqW5a3I/AAAAAAAAAIc/ITR_dCRa6Dk/s400/hOLD+APPLIED.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: left;"&gt;Note that the CREDIT process hold has automatically been applied.&amp;nbsp; How easy is that (to borrow from the fabulous Ina Garten)?&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6724209355833097059?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6724209355833097059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6724209355833097059' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6724209355833097059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6724209355833097059'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/credit-limits-and-sales-process-holds.html' title='Credit Limits and Sales Process Holds'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-pFz3HdCKnp8/TmrsLL6p5eI/AAAAAAAAAIQ/rW9o0NoRLD0/s72-c/Sales+Process+Holds+Setup.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7964048157918975636</id><published>2011-09-07T18:33:00.000-07:00</published><updated>2011-09-07T18:33:18.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='econnect'/><title type='text'>Mysterious eConnect Error:  The stored procedure does not exist.  Watch your schemas!</title><content type='html'>I recently upgraded a Dynamics GP Visual Studio Tools AddIn from GP 9 from GP 2010.&amp;nbsp; The AddIn reviews some GP transactions, performs some calculations, and then inserts new payroll transactions using eConnect.&lt;br /&gt;&lt;br /&gt;The upgrade was straightforward and worked fine on my development server.&amp;nbsp; It installed smoothly on the client server and looked like it was working...right up to the point where the following eConnect error occurred:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;The stored procedure 'taCreatePayrollBatchHeaderInsert' doesn't exist.&lt;/div&gt;&lt;br /&gt;In this particular case, the AddIn was inserting an entire payroll batch, but the specific stored procedure in the error could have been any eConnect procedure.&lt;br /&gt;&lt;br /&gt;I've never seen that type of error before, so I started with the obvious--I checked the SQL database to see if the procedure existed.&amp;nbsp; It definitely did exist in the database.&lt;br /&gt;&lt;br /&gt;I then thought that maybe it was a permission issue, so I confirmed that the eConnect domain user was setup as a SQL Login, and that an eConnect user was properly setup for the company database.&amp;nbsp; I even checked the DYNGRP role to make sure that the stored procedure was listed with EXEC permissions.&lt;br /&gt;&lt;br /&gt;Everything looked fine.&lt;br /&gt;&lt;br /&gt;I did a little research on the error, and saw a post that recommended checking the database connection string.&amp;nbsp; If the database was not specified properly, and the import was somehow referencing the master database or even DYNAMICS, naturally that would cause this type of error.&amp;nbsp; So I added some debugging code, but the connection string looked fine--the proper GP company database was being referenced.&lt;br /&gt;&lt;br /&gt;I was running out of options, so I dug out the Direct Document Sender, a tool used by GP support to troubleshoot eConnect issues.&amp;nbsp; It allows you to specify the database connection info, select an XML file containing the eConnect data to be imported, and then it sends the XML document off to eConnect.&amp;nbsp; This helps to rule out any bugs in your custom integration.&lt;br /&gt;&lt;br /&gt;Interestingly, the Direct Document Sender received the same error message indicating that the stored procedure did not exist.&amp;nbsp; Although it helped to rule out the VS Tools AddIn and its eConnect code, and it helped me realize that there was a lower level issue with the client's environment, I still didn't have any specific clues as to the real cause.&amp;nbsp; I was thinking that maybe it was a problem with the eConnect procedures in the client's databases, or that perhaps something did not upgrade properly from GP 9 to GP 2010.&lt;br /&gt;&lt;br /&gt;As a long shot, I ran the dbmaintenance.exe utility in the Dynamics GP application directory to recreate the Functions and Stored Procedures on the company database.&amp;nbsp; That completed successfully, but when I ran the integration and the Direct Document Sender, both still received the same error.&lt;br /&gt;&lt;br /&gt;As a final test, I wanted to get a baseline to test against in the client's environment, so I created the TWO / Fabrikam test company database.&amp;nbsp; GP Utilities setup the company, and I then went into SQL Server Management Studio and added the eConnect login as a user on the TWO database.&lt;br /&gt;&lt;br /&gt;To perform my test with the Direct Document Sender (which uses Windows authentication to access the SQL Server), I logged into the client's server as the eConnect domain user, just to make sure that no other user account variables were involved.&amp;nbsp; I launched the Sender and started to setup the connection string, but when I went to select the database, TWO was not listed.&amp;nbsp; I verified everything several more times, but TWO didn't show up.&lt;br /&gt;&lt;br /&gt;I then logged out of the server and logged back in as the Administrator.&amp;nbsp; When I did that, the TWO database did show up.&amp;nbsp; Puzzled, I checked and rechecked the eConnect user for the TWO database, but it looked fine.&amp;nbsp; For some reason I couldn't get TWO to appear in the database list.&lt;br /&gt;&lt;br /&gt;Since this didn't make any sense, I went back to the SQL Server Login window for the eConnect user and checked the settings for at least the fifth time.&amp;nbsp; While I was staring at the window, something caught my attention.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-opUBbQPBuwU/TmgWHHQwGHI/AAAAAAAAAVE/ZppjdV6rLmA/s1600/eConnectSchema.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="171" src="http://4.bp.blogspot.com/-opUBbQPBuwU/TmgWHHQwGHI/AAAAAAAAAVE/ZppjdV6rLmA/s400/eConnectSchema.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I scrolled to the right and saw that the user record for the TWO database had a Default Schema of dbo, but the records for the company databases had the eConnect user listed as the Default Schema.&lt;br /&gt;&lt;br /&gt;The light bulb instantly came on and it all made sense.&amp;nbsp; Well almost all.&lt;br /&gt;&lt;br /&gt;If you aren't familiar with &lt;a href="http://msdn.microsoft.com/en-us/library/ms190387.aspx"&gt;SQL Server Schemas&lt;/a&gt;, you should definitely &lt;a href="http://www.sqlteam.com/article/understanding-the-difference-between-owners-and-schemas-in-sql-server"&gt;read about them&lt;/a&gt; just enough to understand what they are.&amp;nbsp;&amp;nbsp; They are not used by GP, so you don't need to be an expert; however, because they are not used by GP, if someone happens to use them in a GP database, it will likely cause problems, so you will need to know just enough to identify, understand, and resolve the issue.&lt;br /&gt;&lt;br /&gt;Because the eConnect SQL user was assigned a Default Schema other than dbo, when eConnect logged into the database and tried to execute the payroll stored procedure, it literally didn't exist.&amp;nbsp; In fact nothing existed--no tables, no stored procedures, nothing.&lt;br /&gt;&lt;br /&gt;I tried changing the Default Schema for the user back to dbo, but for some reason that didn't solve the problem.&amp;nbsp; I had to delete the eConnect user and eConnect schema completely from all databases, and delete the eConnect login for good measure, and then recreate the login and users with the proper dbo default schema.&lt;br /&gt;&lt;br /&gt;Once I did that, the TWO database showed up in Direct Document Sender, and sure enough, eConnect worked just fine.&amp;nbsp; The AddIn immediately started working properly and was able to import payroll batches.&lt;br /&gt;&lt;br /&gt;I'm not entirely sure how the eConnect schema got created on the SQL Server or how it was assigned as the Default Schema for the eConnect user on the company databases.&amp;nbsp; And I don't understand why changing the Default Schema back to dbo didn't fix the problem.&amp;nbsp; But in the end, it was easy enough to remove the users completely and recreate them.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7964048157918975636?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7964048157918975636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7964048157918975636' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7964048157918975636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7964048157918975636'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/mysterious-econnect-error-stored.html' title='Mysterious eConnect Error:  The stored procedure does not exist.  Watch your schemas!'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-opUBbQPBuwU/TmgWHHQwGHI/AAAAAAAAAVE/ZppjdV6rLmA/s72-c/eConnectSchema.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3821496246819594085</id><published>2011-09-02T19:07:00.000-07:00</published><updated>2011-09-02T21:54:12.294-07:00</updated><title type='text'>eConnect 2010:  CreateEntity vs. CreateTransactionEntity</title><content type='html'>If you develop eConnect integrations, you probably know by now that with eConnect 2010, Microsoft changed the method used to submit transactions to eConnect.&lt;br /&gt;&lt;br /&gt;With GP 10 and earlier, there was a single method called "eConnect_EntryPoint".&amp;nbsp; Simple and easy, it accepted all of the eConnect document types.&lt;br /&gt;&lt;br /&gt;With GP 2010, there are now two different methods.&amp;nbsp; There is now a method called "CreateEntity", and a second called "CreateTransactionEntity".&lt;br /&gt;&lt;br /&gt;Although I have one guess, I haven't asked and don't really know why this change was made, or what the rationale was behind implementing two methods--I just hope that some thought was put into it, and I hope that there was some benefit behind the scenes. &lt;br /&gt;&lt;br /&gt;I hope that because it's slightly annoying to have to make two different calls now.&amp;nbsp; By no means a big deal, but just slightly annoying, especially if you are upgrading from eConnect 9 or 10.&amp;nbsp; You have to review your code and make sure that your code to create customers calls CreateEntity, and your code that imports invoices calls CreateTransactionEntity.&lt;br /&gt;&lt;br /&gt;The eConnect 2010 Programmer's Guide provides this mediocre and slightly vague explanation the two new methods:&lt;br /&gt;&lt;br /&gt;&lt;div class="TableText" style="font-family: Verdana,sans-serif;"&gt;&lt;i&gt;CreateEntity:&amp;nbsp; Creates a record using information from an eConnect XML  document. Use CreateEntity to add data entities like customers or vendors. You  specify the type of record to create with a parameter that represents an  eConnect XML document. If the operation succeeds, the method returns True as a  boolean value.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="TableText" style="font-family: Verdana,sans-serif;"&gt;&lt;i&gt;CreateTransactionEntity:&amp;nbsp; Create a transaction using information from an eConnect XML  document. Use CreateTransactionEntity for transaction documents like sales  orders or inventory transactions. You specify the type of transaction to create  with a parameter that represents an eConnect XML document. If the operation  succeeds, the method returns an XML string that represents the eConnect XML  document that was created.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, this is fine for obvious record types like a vendor vs. a voucher, but what if I create a new batch using SMTransactionBatchType?&amp;nbsp; Is a batch an "Entity", or a "TransactionEntity"?&amp;nbsp; That starts to become an existential question, because the current eConnect documentation offers no guidance when discussing each of the transaction types.&amp;nbsp; You're stuck trying both methods to figure out which one to use (hint--the one that causes your app to crash is the wrong one).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;With the griping aside, there is one last thing to pay attention to.&amp;nbsp; Okay, it's really one last gripe.&lt;br /&gt;&lt;br /&gt;Unless you paid very careful attention, you probably missed one critical difference between CreateEntity and CreateTransactionEntity.&amp;nbsp; Do you know what it is?&lt;br /&gt;&lt;br /&gt;They have different names obviously, but they both accept the same parameters, and they both seem to function in the same way.&amp;nbsp; Read the last sentence of each of the paragraphs from the help file quoted above.&lt;br /&gt;&lt;br /&gt;"If the operation succeeds, the method returns True as a  boolean value."&lt;br /&gt;&lt;br /&gt;"If the operation  succeeds, the method returns an XML string that represents the eConnect XML  document that was created."&lt;br /&gt;&lt;br /&gt;WHY????&lt;br /&gt;&lt;br /&gt;Despite having done at least a dozen eConnect 2010 integrations, I apparently hadn't paid close enough attention to that, so I discovered this the hard way:&amp;nbsp; By having to submit a support case.&amp;nbsp; I had upgraded an integration from GP 10, and when I had to create my two eConnect methods, I created a CreateEntity method, then copied that to do a CreateTransactionEntity method.&amp;nbsp; I just changed the eConnect method name and that was it.&amp;nbsp; Except that it wasn't.&lt;br /&gt;&lt;br /&gt;I forgot to change my return variable from a bool to a string.&amp;nbsp; When you make that mistake, you will get this error:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Unexpected error in InsertTransaction: Conversion from string " &amp;lt; eConnect xmlns:xsi="http://www." to type 'Boolean' is not valid.&lt;econnect 'boolean'="" is="" not="" p="" to="" type="" valid.&lt;="" xmlns:xsi="http://www."&gt;&lt;/econnect&gt;&lt;/div&gt;&lt;br /&gt;After inserting the transaction, eConnect returns the XML string, but the code fails when it tries to send that into your boolean return variable.&lt;br /&gt;&lt;br /&gt;Strangely, the .NET compiler didn't catch the mistake, so I thank Chris Roehrich at GP support for pointing out my mistake.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;UPDATE:&amp;nbsp; I just figured out why the .NET compiler didn't catch the problem.&amp;nbsp; This particular eConnect upgrade was the first time I had upgraded an old VB eConnect integration to GP 2010.&amp;nbsp; It seems that the VB compiler does not detect the type mismatch.&amp;nbsp; I just tried the same thing in C#, and the compiler picks it up right away.&amp;nbsp; All of my previous eConnect 2010 integrations and upgrades have been in C#, which is why I never had the issue before.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Why they couldn't just make both methods have the same return type...well, again, I hope there was a some thought put into it and there is a reason and a benefit...&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified IT Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;http://www.precipioservices.com&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3821496246819594085?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3821496246819594085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3821496246819594085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3821496246819594085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3821496246819594085'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/09/econnect-2010-createentity-vs.html' title='eConnect 2010:  CreateEntity vs. CreateTransactionEntity'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3889045990000208094</id><published>2011-08-30T20:29:00.000-07:00</published><updated>2011-09-09T22:09:11.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cost variances'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='inventory'/><title type='text'>The Not So New World Order- Cost Variances and Dynamics GP</title><content type='html'>Once upon a time, Dynamics GP calculated cost variances for FIFO/LIFO perpetual valuation method items&amp;nbsp;in purchase order processing, sales order processing, and/or inventory control and didn't always post to the general ledger.&amp;nbsp; This was widely, I think, understood and the importance of printing and reviewing the Cost Variance Journal was drummed in to users collective noggins everywhere.&amp;nbsp; And then came Dynamics GP 9.0.&amp;nbsp; Yes.&amp;nbsp; 9. Point. O.&lt;br /&gt;&lt;br /&gt;Why am I writing about this now?&amp;nbsp; Well, although there are definitely articles out there on cost variances, it seems like most of them are from the pre-9.0 world or have not been completely updated correctly.&amp;nbsp; So, after a lovely chat with Pam Peterson at Microsoft today, I thought...heck, why not, let's lay it all out for everyone!&lt;br /&gt;&lt;br /&gt;In the purchase order processing training manual, there is a section (at the end of Receivings Transaction Entry) that outlines&amp;nbsp;three different kinds of cost variances related to FIFO/LIFO perpetual items.&amp;nbsp; Here they are in a nutshell.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Scenario #1&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Item has a quantity on hand of 5 with a current cost of $1&lt;/li&gt;&lt;li&gt;A quantity of 15 is sold, causing the item to go negative, this sale would be recorded with a unit cost of $1&lt;/li&gt;&lt;li&gt;So, in the IV10200 (Inventory Purchase Receipts table), you would now have an override layer for the amount that was overriden (in this case, 10)&lt;/li&gt;&lt;li&gt;A quantity of 20 is now received and invoiced in purchasing, with a unit cost of $1.25&lt;/li&gt;&lt;li&gt;This creates a variance of $2.50 (.25 variance X 10) for COGS and Inventory&lt;/li&gt;&lt;li&gt;This variance will print on the Cost Variance Journal when the receipt is posted&lt;/li&gt;&lt;li&gt;Now, here is where it gets tricky...&lt;/li&gt;&lt;ul&gt;&lt;li&gt;In GP 8.0 and earlier, this variance would NOT be automatically created in the GL&lt;/li&gt;&lt;li&gt;In GP 9.0 and later, this variance IS automatically created in its own GL entry &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;On a side note, the adjustment outlined above is only created automatically if the transaction that caused the override was recorded in the system in GP 9.0 or later.&amp;nbsp; This ensures that the "outflow" record is properly recorded in the IV10201 (Inventory Purchase Receipts DetaiL) table.&amp;nbsp; When upgrading from versions earlier than 9.0, the system arbitrarily selects the most recent receipt for an item and creates a dummy outflow for it only.&amp;nbsp; For this reason, if you test this process using an item in Fabrikam that is already negative, it will most likely NOT create the adjustment automatically.&amp;nbsp; This is due to the fact that the data in Fabrikam has been upgraded from version to version.&amp;nbsp; If you want to test out this scenario, make sure you do the whole process, and don't just start with an item that is already negative. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Scenario #2&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Item has a positive quantity on hand of 10&lt;/li&gt;&lt;li&gt;A quantity of 10 is received in purchasing, with a unit cost of $1&lt;/li&gt;&lt;li&gt;A quantity of 10 is then invoiced in purchasing, with a unit cost of $1.25&lt;/li&gt;&lt;li&gt;This results in&amp;nbsp;a $2.50 variance between the original cost posted and the the invoice (.25 variance X 10)&lt;/li&gt;&lt;li&gt;In this case, the difference is handled in the posting of the invoice.&amp;nbsp; It will be recorded to the inventory account or to the purchase price variance account (depending on if revalue has been selected on the Item Purchasing Options, Cards-Inventory-Item Purchasing Options).&lt;/li&gt;&lt;li&gt;The Purchasing Invoice Cost Variance Journal&amp;nbsp;will print&amp;nbsp;to detail the variance and will note that no manual adjustment needs to be made to COGS/Inventory.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Scenario #3&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Item has a positive quantity on hand of 10&lt;/li&gt;&lt;li&gt;A quantity of 10 is received in purchasing, with a unit cost of $1&lt;/li&gt;&lt;li&gt;A quantity of 15 is sold to a customer, with a unit cost of $1&lt;/li&gt;&lt;li&gt;A quantity of 10 is then invoiced in purchasing, with a unit cost of $1.25 (price to customer $3/each)&lt;/li&gt;&lt;li&gt;This results in a $1.25 variance between the original cost posted and the the invoice (.25 variance X 5)&lt;/li&gt;&lt;li&gt;In this case, the difference is also handled in the posting of the invoice.&amp;nbsp; It will be recorded&amp;nbsp;to cost of goods sold, inventory, and purchase price variance (if the item is not marked to revalue).&lt;/li&gt;&lt;li&gt;The Purchasing Invoice Cost Variance Journal will print to detail the variance and will note that no manual adjustment needs to be made to COGS/Inventory.&lt;/li&gt;&lt;/ul&gt;Hope this helps to simplify cost variances, and the associated GL impact in GP.&lt;br /&gt;&lt;br /&gt;For more information on the GL entry that is created by the variances, refer to &lt;a href="https://mbs2.microsoft.com/Knowledgebase/kbdisplay.aspx?wtntzsmnwukntmmyxpvsklryklwntmmryvootzlupxskmlls"&gt;TK #2448193&lt;/a&gt;.&amp;nbsp; And for more information on cost variances and perpetual valuation methods, including average perpetual, refer to this &lt;a href="https://mbs.microsoft.com/customersource/documentation/howtodocuments/msd_gpinfoenhancementscalcavg.htm?printpage=false&amp;amp;sid=4aqtk41xy2rnx5lvgi3iafhm&amp;amp;stext=cost variance journal dynamics gp"&gt;article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3889045990000208094?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3889045990000208094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3889045990000208094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3889045990000208094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3889045990000208094'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/not-so-new-world-order-cost-variances.html' title='The Not So New World Order- Cost Variances and Dynamics GP'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-628905602817137014</id><published>2011-08-17T21:45:00.000-07:00</published><updated>2011-08-17T21:52:07.348-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='sql reports'/><category scheme='http://www.blogger.com/atom/ns#' term='payroll'/><title type='text'>Sherlock Holmes I Am Not- Finding Missing Deductions and Benefits</title><content type='html'>This week I am spending a couple of days back in the old neighborhood (Denver, Colorado) training a client on reporting tools (Report Writer, SmartList Builder, and SQL Reporting Services).&amp;nbsp; After spending this morning discussing table structure and selecting a reporting tool, we dove in to working on reports this afternoon.&amp;nbsp; In our brainstorming session for reporting ideas/issues, I was asked for a way to "check" if employees had been set up for the occupational tax here in Denver.&amp;nbsp; We do this by assigning to a benefit and deduction for the "head tax", rather than using the local tax feature in GP as there are some unique aspects to how Denver calculates the tax.&lt;br /&gt;&lt;br /&gt;It is easy enough with SmartList or even Report Writer to test for those that do have the benefit or deduction.&amp;nbsp; But it becomes a little more difficult to test for something that is not there.&amp;nbsp; Especially when the employees would have other deductions and benefits, so we really only want to know those that are not set up for these specific codes.&amp;nbsp; So after a lovely visit to the new IKEA store here in Colorado (oh, my, yes I love me IKEA), and a decent dinner, I came back to the hotel to chew on how to best test for something not existing.&amp;nbsp; And in that, I found my answer...the NOT EXISTS function in SQL.&amp;nbsp; Ah, yes.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Here is what I came up with to test for both scenarios.&amp;nbsp; The first part tests for the OCCPAT deduction, and displays the employee ID, name, and a message if it does not exist for a record.&amp;nbsp; And then the second part tests for the corresponding OOCCPUP benefit and returns a similar set of data.&amp;nbsp; One lovely list.&amp;nbsp; To be included in my lovely SQL report.&lt;br /&gt;&lt;br /&gt;SELECT a.employid, a.frstname, a.lastname, 'NO OCCPAT Deduction' from UPR00100 as a where not exists (select * from UPR00500 as b join UPR00100 as c on c.employID=b.employID where c.employid=a.employid and b.deducton='OCCPAT') and a.inactive=0&lt;br /&gt;UNION&lt;br /&gt;SELECT a.employid, a.frstname, a.lastname, 'NO OOCCUP Benefit' from UPR00100 as a where not exists (select * from UPR00600 as b join UPR00100 as c on c.employID=b.employID where c.employid=a.employid and b.benefit='OOCCUP') and a.inactive=0 &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-628905602817137014?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/628905602817137014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=628905602817137014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/628905602817137014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/628905602817137014'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/sherlock-holmes-i-am-not-finding.html' title='Sherlock Holmes I Am Not- Finding Missing Deductions and Benefits'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-1808173780787466059</id><published>2011-08-16T21:00:00.000-07:00</published><updated>2011-08-17T14:08:52.289-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='941'/><category scheme='http://www.blogger.com/atom/ns#' term='payroll'/><title type='text'>Payroll 941 Mystery Solved (or The Case of Missing Table)</title><content type='html'>If I was asked by a payroll person for one piece of advice, I would tell them to always make sure they have a backup before printing and posting payroll.&amp;nbsp; So much trauma could be avoided if restoring&amp;nbsp;a backup after a payroll posting gone wrong was possible.&lt;br /&gt;&lt;br /&gt;And then, if they allowed me, I would provide two more:&lt;br /&gt;&lt;br /&gt;1.&amp;nbsp; If you run in to problems printing and/or processing&amp;nbsp;the payroll prior to posting, DO NOT go ahead and post it.&amp;nbsp; Cancel out of it.&amp;nbsp; Your transactions will be available to be included in a new build, and you won't have to worry about cleaning up a partial posting.&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;Any time you use manual checks to record adjustments or corrections, always make sure you check and double check the taxable wages and employer FICA taxes (as these are not detailed on the edit list).&amp;nbsp; Mistakes in these two fields when manually entering payroll information account for many 941 and payroll summary reconciliation issues.&lt;br /&gt;&lt;br /&gt;But, let's get back to payroll posting gone wrong :)&amp;nbsp; Recently I had a case where the payroll&amp;nbsp;printing was interrupted when the server was shut down accidentally.&amp;nbsp; When the server came back up, the user attempted to post the payroll and received errors.&amp;nbsp;&amp;nbsp;Fortunately, they were able to send out the checks since they had already been printed successfully.&amp;nbsp; And then we were able to set about fixing the posting.&lt;br /&gt;&lt;br /&gt;We found that the posting interruption appeared to occur between updating the check history (UPR30100) and transaction history (UPR30300) tables.&amp;nbsp; The check history had the checks listed, but the transaction history table was blank for the audit trail code.&amp;nbsp; So we removed the stranded records from the UPR30100, and the users could then re-enter the payroll through manual checks (Transactions&amp;gt;&amp;gt;Payroll&amp;gt;&amp;gt;Manual Checks).&amp;nbsp; Fortunately, they had all of the information to do this and a small number of employees.&lt;br /&gt;&lt;br /&gt;After completing this task, though, the 941 was still off.&amp;nbsp; Payroll Summary (Reports&amp;gt;&amp;gt;Payroll&amp;gt;&amp;gt;Period End) looked great.&amp;nbsp; As did the wage amounts from the 941 (Reports&amp;gt;&amp;gt;Payroll&amp;gt;&amp;gt;Quarter End).&amp;nbsp; It was all in the taxes, they appeared to be double what they should be, and the 941 schedule B also showed double for that payroll date.&lt;br /&gt;&lt;br /&gt;Head-scratcher, huh?&amp;nbsp; Probably not for those of you who know better.&amp;nbsp; So I went looking in Utilities&amp;gt;&amp;gt;Payroll&amp;gt;&amp;gt;Edit Liabililties and I saw it!&amp;nbsp; The check run had posted its information in the Payroll Tax Liabilities table (UPR30200).&amp;nbsp; So once we removed the record from there as well, all was right with the world.&amp;nbsp; So the lesson here is not forget about the UPR30200, particularly with posting interruptions as it seems that it posts the summary level info before the detail info.&lt;br /&gt;&lt;br /&gt;As someone who has avoiding getting in to the realm of "fixing" payrolls that have gone wrong, it has been quite a learning experience for me to move beyond insisting users restore backups when these issues are encountered.&amp;nbsp; I am still not sure what is better, though...losing the work associated with restoring a backup or the time involved (usually with a consultant) to clean it up if you don't.&amp;nbsp; And then you add in the concern of making sure that the client understands what you are doing and why so that questions don't come up later regarding all the "back-end" fixin'.&amp;nbsp; Jury is still out for me, but maybe I am more old-school than I thought ;)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-1808173780787466059?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/1808173780787466059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=1808173780787466059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1808173780787466059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1808173780787466059'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/payroll-941-mystery-solved-or-case-of.html' title='Payroll 941 Mystery Solved (or The Case of Missing Table)'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6055485598670296334</id><published>2011-08-08T21:32:00.000-07:00</published><updated>2011-08-09T12:59:27.997-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='report groups'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='report options'/><title type='text'>Reporting Puzzle (2 of 2)- Report Options and Report Groups</title><content type='html'>(UPDATED 8/9/2011) Thanks to Mariano Gomez for a bit of clarification on this one :)&lt;br /&gt;&lt;br /&gt;As&amp;nbsp;is noted in the user guides, there is a limit to how many reports can be put in a report group (for example, Reports-Financial-Groups).&amp;nbsp; Each report group can only contain 32 reports.&amp;nbsp; This isn't too big of a deal, since you can simply set up additional groups, right?&lt;br /&gt;&lt;br /&gt;But, there is&amp;nbsp;a bit more of a dilemma.&amp;nbsp; Let's say that I have a report that has 33 report options set up for it.&amp;nbsp; In this case, Reports-Financial-Trial Balance:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZUd2-6P12Ok/Tj__GTfKRGI/AAAAAAAAAII/Llby4yG3Dfs/s1600/Report+Options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265px" naa="true" src="http://1.bp.blogspot.com/-ZUd2-6P12Ok/Tj__GTfKRGI/AAAAAAAAAII/Llby4yG3Dfs/s400/Report+Options.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Reports-Financial-Trial Balance&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Trial Balance Report window&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Note the 33 report options set up for the Detailed report.&amp;nbsp; So, then, let's say I want to add some of these report options (particularly the 33rd option) to a report group.&amp;nbsp; Reports-Financial-Groups:&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-rYpbTq-QZYE/Tj__HiBzlGI/AAAAAAAAAIM/d1RNKi05Xf0/s1600/Report+Group.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297px" naa="true" src="http://3.bp.blogspot.com/-rYpbTq-QZYE/Tj__HiBzlGI/AAAAAAAAAIM/d1RNKi05Xf0/s400/Report+Group.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;strong&gt;Reports-Financial-Groups&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;strong&gt;Financial Groups window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;In the Financial Groups window, I start a new report group.&amp;nbsp; But, notice that the 33rd option is not even available for selection.&amp;nbsp; So, although I can create more than 32 options for a report, only the 1st 32 report options are available for selection in a group.&amp;nbsp; The lesson learned is that you have to set up the report options you want in groups first, so that they are among the first 32 options on any given report.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Although this can be confusing, this is NOT the same as the fact that a report group can only contain 32 report options.&amp;nbsp; In the case noted above, my report group is brand new with no report options in it...and yet, I still can't pick to include the 33rd report option from the Detailed trial balance report to the group.﻿&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6055485598670296334?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6055485598670296334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6055485598670296334' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6055485598670296334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6055485598670296334'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/reporting-puzzle-2-of-2-report-options.html' title='Reporting Puzzle (2 of 2)- Report Options and Report Groups'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ZUd2-6P12Ok/Tj__GTfKRGI/AAAAAAAAAII/Llby4yG3Dfs/s72-c/Report+Options.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4999454717990080483</id><published>2011-08-08T21:00:00.000-07:00</published><updated>2011-08-08T21:00:04.169-07:00</updated><title type='text'>Reporting Puzzle (1 of 2)- Dynamics GP SQL Financial Trial Balances</title><content type='html'>Along with a coworker, I have been chewing on a SQL Reporting Services (or so I thought) issue for the past few weeks.&amp;nbsp; Users had reported that both of the financial trial balances (Detail and Summary) in SQL Reporting Services were not returning results.&amp;nbsp; The report worked fine for them in TWO (Fabrikam), but not in either their live or test database.&amp;nbsp; Strange.&amp;nbsp; And even stranger, the report worked fine if we changed&amp;nbsp;the data source to use&amp;nbsp;the 'sa' user&amp;nbsp;and password.&lt;br /&gt;&lt;br /&gt;I felt like we had checked everything, including:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Confirmed access to reports in Report Manager, and access to Data Source- other reports work fine (including other financial reports)&lt;/li&gt;&lt;li&gt;Confirmed the database roles- all affected users had rpt_poweruser roles to both the company and DYNAMICS databases&lt;/li&gt;&lt;li&gt;Placed users in to SYSADMIN server role for testing- still didn't return results&lt;/li&gt;&lt;li&gt;Recreated stored procedures used by report- no luck&lt;/li&gt;&lt;li&gt;Recreated report itself- running out of ideas&lt;/li&gt;&lt;/ul&gt;What we found through all of this testing is that a) no errors were being returned (yes, we did a trace to confirm this) and b) when running the stored procedure in SQL Server directly, we still did not get results.&amp;nbsp; We found any number of blog posts related to similar issues, but these all had to do with GP2010 R2 and the temp table not populating correctly.&amp;nbsp; We were on GP2010 SP1, so it didn't seem likely that it was the same issue.&amp;nbsp; We started a case with Microsoft, and after a couple more weeks of working on it back and forth we uncovered the rather embarrassingly simply cause. Three words.&amp;nbsp; Account. Level. Security.&lt;br /&gt;&lt;br /&gt;So, the SSRS financial trial balances use the same stored procedure that is used for the trial balance reports in Dynamics GP.&amp;nbsp; This stored procedure incorporates account level security.&amp;nbsp; In our company (and test company), account level security (organizational structures) is activated (Tools-Setup-Company-Company).&amp;nbsp; So when the report is generated, it cannot locate any accounts based on the user's security (since the SSRS reports use windows credentials, not the GP user accounts). This causes the report to not return any results, and does not produce any errors.&lt;br /&gt;&lt;br /&gt;Simple cause.&amp;nbsp; The workaround is to change the data source for the report to use the 'sa' user and password.&amp;nbsp; If you choose to do this, keep in mind that all users who have access to the report will in turn have access to all data.&amp;nbsp; In our situation, this works since the only users who can access the report are allowed access to all accounts.&amp;nbsp; In a more restrictive environment, I think you would have to look at modifying the report to map the windows accounts to GP accounts.&amp;nbsp; If you did this, you would need to take care not to affect the stored procedure used by the standard Dynamics GP reports.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4999454717990080483?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4999454717990080483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4999454717990080483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4999454717990080483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4999454717990080483'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/reporting-puzzle-1-of-2-dynamics-gp-sql.html' title='Reporting Puzzle (1 of 2)- Dynamics GP SQL Financial Trial Balances'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5178675633361677258</id><published>2011-08-04T21:35:00.000-07:00</published><updated>2011-08-08T07:55:29.828-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='activity tracking'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>A Matter of Degrees?  Activity Tracking and Dynamics GP</title><content type='html'>More and more, it seems like the answer to most Dynamics GP questions is "well, it depends."&amp;nbsp; It might depend on how much money you want to spend on services and/or software, or how much you care about a particular piece of functionality.&amp;nbsp;&amp;nbsp;And, lately, it seems like I am getting a lot of questions related to tracking changes within Microsoft Dynamics GP.&amp;nbsp; Sometimes this is due to "damage control", or because a prior system had the capability, and in most cases I completely understand the concern and the request.&amp;nbsp; And, like I have suggested, the answer is not a simple one.&amp;nbsp; There are several options available to you, depending on how much time/effort/money you want to spend.&lt;br /&gt;&lt;br /&gt;At the very basic level, GP offers a few inherent tracking tools, for example:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Many transactions table provide tracking of the user who posted the transaction (not who entered it, but who posted it).&amp;nbsp; These fields are visible in Smartlist (Microsoft Dynamics GP menu-Smartlist), for Financial-Account Transactions the field is called User Who Posted and for Purchasing-Payables Transactions it is called Posted User ID.&amp;nbsp; Some records also provide a modified date, although it does not show who (Purchasing-Vendors, for example).&lt;/li&gt;&lt;li&gt;With the Human Resources module, tracking is enabled in the form of a "reason for change" on pay and position changes.&amp;nbsp; This enables reporting of who, what, and why on the changes.&amp;nbsp; Although it does not track the before/after values (which could be inferred to some degree based on the change)&amp;nbsp; Depending on your configuration in Microsoft Dynamics GP menu-Tools-Setup-System-HR Preferences, entering a "reason for change" may not be required.&amp;nbsp; &lt;/li&gt;&lt;li&gt;There are controls available for batch approval and posting permissions through posting setup (Microsoft Dynamics GP menu-Tools-Setup-Posting-Posting) and security setup (Microsoft Dynamics&amp;nbsp;GP menu-Tools-Setup-System-User Security)&amp;nbsp;to control who can post transactions.&amp;nbsp; This is less tracking, but does help with the "damage control" requirement as security can also be used to limit access to master records, utilities, etc.&lt;/li&gt;&lt;/ul&gt;These are often some of the first options I look at, but GP also offers a couple additional options depending on your needs. One is included with GP, the other is an additional purchase:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Activity Tracking- Tracks a number of tasks in GP, with basic information related to who, what and when.&amp;nbsp; This is included in core Dynamics GP.&lt;/li&gt;&lt;li&gt;Audit Trails- This is an additional module that tracks the who, what, and when in detail including the before and after values of the field.&amp;nbsp; Audit Trails actually creates a separate database to track the audit information, and is configured to track changes based on your specific needs.&amp;nbsp; For more information, refer to this &lt;a href="http://www.microsoft.com/en-us/dynamics/products/gp-compliance.aspx"&gt;Microsoft&amp;nbsp;Dynamics site&lt;/a&gt; on compliance, which includes a link to&amp;nbsp;a fact sheet on the Audit Trails and Electronic Signatures modules.&lt;/li&gt;&lt;/ul&gt;We are going to take a look at the capability provided by the Activity Tracking feature included in core Dynamics GP.&amp;nbsp; First, let's look at the setup:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-mDUqCaHmcPs/Tjr0BQxFm0I/AAAAAAAAAIA/f0ko9kyUhSg/s1600/Activity+Tracking+Setup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276px" src="http://2.bp.blogspot.com/-mDUqCaHmcPs/Tjr0BQxFm0I/AAAAAAAAAIA/f0ko9kyUhSg/s400/Activity+Tracking+Setup.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Activity Tracking Setup window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP-Tools-Setup-System-Activity Tracking&lt;/strong&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;﻿&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿Use this window to configure Activity Tracking, but be careful to only activate those items that you actually think will be useful (as this can add ALOT of records to your database very quickly).&amp;nbsp; There are five different types of activities you can track:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;Login/Logout Tracking- Tracks unsuccessful and successful attempts to log in to Dynamics GP&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;Access Tracking- Tracks unsuccessful and successful attemps to access a file, window, report, or the Modifer and Report Writer tools&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;File Tracking- Tracks additions, deletions, and modifications to Setup, Master, and Transaction files&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;Process Tracking- Tracks use of&amp;nbsp;File Maintenance, Utililties, and Routines&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;Posting Tracking- Tracks posting by window/transaction origin&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;Select the Activity Type you wish to track, and select the User and Company to track.&amp;nbsp; Then mark the specific activities you want to include in the tracking, taking care only to select those items that you feel will be useful as noted above.&amp;nbsp; Repeat for additional activities, users, and companies as needed.&amp;nbsp;Click OK when complete.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The results of the activity tracking can be viewed easily:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-PT-Zl2zHFXY/Tjr0AnR-g4I/AAAAAAAAAH8/21oz4s7nHyc/s1600/Activity+Tracking+Inquiry.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267px" src="http://1.bp.blogspot.com/-PT-Zl2zHFXY/Tjr0AnR-g4I/AAAAAAAAAH8/21oz4s7nHyc/s400/Activity+Tracking+Inquiry.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Activity Tracking Inquiry window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Inquiry-System-Activity Tracking&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" style="text-align: left;"&gt;Note that the activities can be filtered by company, user, activity type, and activity.&amp;nbsp; The information available includes the company, user ID, date, time, and description of the change.&amp;nbsp; The description includes the record that was affected, but does not include any details of the specific change (this is the major difference between activity tracking and the Audit Trails module-- the level of detail about the change available).&amp;nbsp; You can also report on this information through Reports-System-General-Activity Tracking Detail.&lt;/div&gt;&lt;div align="left" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" style="text-align: left;"&gt;If you choose to use activity tracking, make sure you set up a recurring task for yourself to remind you to remove the detail on a regular basis.&amp;nbsp; Keeping the activity detail in your database indefinitely can increase your database size quickly depending on the types and number of activites being tracked.&amp;nbsp; To remove activity detail:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HOP7au-Qr7c/Tjr0By_F55I/AAAAAAAAAIE/qJ9o1Fl9gFQ/s1600/Remove+Activity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="323px" src="http://4.bp.blogspot.com/-HOP7au-Qr7c/Tjr0By_F55I/AAAAAAAAAIE/qJ9o1Fl9gFQ/s400/Remove+Activity.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Remove Activity Tracking Detail window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP menu-Tools-Utilities-System-Activity Detail&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿Use this window to remove the activity detail based on parameters you specify, including activity type, activity, and ranges by date, user, and company. Generally, you would run this process after a full backup of your databases.&amp;nbsp; Select and insert the necessary ranges (don't forget to mark the activities to remove, and to mark the "Remove Records" and "Print Report" checkboxes), and then click Process to remove the records.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Although activity tracking may not necessarily meet all tracking and audit needs, it can be a useful tool with minimal investment of time and/or money to see results immediately.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5178675633361677258?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5178675633361677258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5178675633361677258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5178675633361677258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5178675633361677258'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/matter-of-degrees-activity-tracking-and.html' title='A Matter of Degrees?  Activity Tracking and Dynamics GP'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-mDUqCaHmcPs/Tjr0BQxFm0I/AAAAAAAAAIA/f0ko9kyUhSg/s72-c/Activity+Tracking+Setup.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-8947622214276058024</id><published>2011-08-02T14:59:00.000-07:00</published><updated>2011-08-02T15:04:48.268-07:00</updated><title type='text'>Programmatically Checking Company Database eConnect Version Numbers</title><content type='html'>Back in November 2008, I wrote a post about &lt;a href="http://dynamicsgpland.blogspot.com/2008/11/checking-econnect-10-version-number.html"&gt;checking eConnect version numbers programmatically&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At that time, I had found that the eConnect Release Info application simply called the stored procedure DYNAMICS..taeConnectVersionInfoDYNAMICS.&amp;nbsp; That stored procedure returned a list of databases and the eConnect version for each database.&lt;br /&gt;&lt;br /&gt;The problem with that utility is that if a database is offline or not accessible for some reason, the Release Info app will display an error and will not return any results.&amp;nbsp; If you have a client with dozens or hundreds of company databases, and has one or more database offline, this error can be quite annoying.&lt;br /&gt;&lt;br /&gt;While troubleshooting a new eConnect 2010 issue, I had to do some extensive eConnect version sleuthing, and finally discovered how the Release Info app gets version numbers from the database.&lt;br /&gt;&lt;br /&gt;The eConnect Release Info application calls the &lt;b&gt;taeConnectVersionInfoDYNAMICS&lt;/b&gt; procedure.&amp;nbsp; That stored procedure gets a list of all INTERID values from the Dynamics SY01500 table--basically a list of all of the company databases.&lt;br /&gt;&lt;br /&gt;For each company database, it then queries the &lt;b&gt;taeConnectVersionInfo&lt;/b&gt; function, like:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT dbo.taeConnectVersionInfo()&lt;/div&gt;&lt;br /&gt;This returns the eConnect version for the database.&lt;br /&gt;&lt;br /&gt;So, the obvious question is:&amp;nbsp; How does this function get the eConnect version number for the database?&lt;br /&gt;&lt;br /&gt;That's easy--it's hard coded!&lt;br /&gt;&lt;br /&gt;The function simply returns a hard coded version number string, such as 11.0.1.0.&amp;nbsp; So there is no table or object or magic query that is being run to extract the version number from the depths of the company database.&amp;nbsp; It is simply the taeConnectVersionInfo function that is updated with each eConnect release.&lt;br /&gt;&lt;br /&gt;So, if you are looking for a programmatic way to check the eConnect version number for individual databases, you can just select the taeConnectVersionInfo function for each database.&lt;br /&gt;&lt;br /&gt;Pretty simple.&amp;nbsp; Wish they would have just documented this somewhere.&lt;br /&gt;&lt;br /&gt;Although that will provide you with the database's eConnect version, please note that with eConnect 2010, there are different versions of the eConnect DLLs and eConnect Service with each service pack and hotfix.&amp;nbsp; So for instance, eConnect 2010 SP2 has DLLs with version 11.0.1761.0, but if you install the eConnect June 2011 Hotfix (KB2561289), the DLL versions will change to 11.0.1812.0.&lt;br /&gt;&lt;br /&gt;So it still probably makes sense to verify the eConnect DLL versions as well as the DB versions. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-8947622214276058024?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/8947622214276058024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=8947622214276058024' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8947622214276058024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8947622214276058024'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/08/programmatically-checking-company.html' title='Programmatically Checking Company Database eConnect Version Numbers'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4841107606921179616</id><published>2011-07-27T09:38:00.000-07:00</published><updated>2011-07-27T19:52:08.948-07:00</updated><title type='text'>Consultant Tools Series:  Macbook Air -- with Windows!</title><content type='html'>For the last 4 years, I've been using a Dell Latitude D620 laptop.&amp;nbsp; Back in 2007, it was a pretty respectable laptop, with a then fancy Core 2 Duo.&lt;br /&gt;&lt;br /&gt;I had the internal 3G wireless card, 2GB of RAM, Bluetooth, and an 80GB hard drive.&amp;nbsp; Plenty adequate for running Windows XP and doing all of my work.&lt;br /&gt;&lt;br /&gt;After a few years, it was time for an upgrade, so I bumped it up to 4GB of RAM and installed a fast solid state hard drive.&amp;nbsp; That made it usable with Windows 7, but the battery life was starting to fade.&amp;nbsp; So, I bought two extra batteries that used the CD/DVD slot, which gave me plenty of battery life.&lt;br /&gt;&lt;br /&gt;After four years of dutiful use, the D620 was getting tired.&amp;nbsp; The three batteries were now providing less than 3 hours of runtime, and the laptop, the extra batteries, and the power supply totaled over 7 pounds!&amp;nbsp; While it doesn't sound like much, 7 pounds in a laptop bag is pretty heavy and quite bulky.&lt;br /&gt;&lt;br /&gt;Well, last week Apple released a new version of their Macbook Air.&amp;nbsp; While I previously never imagined buying any type of Mac, the 2.9 pound 13" Air looked perfect for my needs.&amp;nbsp; Fast Intel i5 processor, solid state hard drive, small form factor, and a typically compact Apple power supply.&amp;nbsp; And did I mention 2.9 pounds? &lt;br /&gt;&lt;br /&gt;The slim wedge virtually swims in my old laptop bag, and my bag is now 4 pounds lighter, which is a huge difference in weight hanging on my shoulder.&lt;br /&gt;&lt;br /&gt;When I received the Air, naturally the first thing I did was install Windows 7.&amp;nbsp; The new Air has full support for installing Windows via a USB drive.&amp;nbsp; Just copy the Windows 7 ISO file to the hard drive, plug in a large USB drive, click a few buttons in the OS X "BootCamp" utility, and in a few minutes, you'll be installing Windows 7.&lt;br /&gt;&lt;br /&gt;There Air has full device and driver support in Windows 7, so the installation completed flawlessly.&lt;br /&gt;&lt;br /&gt;Although I'm thrilled by the massive weight savings and the great form factor of the Air, there are a few significant caveats to transitioning to a MacBook running Windows.&lt;br /&gt;&lt;br /&gt;First, the touch pad on the Air doesn't have physical buttons.&amp;nbsp; If you press anywhere on the surface of the touch pad, the pad will click, so the entire pad serves as a big button.&amp;nbsp; Also, the touch pad supports gestures, so you can use two, three, or even four fingers to perform certain actions, not all of which are supported in Windows.&lt;br /&gt;&lt;br /&gt;There are a few downsides to this in Windows.&amp;nbsp; First, I'm so used to having two physical buttons below my laptop touch pad that it requires significant retraining for me to use the new Mac touch pad properly.&amp;nbsp; If I try and click with my thumb while my finger is on the touch pad, it often detects that as a two-finger click, which is a right-mouse click in Windows.&amp;nbsp; In theory, the touch pad should be able to detect a thumb click vs. a two finger click, but I'm still a bit clumsy with it.&amp;nbsp; And strangely, the touch pad surface is massive compared to other laptops that I've used--I'm not entirely sure why they did that.&amp;nbsp; The problem with this is that other fingers or part of my hand will touch the edges, causing it to think I'm using 2 or 3 or more fingers on the surface, or causing the mouse pointer to jump around.&lt;br /&gt;&lt;br /&gt;Second, and more critical, is the keyboard.&amp;nbsp; Although I very much like the feel of the Air keyboard, and the keys are incredibly quiet, it is after all a Mac keyboard and not a Windows keyboard.&amp;nbsp; This is one thing I didn't consider.&lt;br /&gt;&lt;br /&gt;I am a heavy keyboard user.&amp;nbsp; If there is a keyboard shortcut, I use it.&amp;nbsp; ALT+E+S+V in Excel, ALT+F+E+P in Word, Page Up/Down, Home, End, CTRL+Home, CTRL+End, CTRL+Shift+End, you name it.&amp;nbsp; If there is a shortcut I can remember, I'll try and use it since it's so much faster than using the mouse to navigate menus or position a cursor.&lt;br /&gt;&lt;br /&gt;Well, let's just say that the Mac keyboard feels a bit 'disadvantaged'.&amp;nbsp; First, there are no page up, page down, home, or end keys.&amp;nbsp; Just browsing web pages drives me nuts without those.&amp;nbsp; And jumping to the beginning of a field, or the top or bottom of a sentence or document, or highlighting lines--all of those things require funky key combinations on the Air.&amp;nbsp; Page Up is Fn+Up Arrow.&amp;nbsp; Page Down is Fn+Down Arrow. Home and End are Fn+Left Arrow and Fn+Right Arrow, so those are all two keys vs. one on a typical Windows laptop.&lt;br /&gt;&lt;br /&gt;And of course there is the "Command" key.&amp;nbsp; Fortunately this one is easy to relate to, since it equates to the Windows key on a PC.&amp;nbsp; But unfortunately it is next to the space bar, which is where the Alt key is located on my Dell, making it difficult to adjust--I'm constantly hitting Command+F or Command+S instead of Alt+F and Alt+S.&lt;br /&gt;&lt;br /&gt;Although these are annoying at first, it's only been a few days, so I'm still adjusting, and am assuming I can eventually undo the 8+ years of Dell Latitude Keyboard Indoctrination that I've gone through.&lt;br /&gt;&lt;br /&gt;But I think it will be worth it.&amp;nbsp; The feather light weight, the instant-on feature, the 4 hours of battery life, and the gorgeous display should more than make up for the touch pad and keyboard adjustments I'll have to make.&lt;br /&gt;&lt;br /&gt;And before anyone posts comments about how there is an equivalent or better Dell or Thinkpad or some other brand of Windows notebook, I know that there are other options out there, but after shopping around, I was hard pressed to find a standard 13-14" notebook that had the same properties of performance, capacity, weight, and battery life as the Air.&amp;nbsp; It's a pretty amazing device.&amp;nbsp; With Microsoft Windows, of course.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4841107606921179616?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4841107606921179616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4841107606921179616' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4841107606921179616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4841107606921179616'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/07/consultant-tools-series-macbook-air.html' title='Consultant Tools Series:  Macbook Air -- with Windows!'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-470339008461407355</id><published>2011-07-22T21:00:00.000-07:00</published><updated>2011-07-26T12:44:27.769-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reconcile to gl'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='check on the fly'/><category scheme='http://www.blogger.com/atom/ns#' term='void'/><title type='text'>Reconcile to GL Oddity</title><content type='html'>I have to admit that I sometimes cringe when I get a call about the Reconcile to GL feature in Dynamics GP (Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL).&amp;nbsp; I know it is simply because I still haven't learned all the quirks of an otherwise very useful tool.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;For those of you not familiar with it, the Reconcile to GL tool creates assists you with reconciling the payables or receivables subledger by creating a spreadsheet of subledger transactions and the matching (or potentially or unmatched) general ledger transactions.&amp;nbsp; It replaces the "old" method of exporting the detail from SmartList for payables/receivables and for the general ledger, and then using VLOOKUP in Excel to match up the transactions (oh, my, the fun we have had).&amp;nbsp; &lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-obYgqCqPhu4/TintSYw8sDI/AAAAAAAAAHo/0cBvviozpZM/s1600/Reconcile+to+GL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191px" src="http://2.bp.blogspot.com/-obYgqCqPhu4/TintSYw8sDI/AAAAAAAAAHo/0cBvviozpZM/s400/Reconcile+to+GL.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;strong&gt;Reconcile to GL window&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;Simply select the module (Receivables Management and Payables Management are the currently available options), enter the date range to examine, and the AP account(s).&amp;nbsp; Then click Process to generate the spreadsheet.&amp;nbsp; &lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zcuJhqHeL4E/Ti8TUGrsFPI/AAAAAAAAAHs/6F5cIV2hMPc/s1600/Reconcile+to+GL+SS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="182px" src="http://4.bp.blogspot.com/-zcuJhqHeL4E/Ti8TUGrsFPI/AAAAAAAAAHs/6F5cIV2hMPc/s400/Reconcile+to+GL+SS.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;The spreadsheet details the transactions that match between GL and Payables Management, those that potentially match, and those that do not match (which could be likely causes of variances between GL and Payables Management).﻿&amp;nbsp; It then gives you the total of the transactions per GL and per Payables Management.&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;A funny thing happens, though, when you post a payables transactions with a "check on the fly" (which is a check recorded and printed directly from the Payables Transaction Entry window), and then void both the payment and invoice.&amp;nbsp; In my experience, this occurs when you have marked the option for Separate Payment Distributions in Company Setup (Tools-Setup-Company-Company-Options button).&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-W7VpB7Z9P_c/Ti8U5i_AyaI/AAAAAAAAAHw/_FNkjm0NDS4/s1600/checkonthefly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="311px" src="http://2.bp.blogspot.com/-W7VpB7Z9P_c/Ti8U5i_AyaI/AAAAAAAAAHw/_FNkjm0NDS4/s400/checkonthefly.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Payables Transaction Entry&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Transactions-Purchasing-Transaction Entry&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;First, record the payables transaction and "check on the fly" using the Payables Transaction Entry window.&amp;nbsp; And then post the transaction, ensuring that the transaction is posted in both Payables Management and the GL.&amp;nbsp; Then generate the Reconcile to GL spreadsheet:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-WeVAiOi93wU/Ti8V7scqiqI/AAAAAAAAAH0/ieiJJaorpkQ/s1600/ssbefore.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="25px" src="http://1.bp.blogspot.com/-WeVAiOi93wU/Ti8V7scqiqI/AAAAAAAAAH0/ieiJJaorpkQ/s400/ssbefore.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Reconcile to GL Spreadsheet (after posting of "check on the fly")&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;Note that both the invoice and the payment are reflected on the spreadsheet properly, to cancel each other out. But, let's say I then need to void the payment (Transactions-Purchasing-Void Historical) and then void the invoice (Transactions-Purchasing-Void Open).&amp;nbsp; Then re-generate the Reconcile to GL spreadsheet:&lt;/div&gt;&lt;div class="" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-u03AOeFywPI/Ti8XoixfjoI/AAAAAAAAAH4/s4sQEHxE_XI/s1600/ssafter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55px" src="http://2.bp.blogspot.com/-u03AOeFywPI/Ti8XoixfjoI/AAAAAAAAAH4/s4sQEHxE_XI/s400/ssafter.png" t$="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Reconcile to GL Spreadsheet (after voiding of invoice and check from "check on the fly")&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;Microsoft Dynamics GP-Tools-Routines-Financial-Reconcile to GL&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Notice that both of the voids show up in the "Matched Transactions" section, but that the payment no longer shows alongside the original invoice.&amp;nbsp; So the original invoice has been moved up to "Potentially Matched".&amp;nbsp; The issue is then that the toal of the payables activity is off since the payment is no longer listed, there is now a net increase of $250 on the total of payables activity.&amp;nbsp; This is incorrect, and does not match what is actually in GP.&lt;br /&gt;&lt;br /&gt;I have walked through this issue with Microsoft, and they are currently researching to determine if it is a quality report.&amp;nbsp; So please let me know if you have run in to it or not.&amp;nbsp; Since this tool is used to help find issues when Payables Management and the General Ledger do not match, these little issues can take up valuable time and lead users down the wrong path as to the cause of their discrepancy.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-470339008461407355?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/470339008461407355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=470339008461407355' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/470339008461407355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/470339008461407355'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/07/reconcile-to-gl-oddity.html' title='Reconcile to GL Oddity'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-obYgqCqPhu4/TintSYw8sDI/AAAAAAAAAHo/0cBvviozpZM/s72-c/Reconcile+to+GL.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-869414891780563469</id><published>2011-07-22T14:32:00.000-07:00</published><updated>2011-07-22T14:32:12.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mekorma micr'/><category scheme='http://www.blogger.com/atom/ns#' term='payables'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='zero dollar checks'/><title type='text'>Zero Dollar Checks and Mekorma MICR</title><content type='html'>I recently had an interesting experience with zero dollar checks and Mekorma MICR.&amp;nbsp; But, let's start with a wee bit of background.&amp;nbsp; Dynamics GP generates zero dollar "checks" when an invoice is fully paid by a credit memo, manual payment, or other type of open credit.&amp;nbsp; This can occur in advance of a check run, or as the result of choosing to "automatically apply existing unapplied" documents during a check run (Transactions-Purchasing-Select Checks).&lt;br /&gt;&lt;br /&gt;These zero dollar checks appear on the edit list after a check batch has been built, and serve as "placeholders" so a remittance can be printed as part of the check run as a record that the invoice was paid off using these credits.&lt;br /&gt;&lt;br /&gt;So, consider the following scenario:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Invoice entered and posted for $100 for Vendor ABC&lt;/li&gt;&lt;li&gt;Manual payment entered and posted for $100, and applied to Invoice for Vendor ABC&lt;/li&gt;&lt;li&gt;Transactions-Purchasing-Select Checks used to build check batch&lt;/li&gt;&lt;li&gt;Regular checks picked up to be paid, as well as&amp;nbsp;a zero dollar check for Vendor ABC&lt;/li&gt;&lt;/ol&gt;It is usually at this point in the process that you might panic, thinking, why is there a zero dollar check?&amp;nbsp; Keep in mind, it is merely a placeholder.&amp;nbsp; So if you continued with the process and chose to go to Transactions-Purchasing-Print Checks, this is where it gets interesting....&lt;br /&gt;&lt;br /&gt;If you are using standard Dynamics GP, here is what happens:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Transactions-Purchasing-Print Checks&lt;/li&gt;&lt;li&gt;Only regular checks are printed, zero dollar check is ignored&lt;/li&gt;&lt;li&gt;Post Payables Checks window appears&lt;/li&gt;&lt;li&gt;Choose Post Checks, click Process&lt;/li&gt;&lt;li&gt;Process Payables Remittance window appears so you can print the remittance for the zero dollar checks&lt;/li&gt;&lt;li&gt;Choose Print Remittance Form, click Process&lt;/li&gt;&lt;li&gt;Print the remittance&lt;/li&gt;&lt;li&gt;Process Payables Remittance window reappears&lt;/li&gt;&lt;li&gt;Choose Post, click Process&lt;/li&gt;&lt;li&gt;Posting journals print&lt;/li&gt;&lt;/ol&gt;Pretty easy, right?&amp;nbsp; But guess what?&amp;nbsp; If you are using Mekorma MICR, the zero dollar check actually PRINTS with the regular checks.&amp;nbsp; Now the good news is, it is assigned a "REMIT" check number which means it will not post to bank reconciliation.&amp;nbsp; But it does confuse some folks when they see it print with the regular checks since it does not work that way with standard Microsoft Dynamics GP.&lt;br /&gt;&lt;br /&gt;I just submitted a blog post to our new BKD GP Team Blog, &lt;a href="http://dynamicsgpinsights.com/"&gt;http://dynamicsgpinsights.com/&lt;/a&gt;, with more detail on zero dollar checks and Dynamics GP-- so watch for it!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-869414891780563469?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/869414891780563469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=869414891780563469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/869414891780563469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/869414891780563469'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/07/zero-dollar-checks-and-mekorma-micr.html' title='Zero Dollar Checks and Mekorma MICR'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4742073216237509092</id><published>2011-07-10T20:01:00.000-07:00</published><updated>2011-07-10T20:01:21.256-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='report library'/><category scheme='http://www.blogger.com/atom/ns#' term='management reporter'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='report viewer'/><title type='text'>Management Reporter Report Distribution Lessons Learned</title><content type='html'>I have recently been working with Management Reporter a lot, particularly with regards to report distribution and I have picked up a few tips I thought I would share that may save you some time and energy:&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-lbtO2gIIF7Q/ThplwYvSOcI/AAAAAAAAAHg/50sea4Ebd3U/s1600/security.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400px" m$="true" src="http://1.bp.blogspot.com/-lbtO2gIIF7Q/ThplwYvSOcI/AAAAAAAAAHg/50sea4Ebd3U/s400/security.png" width="240px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;strong&gt;Management Reporter-Report Designer: Security Page&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iErUzhWdiaM/ThplxQXpGaI/AAAAAAAAAHk/PLL8x-3Rip0/s1600/Folder+permissions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297px" m$="true" src="http://2.bp.blogspot.com/-iErUzhWdiaM/ThplxQXpGaI/AAAAAAAAAHk/PLL8x-3Rip0/s400/Folder+permissions.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: center;"&gt;&lt;strong&gt;Management Reporter-Report Viewer: Right-Click on Folder&lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Wherever possible, use Security Groups for folder security in the Report Viewer.&amp;nbsp; Groups can be set up by clicking on the Security page in Management Reporter.&amp;nbsp; Then when you create&amp;nbsp;a folder in the Reports Library, you can grant the group access to the folder (right click on the folder and choose Report Library Permissions).&amp;nbsp; Then when a user is added to the security group, they will automatically have access to the folders.&lt;/li&gt;&lt;li&gt;Folders will appear even if a user doesn't have access to them in the Reports Library. But the reports within them will not. Same is true about tree level security, the branches of the tree will show in the Report Viewer. If the user does not have access, the branch will be greyed out and not available for selection.&lt;/li&gt;&lt;li&gt;Need to change the folder name? Well, bummer, if you already have reports mapped to output to the folder on the Output and Distribution tab of the report definition. Changing the folder name will not change the output path on reports, so you have to go back and remap the output path for affected reports if you want them to publish correctly.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;div style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="235px" m$="true" src="http://4.bp.blogspot.com/-kvndfAoVIIE/Thpkjh78nDI/AAAAAAAAAHc/qfHfrkeiZKQ/s400/OpenWhengenerating.png" width="400px" /&gt;&lt;/div&gt;&lt;div style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;strong&gt;Management Reporter-Report Designer: Report Definition Output and Distribution tab&lt;/strong&gt;&lt;/div&gt;&lt;div style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;/div&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you plan on putting reports in to groups (In Management Reporter-Report Designer, choose File-Report Groups)&amp;nbsp;to generate them (similar to daisy-chaining reports together in FRx), make sure you unmark the "View Report When Generated" option on the Report Definition, to prevent all of the reports from opening when you process the group.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Any other lessons learned out there?&amp;nbsp; What I would love to see in the next release-- ability to pick more than one output path/method per report.&amp;nbsp; This comes up a lot when needing to publish reports for multiple user groups, or to print and generate to the report library simultaneously.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4742073216237509092?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4742073216237509092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4742073216237509092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4742073216237509092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4742073216237509092'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/07/management-reporter-report-distribution.html' title='Management Reporter Report Distribution Lessons Learned'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-lbtO2gIIF7Q/ThplwYvSOcI/AAAAAAAAAHg/50sea4Ebd3U/s72-c/security.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-679310274927093858</id><published>2011-07-10T19:37:00.000-07:00</published><updated>2011-07-10T19:37:33.413-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='customizations'/><title type='text'>Troubleshooting Tips and Tricks</title><content type='html'>Sometimes I am surprised by how the most basic troubleshooting steps can lead to resolving an issue.&amp;nbsp;When I am mired in an issue, these are&amp;nbsp;five of&amp;nbsp;the&amp;nbsp;steps I come back to time and time again.&amp;nbsp; &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Does this occur for all users?&amp;nbsp; This can help to identify if it is&amp;nbsp;a workstation issue or user issue.&amp;nbsp; For this reason, it is always important to test for an issue as both 'sa' and as a normal user.&lt;/li&gt;&lt;li&gt;Does this occur for all companies?&amp;nbsp; This can help identify if it is a data-related issue, or a system-wide issue.&lt;/li&gt;&lt;li&gt;Is it due to a third party product or customization?&amp;nbsp; Disable it using Microsoft Dynamics GP menu-Tools-Customize-Customization Status (it will be disabled only for the current user, and only until they relaunch GP), and then attempt to recreate the issue.&lt;/li&gt;&lt;li&gt;When did the issue start?&amp;nbsp; Identifying other activities around the same time (e.g., updates, system changes, etc) can help to pinpoint the cause or a contributing factor.&lt;/li&gt;&lt;li&gt;Witness the issue, follow it step by step.&amp;nbsp; This can help to identify an issue that is the result of miscommunication or misunderstanding regarding system functionality.&amp;nbsp; This step is often skipped, and yet it is critical to avoiding unnecessary back and forth to attempt to resolve the issue.&lt;/li&gt;&lt;/ol&gt;This list is definitely incomplete, but I thought I would share these five key steps.&amp;nbsp; Please post your own as well :)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-679310274927093858?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/679310274927093858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=679310274927093858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/679310274927093858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/679310274927093858'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/07/troubleshooting-tips-and-tricks.html' title='Troubleshooting Tips and Tricks'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-9090213895778937599</id><published>2011-06-29T10:44:00.000-07:00</published><updated>2011-06-29T22:45:00.866-07:00</updated><title type='text'>How to find Dynamics GP Customizations or Third Party Modules</title><content type='html'>One question that I have to answer frequently for Dynamics GP customers is "How can I tell if I have any Dynamics GP customizations or third party modules?"&lt;br /&gt;&lt;br /&gt;When a client gets a new partner, or when a customer is looking to upgrade Dynamics GP, it's important for both the customer and partner to know if any customizations or ISV solutions might be installed so that they can be properly supported or can be upgraded.&lt;br /&gt;&lt;br /&gt;So how can you tell what ISV solutions or customizations are installed in your GP environment?&amp;nbsp; Since there is no single window or feature in GP that completely answers this question, you have to check a few places, and ideally have some familiarity with your GP system to adequately answer this question.&lt;br /&gt;&lt;br /&gt;I've listed the things that come to mind when I need to look for customizations or third-party products.&amp;nbsp; If I missed anything, please post a comment and let me know.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Customization Status&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Tools -&amp;gt; Customize -&amp;gt; Customization Status&lt;br /&gt;&lt;br /&gt;An easy place to start is the Customization Status window.&amp;nbsp; It lists the Dynamics GP modules and Dexterity-based ISV solutions or customizations that are installed and active.&amp;nbsp; Although handy, the problem with this window, or more specifically the list it displays, is that it isn't always obvious which items are standard GP modules, and which items are ISV solutions or customizations.&amp;nbsp; If you are familiar with the standard list of GP modules, then you can usually pick out the items that are ISV or custom.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Dynamics.set&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;C:\Program Files\Microsoft Dynamics\GP&amp;nbsp; (or the application directory where you installed GP)&lt;br /&gt;&lt;br /&gt;Locate the Dynamics.set file and open it with Notepad.&amp;nbsp; The Dynamics.set file is essentially the same list that is displayed in the Customization Status window, but it includes additional technical info, such as the number of modules installed (the number at the very top), the module IDs (the number above each name), and then the module names.&amp;nbsp; The set file also includes the paths where the dictionary files are located.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This file would allow you to identify the specific third-party or custom Dexterity dictionaries that might be in use.&amp;nbsp; If you have Dex customizations, make sure that you have a copy of the full Dexterity project and source code, as you will need that to make modifications and upgrade.&lt;br /&gt;&lt;br /&gt;One thing to look for in a Dynamics.set file is whether GP is setup to use "shared dictionaries", meaning that all workstations point to a single copy of a modified Forms.dic and Reports.dic.&amp;nbsp; A standard set file looks something like this:&lt;br /&gt;&lt;br /&gt;:C:Program Files (x86)/Microsoft Dynamics/GP2010/Dynamics.dic&lt;br /&gt;:C:Program Files (x86)/Microsoft Dynamics/GP2010/Data/FORMS.DIC&lt;br /&gt;:C:Program Files (x86)/Microsoft Dynamics/GP2010/Data/REPORTS.DIC&lt;br /&gt;&lt;br /&gt;If you notice that the path for the FORMS.DIC or REPORTS.DIC is not the same as the Dynamics.dic line above, it's a sign that GP is setup to use shared dictionaries, which usually means that there are modified forms or reports.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;&lt;br /&gt;Customization Maintenance&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Tools -&amp;gt; Customize -&amp;gt; Customization Maintenance&lt;br /&gt;&lt;br /&gt;The customization maintenance will list modified forms, modified reports, and custom VBA code and references that are&amp;nbsp; active on the workstation.&amp;nbsp; These would be customizations made using Modifier, VBA Editor, or the Dynamics GP Report Writer.&amp;nbsp; Although this window displays a list, you still need to understand where these customizations are stored.&lt;br /&gt;&lt;br /&gt;Modified Forms are stored in the FORMS.DIC file referenced in Dynamics.set file.&lt;br /&gt;&lt;br /&gt;Modified Reports are stored in the REPORTS.DIC file referenced in Dynamics.set file.&lt;br /&gt;&lt;br /&gt;VBA code, user forms, and references are stored in .VBA files located in the Dynamics GP application directory.&amp;nbsp; The main file for GP VBA customizations is Dynamics.vba; however, if VBA was added to modules that are not included in Dynamics.dic, then there may be multiple .VBA files with customizations, such as HR.vba or AA.vba.&amp;nbsp; Note that there are usually many .vba files in the GP application directory--most of those are 'empty' and do not contain any customizations.&lt;br /&gt;&lt;br /&gt;One very nice thing about the Customization Maintenance window is that you can export and import customizations using .package files.&amp;nbsp; This is a great way to backup individual customizations, or all customizations, independent of your FORMS.DIC and .VBA files. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Add Ins&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;C:\Program Files\Microsoft Dynamics\GP\AddIns&lt;br /&gt;&lt;br /&gt;Add Ins are DLL files that were developed using Dynamics GP Visual Studio Tools and Visual Studio .NET.&amp;nbsp; These are customizations that can offer all of the power and flexibility of .NET, yet run within the context of Dynamics GP and look very much like a standard Dynamics GP window.&lt;br /&gt;&lt;br /&gt;By default with GP 2010, it looks like there are 15 files installed in the AddIns directory, most of which are named "Microsoft.Dynamics.GP...", making them easy to rule out as customizations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;&lt;br /&gt;Other Customizations to Consider&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;External Reports and Queries&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Many customers use Crystal Reports, MS Access, Excel, SSRS reports, or other tools to query Dynamics GP data.&amp;nbsp; While GP upgrades may not change database tables enough to cause those reports to break, you may need to 're-point' those reports to the new SQL Server instance or databases after you have upgraded to GP.&amp;nbsp; And if you have a problem with any of those reports and need support, it's always good to know which custom reports are out there.&lt;br /&gt;&lt;br /&gt;One common issue I have seen is that a lot of clients develop and deploy such external reports using the 'sa' login.&amp;nbsp; When the 'sa' password needs to be changed, it breaks these reports and users complain.&amp;nbsp; Such reports should never use the 'sa' login, so it's good to review those reports and make sure that they use a dedicated reporting login with limited access.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Integrations&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If any data is being imported to Dynamics GP, you will want to identify those integrations.&lt;br /&gt;&lt;br /&gt;If you use Integration Manager, you should make sure to backup your IM.mdb database file and have some documentation of your integrations, including source files and an import procedure.&lt;br /&gt;&lt;br /&gt;If you have any other tools, such as SmartConnect or Scribe, a similar backup + documentation procedure is recommended.&lt;br /&gt;&lt;br /&gt;If you have any custom eConnect integrations, you should ideally have full documentation, an installation (exe and/or msi), and source code, including any database objects (custom tables, stored procs) that the integration may require.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Custom integrations can be challenging for a few reasons.&amp;nbsp; First, because they are not referenced in any of the standard GP files discussed above, you may not know they exist.&lt;br /&gt;&lt;br /&gt;Second, even though an integration may look simple on the surface, it may have horrendously complex and intricate code behind the scenes--something that I've seen numerous times.&amp;nbsp; This can lead you to believe that they will be simple to support and upgrade, when they will actually be very difficult to deal with.&lt;br /&gt;&lt;br /&gt;Finally, custom integrations, such as those developed using Visual Studio, require the full source code to be upgraded.&amp;nbsp; If a customer has switched partners one or more times, it may be difficult to get the source code for those custom integrations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-9090213895778937599?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/9090213895778937599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=9090213895778937599' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/9090213895778937599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/9090213895778937599'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/how-to-find-dynamics-gp-customizations.html' title='How to find Dynamics GP Customizations or Third Party Modules'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5121478068399387830</id><published>2011-06-23T14:04:00.000-07:00</published><updated>2011-06-23T14:04:45.475-07:00</updated><title type='text'>Please, Please, Please Upgrade your Dynamics GP software</title><content type='html'>In the last few months, I have been asked to help several companies that were still using Dynamics GP 9.&lt;br /&gt;&lt;br /&gt;I understand the dozens of reasons why many companies are still using GP 9.&amp;nbsp; Many of those reasons make sense, while some don't.&amp;nbsp; And I've also seen customers that use old versions for years simply because their business hasn't changed in years and neither have their ERP requirements.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Regardless of the reason, if you are still using GP 9 and aren't actively working on your migration to GP 2010, I am begging you to upgrade.&amp;nbsp; If for no other reason than for the sanity of the poor consultants that start twitching when they hear "GP 9".&lt;br /&gt;&lt;br /&gt;Two of the companies that use GP 9 have eConnect integrations.&amp;nbsp; I love eConnect, but with eConnect 9, there are so many "bugs" / "features" that I've had to write dozens of workarounds.&amp;nbsp; From the lovely "System Error" messages of eConnect 9, to the endless bugs and omissions in the Payroll interfaces, I will not miss good old GP 9.&lt;br /&gt;&lt;br /&gt;And then last week I had to look into an Integration Manager 9 issue--back then, Integration Manager apparently wouldn't allow zero dollar transaction distributions.&amp;nbsp; Lovely.&lt;br /&gt;&lt;br /&gt;And this week a client discovered one of the many significant flaws with GP 9 inventory costing and valuation, learning about it much too late to solve the problem.&amp;nbsp; If you are still using GP 9 and rely heavily on distribution and inventory, I can pretty much guarantee that all is not well with your costing.&lt;br /&gt;&lt;br /&gt;And at least two of the GP 9 customers have wanted to submit support cases in the last month, but no such luck, as GP 9 is no longer supported in any form or fashion. &lt;br /&gt;&lt;br /&gt;I know that new software versions don't always seem compelling, and that it doesn't necessarily make sense to upgrade to every new version.&amp;nbsp; And I know that it takes time, effort, and money to upgrade--something that the "cloud computing" and "SaaS" evangelists will point to as one of the great flaws of on-premise software.&lt;br /&gt;&lt;br /&gt;But please, please don't stay two or more versions behind with your Dynamics GP software.&amp;nbsp; When Microsoft announces an end-date for support, there's a pretty good reason, and there are real consequences to that end-date.&amp;nbsp; And if you are paying your annual enhancement fees each year, you have already invested in the new releases, so you might as well make your investment complete and start using the new software.&lt;br /&gt;&lt;br /&gt;So, if you are still on GP 9, please upgrade.&amp;nbsp; Please?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5121478068399387830?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5121478068399387830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5121478068399387830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5121478068399387830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5121478068399387830'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/please-please-please-upgrade-your.html' title='Please, Please, Please Upgrade your Dynamics GP software'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-124289994767620443</id><published>2011-06-20T08:14:00.000-07:00</published><updated>2011-06-20T08:14:31.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='checks on the fly'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><category scheme='http://www.blogger.com/atom/ns#' term='payables management'/><title type='text'>Ch-Ch-Changes...And "Checks on the fly"</title><content type='html'>Interesting tidbits to share regarding the printing of "checks on the fly" from Microsoft Dynamics GP.&amp;nbsp; But, first, a quick explanation of a "check on the fly".&amp;nbsp; In GP, you can print a "check on the fly" from the Payables Transaction Entry window by entering an amount in the check field and clicking Print Check.&amp;nbsp; When you do this, a check is recorded alongside the invoice and the transaction distributions will affect both cash and expense.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Transactions-Purchasing-Transaction Entry&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YtaYKC43E8U/Tf9iQdhPSGI/AAAAAAAAAHY/ZklrZZpaegs/s1600/Check+Screen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="311px" i$="true" src="http://4.bp.blogspot.com/-YtaYKC43E8U/Tf9iQdhPSGI/AAAAAAAAAHY/ZklrZZpaegs/s400/Check+Screen.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Well, the question comes up...I print the check and realize there was mistake!&amp;nbsp; What can I change?&amp;nbsp; Well, from my testing you CAN change:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Document Number&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Payment terms&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Purchases Amount (but NOT the check amount)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1099 Amount&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Distributions&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Check Number&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can click Print Check and reprint the check using a new check number (it will automatically record the original check number as a void)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;What you CANNOT change:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="left"&gt;﻿Vendor ID&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Document Date&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Check Amount&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Checkbook &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Remit To Address&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="left"&gt;Although you can change the ID, when you click Print Check again to reprint the check, it will use the original Remit To Address.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div align="left"&gt;Good luck as always!&amp;nbsp; And let me know your own interesting tidbits regarding this feature in Dynamics GP!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-124289994767620443?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/124289994767620443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=124289994767620443' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/124289994767620443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/124289994767620443'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/ch-ch-changesand-checks-on-fly.html' title='Ch-Ch-Changes...And &quot;Checks on the fly&quot;'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-YtaYKC43E8U/Tf9iQdhPSGI/AAAAAAAAAHY/ZklrZZpaegs/s72-c/Check+Screen.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-1029243105325227180</id><published>2011-06-17T06:51:00.000-07:00</published><updated>2011-06-17T06:51:20.643-07:00</updated><title type='text'>BKD GP Team Blog!</title><content type='html'>Woohoo! It's party time here at BKD, we just launched a blog for our GP team.&amp;nbsp; Very exciting stuff,&amp;nbsp;especially because we have such a diverse group of people sharing their opinions, tips, and tricks for Dynamics GP.&amp;nbsp; If you have a chance, check it out!&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;"&gt;&lt;a href="http://www.dynamicsgpinsights.com/"&gt;&lt;span style="color: purple;"&gt;www.dynamicsGPinsights.com&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-1029243105325227180?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/1029243105325227180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=1029243105325227180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1029243105325227180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1029243105325227180'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/bkd-gp-team-blog.html' title='BKD GP Team Blog!'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7314345673615957851</id><published>2011-06-14T21:00:00.000-07:00</published><updated>2011-06-14T21:00:07.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='development tools'/><title type='text'>Sustainable Development?</title><content type='html'>Sustainability is a buzzword in business today, whether talking about maintaining growth or minimizing environmental impact, and seems to be tacked on to a variety of products from cereal bars to cars. So what do I mean when I talk about sustainable development with Microsoft Dynamics GP?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, first, I have to add in my own disclaimer. I am not a developer. So I really would love to hear from others on their experiences. But I have been involved in enough functional and technical design processes over the years, that I have seen some themes emerge around customizations that truly increase satisfaction with the software versus those that seem to limit the software’s capabilities and the customer’s satisfaction.&lt;br /&gt;&lt;br /&gt;In my mind, sustainable development is custom development that is approached in a way that:&lt;br /&gt;&lt;br /&gt;• Enhances the user’s experience with the system, does not diminish it&lt;br /&gt;&lt;br /&gt;• Does not try to replace the need for training and time to adjust to a new system&lt;br /&gt;&lt;br /&gt;• Uses supported tools and recognized approaches for solving a problem&lt;br /&gt;&lt;br /&gt;• Includes documentation, including foresight regarding upgrading and changes in business requirements&lt;br /&gt;&lt;br /&gt;Given the robust toolset that we now have to customize Microsoft Dynamics GP, it is not unusual to have some degree of custom development on even the smallest projects. These minor customizations can often reap big rewards in terms of satisfaction with the system. How do we go about developing these customizations in a “sustainable” way?&lt;br /&gt;&lt;br /&gt;I think that there are three key principles to keep in mind when considering custom development, to ensure that you are approaching it in a sustainable way:&lt;br /&gt;&lt;br /&gt;1. Ask Why? Why is this needed? Is it to support a business process and requirements? Get to the heart of the need, and address it appropriately—which may not be with development. It may be training, it may be the learning curve that comes with a new system, it may be understanding that business requirements can sometimes be differ from an individual user’s perspective.&lt;br /&gt;&lt;br /&gt;2. Document the design. Putting it down on paper can make a world of difference in terms of the thought processes applied—thinking through upgradeability, appropriateness of the selected toolset, and flexibility for future requirements. Plus this gives everyone something to respond to, something concrete to reference and consider.&lt;br /&gt;&lt;br /&gt;3. Don’t limit yourself. This is a hard one, because we all rely on the tools we know best. But when something falls outside your comfort level, or you sense that there may be a better approach, ask around. Trying to shoehorn the tools you know to meet a need can create a cell you will be forced to live in for years…and years…and years :)&lt;br /&gt;&lt;br /&gt;Of course, I am always interested in hearing your perspectives! Please let me know if you agree/disagree or want to add to the list above. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7314345673615957851?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7314345673615957851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7314345673615957851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7314345673615957851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7314345673615957851'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/sustainable-development.html' title='Sustainable Development?'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-1615643059239452177</id><published>2011-06-13T18:00:00.000-07:00</published><updated>2011-06-13T18:00:01.455-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartlist'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Select Blogs Where Smartlist Begins With [%]</title><content type='html'>I ran in to one of those DOH! moments this past week.&amp;nbsp; Simple as this...I needed to search for all payables transactions where the document number begins with a percent sign.&amp;nbsp; Why?&amp;nbsp; Well, this was how the client was&amp;nbsp;identifying certain invoices that needed additional processing.&lt;br /&gt;&lt;br /&gt;So,&amp;nbsp;I dutifully built a Payables Transaction SmartList (Microsoft Dynamics GP menu--SmartList--Expand Purchasing--Expand Payables Transactions--Click on Asterisk--Click on Search button) using the following criteria:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-EQ-HodhXXWE/TfZxwKT6f2I/AAAAAAAAAHQ/dghEN67XmSc/s1600/Search+before.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="346px" src="http://4.bp.blogspot.com/-EQ-HodhXXWE/TfZxwKT6f2I/AAAAAAAAAHQ/dghEN67XmSc/s400/Search+before.png" t8="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So, I am sure you ﻿SQL gurus out there already know my dilemma.&amp;nbsp; The smartlist returned ALL records that met the other three criteria, seemingly ignoring the first criteria for document number.&amp;nbsp; Why?&amp;nbsp; Well, because SQL uses the % as a wildcard in a LIKE statement.&amp;nbsp; So in this example, it was essentially looking for everything, since the only parameter was the wildcard.&amp;nbsp; Ugh.&amp;nbsp; But easily fixable once I thought about.&amp;nbsp; If, in SQL, I wanted to use LIKE to find something with an actual percent sign it, I would use brackets around the % sign like this [%].&amp;nbsp; And, well, it works in SmartList too!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7c2CpEa--tM/TfZywrWx5yI/AAAAAAAAAHU/qHY_LE_OBeE/s1600/Search+after.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="346px" src="http://1.bp.blogspot.com/-7c2CpEa--tM/TfZywrWx5yI/AAAAAAAAAHU/qHY_LE_OBeE/s400/Search+after.png" t8="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;And, again, I am sure the SQL gurus already know this....but this actually returned the correct results.&amp;nbsp; Woohoo.&amp;nbsp; Party On.&amp;nbsp; Excellent.﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-1615643059239452177?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/1615643059239452177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=1615643059239452177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1615643059239452177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1615643059239452177'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/select-blogs-where-smartlist-begins.html' title='Select Blogs Where Smartlist Begins With [%]'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-EQ-HodhXXWE/TfZxwKT6f2I/AAAAAAAAAHQ/dghEN67XmSc/s72-c/Search+before.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4818383147255855691</id><published>2011-06-08T23:14:00.000-07:00</published><updated>2011-06-08T23:14:37.608-07:00</updated><title type='text'>Performance Issues with Dynamics GP on Terminal Server with Mapped Drives</title><content type='html'>In the last year, I've had three inquiries regarding extreme performance issues when running Dynamics GP on a Terminal Server.&amp;nbsp; In the three cases, two were using GP 10, and one was using GP 9.&lt;br /&gt;&lt;br /&gt;The customers explain that when some users launch GP on a Terminal Server, it can take 5 to 10 minutes for Dynamics GP to launch.&amp;nbsp; But other users on the same Terminal Server don't have any issues or delays launching Dynamics GP.&amp;nbsp; Sometimes a user that has been working fine will suddenly experience the issue, and it will persist for that user going forward.&lt;br /&gt;&lt;br /&gt;In all three cases, it seems that the primary culprit was mapped drives on the user's terminal server session.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Two of the customers found that removing the drive mapping option in the user's Active Directory profile solved the problem.&amp;nbsp; The third customer did not have drive mappings in the AD profile, but found that removing the login script, which mapped drives, solved the problem.&lt;br /&gt;&lt;br /&gt;What is strange is that not all GP users were affected, even if all users had the same drive mappings.&amp;nbsp; And from what I have learned, only Dynamics GP had performance issues.&lt;br /&gt;&lt;br /&gt;Since a ton of customers run Dynamics GP just fine in a Terminal Server environment (presumably many with mapped drives), I assume that there is something else involved other than just mapped drives, but I don't yet have any clues as to what that might be, and why it only affects some users.&lt;br /&gt;&lt;br /&gt;Since one of the customers needs mapped drives in user TS sessions, they are planning on submitting a support case to understand why the mapped drives cause the issue.&amp;nbsp; If I learn more, I'll post an update.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4818383147255855691?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4818383147255855691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4818383147255855691' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4818383147255855691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4818383147255855691'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/performance-issues-with-dynamics-gp-on.html' title='Performance Issues with Dynamics GP on Terminal Server with Mapped Drives'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6095145981418572748</id><published>2011-06-06T13:10:00.000-07:00</published><updated>2011-06-06T13:10:46.752-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domain'/><category scheme='http://www.blogger.com/atom/ns#' term='active directory'/><category scheme='http://www.blogger.com/atom/ns#' term='management reporter'/><category scheme='http://www.blogger.com/atom/ns#' term='mass printing'/><title type='text'>In Search Of....Creative Management Reporter Solutions</title><content type='html'>I only have vague memories of the old "In Search Of" series hosted by Leonard Nimoy, although those long forgotten memories also recall a bit of creepiness and more than a couple nightmares prompted by the episodes.&lt;br /&gt;&lt;br /&gt;Today, I am not looking for Bigfoot or trying to debunk the myth of the Bermuda Triangle, but I am in search of creative solutions for two Management Reporter dilemmas I have run in to recently.&amp;nbsp; I would love to hear from anyone who has found elegant/not so elegant solutions to the following issues:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Deploying Management Reporter in environments that do not have a domain/Active Directory in place&lt;/li&gt;&lt;li&gt;Dealing with large volume reporting, and the need to generate reports to the library for viewing as well as printing them for packets&lt;/li&gt;&lt;/ul&gt;I know that these are not "possible" today, but I wanted to hear from anyone who might have a workaround or even how they approached these limitations with their clients.&amp;nbsp; You can post on this blog, or email me directly at &lt;a href="mailto:cphillips@bkd.com"&gt;cphillips@bkd.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6095145981418572748?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6095145981418572748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6095145981418572748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6095145981418572748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6095145981418572748'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/in-search-ofcreative-management.html' title='In Search Of....Creative Management Reporter Solutions'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-8530336740965258086</id><published>2011-06-03T18:00:00.000-07:00</published><updated>2011-06-03T18:00:00.107-07:00</updated><title type='text'>Bank Transfers, Interest Income, What's the Diff?</title><content type='html'>I ran across a wierdo issue, that I almost can't believe I haven't run across before.&amp;nbsp; So a special shout-out to a fellow BKDer who found this issue in Dynamics GP.&amp;nbsp; Now, maybe some of my fellow bloggers may have an answer/fix to this.&amp;nbsp; But I suspect is it just how GP categories the transactions in Bank Reconciliation.&lt;br /&gt;&lt;br /&gt;Let's take the example of a bank transfer (Transactions&amp;gt;&amp;gt;Financial&amp;gt;&amp;gt;Bank Transfer Entry).&amp;nbsp; We record and post a Bank Transfer. Then, let's say we want to report on said transfer in Smartlist (Microsoft Dynamics GP&amp;gt;&amp;gt;Smartlist&amp;gt;&amp;gt;Financial&amp;gt;&amp;gt;Bank Transactions).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qRjqHICC2pU/Tej2jzQW9II/AAAAAAAAAHM/UKBFwNtxLKo/s1600/bank+transfers.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="32px" src="http://2.bp.blogspot.com/-qRjqHICC2pU/Tej2jzQW9II/AAAAAAAAAHM/UKBFwNtxLKo/s400/bank+transfers.jpg" t8="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Everything looks good until we see the CM Trx Type field.&amp;nbsp; I would expect to see Transfer or something like that, but instead I see Interest Income.&amp;nbsp; This is true for both sides of the transfer.&amp;nbsp; And I know it's a transfer due to the Source Doc Number and Source Document, as well as the fact that I can drilldown on the transaction and it opens up the originating Bank Transfer.&lt;br /&gt;&lt;br /&gt;Not a big deal, but definitely odd and something to be aware of.&amp;nbsp; In this case, I told the user to rely more heavily on source document in conjunction with CM Trx Type as well as Source Doc Number.&lt;br /&gt;&lt;br /&gt;Anyone else come across this?&amp;nbsp; Anyone know why this happens?&amp;nbsp; I suspect it is something to do with the numbers used in the DB for the different trx type, and GP using two different types with the same number.&amp;nbsp; But if someone knows more details, I would love to hear them!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-8530336740965258086?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/8530336740965258086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=8530336740965258086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8530336740965258086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8530336740965258086'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/bank-transfers-interest-income-whats.html' title='Bank Transfers, Interest Income, What&apos;s the Diff?'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-qRjqHICC2pU/Tej2jzQW9II/AAAAAAAAAHM/UKBFwNtxLKo/s72-c/bank+transfers.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3255560404759383551</id><published>2011-06-01T11:06:00.000-07:00</published><updated>2011-06-01T13:15:35.656-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='implementation'/><title type='text'>Implementation Trauma, Number Three!</title><content type='html'>I know you all have been waiting, staying up at night, just hoping that I would finally do a post on the #3 consulting and customer sins regarding software implementation. So here I am, no need to wait any longer!&amp;nbsp; It has been awhile since I did my original post regarding my personal top 5 consulting and customer sins.&amp;nbsp; I should emphasize that I came up with this list through my own personal experience, and my experiences teaching Sure Step to partners.&amp;nbsp; In no way do I want to imply that I am not guilty of these sins (as a consultant and customer bother)!&amp;nbsp; Much of my learning has been the hard way, so my hope is that through these posts I can help someone avoid the mistakes I have made :)&lt;br /&gt;&lt;br /&gt;To revisit the list:&lt;br /&gt;&lt;br /&gt;Top 5 Consulting Sins-&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Assuming you are the sole reason for the success/failure of the project&lt;/li&gt;&lt;li&gt;Forgetting that customer service is important even during the heat of an implementation&lt;/li&gt;&lt;li&gt;Ignoring risks as a way to avoid difficult conversations and/or to not "rock the boat"&lt;/li&gt;&lt;li&gt;Forgoing proactive change management for many of the same reasons as #3&lt;/li&gt;&lt;li&gt;Losing yourself in the "weeds" and forgetting the reasons/goals for the implementation&lt;/li&gt;&lt;/ol&gt;Top 5 Customer Sins-&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Assuming that the consulting team is the sole reason for the success/failure of the project&lt;/li&gt;&lt;li&gt;Approaching the consulting team as adversaries instead of partners&lt;/li&gt;&lt;li&gt;Underestimating the organizational change associated with implementing software&lt;/li&gt;&lt;li&gt;Not placing value on the time spent by employees on an implementation&lt;/li&gt;&lt;li&gt;Inadequately voicing/sharing your goals, whether due to limited budget, resources, or time (or energy!)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Let's take a closer look at number 3 on the consulting list-- Ignoring risks as a way to avoid difficult conversations and/or to not "rock the boat".&amp;nbsp; Come on now, be honest....who has avoiding an issue or a risk in hopes that it will resolve itself?&amp;nbsp; I find that I procrastinate most on risks that involve people.&amp;nbsp; For example, let's say that you are working with the customer's internal project manager. You really like them, have had lunch with them, shared stories about your kids.&amp;nbsp; But he/she seems buried in work.&amp;nbsp; And, increasingly, the follow through on tasks is&amp;nbsp;delayed and/or sloppy and you find yourself spending more time managing the customer's resources.&amp;nbsp; What do you do?&amp;nbsp; What can do you do?&amp;nbsp; Ignore it, hope that it gets better?&amp;nbsp; Maybe you have tried to gently discuss it with him/her?&amp;nbsp; These are all important questions, but it really comes down to two things--&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Is this a risk to the project?&amp;nbsp; YES.&amp;nbsp; Do you (or your project manager) have an obligation to proactively manage this risk?&amp;nbsp; YES.&amp;nbsp; Maybe a more direct conversation with the internal project manager is needed.&amp;nbsp; Maybe involving the customer's project sponsor and/or the project manager's supervisor in a brainstorming session to determine possible solutions to the bottleneck.&amp;nbsp; The key here, in my opinion, is to focus on the proactive, focus on the solutions and causes...not on the details of who did or didn't do what.&amp;nbsp; Sure, the details can be important in focusing the brainstorming, but try to keep it out of the he did/she did territory.&amp;nbsp; In the end, the whole project team (customer and consultants) is in it for the reason- success.&amp;nbsp; So focusing on why we manage risk (to increase the probability of success), can help everyone rise above the overwhelming details.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;So what about on the customer side?&amp;nbsp; Number 3 is -- Underestimating the organizational change associated with implementing software.&amp;nbsp; Wow.&amp;nbsp; That is a big one.&amp;nbsp; Seriously.&amp;nbsp; With change comes uncertainty, about roles, about processes, about what this means for the organization.&amp;nbsp; Much like pain management, organization change management is about being ahead of the "pain" of change.&amp;nbsp; Mark works in customer service. He has heard about the new system, but really hasn't been involved in the implementation process.&amp;nbsp; What he does know, though, is that the new system is supposedly more "efficient" than the current one.&amp;nbsp; And with efficiencies, it seems like they might not need as many people working in customer service.&amp;nbsp; Not to mention, he has barely learned how to do his job in the current system after being hired a year ago-- the idea of learning a new system right before the busy season really concerns him.&amp;nbsp; These are all things that the executives, project sponsors, and managers involved in the implementation need to consider.&amp;nbsp; Discussions about what this change means to the organization, and to the people who rely on it for their livelihood, should not be avoided.&amp;nbsp; By opening up communication regarding the changes coming, the implementation becomes a company-wide effort where everyone can share in the success.&amp;nbsp; Maybe there will be less staff in customer service, but all of the new reporting tools means that new sales analyst positions will be available.&amp;nbsp; Finding this balance of the benefit to the organization and to the employees is key along with strong, positive&amp;nbsp;leadership regarding the change.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Well, those are the sins for today.&amp;nbsp; Two more to go.&amp;nbsp; As always, please feel free to share your thoughts.&amp;nbsp; More and more,&amp;nbsp;I am reminded that&amp;nbsp;software functionality is only one part of the equation...the rest of it is filled with the&amp;nbsp;people, processes, and methods&amp;nbsp;that work with it to achieve success.&lt;br /&gt;&lt;br /&gt;UPDATED 6/1: I need to update this with a shout out to Mark Polino, whose repost of this article reminded me of something I meant to include.&amp;nbsp; One of my favorite books, that has served me well with gaining the "gumption" to approach difficult topics (see the discussion about proactively managing risk above).&amp;nbsp; &lt;a href="http://www.amazon.com/Difficult-Conversations-Discuss-What-Matters/dp/0143118447/ref=sr_1_1?ie=UTF8&amp;amp;qid=1306959150&amp;amp;sr=8-1"&gt;Difficult Conversations by Stone, Patton, and Heen.&lt;/a&gt;&amp;nbsp; Check it out if you need to up your "gumption" quotient!&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3255560404759383551?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3255560404759383551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3255560404759383551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3255560404759383551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3255560404759383551'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/implementation-trauma-number-three.html' title='Implementation Trauma, Number Three!'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7547923361311787139</id><published>2011-06-01T10:42:00.000-07:00</published><updated>2011-06-01T10:42:32.505-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advanced search'/><category scheme='http://www.blogger.com/atom/ns#' term='account security'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Account Level Security and Advanced Search, Uh-Oh</title><content type='html'>It still amazes me that although I have been training for over 10 years, I still have students "discover" new "features" in Dynamics GP.&amp;nbsp; I just had a case pop up in class last month, regarding account level security and the advanced search feature in the account lookup window.&lt;br /&gt;&lt;br /&gt;But, first, a little background for those of you not familiar with account level security (also referred to as organizational structures).&amp;nbsp; This feature of Microsoft Dynamics GP allows you to assign users and GL accounts to branches of your organization structure, thereby restricting the accounts that a user can access.&amp;nbsp; Companies use this for a variety of reasons including:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ensuring that users don't post to incorrect accounts&lt;/li&gt;&lt;li&gt;Securing accounts that users shouldn't be able to view (e.g., balances or other information)&lt;/li&gt;&lt;li&gt;Simplifying the interface for a user so that they only see the accounts they use&lt;/li&gt;&lt;/ul&gt;So, let's assume in my example that I have configured account level security to display a restricted list of accounts for my payables clerks.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zcAYCQJAGdQ/TeZay438uvI/AAAAAAAAAHA/h7pC8Lhmgmo/s1600/Accounts+Restricted.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248px" src="http://4.bp.blogspot.com/-zcAYCQJAGdQ/TeZay438uvI/AAAAAAAAAHA/h7pC8Lhmgmo/s400/Accounts+Restricted.jpg" t8="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;﻿&lt;/div&gt;&lt;div align="left"&gt;Note that when they use the Accounts lookup to select an account number, the first account listed is 000-6170-04 (the first account in their restricted list, NOT the first account in the complete chart of accounts).&amp;nbsp; This is working as designed, as we only want the payables clerks to see their expense accounts.&amp;nbsp; But....what happens if a user users the Advanced Search feature to locate an account?&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-sIYahwwhsAw/TeZ36ig_LbI/AAAAAAAAAHE/tsnGbQ8gmT4/s1600/Accounts+Advanced+Search.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248px" src="http://2.bp.blogspot.com/-sIYahwwhsAw/TeZ36ig_LbI/AAAAAAAAAHE/tsnGbQ8gmT4/s400/Accounts+Advanced+Search.jpg" t8="true" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;﻿So, in this example, I clicked the Advanced Search icon (the binoculars called out in the above screenshot) and chose to search by Account Number begins with 000-1.&amp;nbsp; And, surprisingly, I get back a list of accounts that meet that criteria but are NOT part of the restricted list that I am able to use due to acccount security.&amp;nbsp; If I try to pick one of these accounts, I get the following error:&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jbzLVLGnisw/TeZ4n9mIomI/AAAAAAAAAHI/HPPYcq9Jz_g/s1600/Account+error.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="124px" src="http://3.bp.blogspot.com/-jbzLVLGnisw/TeZ4n9mIomI/AAAAAAAAAHI/HPPYcq9Jz_g/s320/Account+error.jpg" t8="true" width="320px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: left;"&gt;So, although you can SEE the accounts, you still can't USE them if you don't have access to them.&amp;nbsp; I know you are probably wondering, well, what's the problem then?&amp;nbsp; Well, it is a minor one, but what this means is that users need to know that although the list is secure for posting, reporting, etc. it is NOT secure from viewing the account descriptions.&amp;nbsp; Account descriptions may contain sensitive information like names that users may assume can't be seen if a user doesn't have access to it.&amp;nbsp; But it can be seen.&amp;nbsp; So plan accordingly.&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: left;"&gt;There is a problem report for this, but is a bit old and doesn't seem to be a popular one...so definitely contact your Partner or Microsoft support if you want to be added to the list of customers experiencing this issue.&amp;nbsp; Here are the details:&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;"&gt;MBS Great Plains 4799 - ‘Search Accounts’ returns all accounts, not just enabled&lt;/span&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: left;"&gt;&lt;br /&gt;Have a great Thursday!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-7547923361311787139?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/7547923361311787139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=7547923361311787139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7547923361311787139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/7547923361311787139'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/06/account-level-security-and-advanced.html' title='Account Level Security and Advanced Search, Uh-Oh'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-zcAYCQJAGdQ/TeZay438uvI/AAAAAAAAAHA/h7pC8Lhmgmo/s72-c/Accounts+Restricted.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-4327004483734534320</id><published>2011-05-20T16:13:00.000-07:00</published><updated>2011-05-20T23:15:42.863-07:00</updated><title type='text'>eConnect Integrations:  90% Data, 10% eConnect</title><content type='html'>eConnect for Microsoft Dynamics GP is fantastic.&amp;nbsp; It's easy for a .NET developer to use, it's fairly comprehensive, it's fairly well documented, and it's relatively fast.&amp;nbsp; Except for the occasional missing field, unsupported transaction or bug, I love working with it.&lt;br /&gt;&lt;br /&gt;Unfortunately, I have found that among non-technical folks, there is often a misconception about what it takes to develop a complete eConnect custom integration.&amp;nbsp; I am guessing that they think that eConnect should be no different than Integration Manager, where in a few hours or less, you should be able to produce a fancy integration.&lt;br /&gt;&lt;br /&gt;It's rarely that simple.&amp;nbsp; While trying to explain to a GP partner why a POP + SOP + Project Accounting integration would really take 40 hours to develop, I came up with this way of describing it:&amp;nbsp; eConnect is the easy part.&amp;nbsp; That's the 10% of the equation.&amp;nbsp; It's a standard API with good documentation.&amp;nbsp; It's a known quantity.&amp;nbsp; The other 90% is dealing with the client's source data file, developing business logic for processing the data, and handling exceptions in that data.&amp;nbsp; And don't forget testing, debugging, minor changes, installation, and documentation.&lt;br /&gt;&lt;br /&gt;Sure, I have had situations where customers provided a very simple and clean data file that went straight into GP.&amp;nbsp; No data transformations, no lookups, no exceptions or errors--a perfect integration.&amp;nbsp; Those are simple and easy.&amp;nbsp; But those situations are generally rare--in part because such integrations can often be done with Integration Manager or even a table import (not that I'd recommend a table import...).&lt;br /&gt;&lt;br /&gt;The real power and some of the greatest benefits of custom eConnect integrations comes with complex integrations.&amp;nbsp; And with such integrations, it isn't eConnect that provides the benefit as much all of the extra logic that can be included with custom integration.&amp;nbsp; For example, importing a customer with eConnect is essentially always the same.&amp;nbsp; Customer object, address object, populate the properties, and send it off to eConnect.&amp;nbsp; Simple.&lt;br /&gt;&lt;br /&gt;But when the customer data is in multiple files, or different data formats, or &lt;a href="http://dynamicsgpland.blogspot.com/2010/06/importing-unparsed-addresses-into.html"&gt;the address isn't parsed at all&lt;/a&gt; or is incomplete, or the data needs transformation, or has exceptions that need to be handled, that is when additional custom .NET code can come into play to make the integration much more valuable than a generic data import.&lt;br /&gt;&lt;br /&gt;A timely example:&amp;nbsp; I had a phone call today with a client that receives over 600,000 cash receipts every month, a number that is rapidly growing.&amp;nbsp; What they actually receive is a single giant payment from an external trading partner, and that trading partner also provides them with a 150MB text file containing the list of every customer payment.&amp;nbsp; Not only do these cash receipts need to be entered, but they also need to be applied to invoices--so think of it as over 1,000,000 transactions.&amp;nbsp; Every month.&amp;nbsp; They would like to automate this process to eliminate the 3 full days of work that are required to enter and apply the cash receipts.&amp;nbsp; In concept that doesn't sound so bad, and eConnect can obviously handle that.&lt;br /&gt;&lt;br /&gt;So I then ask if there are any exceptions in the data that are handled manually, or problems that require attention before the cash receipt can be entered or applied.&amp;nbsp; "No, not really" the customer answered. Hmmm, that seems unlikely.&lt;br /&gt;&lt;br /&gt;About 30 seconds later, I ask them which column in the data file is the Dynamics GP customer ID.&amp;nbsp; It turns out that the customer ID is not in the data file--only the customer name.&amp;nbsp; Sometimes the customer name is the same as GP, sometimes it's similar, and sometimes it is completely different.&amp;nbsp; The accounting staff manually looks up each customer name in GP to determine which GP customer sent the payment.&amp;nbsp; I don't know about you, but I would call that a giant 600,000 line exception.&amp;nbsp; Okay, so we can setup an easy method to map the customer name in the data file to the GP customers.&amp;nbsp; Not a problem, but note that this has nothing to do with eConnect.&lt;br /&gt;&lt;br /&gt;I asked about the additional worksheet in Excel where some of the data had been separated.&amp;nbsp; "Oh, that's a different type of cash receipt, we handle those separately."&amp;nbsp; So now we have regular cash receipts, and special cash receipts.&amp;nbsp; Another exception, to be handled well before eConnect gets involved.&lt;br /&gt;&lt;br /&gt;And what about the payment applications?&amp;nbsp; Any issues with those?&amp;nbsp; "No, those are pretty standard."&amp;nbsp; But, the first cash receipt we look at in GP is not applied to an invoice, because there is no invoice available for that customer.&amp;nbsp; Another exception.&amp;nbsp; And then we find an overpayment.&amp;nbsp; Another exception.&amp;nbsp; And then an underpayment.&amp;nbsp; Another exception.&amp;nbsp; After discussing overpayments and underpayments, they explain that they want debit and credit memos automatically created, and then applied to the customer's credit or debit balance.&amp;nbsp; But only if the difference is within a certain threshold, such as under $100.&amp;nbsp; If the difference is greater than $100, it should appear on an exception report requiring a review.&amp;nbsp; Makes total sense, and mimics their manual processes.&amp;nbsp; But eConnect is still only peripheral at this point.&lt;br /&gt;&lt;br /&gt;The requirements and exception list goes on, and I now have a good idea of what needs to be done.&amp;nbsp; And you know what?&amp;nbsp; The LEAST of my concerns is eConnect.&amp;nbsp; It's dealing with the 150MB data file and the thousands of exceptions that the integration is going to need to handle during the import.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;And when an exception or error occurs, I'll need to create an exception file so that they can deal with just the 1,000 records with errors instead of swimming through the massive 600,000 line data file.&amp;nbsp; And don't forget reporting--they will need a report or log listing how the cash receipts were imported and the invoices to which they were applied.&lt;br /&gt;&lt;br /&gt;It's a fantastic project, and I can't wait to help them turn a 3 day ordeal into a simple 15 minute process.&amp;nbsp; But roughly 90% of my work will be wrestling with the source data, while only 10% will be working directly with eConnect.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-4327004483734534320?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/4327004483734534320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=4327004483734534320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4327004483734534320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/4327004483734534320'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/econnect-integrations-90-data-10.html' title='eConnect Integrations:  90% Data, 10% eConnect'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3904397456006721276</id><published>2011-05-18T22:53:00.000-07:00</published><updated>2011-05-18T22:53:20.547-07:00</updated><title type='text'>Dynamics GP .NET eConnect Developer Wanted</title><content type='html'>5/18/2011&lt;br /&gt;&lt;br /&gt;I hear and read news reports saying that the US economy is still in bad shape, but I am having a hard time reconciling that news with the continuous projects that I've been frantically working on for the last 6 months.&amp;nbsp; And when I've reached out to a few GP .NET developers that I know to see if they can help with a few projects, they too have typically been fully booked, working late nights just to keep up.&lt;br /&gt;&lt;br /&gt;So, if you are a Dynamics GP .NET eConnect and VS Tools developer, or if you know of one, I'd love to chat.&lt;br /&gt;&lt;br /&gt;I'm looking to have additional resources available for those times when 5 clients suddenly want work done immediately, or when I'm swamped and a new project pops up out of the blue.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ideally, I'm looking for developers located in North America who are independent contractors.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;He or she should be proficient with Visual Studio, C# and VB, as well as eConnect, Visual Studio Tools for GP, and SQL Server.&amp;nbsp; Strong understanding of Dynamics GP functionality, distributions, GL accounts, and debits and credits is desirable as well.&lt;br /&gt;&lt;br /&gt;I can be reached at &lt;a href="mailto:steveendow@gmail.com"&gt;steveendow@gmail.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3904397456006721276?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3904397456006721276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3904397456006721276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3904397456006721276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3904397456006721276'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/dynamics-gp-net-econnect-developer.html' title='Dynamics GP .NET eConnect Developer Wanted'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3871694133656915740</id><published>2011-05-18T20:21:00.000-07:00</published><updated>2011-05-18T20:21:33.911-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql reporting services'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>And a One, And a Two, SQL Report Security</title><content type='html'>One of the most valuable (and yet underutilized) benefits of Microsoft Dynamics GP is the standard SQL Reporting Services (SSRS) reports that are available. These reports are valuable for a number of reasons including: &lt;br /&gt;&lt;br /&gt;• Delivery via web to non-GP users&lt;br /&gt;&lt;br /&gt;• Easy export capability to Excel, Word&lt;br /&gt;&lt;br /&gt;• Ability to modify existing reports and access additional information&lt;br /&gt;&lt;br /&gt;• Ad-hoc reporting capabilities using standard Report Models&lt;br /&gt;&lt;br /&gt;• Subscription capabilities within SQL Reporting Services (delivers the report to your inbox!)&lt;br /&gt;&lt;br /&gt;I know I have other posts dedicated to my love of SSRS, so I will spare you another love letter for now. But I do want to chat a bit about SQL Reporting Services security.&lt;br /&gt;&lt;br /&gt;It seems like Dynamics GP users fall in to three main categories when it comes to security:&lt;br /&gt;&lt;br /&gt;1. Everyone sees everything- Most common when the finance department is small and there is not a lot of delineation of duties. So often in GP, all users are POWERUSERS.&lt;br /&gt;2. Limited access for convenience only- Maybe some security is defined, but only to help simplify the user experience. From a reporting perspective, there are no concerns about “protecting” information. This is usually the case when there is a delineation of duties, but due to overlap and backups, everyone knows everything anyway.&lt;br /&gt;3. Limited access out of necessity- Security is defined not only to simplify the user experience, but also to protect data from unauthorized access. This is very common when payroll and human resources are included in the system, or in larger organizations with multiple offices/companies/entities to consider.&lt;br /&gt;In the first two scenarios above, SQL Reporting security is not much of a concern. But in the third scenario, we would really need to be measured in our approach to ensure data is appropriately secured. I think, sometimes, it is assumed that customers fall in to #1 or #2 because of our understanding of their GP user base. But we need to be careful and consider the user base for SQL Reporting, and ensure that the customer understands its security model as well.&lt;br /&gt;&lt;br /&gt;SQL Reporting security can be broadly categorized in to three areas:&lt;br /&gt;&lt;br /&gt;• Site Security&lt;br /&gt;&lt;br /&gt;• Item Security&lt;br /&gt;&lt;br /&gt;• Data Security&lt;br /&gt;&lt;br /&gt;Site Security is defined in Report Manager (generally http://servername/reports) using the Site Settings link. This is where you define who has permissions to manage and administer site level settings. Users do not have to be defined in Site Security to access and use SQL Reports. They only need this level of access to allow them to manage aspects of the site like system properties and schedules.&lt;br /&gt;&lt;br /&gt;Item Security is also defined in Report Manager. This controls access to the folders and reports on the site. This can be accessed by choosing Properties or Security from the drop down list that appears when you click on an item. Or by using the Folder Settings button. By default, when an Windows user or group is assigned to an item in Report Manager, all items below inherit the access. For example, if a user is granted access to a folder, the same user also has access to the reports in the folder. This parent-level security inheritance can be broken by item by accessing security for the item. For example, if the user shouldn’t have access to one report within the folder, you can access security for that report and delete the user (therefore “breaking” the parent-level security inheritance).&lt;br /&gt;&lt;br /&gt;Okay, so here is where it gets confusing :) Item level security controls access to the report. HOWEVER, being able to get to the report is NOT the same as being able to generate the report. This is where data security comes in to play. This can take on a lot of angles, depending on how you have configured the data source for your report. But let’s assume that you have configured it to use Windows credentials (that are not stored in the data source).&lt;br /&gt;&lt;br /&gt;Data Security is defined in SQL Server Management Studio. This security controls the user’s ability to access the tables, stored procedures, and views necessary to generate reports. Keep in mind that although we are defining security for use with SQL Reporting Services, the data level security you define also allows users to access the data through Excel, Crystal Reports, Access, or another ODBC data source. For this reason, it is important that Data Security must be as restrictive as your requirements necessitate to prevent unauthorized access to data. Simply restricting access at the Item Level would only limit the user’s ability to access the data using that particular medium. If Data Security gives them access to the underlying data, they could access it with Excel, Access, etc even if they can’t access the SQL Report itself.&lt;br /&gt;&lt;br /&gt;To configure Data Security in SQL Server Management Studio, the user must first be set up under Security&amp;gt;&amp;gt;Logins using their Windows login. Then, using the User Mapping tab in User Properties, you must map the user to the appropriate company databases and the corresponding database roles (to grant access to the necessary tables, views, and stored procedures to generate the reports).&lt;br /&gt;&lt;br /&gt;Fortunately, Microsoft Dynamics GP comes with a number of predefined roles that begin with “rpt” specifically for use with the SQL reports. These roles have access to specific tables, views, and stored procedures. And the access is restricted so that data cannot be updated, only selected/viewed. Remember, whatever access you give them at the Data level can be used with Excel, Access, etc. So it is important, if you use roles outside of the standard “rpt” roles provided by Dynamics GP , to ensure that the roles do not grant additional permissions that you would not normally allow (e.g., updating tables, accessing additional tables, etc)&lt;br /&gt;&lt;br /&gt;When planning security for your SQL reports, it is important to consider all three levels of security. There are resources on CustomerSource to assist with this process including:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://mbs2.microsoft.com/knowledgebase/KBDisplay.aspx?WTNTZSMNWUKNTMMYXUPYZQPOUXNXSPSYWZONKKOWXKNMVXMYTPYUXNTQPYOSWOSQ"&gt;Frequently Asked Questions About SQL Reporting Services and Dynamics GP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://mbs.microsoft.com/customersource/downloads/servicepacks/msdgp10_srsdownload.htm?printpage=false&amp;amp;sid=izuzpbbqjv1zzytfmiox4uei&amp;amp;stext=sql%20reporting%20services%2010"&gt;Download the SQL Reporting Services Administration Guide (last updated for GP 10), which includes additional information on security&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3871694133656915740?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3871694133656915740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3871694133656915740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3871694133656915740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3871694133656915740'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/and-one-and-two-sql-report-security.html' title='And a One, And a Two, SQL Report Security'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6163867996356884378</id><published>2011-05-18T19:34:00.000-07:00</published><updated>2011-05-18T20:19:49.106-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software implementation'/><title type='text'>Implementation Trauma AGAIN!!</title><content type='html'>So, continuing on my theme, I'm back with number two on our list of sins from a few weeks ago.&amp;nbsp; Let's take a bit closer look at how these can sink an implementation from the start.&amp;nbsp; As a refresher, number two on the list for consultants was "Forgetting that customer service is important even during the heat of an implementation" and the companion to this for customers is "Approaching the consulting team as adversaries instead of partners."&lt;br /&gt;&lt;br /&gt;Both of these may seem obvious when we see them in writing, but in the stress of an implementation, these items are often forgotten.&amp;nbsp;And when that happens,&amp;nbsp;a positive experience can quickly turn sour.&amp;nbsp;First, let's look at the customer service sin.&amp;nbsp; Consider the following scenario:&lt;br /&gt;&lt;br /&gt;Ralph is a good consultant.&amp;nbsp; He has put in long hours on the implementation, and has worked hard to keep it on time and under budget.&amp;nbsp; He has also been diligent in training and documenting every step of the way.&amp;nbsp; So when he receives a call from the client asking the same question, yet again, he lets his frustration slip through.&amp;nbsp; Maybe he lets the voicemail linger a bit longer before returning it.&amp;nbsp; Or maybe he emails back a reference to the documentation or the training, without actually answering the question.&amp;nbsp; Many of you reading this might wonder, so what?&amp;nbsp; Don't customers need to take responsibility for their learning?&amp;nbsp; Sure they do.&amp;nbsp; And, yet, we have to continue to approach customers with good faith throughout the process.&amp;nbsp; This means assuming that they are asking because THEY DON"T KNOW THE ANSWER.&amp;nbsp; Not because they are lazy, or they weren't paying attention, or even that they aren't smart (we all have witnessed this consulting sin-- speaking to users like they aren't intelligent).&amp;nbsp; Yes, there may be a larger issue to be addressed regarding user investment in the process, and yes, users who are too dependent on consultants can create budget issues in the long run.&amp;nbsp; But, from a customer service perspective, we have to handle these issues professionally.&amp;nbsp; Answer the question, and escalate the risk to your project manager or sponsor.&lt;br /&gt;&lt;br /&gt;On a side note, whenever I find myself frustrated with these sorts of things-- I remind myself of every consulting horror story I have been told by customers. You know the ones.&amp;nbsp; Where you can't believe that the customer who you love working with was treated so badly.&amp;nbsp; It tends to snap me back in to the customer service mindset pretty quickly.&lt;br /&gt;&lt;br /&gt;Another variation on this sin is when the consultant becomes too familiar with the client, and their interaction becomes so casual that it ignores the fact that customer service is involved.&amp;nbsp; This most often manifests itself as "griping". About the project. About the software.&amp;nbsp; About (oh, my) fellow consultants and/or client team members.&amp;nbsp; Yes, you might become friends with clients over the years, but you can never forget that within the confines of a project they are still your customer and deserve the service and discretion that comes along with that.&amp;nbsp; After all, they are paying for that :)&lt;br /&gt;&lt;br /&gt;So, let's flip over to the customer side for awhile.&amp;nbsp; The sin of cultivating an adversarial relationship with the consultant is one that also often&amp;nbsp;intensifies towards the end of an implementation.&amp;nbsp; The customer's staff is tired and minor bumps become more significant.&amp;nbsp; Consider the following scenario:&lt;br /&gt;&lt;br /&gt;ABC Company has been through a number of software implementations in the past few years.&amp;nbsp; And none of them have gone very well.&amp;nbsp; They like their current consultant personally, but the customer feels that&amp;nbsp;consulting is&amp;nbsp;not about sharing knowledge or customer service- its about billing.&amp;nbsp; A lot.&amp;nbsp; So they want to get what they can from the consultants, but they really don't trust them. And over the course of the project, there have been a few minor bumps that have arisen (new requirements, additional costs, etc) that have just reinforced this perception. So, with the go live in sight, the stress level is high and the customer feels alone in the process with no one to trust.&lt;br /&gt;&lt;br /&gt;As a customer, you need to pick consultants you can see yourself trusting when that trust is earned.&amp;nbsp; If you feel&amp;nbsp;"scarred" by prior experiences,&amp;nbsp;examine why the other projects failed.&amp;nbsp; Take those lessons in to your new project, and share those concerns with your consultants and ask them for their help in mitigating them.&amp;nbsp;You want to form a partnership built on this trust, after all you are relying on these people to guide you in configuring your system and business processes.&amp;nbsp; Why would you pick someone you don't trust?&amp;nbsp; And let them in to your business' nerve center?&amp;nbsp; Along those same lines, as I discussed on the consulting side, you need to approach the process with good faith whenever possible. This means being honest about your concerns with the consulting team, assisting them in the identification and management of risks.&amp;nbsp; Acknowledging that all projects encounter changes, but what matters is how these changes are uncovered and how they are addressed.&amp;nbsp; And this can be done best when there is a partnership between the customer and consultants.&lt;br /&gt;&lt;br /&gt;As a consultant, the projects that are approached in this way are the most rewarding to work on and the ones that I am most proud of professionally and personally. And, I have to say, most GOOD consultants take a lot of personal pride in their work and in happy customers! So find one of them to work with :)&lt;br /&gt;&lt;br /&gt;A bit long winded tonight, but I hope you find the ramblings useful :)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers. This blog represents her views only, not those of her employer.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6163867996356884378?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6163867996356884378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6163867996356884378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6163867996356884378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6163867996356884378'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/implementation-trauma-again.html' title='Implementation Trauma AGAIN!!'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-8815049410548210874</id><published>2011-05-18T14:46:00.000-07:00</published><updated>2011-05-18T14:46:19.357-07:00</updated><title type='text'>Fun eConnect Bug:  Check those field lengths!</title><content type='html'>Today I deployed an updated version of an AR Invoice eConnect integration. The customer has used the integration previously, and it worked fine, but when we ran it with a new batch of data, the Edit List report indicated that some transactions had missing distributions or incorrect distribution amounts.&lt;br /&gt;&lt;br /&gt;Puzzled, I checked the transactions and their distributions in Dynamics GP, and everything looked fine.&amp;nbsp; But when I ran the Edit List again, the same errors were listed--except for any transactions that I had opened and viewed.&lt;br /&gt;&lt;br /&gt;Hmmmmm.&lt;br /&gt;&lt;br /&gt;So I queried the RM Distribution Work table, RM10101 to see what was going on.&lt;br /&gt;&lt;br /&gt;For the one transaction that I had opened and viewed in GP, I saw four distribution lines instead of the two that should be present.&amp;nbsp; I was pretty sure I didn't import four lines, but I wasn't sure where the other two came from.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-T0OnPwXjklo/TdQ2zz2GS9I/AAAAAAAAAUM/HoXOqpRh1dI/s1600/eConnectFieldLength2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://2.bp.blogspot.com/-T0OnPwXjklo/TdQ2zz2GS9I/AAAAAAAAAUM/HoXOqpRh1dI/s400/eConnectFieldLength2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After looking closely at the four records, I noticed one discrepancy.&amp;nbsp; The DOCNUMBR field value for two of the lines was different than the other two distribution lines.&amp;nbsp; One had the full document number that was imported, but the other had a truncated document number, missing the last 4 characters.&amp;nbsp; And the account indexes for the two sets of distributions were different.&lt;br /&gt;&lt;br /&gt;And that is when it dawned on me.&lt;br /&gt;&lt;br /&gt;Back in 2008, I wrote &lt;b&gt;&lt;a href="http://dynamicsgpland.blogspot.com/2008/12/exceeding-econnect-char-field-lengths.html"&gt;this blog post&lt;/a&gt;&lt;/b&gt; discussing how eConnect handles character values that exceed the length of the eConnect / GP field.&amp;nbsp; Normally, it truncates character data values without any warning or error and proceeds happily, letting you discover that you have some data missing.&lt;br /&gt;&lt;br /&gt;Well, in this case, the client had an invalid AR invoice number that was 20 characters long, due to a change in data formatting.&amp;nbsp; eConnect happily imported the invoice, truncating the invoice number to 17 characters.&lt;br /&gt;&lt;br /&gt;But, it appears that there is a minor 'bug' in eConnect 10, as the AR distribution imported the full 20 characters into RM10101.&amp;nbsp; No truncation!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-6La1Tw1jJh0/TdQ2-dlXizI/AAAAAAAAAUQ/6UO1JCacA3s/s1600/eConnectFieldLength1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-6La1Tw1jJh0/TdQ2-dlXizI/AAAAAAAAAUQ/6UO1JCacA3s/s320/eConnectFieldLength1.jpg" width="116" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, in the RM10301 Sales Work table, we have a 17 character invoice number, and in RM10101 Distribution Work table, we have a 20 character invoice number.&amp;nbsp; Naturally, when the GP edit list tries to match the invoices to distributions, it can't match the two numbers, so it appears as if the invoice does not have any distributions at all.&amp;nbsp; And when I opened the invoice distribution window, everything looked fine because GP was defaulting distributions based on the customer account settings.&amp;nbsp; And when the distribution window is opened, GP creates new distribution records, but using the customer default accounts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In short, the distributions that were imported with the full 20 character invoice number are "orphaned".&amp;nbsp; They are not associated with any invoice, and even if you delete the invoices, the distributions will not be deleted.&amp;nbsp; They will have to be cleaned out manually or via Check Links.&lt;br /&gt;&lt;br /&gt;So, the lesson here is that you shouldn't rely on eConnect to manage the length of your character field values.&amp;nbsp; Ideally, you should include field length checks in your integration validation code to detect data values that may exceed a GP field length.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-8815049410548210874?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/8815049410548210874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=8815049410548210874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8815049410548210874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/8815049410548210874'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/fun-econnect-bug-check-those-field.html' title='Fun eConnect Bug:  Check those field lengths!'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-T0OnPwXjklo/TdQ2zz2GS9I/AAAAAAAAAUM/HoXOqpRh1dI/s72-c/eConnectFieldLength2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6562509016663259323</id><published>2011-05-18T09:06:00.000-07:00</published><updated>2011-05-18T09:11:43.434-07:00</updated><title type='text'>New Dynamics GP 2010 Reporting Book and Packt Books Dynamics Month!</title><content type='html'>Congratulations to &lt;a href="https://www.packtpub.com/authors/profiles/christopher-liley"&gt;Christopher Liley&lt;/a&gt; and &lt;a href="https://www.packtpub.com/authors/profiles/david-james-duncan"&gt;David Duncan&lt;/a&gt; for publishing their new book, &lt;a href="https://www.packtpub.com/microsoft-dynamics-gp-2010-reporting/book"&gt;Dynamics GP 2010 Reporting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.packtpub.com/sites/default/files/2183EN_Microsoft%20Dynamics%20GP%202010%20Reporting.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="https://www.packtpub.com/sites/default/files/2183EN_Microsoft%20Dynamics%20GP%202010%20Reporting.jpg" width="323" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Reporting in Dynamics GP is not exactly the most user friendly experience, and is often overlooked or given insufficient attention.&amp;nbsp; As a result, there are dozens of powerful reporting features that are never used by most Dynamics GP customers.&amp;nbsp; It's great to see that there is now a book dedicated to the topic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Celebrating the publication of their third Dynamics GP book and fourteenth Dynamics book, Packt has also declared &lt;a href="http://www.packtpub.com/article/exclusive-offer-microsoft-dynamics-books"&gt;May 2011 "Dynamics Month"&lt;/a&gt;, so make sure to stop by their site and take advantage of the discounts that they are offering.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6562509016663259323?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6562509016663259323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6562509016663259323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6562509016663259323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6562509016663259323'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/new-dynamics-gp-2010-reporting-book-and.html' title='New Dynamics GP 2010 Reporting Book and Packt Books Dynamics Month!'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3721225786972613191</id><published>2011-05-17T22:16:00.000-07:00</published><updated>2011-05-18T09:07:19.379-07:00</updated><title type='text'>One Very Hairy Dynamics GP Integration</title><content type='html'>I develop a lot of custom Microsoft Dynamics GP integrations.&amp;nbsp; A few are simple and straight forward.&amp;nbsp; The majority have some quirks that require a few tricks or workarounds in .NET.&amp;nbsp; And a few, well, they remind me that my imagination definitely has limits when it comes to envisioning complexities with certain businesses processes and related integrations.&lt;br /&gt;&lt;br /&gt;I've been working on one particular integration over the course of a few months that has been vastly more challenging and complex than I could have ever possibly imagined.&amp;nbsp; Believe it or not, it's a Purchasing Receipt import.&lt;br /&gt;&lt;br /&gt;I know, I can hear it now:&amp;nbsp; "Purchasing Receipt?&amp;nbsp; You kidding?&amp;nbsp; How hard could that possibly be?"&lt;br /&gt;&lt;br /&gt;Let's start with the source data file.&amp;nbsp; It's an Excel file, which is fine, but it is formatted as a report, with a report header in the first three rows (merged cells) and column headers on row 5.&amp;nbsp; But there are only 7 column headers for 11 columns of data.&amp;nbsp; Fine, I can read the file without headers, no problem.&lt;br /&gt;&lt;br /&gt;And then the fields.&amp;nbsp; There are only 3 fields related to the receipt transaction in GP:&amp;nbsp; PO Number, Item Number, and Quantity.&lt;br /&gt;&lt;br /&gt;Okay, so I have to lookup the PO number to find the vendor ID, no biggie.&amp;nbsp; And sure, I can use the vendor ID and item number to lookup the vendor item number.&amp;nbsp; Not so bad.&lt;br /&gt;&lt;br /&gt;Except that some of the current vendor item numbers don't match the vendor item number on the PO.&amp;nbsp; Sometimes the PO shows the vendor item number, sometimes it's the item number, and sometimes it's something else entirely--perhaps an older vendor item number.&amp;nbsp; Oh, and sometimes even the item number won't match.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Okay....so I can add some logic that will figure out which PO line is being received by checking the vendor item number, then the item number, and then, believe it or not, the item description.&lt;br /&gt;&lt;br /&gt;Whew, all done, right?&amp;nbsp; Not so fast.&lt;br /&gt;&lt;br /&gt;For some reason, many of the POs have the same item on multiple lines.&amp;nbsp; Not 2 or 3 lines--we're talking 10 lines or more.&amp;nbsp; So I can't just send the PO number and item number to eConnect--I have to know which PO line I'm receiving against.&amp;nbsp; Oooookay, I now have a routine that can figure that out.&lt;br /&gt;&lt;br /&gt;Almost done, right?&amp;nbsp; Nope.&lt;br /&gt;&lt;br /&gt;Did I mention that the receipt quantities sometimes exceed the PO quantities, and those excess quantities need to be received too, in some situations?&amp;nbsp; Well, eConnect allows you to receive excess quantities if a PO line is not fully received, but if the line has already been fully received by a prior receipt, eConnect will refuse to receive additional quantities on that PO line.&amp;nbsp; So if you have a PO line with a quantity of 20, and 20 have been received, but you need to receive 4 more, what do you do?&lt;br /&gt;&lt;br /&gt;Well, I learned that eConnect will not allow you to adjust the quantity of a PO line that has been received.&amp;nbsp; And it will also apparently not allow you to add a new line to an existing PO.&amp;nbsp; So that just leaves...creating a new PO to receive the excess quantity.&lt;br /&gt;&lt;br /&gt;You still with me?&lt;br /&gt;&lt;br /&gt;So now that I've created the new PO, I need to pair it up with the receipt line.&amp;nbsp; And then I need to write the new PO number back to the Excel file so that it can be traced or researched if necessary.&lt;br /&gt;&lt;br /&gt;Oh, did I mention that there are POs that were created before the inventory item records were setup in GP?&amp;nbsp; So not only do some PO lines have an "incorrect" item type status, but the corresponding vendor item record is not yet setup.&amp;nbsp; So I need to "fix" those PO lines, and create a vendor item record.&lt;br /&gt;&lt;br /&gt;And the list actually goes on and on from there--seriously, there really is alot more, but I assume you get the point.&amp;nbsp; What at first seemed like a relatively simple endeavor ended up having requirements that have left me in amazement.&amp;nbsp; Nearly every issue that could exist with the data and receipt process did exist.&lt;br /&gt;&lt;br /&gt;I will no longer look at purchasing receipts the same ever again.&lt;br /&gt;&lt;br /&gt;Which leads me to the general topic of designing and estimating custom eConnect integrations, which I'll discuss in another post:&amp;nbsp; "The 90/10 Rule:&amp;nbsp; 90 Percent Source Data, 10 Percent eConnect".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional in Los Angeles.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_742672227"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3721225786972613191?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3721225786972613191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3721225786972613191' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3721225786972613191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3721225786972613191'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/one-very-hairy-dynamics-gp-integration.html' title='One Very Hairy Dynamics GP Integration'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3821195973711011428</id><published>2011-05-13T09:56:00.000-07:00</published><updated>2011-05-13T10:15:48.809-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gp search'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp search'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='great plains search'/><title type='text'>The Ultimate Microsoft Dynamics GP Search Tool - Part 1:  Introducing Search Master</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;If you ask several Dynamics GP users what their top concerns, wish list items, or frustrations are with Dynamics GP, I would bet that "searching" or "search" would not be a top item, and may not even be on the list.&amp;nbsp; Maybe the general concept of search in Dynamics GP would be included, such as the ability to produce a report showing specific data, or being able to "find" certain data.&amp;nbsp; But based on my experience, I speculate that "search" is not a common topic or feature request among many Dynamics GP customers.&lt;br /&gt;&lt;br /&gt;A little over a year ago, I was chatting with a friend who implements a hosted web-based "SaaS" ERP package that competes with Dynamics GP.&amp;nbsp; He asked me if Dynamics GP had a "global search" feature.&amp;nbsp; I replied, "A what?"&lt;br /&gt;&lt;br /&gt;Honestly, at the time, the concept was foreign to me.&amp;nbsp; I tried to think about what that would look like in Dynamics GP, but had a hard time envisioning what value it might provide.&amp;nbsp; I thought that if a GP user wanted to find a vendor, they could use an inquiry window or SmartList or some other existing window or feature to find that vendor.&amp;nbsp; I didn't think that search was necessarily a "problem" that needed to be solved in Dynamics GP.&lt;br /&gt;&lt;br /&gt;My friend then gave me a demo of his ERP package and showed me some examples of how the global search feature worked.&amp;nbsp; Only when I saw the global search feature did it finally dawn on me how powerful and useful such a feature could be in Dynamics GP, or in any ERP application.&lt;br /&gt;&lt;br /&gt;I then spoke with my colleague Andrew Dean at &lt;a href="http://envisagesoftware.com/search-master-for-dynamics-gp/"&gt;Envisage Software&lt;/a&gt;, who developed the fantastic &lt;a href="http://dynamicsgpland.blogspot.com/2009/04/automatically-post-batches-in-dynamics.html"&gt;Post Master for Dynamics GP&lt;/a&gt; product.&amp;nbsp; When I presented the concept to him, he instantly saw the potential and began working on designing a new product.&lt;br /&gt;&lt;br /&gt;After many months of research, hard work, and testing, we are proud to present &lt;a href="http://envisagesoftware.com/search-master-for-dynamics-gp/"&gt;Search Master for Dynamics GP&lt;/a&gt;, which we believe is the ultimate search tool for Microsoft Dynamics GP.&lt;br /&gt;&lt;br /&gt;Search Master is a .NET client application that allows a GP user to search for any value, in any Dynamics GP company database, and then instantly displays the results.&amp;nbsp; No waiting, no browser windows, no long running queries.&amp;nbsp; And there is no need to tell Search Master whether you are searching for a vendor, an inventory item, a customer, or a sales transaction--it will instantly find every Dynamics GP record that contains the specified keywords.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-HPINyy5KrGM/Tc1hwA8EfqI/AAAAAAAAAUA/u5x11xM01i4/s1600/SearchMaster1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" src="http://1.bp.blogspot.com/-HPINyy5KrGM/Tc1hwA8EfqI/AAAAAAAAAUA/u5x11xM01i4/s400/SearchMaster1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;screen of="" results="" search="" shot=""&gt; &lt;br /&gt;Results are grouped by database and by category, allowing the user to quickly find the data they are looking for.&amp;nbsp; With a single click on any search result, Search Master will open the appropriate Dynamics GP inquiry or edit window and take the user directly to the record.&lt;br /&gt;&lt;/screen&gt;&lt;br /&gt;&lt;screen of="" results="" search="" shot=""&gt;&lt;br /&gt;&lt;screen gp="" highlighted="" of="" record="" shot="" window=""&gt;&lt;/screen&gt;&lt;/screen&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Bmhvyv02i5Y/Tc1hxW8Pq8I/AAAAAAAAAUE/HAqBkHr4Vac/s1600/SearchMaster2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="285" src="http://4.bp.blogspot.com/-Bmhvyv02i5Y/Tc1hxW8Pq8I/AAAAAAAAAUE/HAqBkHr4Vac/s400/SearchMaster2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lc3i-x1IUjQ/Tc1hx3gAZ5I/AAAAAAAAAUI/xLnOuNp-9CQ/s1600/SearchMaster3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://4.bp.blogspot.com/-lc3i-x1IUjQ/Tc1hx3gAZ5I/AAAAAAAAAUI/xLnOuNp-9CQ/s400/SearchMaster3.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;screen of="" results="" search="" shot=""&gt;&lt;br /&gt;&lt;screen gp="" highlighted="" of="" record="" shot="" window=""&gt;&lt;/screen&gt;&lt;/screen&gt;&lt;br /&gt;&lt;screen of="" results="" search="" shot=""&gt;&lt;screen gp="" highlighted="" of="" record="" shot="" window=""&gt; Rather than continuing to discuss it, I'll point you to our brief video demonstrating how Search Master works and the power of a instant, global search tool for Dynamics GP.&amp;nbsp; The video window below is pretty small, so I recommend clicking on the video or on the link below to view in a larger window on YouTube.&lt;/screen&gt;&lt;/screen&gt;&lt;br /&gt;&lt;screen of="" results="" search="" shot=""&gt;&lt;screen gp="" highlighted="" of="" record="" shot="" window=""&gt;&lt;br /&gt;&lt;/screen&gt;&lt;/screen&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/mb2d5jMcAsc/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mb2d5jMcAsc&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266" src="http://www.youtube.com/v/mb2d5jMcAsc&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.youtube.com/watch?v=mb2d5jMcAsc"&gt;Click here to view the Search Master Demo Video directly on YouTube&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;We believe that Search Master will redefine how you interact with Dynamics GP and how think about accessing your Dynamics GP data.&lt;br /&gt;&lt;br /&gt;Rather than clicking on a menu, opening a window, switching to a Navigation Pane, using SmartLists or performing a lookup to find a record, you can instead use Search Master to instantly find any record, transaction, or data in Dynamics GP, and then jump directly to the record in GP with a single click.&amp;nbsp; And since Search Master can find and display data in any Dynamics GP company database, users no longer need to worry about what company they are currently using in GP--search results can include records from all company databases.&amp;nbsp; All instantly.&lt;br /&gt;&lt;br /&gt;Several years ago, I had a Dynamics GP client with 22 company databases.&amp;nbsp; Because they had a centralized accounting department, the accounting staff was constantly having to switch between GP companies to enter and look for data.&amp;nbsp; If the AP department received a phone call from a vendor, they sometimes didn't know which of the 22 companies the vendor was associated with--it could be one, or it could be 5, so finding a specific invoice or check was a time consuming chore, all while the vendor was on the phone waiting.&amp;nbsp; I was able to create some multi-company SmartLists, but it was alot of work, required numerous custom views and maintenance scripts, and required the user to navigate to SmartLists, click several times to add a filter to find what they were looking for, and then potentially switch GP companies to locate the vendor transactions.&lt;br /&gt;&lt;br /&gt;Search Master solves this challenge completely.&amp;nbsp; An AP clerk can now type just a few letters of the vendor name and instantly find the vendor and every transaction related to that vendor, even if they exist in multiple company databases.&amp;nbsp; With a single click, Search Master will switch to the appropriate company database and display the desired information.&lt;br /&gt;&lt;br /&gt;Besides eliminating navigation and mouse clicks, one of the most enjoyable features of Search Master is that it returns results instantly.&amp;nbsp; As soon as you type a word or query, you see the results.&amp;nbsp; There is not "Submit" button, there are no web pages to load, there are no time consuming queries, and there is zero waiting for search results.&amp;nbsp; Searching is performed in real time without any delays.&amp;nbsp; Think about how often Dynamics GP users use menus, navigation panes, lists, SmartLists, inquiries, navigation buttons, and lookups to find specific data--and then think about eliminating all of that wasted time.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Andrew Dean and I will be at the Envisage Software Solutions booth at the &lt;a href="http://decisions.msdynamicsworld.com/"&gt;Decisions Spring 2011 Virtual Conference&lt;/a&gt; Dynamics GP Day on June 15th to present Search Master, perform demos, and answer any questions.&amp;nbsp; Please make sure to sign up for the conference and visit our booth!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you think that Search Master would be valuable for your company or one of your Dynamics GP clients, please contact us.&amp;nbsp; I can be reached at &lt;a href="mailto:steve@precipioservices.com"&gt;steve@precipioservices.com&lt;/a&gt;, or via telephone at (949) 735-4640, or you can visit the &lt;a href="http://envisagesoftware.com/search-master-for-dynamics-gp/"&gt;Search Master&lt;/a&gt; web site.&lt;br /&gt;&lt;br /&gt;In Part 2 of this series, I'll discuss Search Master's powerful query syntax that allows you to search for much more than just basic keywords.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3821195973711011428?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3821195973711011428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3821195973711011428' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3821195973711011428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3821195973711011428'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/ultimate-microsoft-dynamics-gp-search.html' title='The Ultimate Microsoft Dynamics GP Search Tool - Part 1:  Introducing Search Master'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-HPINyy5KrGM/Tc1hwA8EfqI/AAAAAAAAAUA/u5x11xM01i4/s72-c/SearchMaster1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-579682925114401444</id><published>2011-05-06T11:31:00.000-07:00</published><updated>2011-05-06T15:52:46.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='hyperv'/><title type='text'>How do you backup your HyperV virtual machines?</title><content type='html'>Backups are one of the least glamorous IT tasks, but fortunately improvements in technology, software, and the abundance of inexpensive disk space has made them a lot easier.&lt;br /&gt;&lt;br /&gt;I currently use SugarSync to backup all of my frequently used files, such as client files and zipped source code, which also syncs those files between my laptop, desktop, and iPhone.&amp;nbsp; I also use Carbonite as an additional measure to back up all of those same files, plus all of my large files, such as Outlook PST files, database backups, and MP3 files, etc.&lt;br /&gt;&lt;br /&gt;But those backups seem trivial and quaint compared to the challenge of backing up virtual machines.&amp;nbsp; Despite my occasional effort to shrink the VHD files, a quick glance tells me that most of my VHD files are in the 20GB - 30GB range.&amp;nbsp; While I have enough disk space for those files, backing up such large files is still a time consuming and space hogging endeavor.&amp;nbsp; Copying such a large file to a backup drive or server takes quite a long time, and if you want to maintain multiple backups, the copies take up a lot of disk space.&lt;br /&gt;&lt;br /&gt;I'm assuming there are some fancy backup solutions that can backup HyperV VMs (I've never bothered to check), but when it comes to backups, I avoid fancy, and prefer instead to stick with simple, basic, trusted tools.&lt;br /&gt;&lt;br /&gt;In the past, I've manually saved or shut down my VMs and then manually used WinRAR to create a RAR backup file on my NAS storage device.&amp;nbsp; This worked, but was manual and took forever.&amp;nbsp; I would try and do the backups in the evening before going to bed, but never did them consistently or on any set schedule.&amp;nbsp; I've heard that Volume Shadow Copy Service (VSS) and even Windows Backup can supposedly backup running HyperVs, but I'm not a fan of any of the versions of Windows Backup, and am fine taking the additional step of saving my VMs prior to backup to be on the safe side.&lt;br /&gt;&lt;br /&gt;After switching over to 7Zip and seeing how much better the compression could be, I finally wrote some batch files to automatically zip the VHDs to 7z files with a date time stamp.&amp;nbsp; You can use WinRAR or WinZip if you prefer, but given how rarely I need to recover a VHD backup, I want the best compression I can get.&amp;nbsp; While this 7z batch file worked well, I still had to manually save or shutdown the virtual machine.&lt;br /&gt;&lt;br /&gt;Only recently did I finally take the time to track down the VBS scripts that would automatically save my VMs.&amp;nbsp; With this final piece, I have automated the backups of my virtual machines.&amp;nbsp; It's not glamorous, and I am sure that there "better" approaches, but this is my first pass, is simple, and was fairly easy to do.&amp;nbsp; I know that PowerShell offers alot of promise for this type of task, but seriously, have you seen PowerShell scripts?&amp;nbsp; It may look like C, but the last thing I have time to do is learn yet another proprietary scripting language and yet another object model that I won't use regularly, so I've ruled out PowerShell for the time being.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So here are my current backup scripts and steps, likely subject to change as I use it more and perhaps learn of other techniques.&amp;nbsp; I'm interested in hearing how others deal with this challenge.&amp;nbsp; At the moment, I speculate that many businesses do not have any backup strategy or solution for regularly backing up their virtual machines.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1&lt;/b&gt;: Use a VBS script to save the VM.&amp;nbsp; Unfortunately, it seems that VBS only has the ability to Stop, Start, or Save HyperV VMs, and does not have the ability to "Shut down" the guest OS like PowerShell does.&amp;nbsp; But from my experience, Save is adequate for backing up HyperV vhd files.&amp;nbsp; I found this script on some web site and modified it slightly to meet my needs--I just use a fixed VM name rather than accepting a command line parameter like the original script.&amp;nbsp; In these examples, I'm backing up my VM called "GPDEV1".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Option Explicit &lt;br /&gt;Dim arg, targetVM, WMIService, VMs, InputKey &lt;br /&gt;&lt;br /&gt;targetVM = "GPDEV1"&lt;br /&gt;&lt;br /&gt;If Right((LCase(WScript.FullName)),11) &amp;lt;&amp;gt; "cscript.exe" then &lt;br /&gt;&amp;nbsp; WScript.Echo "Use cscript.exe" &lt;br /&gt;&amp;nbsp; WScript.Quit &lt;br /&gt;End if &lt;br /&gt;&lt;br /&gt;Set WMIService = GetObject("winmgmts:\\.\root\virtualization")&amp;nbsp; &lt;br /&gt;Set VMs = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" &amp;amp; targetVM &amp;amp; "'") &lt;br /&gt;&lt;br /&gt;Select Case VMs.ItemIndex(0).EnabledState &lt;br /&gt;Case 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.StdOut.Write targetVM &amp;amp; " is saving."&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VMs.ItemIndex(0).RequestStateChange(32769) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do while VMs.ItemIndex(0).EnabledState &amp;lt;&amp;gt; 32769 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set VMs = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" &amp;amp; targetVM &amp;amp; "'") &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.StdOut.Write(".")&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.sleep 1000 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Echo "Completed."&amp;nbsp; &lt;br /&gt;Case Else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Echo targetVM &amp;amp; " is not running."&amp;nbsp; &lt;br /&gt;End Select&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2&lt;/b&gt;:&amp;nbsp; Once the VM is saved, it can be backed up.&amp;nbsp; To save space on my backup drive, I prefer to zip the VHD files.&amp;nbsp; My NAS device is relatively slow, so the time difference of copy vs. zip + copy is negligible for me.&lt;br /&gt;&lt;br /&gt;This script will save the 7z file with a date prefix.&amp;nbsp; If you want to keep multiple backups, such as several monthly backups, this one is handy.&amp;nbsp; The "V:" drive is my mapped NAS drive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET XDate=%%B&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set XDate=%%c-%%a-%%b) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;7z a -t7z "V:\GPDEV1\%XDate% GPDEV1.7z" "E:\HyperVServers\GPDEV1\GPDEV1.vhd"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This script just saves the 7z file with the same name every time.&amp;nbsp; I currently use this for my weekly backups.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;7z a -t7z "V:\GPDEV1\GPDEV1 Weekly Backup.7z" "E:\HyperVServers\GPDEV1\GPDEV1.vhd"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3&lt;/b&gt;:&amp;nbsp; Create a Windows Task Scheduler task to save the VMs.&amp;nbsp; Note that Task Scheduler does not appear to run VBS files directly, so you will need to create a batch file that calls the CScript engine.&amp;nbsp; SaveGPDEV1.vbs is the file containing the VBS script listed above.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cscript C:\Scripts\SaveGPDEV1.vbs&lt;/div&gt;&lt;br /&gt;&lt;u&gt;Note that you must include the full path to your VBS file&lt;/u&gt; in your batch file, otherwise the command will fail if run by Task Scheduler (since it will assume a path of C:\Windows\System32\ for the vbs).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 4&lt;/b&gt;:&amp;nbsp; As a second step in your new task, call the backup batch file that zips and/or copies the VHD file to your backup drive.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I currently have a weekly backup job that backs up a few VMs on Wednesday night at 11pm, and then another job that backs up a few more VMs on Friday night at 11pm.&amp;nbsp; Those 7z files retain the same name and are updated each week.&lt;br /&gt;&lt;br /&gt;I'll probably add a few more tasks that perform monthly backups with a date stamp in the file name.&lt;br /&gt;&lt;br /&gt;This backup approach won't win any awards for cutting edge technology, but it was simple enough for me to pull together with minimal time investment, and I'm pretty confident in its reliability. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;http://www.precipioservices.com&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-579682925114401444?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/579682925114401444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=579682925114401444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/579682925114401444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/579682925114401444'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/how-do-you-backup-your-hyperv-virtual.html' title='How do you backup your HyperV virtual machines?'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-5731551176420745210</id><published>2011-05-06T10:18:00.000-07:00</published><updated>2011-05-06T10:18:49.834-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='taxable wages'/><category scheme='http://www.blogger.com/atom/ns#' term='payroll'/><title type='text'>Payroll and Tips (Run Screaming Away, NOW!)</title><content type='html'>Okay, so&amp;nbsp;I rank payroll and tips up there with sales tax and analytical accounting in my list of "not so favorite" things to deal with.&amp;nbsp; But I did learn an interesting tidbit about how tips are impacted by tax sheltered (TSA) deductions in Dynamics GP.&amp;nbsp; Take the following example:&lt;br /&gt;&lt;br /&gt;Adam Smith (Setup)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pay Code-HOUR &lt;/li&gt;&lt;ul&gt;&lt;li&gt;$15/hr&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Pay Code- TIPS&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Reported Tips&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Deduction- HEALTH &lt;/li&gt;&lt;ul&gt;&lt;li&gt;$10/fixed amount per pay period&lt;/li&gt;&lt;li&gt;Tax Sheltered from Federal and FICA&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Adam Smith (Payroll 5/15)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gross Pay&lt;/li&gt;&lt;ul&gt;&lt;li&gt;HOUR- $150&lt;/li&gt;&lt;li&gt;TIPS- $50&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Deductions&lt;/li&gt;&lt;ul&gt;&lt;li&gt;HEALTH- $10&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;Now, here is where it gets interesting.&amp;nbsp; Let's say that when the deduction (HEALTH) was set up (Setup&amp;gt;&amp;gt;Payroll&amp;gt;&amp;gt;Deduction), it was left as the default Based on Pay Codes- All (noted in screenshot below).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZqY3GruQSOk/TcQrt7npSQI/AAAAAAAAAG8/N-h4I5DCbd8/s1600/Tips+Picture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="342px" j8="true" src="http://1.bp.blogspot.com/-ZqY3GruQSOk/TcQrt7npSQI/AAAAAAAAAG8/N-h4I5DCbd8/s400/Tips+Picture.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Here is what happens when you review a payroll summary for the employee:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Gross Pay $200&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Federal Wages $142.50&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Reported Tips $50&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Federal Tips $47.50&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Huh?&amp;nbsp; Well, because you said that the deduction is based on all pay codes (including the TIPS code), then GP prorates the tax sheltered deduction across all pay codes (wages and tips).&amp;nbsp; So, in this example, tips accounted for 25% of the gross and wages were 75%.&amp;nbsp; So the $10 deduction was allocated 25% ($2.50) to reduce the taxable tips, and 75% ($7.50) to reduce the taxable wages.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Easy enough to change if you don't want it to reduce tips, simply change the Based on Pay Codes setting for the deduction to Selected, and insert all pay codes except the tips pay codes.&amp;nbsp; Viola! It will only prorate across the included pay codes.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers.&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-5731551176420745210?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/5731551176420745210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=5731551176420745210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5731551176420745210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/5731551176420745210'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/payroll-and-tips-run-screaming-away-now.html' title='Payroll and Tips (Run Screaming Away, NOW!)'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ZqY3GruQSOk/TcQrt7npSQI/AAAAAAAAAG8/N-h4I5DCbd8/s72-c/Tips+Picture.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3920966708062470262</id><published>2011-05-06T09:55:00.000-07:00</published><updated>2011-05-06T09:57:06.515-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software implementation'/><category scheme='http://www.blogger.com/atom/ns#' term='methodology'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Implementation Trauma Continued</title><content type='html'>I promised a couple of weeks ago that I would dive deeper in to my top five implementation "sins" for both customers and consultants.&amp;nbsp; I am a bit behind obviously, but let's take a look at #1 on both lists:&lt;br /&gt;For consultants:&amp;nbsp; Assuming you are the sole reason for the success/failure of the project &lt;br /&gt;&lt;br /&gt;For customers:&amp;nbsp; Assuming that the consulting team is the sole reason for the success/failure of the project &lt;br /&gt;&lt;br /&gt;What is wrong with taking sole responsibility for a project? Anyone?&amp;nbsp; Anyone?&amp;nbsp; Well, there are number of issues with this approach from both the consultant and customer's perspective.&amp;nbsp;But, let's start with a story about Suzy.&amp;nbsp; Suzy is a fabulous consultant, and the customer loves her.&amp;nbsp; Suzy takes care of them, completing many complicated tasks on her own without their input.&amp;nbsp; She even&amp;nbsp;completed much of the configuration without their assistance, after all, she knows&amp;nbsp;their business so well.&amp;nbsp; In many ways, the system seems to magically configure and&amp;nbsp;take of itself because Suzy is so efficient.&amp;nbsp; In this way, Suzy has treated the implementation as if it "her system", fixing and configuring it as needed.&lt;br /&gt;&lt;br /&gt;Although Suzy should be applauded for cultivating such a great relationship with the client, we have to question the wisdom of Suzy taking full responsibility for the implementation-- making decisions, completing configuration tasks, and resolving issues with little to no customer input.&amp;nbsp; And, in this case, the customer loves her for it.&amp;nbsp; However, does this best serve the customer and the implementation in the long run?&amp;nbsp; Absolutely not, and here's why:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;As much as the customer loves Suzy, she is not their employee.&amp;nbsp; She does not work in the business on a daily basis, nor will she be around after the implementation is complete. This inherently limits her knowledge of their business, her&amp;nbsp;control over&amp;nbsp;the situation, and her ability to&amp;nbsp;motivate adoption within the ranks.&amp;nbsp; Customer investment (in terms of resources) is critical to the project's success.&amp;nbsp; In the end, the system belongs to the customer, not to Suzy.&lt;/li&gt;&lt;li&gt;Suzy is taking responsibilities and tasks away from customer resources, and reducing their opportunity to become involved in the implementation.&amp;nbsp; If customer resources are given only limited opportunities to participate in&amp;nbsp;the decisions and tasks related to the&amp;nbsp;implementation, a significant opportunity to create excitement about&amp;nbsp;the project is lost.&amp;nbsp; Without internal advocacy, projects fail.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;With all that Suzy takes care of, when she leaves (as they always do) the system&amp;nbsp;can&amp;nbsp;become "difficult" and "confusing" if there&amp;nbsp;has not&amp;nbsp;been&amp;nbsp;the almost-constant involvement of customer&amp;nbsp;resources in&amp;nbsp;the decision making and&amp;nbsp;configuration process.&amp;nbsp; From day one, customers must cultivate their own "experts", learning as much as they can from Suzy before she leaves.&amp;nbsp; Suzy made so many decisions, fixed so many things, and no one is left with that knowledge or understanding once she&amp;nbsp;moves on to another project. &amp;nbsp;As much as a consultant brings expertise in the software (and hopefully, industry) to the project, it is the customer's perspective that ensures that decisions and processes are owned and supported by the appropriate internal personnel.&lt;/li&gt;&lt;/ol&gt;It is a natural inclination, I think, for a consultant to want to make an implementation "easy" on a customer.&amp;nbsp;And that natural inclination often leads to situations like Suzy's.&amp;nbsp; However, as with many things in life, less is learned when we are spared the effort of learning and making decisions.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;As consultants, we need to ensure that the customer is in a position to take responsibility for the success of the implementation with our assistance.&amp;nbsp; We need to give them the tools, the knowledge, and the resources to do this well.&amp;nbsp;&amp;nbsp; For this reason, I take the title "consultant" seriously.&amp;nbsp; I like to think we are not hired to complete a list of specific tasks, but rather to "consult" the customer in how best to complete that list.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;As customers, we want a system that works for us, that our employees feel is beneficial, and that grows with us over time.&amp;nbsp; To achieve these goals, we must invest early and intensely (in resources, time, and effort) in the success of the project.&amp;nbsp; To trust any single person, no matter how qualified or competent, is to limit the opportunity for success.&amp;nbsp; Find your trusted consultants and let them "consult" you on how to reach these goals.&lt;br /&gt;&lt;br /&gt;More on #2 on the lists in the coming days :)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3920966708062470262?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3920966708062470262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3920966708062470262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3920966708062470262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3920966708062470262'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/05/implementation-trauma-continued.html' title='Implementation Trauma Continued'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6739700845690423521</id><published>2011-04-26T10:47:00.000-07:00</published><updated>2011-04-26T10:48:42.841-07:00</updated><title type='text'>A Tragedy In Integration Land:  How to Spot a Bad Dynamics GP Integration</title><content type='html'>&lt;i&gt;Trivia Question:&amp;nbsp; What is one of the fastest ways to spot a bad Dynamics GP .NET integration? (answer at the bottom)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I've seen some strange things in my days working with Dynamics GP and developing integrations.&amp;nbsp; I've seen several crazy GP macro generators that are used to "enter" data rather than using an integration tool.&amp;nbsp; I've seen .NET projects that are wrappers for the entire eConnect assembly, essentially re-writing all of the eConnect interfaces, for no apparent reason.&amp;nbsp; I've seen half-baked integrations that have transaction distributions hard-coded, with DR and CR going to the same account!&amp;nbsp; And I've seen the 1980s vintage integrations that used "technology" (and alot of duct tape) that was so old I didn't even know it existed.&amp;nbsp; All of these fall into the category of "What were they thinking???".&lt;br /&gt;&lt;br /&gt;So when I was told that a client needed help with an existing VB-based integration, I thought "Excellent!", finally a modern .NET Dynamics GP integration.&amp;nbsp; Surely it will be well designed and use current integration tools.&amp;nbsp; And then I saw it.&lt;br /&gt;&lt;br /&gt;Oh. My. Gosh.&amp;nbsp; How could I be more wrong?&lt;br /&gt;&lt;br /&gt;So apparently back in 2006, the client's former "Gold Certified" Dynamics GP partner "developed" this ".NET" integration between the client's operational system and Dynamics GP.&amp;nbsp; It's really quite simple:&amp;nbsp; Import AR invoices and GL journal entries.&amp;nbsp; Piece of cake, right?&lt;br /&gt;&lt;br /&gt;Fortunately, the client has a copy of the source code from their prior partner.&amp;nbsp; But when I start looking through the Visual Studio files, I don't see any code.&amp;nbsp; No classes and no modules--just a single VB form.&amp;nbsp; Hmmmm.&lt;br /&gt;&lt;br /&gt;So I grab a copy of the entire solution and open it on my development server.&amp;nbsp; Sure enough, essentially no .NET code.&amp;nbsp; But what I do see are a bunch of SQL files that have been included in the project.&lt;br /&gt;&lt;br /&gt;20 SQL files,&amp;nbsp; to be exact, each containing a stored procedure.&amp;nbsp; Some of these stored procedures are pages long, and horribly complex looking.&amp;nbsp; Dozens of parameters.&amp;nbsp; Inserts, updates, deletes.&amp;nbsp; And oh yes, a very good sign that the developer was out of his league:&amp;nbsp; Lots, and lots of SQL cursors.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;After staring at pages of SQL stored procedure code in a Visual Studio project, I finally realize what this supposed "developer" at the supposed "Gold Certified" Dynamics GP partner had done.&lt;br /&gt;&lt;br /&gt;He had written, from scratch, a 100% SQL based direct-to-table integration to Dynamics GP using 20 stored procedures.&lt;br /&gt;&lt;br /&gt;Read that last sentence one more time...&lt;br /&gt;&lt;br /&gt;In case that didn't quite sink in, let me state that another way.&amp;nbsp; Instead of using one of several of the standard, supported, documented, tested, efficient Microsoft or ISV Dynamics GP integration tools or technologies that already exist, this developer apparently decided that the only way to get AR invoices and GL journal entries into Dynamics GP was to write custom stored procedures to shove the data into the SQL tables.&amp;nbsp; Using lots of cursors no less!&lt;br /&gt;&lt;br /&gt;When it finally dawned on me the carnage of code that I was looking at, I was speechless.&lt;br /&gt;&lt;br /&gt;The unbelievable tragedy of this nightmare integration is that the client trusted their Dynamics GP partner.&amp;nbsp; The client trusted the "Gold Certified" status of the Dynamics GP  partner, who claimed to know something about Dynamics GP.&amp;nbsp; And in my  humble opinion, the partner betrayed that client's trust.&lt;br /&gt;&lt;br /&gt;The partner billed the customer, presumably an obscene amount of money, for this "solution", which is going to need to be scrapped and re-written so that it can be supported going forward.&lt;br /&gt;&lt;br /&gt;Some might say that I shouldn't be exposing the egregious behavior of a GP partner, perhaps arguing that it makes the Dynamics GP community look bad, or it serves to reduce potential customer's trust in the GP partner community.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Rather than pretend this never happens, let's rid the GP community of such problems.&amp;nbsp; If these stories can help customers learn and become more informed, and partners can be better educated, these hopefully rare situations will become less common, and the 'bad' partners will either clean up their act or go out of business.&lt;br /&gt;&lt;br /&gt;Customers should get second opinions, and perhaps even shop around for quotes on a large project.&amp;nbsp; And partners should know better than to have a rogue developer write bad integrations--although I don't have any great ideas on how that self-realization might occur.&lt;br /&gt;&lt;br /&gt;In the meantime, I'm stuck trying to fix a problem with this nightmare integration so that it can continue to work until the client upgrades to GP 2010 and replaces it.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Answer:&amp;nbsp; In my experience, the fastest way to spot a potentially 'bad' .NET GP integration is to look at the Windows Forms in the solution.&amp;nbsp; If the form includes a big image of the partner's logo or a really "pretty" user interface with fancy graphics, that should be a warning sign.&amp;nbsp; I've been asked to fix several horrible integrations, and the one thing they all had in common was that the developer clearly spent time making the forms look pretty and including a ludicrously large image of the partner logo.&amp;nbsp; And when a developer is wasting time doing that, I've found that they typically didn't spend adequate time on the code, often having no idea how to properly develop a Dynamics GP integration.&amp;nbsp; Sure enough, this integration consisted of one windows form, with one button (that only called a stored procedure), and a giant image of the partner's logo.&amp;nbsp; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Steve Endow is a Dynamics GP Certified Trainer and Dynamics GP Certified Professional.&amp;nbsp; He is also the owner of Precipio Services, which provides Dynamics GP integrations, customizations, and automation solutions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.precipioservices.com/"&gt;http://www.precipioservices.com&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6739700845690423521?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6739700845690423521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6739700845690423521' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6739700845690423521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6739700845690423521'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/04/another-tragedy-in-integration-land-how.html' title='A Tragedy In Integration Land:  How to Spot a Bad Dynamics GP Integration'/><author><name>Steve Endow</name><uri>http://www.blogger.com/profile/03950475674093020502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_1LQTsR_PItc/SNGJOnXiYzI/AAAAAAAAAA0/nd7yrIIhN2E/S220/avatar_steve_endow_sm2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-1099411466865486961</id><published>2011-04-25T19:05:00.000-07:00</published><updated>2011-04-25T19:05:51.755-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='currency translation'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='translate'/><category scheme='http://www.blogger.com/atom/ns#' term='Forecaster'/><title type='text'>Forecaster TRANSLATE -vs- TRANSLATEL</title><content type='html'>Subtlety is an art, right?&amp;nbsp; So it goes that the difference between the TRANSLATE and TRANSLATEL tasks in Forecaster is a very subtle one.&amp;nbsp; For those of you unfamiliar with currency translation in Forecaster, it actually works on a pretty basic idea.&amp;nbsp; You have an input set with a "originating" currency, and it is mapped to an input set with a "functional" currency.&amp;nbsp; When you save the "originating" input set, it translates to the "functional" input set (if you have set it up for auto-translate).&lt;br /&gt;&lt;br /&gt;Even with auto-translate selected, you may still have need to use the TRANSLATE and TRANSLATEL tasks. So here is the difference:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;TRANSLATE- This task will translate all departments/assignable segments in the "originating" input set to&amp;nbsp;the "functional" input set.&amp;nbsp; This would apply when all segments need to be translated.&lt;/li&gt;&lt;li&gt;TRANSLATEL- This task will only translate those departments/assignable segments specified in the line set defined in the task. So, for example, if I set up a line set (Build&amp;gt;&amp;gt;Lines) with only three departments/assignable segments in it, only those three segments will be translated when the task is run.&amp;nbsp; This would apply if only certain segments need to be translated.&lt;/li&gt;&lt;/ul&gt;The difference is a subtle one, and it is even more subtle when you set up the task using the wizard.&amp;nbsp; First, you need to use Build&amp;gt;&amp;gt;Lines to create a line set of the departments/assignable segments to be used in the translation.&amp;nbsp; Then you need to create the task:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data&amp;gt;&amp;gt;Tasks&lt;/li&gt;&lt;li&gt;Right-click, choose "New"&lt;/li&gt;&lt;li&gt;Mark "Create Using Wizard"&lt;/li&gt;&lt;li&gt;Click "Next"&lt;/li&gt;&lt;li&gt;Click the "Insert Task Package" button in the upper right hand corner&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-3SE9WJjrQuU/TbYnDhNmJtI/AAAAAAAAAG4/4lHg4fMvB60/s1600/4-25-2011+8-57-05+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317px" i8="true" src="http://1.bp.blogspot.com/-3SE9WJjrQuU/TbYnDhNmJtI/AAAAAAAAAG4/4lHg4fMvB60/s400/4-25-2011+8-57-05+PM.png" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Choose the "Perform Currency Translation" task from the drop-down list&lt;/li&gt;&lt;li&gt;Select the Input Set for translation&lt;/li&gt;&lt;li&gt;Set the Translation Scope&lt;/li&gt;&lt;li&gt;If you want this to be a TRANSLATEL task, you need to then mark the "I will choose a set of lines with assignable segment (Department) IDs for which translation is to be run" and then select the line set&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ul&gt;So although it is a subtle difference, it is an important one if you only need to translate some departments/assignable segments.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-1099411466865486961?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/1099411466865486961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=1099411466865486961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1099411466865486961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/1099411466865486961'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/04/forecaster-translate-vs-translatel.html' title='Forecaster TRANSLATE -vs- TRANSLATEL'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-3SE9WJjrQuU/TbYnDhNmJtI/AAAAAAAAAG4/4lHg4fMvB60/s72-c/4-25-2011+8-57-05+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-6433500051318684492</id><published>2011-04-25T18:50:00.000-07:00</published><updated>2011-04-25T18:50:57.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microsoft dynamics sure step'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Warning! Implementation Trauma Ahead</title><content type='html'>Here I am, sitting in hotel room in Indianapolis, where the task popped up reminding me to write my weekly (okay, okay, sometimes not quite weekly) blog post.&amp;nbsp; And I have to admit I am a bit uninspired for some reason. Maybe it's just the natural slow start that comes off of a holiday weekend.&amp;nbsp; Or maybe it is a symptom of being in a training state of mind for an end-user training tomorrow.&amp;nbsp; Whatever it is, I hope our legions of fans will indulge me a bit :)&lt;br /&gt;&lt;br /&gt;Lately I have been spending a fair amount of time training and conducting study halls on Microsoft Dynamics Sure Step.&amp;nbsp; The conversations in class and afterwards bring to mind the so-called "sins" that seem to repeat themselves again and again.&amp;nbsp; So, here is my&amp;nbsp;list of implementation "sins",&amp;nbsp;I have created two lists-- one for customers and one for consultants.&amp;nbsp; I know this is a bit self-indulgent (I warned you earlier!), and I am not suggesting that I have not committed each and every one of these sins once or twice (or more often!), but I thought I would share the list and see what else you all would add.&amp;nbsp; In no particular order...&lt;br /&gt;&lt;br /&gt;Top 5 Consulting Sins&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Assuming you are the sole reason for the success/failure of the project&lt;/li&gt;&lt;li&gt;Forgetting that customer service is important even during the heat of an implementation&lt;/li&gt;&lt;li&gt;Ignoring risks as a way to avoid difficult conversations and/or to not "rock the boat"&lt;/li&gt;&lt;li&gt;Forgoing proactive&amp;nbsp;change management for many of the same reasons as #3&lt;/li&gt;&lt;li&gt;Losing yourself in the "weeds" and forgetting the reasons/goals for the implementation&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Top 5 Customer Sins&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Assuming that the consulting team&amp;nbsp;is the sole reason for&amp;nbsp;the success/failure of the project&lt;/li&gt;&lt;li&gt;Approaching the consulting team as adversaries instead of partners&lt;/li&gt;&lt;li&gt;Underestimating the organizational change associated with implementing software&lt;/li&gt;&lt;li&gt;Not placing value on the time spent by employees on an implementation&lt;/li&gt;&lt;li&gt;Inadequately voicing/sharing your goals, whether due to limited budget, resources, or time (or energy!)&lt;/li&gt;&lt;/ol&gt;Later this week, I will give you more background on each of these.&amp;nbsp; They are all common themes that come up in class after class, study hall after study hall, conversation after conversation.&amp;nbsp; Please share your own as well!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-6433500051318684492?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/6433500051318684492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=6433500051318684492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6433500051318684492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/6433500051318684492'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/04/warning-implementation-trauma-ahead.html' title='Warning! Implementation Trauma Ahead'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-3874992325614655239</id><published>2011-04-13T14:13:00.000-07:00</published><updated>2011-04-13T14:13:00.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='table import'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><category scheme='http://www.blogger.com/atom/ns#' term='tax detail'/><title type='text'>Lesson Learned- Importing Tax Details</title><content type='html'>Last week, a client asked if they needed to manually set up 100 tax details in Dynamics GP.&amp;nbsp; We are in the testing phase, so I knew it wasn't&amp;nbsp;a matter of setting these up once...but twice if we did it manually (for the live database and for the test database, which couldn't be restored at that point due to other dependencies and testing).&amp;nbsp; So I did what I shouldn't have done.&amp;nbsp; I said, "Sure, we can do a quick table import".&amp;nbsp; Now, to be clear, the issue is not using table import.&amp;nbsp; It is that I used the work "quick".&amp;nbsp; (For those of you not familiar with table import, Mariano Gomez has a great &lt;a href="http://dynamicsgpblogster.blogspot.com/2008/10/often-overlooked-yet-powerful-table.html"&gt;blog post&lt;/a&gt; on the subject.)&lt;br /&gt;&lt;br /&gt;So I took a "quick" look and imported the tax info to the Sales/Purchases Tax Master (TX00201).&amp;nbsp; When importing to this table (first lesson learned), first set up a record manually so you can see the proper settings for all fields (there are many that are not obvious and need to have the correct defaults set in the import).&amp;nbsp; Well, that was quick.&amp;nbsp; One table, check links (Microsoft Dynamics GP, Maintenance, Checklinks, Company), done. &lt;br /&gt;&lt;br /&gt;Well, not so quick.&amp;nbsp; When users entered transactions using the tax details, all went fine.&amp;nbsp; But when they tried to post (even though there were no errors on the edit list), the posting journal would return "detail" errors and the batch would be sent to batch recovery.&amp;nbsp; And when we tried to manually delete the tax details through GP, we would get "record locked" errors.&amp;nbsp; Ugh.&amp;nbsp; Ugh.&amp;nbsp; Ugh.&lt;br /&gt;&lt;br /&gt;Hunting.&amp;nbsp; And berating myself for not being more measured about it.&amp;nbsp; And then I found the Sales/Purchases Tax Summary Master (TX00202).&amp;nbsp; Ah-ha.&amp;nbsp; For every record saved in the TX00201, a record is also created in the TX00202.&amp;nbsp; So I needed two table imports, not one.&amp;nbsp; The TX00202 is a rather simple table storing historical summary information.&amp;nbsp; Easy to populate, but again, check an entry that has been made directly in GP to determine how to correctly populate the fields with defaults in the TX00202 table.&lt;br /&gt;&lt;br /&gt;Good luck, hope a few of you can learn from my mistake!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Christina Phillips is a Microsoft Certified Trainer and Dynamics GP Certified Professional. She is a supervising consultant with BKD Technologies, providing training, support, and project management services to new and existing Microsoft Dynamics customers.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6691994129222744759-3874992325614655239?l=dynamicsgpland.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dynamicsgpland.blogspot.com/feeds/3874992325614655239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6691994129222744759&amp;postID=3874992325614655239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3874992325614655239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6691994129222744759/posts/default/3874992325614655239'/><link rel='alternate' type='text/html' href='http://dynamicsgpland.blogspot.com/2011/04/lesson-learned-importing-tax-details.html' title='Lesson Learned- Importing Tax Details'/><author><name>Christina Phillips</name><uri>http://www.blogger.com/profile/03332221198245457747</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6691994129222744759.post-7429569282968616</id><published>2011-04-13T13:57:00.000-07:00</published><updated>2011-04-13T13:58:15.440-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='use tax'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamics gp'/><title type='text'>Use Tax and Dynamics GP- Match Made in Heaven?</title><content type='html'>&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;For a lot of businesses, use tax is an annoyance for the most part.&amp;nbsp; There isn't enough volume to necessitate purchasing a solution, but the need to stay in compliance is vital.&amp;nbsp; So what to do with little money to spend on the issue, and no ready-made solution in Dynamics GP?&lt;br /&gt;&lt;br /&gt;I have to give credit to the following solution to Cindy Boersma at BKD.&amp;nbsp; After many iterations of trying to find a solution, she came up with this final process&amp;nbsp;-- all I did was&amp;nbsp;go through and document and test.&amp;nbsp; And it seems to work like a charm.&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://4.bp.blogspot.com/-jWmj7o6w_rI/TaYJ3A507gI/AAAAAAAAAGw/ZD5r3s7podw/s1600/Use+Tax.png" imageanchor="1" style="clear: right; cssfloat: right; f
