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.
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 http://www.winthropdc.com/development.html.