#GPPT Replacing VBA with GP Power Tools – Developer Tools

David Meego - Click for blog homepageAs a follow on to the recent post : #GPPT Why every GP site needs GP Power Tools – Developer Tools, this article explains the benefits of replacing your VBA (Visual Studio for Applications) and VSTools (Visual Studio Tools for Microsoft Dynamics GP) customizations with GP Power Tools.

It has been prompted by the issues seen because the redistributable version of VBA that is packaged with Microsoft Dynamics GP has reached end-of-life as explained in the following articles from the Microsoft Dynamics GP Support and Services team:

The article explains how VBA has been clashing with the latest Office 365 releases, which in turn have been causing problems with emailing via Outlook from Dynamics GP. The article also reminds us that VBA customizations do not work in the Dynamics GP Web Client.

Customizations made with Report Writer and Modifier do work in the Web Client as they are part of core Dexterity functionality. The usual suggestion is to replace the VBA code with VSTools code, but there is another alternative which has many other benefits…. GP Power Tools.

GP Power Tools can use Dexterity Triggers instead of VBA or VSTools events, but unlike Dexterity it can trigger against fields added with Modifier and also run code against these fields so you can read data from and write data to them.

GP Power Tools can run scripts written in Dexterity sanScript, Transact SQL, Visual C# and Visual Basic.Net. You can mix and match these scripting languages to use the most appropriate language for the task at hand.

GP Power Tools also supports the creation of custom RW (Report Writer) functions to retrieve data or perform complex calculations, custom SBA (Service Based Architecture) web services to perform actions or integrate small amounts of data, custom URL Drillbacks to open windows or perform actions and more.

If you need to prompt the user for details, GP Power Tools has a powerful and flexible Parameter List system which can handle most user interactions and can automatically insert the resulting data selected into scripts by substituting placeholders.

Here are some of the benefits of using GP Power Tools to create your customizations:

  • Customizations can be created inside Dynamics GP. No external Tools or development environments such as the Visual Basic Editor, SQL Server Management Studio or Visual Studio are needed.
  • There is no requirement to exit GP and no requirement to run the DAG tool (Dictionary Assembly Generator) like you would need to for Visual Studio to access modified windows.
  • There is no compiling of code step needed and no requirement to exit and relaunch GP to test code.
  • All development can be limited to the current workstation or user/company in a live environment or to a separate development system until it is ready to deploy.
  • All source code is stored in SQL Server tables and so can never be lost or misplaced.
  • Projects can be exported and imported between systems or for backup, archival or source control purposes.
  • All project components have a release notes text field which can be used to log changes with date and time stamps.
  • All triggers and scripts can be limited on a per user, per company or per user and company basis, so you can control who has access to customizations.
  • Triggers can also be limited to only work on a modified version of a window so that if a user does not have access to a window, they don’t get the customization.
  • Deployment is simple, just changing who the triggers and scripts are enabled for on a live system, or exporting from the development system and importing into the live system.
  • Modifications are available once saved. There is no need to get users to exit GP when deploying code.
  • Changes to triggers are enabled the next time a user logs in or switches company (even if back to the same company).
  • There is no requirement to perform any deployment action on individual workstations as all the code is stored on the server. As long as GP Power Tools is installed on all workstations in the system, the customizations are deployed everywhere immediately.
  • There are no separate steps needed when upgrading other than testing that the customizations still work as desired.
  • All triggers and scripts work with the Microsoft Dynamics GP Web Client.
  • A large suite of Helper Functions are available to perform many tasks.
  • Works with original windows in any dictionary.
  • Works with Modified windows in any dictionary. Triggers and scripts work with Modifier added fields. So, you can use Modifier to make changes to the windows.
  • Works with Report Writer using custom Report Writer functions.
  • Cross dictionary code can be developed using Helper Functions and multiple scripts.
  • Develop using multiple languages including Dexterity sanScript, Transact-SQL, Visual C# and Visual Basic.Net.
  • Can create right click field context menus or additional form menus.
  • Works with Visual Studio Integration Toolkit to create application level menus.
  • Works with Visual Studio Integration Toolkit to create custom forms (Custom Forms requires VSIT Build 18 or later and GPPT Build 30 or later).
  • Can perform timed or scheduled tasks with a variety of options.
  • Can call existing business logic in Dynamics dictionary or in any Microsoft or ISV addon dictionary.
  • GP Power Tools can identify parameters for most procedures and functions in any dictionary.

To be fair, here is a list of issues with using GP Power Tools:

  • It is not a straight copy and paste as the scripting language and methods will differ from the VBA or VSTools existing code.
  • You will need a current subscription for the Developer Tools module of GP Power Tools.
  • Some customizations might not be possible with GP Power Tools alone and might need additional Dexterity or VSTools code.
  • [Edit] Prior to Build 28, Triggers and scripts on modified resources currently did not work with the Microsoft Dynamics GP Web Client as Continuum is not supported. Using triggers and scripts on modified resources in the Web Client is fixed in Build 28.
  • [Edit] Prior to Build 30, GP Power Tools cannot create new windows. From Build 30 onwards in conjunction with Visual Studio Integration Toolkit Build 18 or later, custom windows can be created. You will need a current subscription for the Custom Forms module of Visual Studio Integration Toolkit.

[Edit] The GP Power Tools Build 28 release no longer uses “Continuum” and so no longer is affected by the limitations this caused.

However, the list of benefits heavily outweigh the few issues, so you should seriously consider using GP Power Tools as your tool of choice for customizations and for replacing existing VBA or VSTools code.

For samples of how to use Developer Tools see the following series of posts and the samples page:

Hope you found this analysis useful.

David

17-Feb-2020: Updated to reflect that Continuum based triggers and scripts used for modified resources do not work in the Web Client environment.
08-Apr-2020: Updated to reflect that GP Power Tools Build 28 release no longer uses “Continuum” and so scripts and triggers on modified resources do work on the Web Client.
19-Aug-2020: Added links to the now released Build 28 of GP Power Tools.
22-Aug-2020: Added links to User Defined Field Example and Sample page.
03-May-2022: Added link to second article discussing issue with VBA and Office.
28-Feb-2024: Added note that GPPT and VSIT can now create custom forms.

This article was originally posted on http://www.winthropdc.com/blog.

11 thoughts on “#GPPT Replacing VBA with GP Power Tools – Developer Tools

Please post feedback or comments

This site uses Akismet to reduce spam. Learn how your comment data is processed.