SnapShot for Microsoft Dynamics GP
Not long after I joined Microsoft in May 2001, I found myself working as part of a global development team for Asia Pacific. The team was based in Manila in the Philippines and was involved in a regional research project to check the feasibility of releasing a version of Great Plains eEnterprise v6.0 for China.
Now, it should be mentioned that Dexterity (and so Microsoft Dynamics GP) does not support double byte or Unicode characters. This project was investigating whether a third party tool such as Rich-Win could be used to display Chinese characters using two single characters for each Chinese character. While it was possible to translate the documentation and most of the windows, there were a number of quirky issues with data entry that eventually caused the project to be stopped.
Another part of this project was looking at the reporting requirements for Chinese companies and creating custom code or Advanced Financial Analysis (AFA) reports to handle the requirements. AFA stores the report setup in tables as data and so this data would need to be added to new companies after they had been created.
This is where the SnapShot tool I created comes into the picture. SnapShot works by copying the contents of selected tables to Ctree files in a separate folder, thus creating a SnapShot of the data. This separate folder can then be copied to a target system and the data inserted back into the actual tables. SnapShot has a wizard interface (which can be controlled with dex.ini settings) to automate the process of importing the data back. Using SnapShot we could pre-load the AFA reports setup every time a new company was created.
So that is the history of where SnapShot comes from and why it was created. Even though the project that spawned the code is no more, SnapShot was too useful to let die.
SnapShot's primary functionality is the ability to copy data between systems (of the same version), including between different account frameworks or database types. It can be used to help migrate data from Ctree or Btrieve/P.SQL to MS SQL Server when a third party vendor does not have a migration tool. It can be used to pre-load standard configurations. It can be used to backup and restore data from a client. It can be used to backup and restore test or demo data on a consultant's workstation.
SnapShot also has the ability to print or export resource data about the tables and fields used in any table in any dictionary/product in the system. It can output the data in a variery of forms including reports, tab delimited text files, XML and even GenView SQL Scripts.
NOTE: SnapShot is not an officially released tool and is not supported. It is made available "as is".
The code and documentation for v8.0, v9.0, v10.0 & v11.0 (GP 2010) is attached at the bottom of the article.
Please add your comments to say how you have used this tool.
David
15-Feb-2010: Added SnapShot for Microsoft Dynamics GP 2010 Beta code.
25-Aug-2010: Older versions of the SnapShot tool for v6.0, v7.0 & v7.5 can be downloaded from https://www.winthropdc.com/development.html.
Comments
Anonymous
July 27, 2008
Hey David, Its great to read your posts with these stories :) Are the rapid application tools for migrating data from Quickbooks built on top of the Snapshot tool ? JivteshAnonymous
July 28, 2008
No, SnapShot was not adopted by the development team, even though the technique that I developed to allow any table in any dictionary to be opened twice in two locations with potentially different database types has been used by the later versions of the GP database migration tool. DavidAnonymous
July 28, 2008
The ability to backup, move and restore data makes SnapShot a valuable tool. I find the part that I use most often is SnapShot’s ability to export table and field data to an Excel spreadsheet (via a TAB delimited file). This functions as a replacement to 'Resource Descriptions' table and field listings. SnapShot is several magnitudes easier, and actually produces useful reports. You have the ability to choose your tables you require across multiple dictionaries and modules. You may export just the tables or include the fields. Great for Report Writer, SmartList, SmartList Builder, Dexterity, etc. PaulAnonymous
August 04, 2008
Posting from VSToolsForum.com http://vstoolsforum.com/forums/p/524/1208.aspx#1208Anonymous
August 04, 2008
Posting from About Dynamics, Development and Life (Jivtesh Singh's Blog) http://www.jivtesh.com/2008/07/snapshot-tool-from-david-musgrave.htmlAnonymous
October 09, 2008
This is an updated version of an article I wrote a while back for the Microsoft Dynamics GP communityAnonymous
October 27, 2008
Posting from the Dynamics GP Blogster http://dynamicsgpblogster.blogspot.com/2008/10/often-overlooked-yet-powerful-table.htmlAnonymous
October 28, 2008
This is an updated version of an article I wrote a while back for the Microsoft Dynamics GP communityAnonymous
November 10, 2008
From the Microsoft Dynamics GP Application Level Security Series . With the change from the optimisticAnonymous
March 02, 2009
Hey David, I want ask about use this tools in GP 10 SP 3, because i got error must upgrade version when deploy in GP 10 SP 3. TeguhAnonymous
May 26, 2009
Hi David, Was looking at this handy tool, and reading through the docs, there is reference to using a conversion table for handling acct framework differences. I can't seem to find where/how you actually set that up however. Am I missing something, or is that function not in the app at the present time ? Thanks, ABowerAnonymous
June 01, 2009
Posting from the Dynamics GP Blogster http://dynamicsgpblogster.blogspot.com/2009/05/moving-data-between-microsoft-dynamics.htmlAnonymous
July 12, 2009
Hi, David: I'm not if I'm using the latest version of SnapShot. I notice that when copying Company Addresses, the CMPANYID in SY00600 does not 'update' accordindly. It still retains the originating company ID value.Anonymous
July 12, 2009
HFLo, I would suspect that it would. In a tool such as this, data is copied in and out of a table of the same structure without regard to what the columns are. To that end, it would seem unlikely that the app would know that if it finds a "company id" value to switch it to a different value. Meaning that you'd likely have to update the value yourself once the data is in the table or else just use sql to copy it and adjust the query as you require.Anonymous
July 12, 2009
Hi Lo Patrick is correct. Snapshot does not alter any data, it just copies it (via Ctree tables). The latest version is the one attached to this post. DavidAnonymous
January 07, 2012
Thanks! was just looking for the same.Anonymous
April 09, 2012
David - Is there a dex.ini setting to stop the Snapshot wizard prompting when logging into a new company? Thanks in advance!Anonymous
April 10, 2012
Hi Travis In the user guide it mentions the dex.ini settings for SnapShot.. Have you tried SS_Development=TRUE DavidAnonymous
April 11, 2013
Do you have a version for GP2013?Anonymous
April 11, 2013
Hi Lisa There is no version ready for GP 2013 yet. I will get something released soon. DavidAnonymous
February 11, 2014
David, Any update on a possible release of Snap Shot for GP 2013? Thanks!