Developing for Dynamics GP

by David Musgrave (Perth, Australia) and Microsoft Dynamics GP Developer Support Team (Fargo, ND, USA)

SnapShot for Microsoft Dynamics GP

SnapShot for Microsoft Dynamics GP

  • Comments 21

David Meego

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

  • 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 ?


  • 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.


  • 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.


  • Posting from

  • Posting from About Dynamics, Development and Life (Jivtesh Singh's Blog)

  • This is an updated version of an article I wrote a while back for the Microsoft Dynamics GP community

  • Posting from the Dynamics GP Blogster

  • This is an updated version of an article I wrote a while back for the Microsoft Dynamics GP community

  • From the Microsoft Dynamics GP Application Level Security Series . With the change from the optimistic

  • 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.


  • 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 ?



  • Posting from the Dynamics GP Blogster

  • 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.

  • 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.

  • 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.


Page 1 of 2 (21 items) 12
Comments Information


Please only post comments relating to the topic of this page.

If you wish to ask a technical question, please use the links in the links section (scroll down, on right hand side) to ask on the Newsgroups or Forums. If you ask on the Newsgroups or Forums, others in the community can respond and the answers are available for everyone in the future.

Leave a Comment
  • Please add 6 and 3 and type the answer here:
  • Post