SnapShot for Microsoft Dynamics GP


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. 

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

SnapShot.zip

Comments (21)

  1. jivtesh says:

    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 ?

    Jivtesh

  2. David Musgrave says:

    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.

    David

  3. PM2885 says:

    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.

    Paul

  4. David Musgrave says:

    Posting from VSToolsForum.com

    http://vstoolsforum.com/forums/p/524/1208.aspx#1208

  5. David Musgrave says:

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

    http://www.jivtesh.com/2008/07/snapshot-tool-from-david-musgrave.html

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

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

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

  9. Teguh says:

    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.

    Teguh

  10. ABower says:

    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,

    ABower

  11. HFLo says:

    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.

  12. Patrick Roth [MSFT] says:

    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.

  13. David Musgrave says:

    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.

    David

  14. asma says:

    Thanks! was just looking for the same.

  15. Travis Cogle says:

    David – Is there a dex.ini setting to stop the Snapshot wizard prompting when logging into a new company? Thanks in advance!

  16. David Musgrave says:

    Hi Travis

    In the user guide it mentions the dex.ini settings for SnapShot..

    Have you tried SS_Development=TRUE

    David

  17. Lisa says:

    Do you have a version for GP2013?

  18. David Musgrave says:

    Hi Lisa

    There is no version ready for GP 2013 yet. I will get something released soon.

    David

  19. Matt says:

    David,

    Any update on a possible release of Snap Shot for GP 2013?  Thanks!