Page 1 of 11712345678910...2025303540...Last »

#GPPT What’s New: Run C# and VB.Net scripts with .Net Execute

David Meego - Click for blog homepageThe Support Debugging Tool already has the ability to create and execute Dexterity sanScript and Transact-SQL scripts, without needing the Dexterity development environment or SQL Server Management Studio installed.

Now GP Power Tools adds the ability to create and execute Visual C# scripts and Visual Basic.Net scripts, without needing Visual Studio installed.

Welcome to the new .Net Execute window. Developed with the assistance of my friend Andrew Dean from Envisage Software Solutions in Sydney, the .Net Execute window allows developers with a Visual Studio and Visual Studio Tools for Microsoft Dynamics GP background to write and execute .Net scripts inside Dynamics GP.

Net Execute

When you select a script language, a template script is automatically generated in that language including the appropriate using or Imports statements. The system also adds the references to the appropriate DLLs. You can click on the References button to add additional references for other Dynamics GP dictionaries or other system or custom features.

 Net Execute References

The script editor window provides all the standard features, such as the Insert button for inserting code constructs, the Helper button for adding calls to Helper functions, the Names button for looking up and inserting dictionary resources as well as the Script menu with find, replace and syntax checking.

Using the Helper functions it is possible to create or load scripts written in Dexterity, SQL or either of the .Net languages and execute them. This allows you to write scripts in any combination of the four languages regardless of what the base language is.

Support for Visual C# and Visual Basic.Net is provided by the two addins installed with GP Power Tools. The Visual C# extension addin providing support for Visual C# scripts and the Visual Basic.Net extension addin providing support for Visual Basic.Net. These addins DLLs must be installed for the functionality to be available.

Finally, the Visual Basic.Net extension addin also provides an additional feature in the Runtime Execute window: Dexterity sanScript code can be executed in the context of a modified form, rather than the original form, and so read and write to Modifier added local fields.



This article was originally posted on

Filed under: 2010, 2013, 2013 R2, 2015, 2015 R2, Dynamics, GP, GP Power Tools, Microsoft, Products Tagged: GP 2010, GP 2013, GP 2015, GP Power Tools, GPPT

Read More:
#GPPT What’s New: Run C# and VB.Net scripts with .Net Execute

August 2, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 15

#GPPT What’s New: Security Activity Tracking and Security Log

David Meego - Click for blog homepageAs GP Power Tools approaches release, it is time to continue the What’s New series and explain another of the new features added to the product.

You can now enable Security Activity Tracking to collect statistical data on the usage of the various resources and security objects within the system.

This tracking can provide accurate data on which users use particular areas of the Microsoft Dynamics GP application and can be used to assist with the creation of Security Tasks and Security Roles when designing your security model.

The feature is enabled from the Administrator Settings window. Once enabled GP Power Tools will track every call to the application level security system and log whether access was granted or denied.

Administrator Settings 1

The information collected is kept on a user & company, user, company and system basis, so you can analyse the data from whichever angle you wish.

The new Security Log window is used to review the captured activity information. You can view the information for any user and/or company you select. The data can be initially sorted by resource or one of the 3 count columns (Total, Granted or Denied), however once the data is displayed you can click on the column headers to change the sorting as desired.

Security Log 

You can select any row in the data and right click or use the Security button to drill down to the Security Information window. You can right click or use the Open button to open a window or report if you want to see which window or report it is. You can also double click to open the Resource Information to that object or resource.

Finally you can use the checkboxes to select individual resources and/or security objects, then use the Security button to create Security Tasks and Security Roles from the selected items.

Security Log Create Task

You can now build your security model based on actual historical usage data from your own system.



This article was originally posted on

Filed under: 2010, 2013, 2013 R2, 2015, 2015 R2, Dynamics, GP, GP Power Tools, Microsoft, Products Tagged: GP 2010, GP 2013, GP 2015, GP Power Tools, GPPT, Security, What’s New

View the original here:
#GPPT What’s New: Security Activity Tracking and Security Log

July 31, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 12

Developing using Dexterity for Microsoft Dynamics GP 2015

David Meego - Click for blog homepageToday, I was contacted by a fellow Dexterity developer who was having trouble getting Dexterity for Microsoft Dynamics GP 2015 to run Dynamics.dic in Test Mode.

In this article, I will take you through the errors you could get and how to resolve them. Some of these you might know from previous versions, others are new to GP 2015.

For this article I am using Microsoft Dynamics GP 2015 R2 and Dexterity 14.00.0084 which comes on the DVD image. I have copied a clean Dynamics.dic from the application folder into a subfolder in the Dexterity folder. I opened the dictionary with Dexterity and selected Debug >> Test Mode (Ctrl-T).

The first error I get is “You need to run Dynamics.dic Utilities before you can run Dynamics.dic. Do you want to launch Dynamics.dic Utilities now?“.


Note: The name of the dictionary (in this case Dynamics.dic) will be whatever your development dictionary file is called.

This issue is has been around since the beginning and is because the Dynamics code is looking at the Dex.ini file for the settings INITIAL and SYNCHRONIZE and unless it can find those set to FALSE, it will think that it is the first time Dynamics GP is being launched and ask to go to the Utilities to set up the databases and synchronize the dictionary to the account framework.

Solution: The easiest solution is to copy the Dex.ini file from the Application’s Data subfolder to the Dexterity’s Data subfolder. However, be sure to make the couple of changes below:

  • Change DexHelpPath to point to the Dexterity folder.
  • Add ShowResids=TRUE (for pre GP 2015, GP 2015 now shows Resource IDs as default)

Launching into Test Mode again and I get “Unhandled script exception: SCRIPTS – data area EXCEPTION_CLASS_SCRIPT_MEMORY SCRIPT_CMD_EXTERN


 Clicking OK and the Login window opens, but it is not fully drawn.


The problem here is that script that reads the ODBC Data Sources for the Server drop down list is trying to call an external library. This library is part of Dynamics GP, but not actually part of Dexterity and so is not installed.

Solution: Copy the GPDWIN32.dll from the Application folder to the Dexterity folder. This issue started from Microsoft Dynamics GP 2010 onwards.

Launching Test Mode again and I can login, but get another error just after login. The error is “Could not load file or assembly ‘Microsoft.Dynamics.GP.BusinessIntelligence.Homepage’ or one of its dependencies. The system cannot find the file specified.“.


This issue was introduced with Microsoft Dynamics GP 2013 when the homepage was changed.

Solution: Copy the following files from the Application folder to the Dexterity folder:

  • Microsoft.Dynamics.GP.BusinessIntelligence.Homepage.dll
  • Microsoft.Dynamics.GP.BusinessIntelligence.Homepage.Framework.dll

However, the error will still occur as GP 2015 now also requires the following file to be copied:

  • GPIcons.dll

Finally, you will also need to copy the following file to the folder where your development dictionary resides to avoid warnings when compiling:

  • Microsoft.Dynamics.GP.BusinessObjects.dll

Depending on your scripts you might also need the following files copied to the development dictionary folder to allow compilation without errors:

  • Microsoft.Dynamics.GP.ManagementReporterServices.dll
  • Microsoft.Dynamics.GP.Svc.Application.dll

Now you should be good to go. Good luck.


For more information, see these previous articles from my old blog:


Hope this article helps make your life easier.


This article was originally posted on

Filed under: 2015, 2015 R2, Development, Dexterity, Dynamics, GP, Microsoft Tagged: Best Practice, Development, Dexterity, GP 2015

Originally posted here:
Developing using Dexterity for Microsoft Dynamics GP 2015

July 24, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 27

#GPPT What’s New: GP Power Tools is faster and easier to navigate

David Meego - Click for blog homepageAs mentioned in recent posts, GP Power Tools is almost ready for release. The user guide manual documentation is now completed… all 256 pages of it. If you want to get the code now, you can already install the public beta and upgrade to the final release later.

This is the first article in a series of What’s New posts for GP Power Tools. The aim of this series is to highlight some of the new features of the tool and flesh out more details than the 21 reasons to upgrade article.

When creating GP Power Tools, one of the first changes (other than rebranding) was to change the data storage from a Debugger.xml setup file to tables in the system database on SQL Server.


A bit of history …. The Debugger.xml file was originally used to avoid the creation of any SQL objects to allow easy installation and removal of the Support Debugging Tool for its role as a troubleshooting tool. As the functionality of the tool grew and more data was stored in the Debugger.xml, performance slowed as the data was written to and read from the Debugger.xml file. To help with the read performance, ctree tables were used to cache the contents of the Debugger.xml. Also, the additional features added to the tool meant that the Debugger.xml needed to be stored in a shared network location. Finally, because the tool has lots more functionality than the original troubleshooting tool, it was being left installed on systems and the ease of removal was no longer important.

SQL Server

When creating GP Power Tools, one of the first changes (other than rebranding) was to change the data storage to use SQL Server tables. You would think that this would be a simple change, but it took about two weeks to complete. To make the Debugger.xml setup file work as a storage system required a large amount of custom code. The windows would read the Debugger.xml contents into temporary tables and then read and write from the temporary tables. When saving or applying, the data was written back the Debugger.xml file and the cache tables. All this code needed to be removed and replaced with more conventional code to use the SQL tables. To complicate the conversion, on some windows, data needed to be stored temporarily and only saved to the physical tables when applied. This meant that additional code was needed to store data in temporary tables until applied.

The end result is that when saving data, there is no longer a noticeable pause as the data is written. Also there is no requirement for a shared location to store the Debugger.xml file, however a shared location is still useful to centralize storage of log and export files. Finally, having the data stored in SQL Server is more secure than a shared location in the file system.


One of the areas of feedback received about the Support Debugging Tool was that it was difficult to find the options / windows. Part of the cause of this is that when new features were added, their navigation options were just added to the bottom of the Standard Mode or Advanced Mode features.

So GP Power Tools resolves this by providing multiple options for navigation as well as grouping the features. You can still find the main GP Power Tools Logging Control window on the Tools menus of the application and individual windows (both menu or ribbon style). The Ctrl-D keyboard shortcut is also still available.

GP Power Tools Menu   GP Power Tools Menu Ribbon   GP Power Tools Menu Window

You can also find the options on the Standard Toolbar and Quick links on the home page.

Toolbar    GP Power Tools Quick Links

From the main GP Power Tools window, you can use the Options button drop list or the GP Power Tools window menu to access other features. Both of these menus are now broken down with sub menus into functional areas:

  • Resources and Security
  • Scripting
  • Export and Import
  • Administration

GP Power Tools Options Menu 2   GP Power Tools Options Menu 3

GP Power Tools Options Menu 4    GP Power Tools Options Menu 5

Also, GP Power Tools has been added to the application level menus as a sub menu under Transactions, Inquiry, Reports, Cards, Setup, Utilities and Routines.

GP Power Tools Transaction Menu

Finally, GP Power Tools has its own Area page from the Navigation buttons: GP Power Tools Area Page Button

GP Power Tools Area Page Navigation

The Area Page means that navigation on the Microsoft Dynamics GP Web Client is now simpler.

Access to the windows is controlled by application level security and the four automatically created security roles:

  • GP POWER TOOLS USER – For Standard Mode (User) features
  • GP POWER TOOLS ADMIN – For Advanced Mode (Administrator) features
  • GP POWER TOOLS PASSWORD – For Administrator Password Setup window only
  • GP POWER TOOLS SERVICES – For GP 2015 (or later) Service Enabled Procedures

Note: Access to Advanced Mode features also requires sysadmin or dbo access at the SQL Server level and the System Password or Administrator Password (if enabled). The option to hide Advanced Mode features using a Dex.ini setting is no longer used.

So now you should have no trouble navigating the various windows of GP Power Tools by whatever method you decide.



This article was originally posted on

Filed under: 2010, 2013, 2013 R2, 2015, 2015 R2, Dynamics, GP, GP Power Tools, Microsoft, Products Tagged: GP 2010, GP 2013, GP 2015, GP Power Tools, GPPT

Originally posted here:
#GPPT What’s New: GP Power Tools is faster and easier to navigate

July 20, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 33

Field Level Security can crash Microsoft Dynamics GP 2015 Web Client

David Meego - Click for blog homepageWhile working on testing GP Power Tools, I had to investigate an issue with GP Power Tools running on the Microsoft Dynamics GP 2015 Web Client, and discovered a bug which can crash the web client.

The problem I was seeing was just by having GP Power Tools installed, the web client would crash after login or when opening the first window. Note that this issue is resolved now.

I spent some time analysing the GP Power Tools code and tracking the flow of the scripts by adding warning statements into the code until I was able to narrow down the feature that was causing the crash.

Further investigation allowed me to identify the actual script causing the problem and finally, I was able to locate the actual line of code. The reason it was harder than normal to locate the issue was that the code in question was dynamically created pass-through Dexterity sanScript code executed in the context of the runtime engine’s Dex.dic dictionary.

To access more detailed dictionary resource information than available via the Resource_ function library commands, GP Power Tools and in particular the Resource Explorer window use the Script Explorer window in the Dexterity runtime engine. Dexterity developers will be familiar with the window which has part of the script debugger and is used when opening or debugging scripts.


The techniques using this window were published in my 2001 conference session Pushing the Limits with Dexterity. For more information see the Cross Dictionary Dexterity Development article on my old blog.

The error was caused by the line of code that opened the Script Explorer form in a script that would retrieve a list of windows for a specified form in a dictionary.

I knew that the Field Level Security feature included with Dynamics GP (which I originally developed as Omni Field Security) has a similar Resource Explorer window. So I tested that window and it seemed to work fine.

Then I noticed that my script closed the Script Explorer form before opening it and wondered if the issue was not opening the Script Explorer, but re-opening it after it had been closed.

The Resource Explorer window in GP Power Tools and the one in Field Level Security also closed the Script Explorer window when the Resource Explorer form is closed.

So I tested the theory and closed Field Level Security (and so the Resource Explorer and in turn the Script Explorer) and then re-opened Field Level Security (which opens the Resource Explorer and the Script Explorer) and boom. It crashed with the following error:

A server side exception of type “ArgumentException” has occurred.


I have since updated GP Power Tools to never close the Script Explorer window and just to initialise it when it is needed. This has resolved the crashing problem.

However, if you open and close Field Level Security and then re-open it, you can cause the web client to crash. It might not happen every time, but be aware that using Field Level Security more than once per web client session could be risky.

Note: While trying to reproduce the error to get the screenshots for this article, it took a few goes before the web client crashed.

If you are game, try it and let me know (via the comments) if you can replicate. Maybe it is just my install. If the session does crash, make sure you clean up the stranded session using End Task with Task Manager.


Also don’t forget to log back in as the same user and company to clean up the activity tracking records.


PS: I have also reported this issue to Microsoft and they will investigate it.

This article was originally posted on

Filed under: 2015, Dynamics, GP, Microsoft Tagged: Application, Exception, GP 2015

Continue reading here:
Field Level Security can crash Microsoft Dynamics GP 2015 Web Client

July 2, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 49

Welcome to the first GPUG Chapter outside of North America

David Meego - Click for blog homepagegpug-logo

I have been involved in GPUG (Dynamics GP User Group) over the few last years, primarily because I was presenting at conferences in the US which GPUG was organising or at least had a presence at.

As I learnt more about what GPUG does for the community, I realised that I wanted to bring the benefits of an organised user group to my home town in Perth.

So, after promising Kim “Mama” Peterson for a long time that I would start a Perth chapter of GPUG, I finally bit the bullet and booked a room at the local Microsoft Office and began planning our first meeting.

Last Wednesday night we had our first meeting with eleven attendees. We had representatives from four customer companies and two of the three local partners (the third partner gave their apologies and promised to be at the next meeting).


Before the meeting got started, we had some social time to chat and eat pizza. Free food… always a great reason to attend. :-)

My long time friend (and SQL Guru) Robert Cavill from Emeco presented a member showcase. It was the best member showcase we had ever seen (also the only one), but it should be the first of many.

I also gave a demonstration of the upcoming GP Power Tools product, showing how to use it to resolve a variety of security related issues. The demo included some of the features from its predecessor (the Support Debugging Tool), but also included some functionality newly added to GP Power Tools.

Thanks to Michelle, Katherine and Fiona from the Perth Microsoft office for their assistance and to Rose, Jennifer and Kim from GPUG for working with me to make this happen. Finally thanks to the local partners and customers who took the time out of busy schedules to come and attend.

The next meeting is scheduled for September. Exact details will be published later.

If you are a customer in Western Australia, we would love to see you at the next meeting.


PS: I found out that not only was this GPUG chapter meeting, the first in Australia, but also the first outside of North America.

This article was originally posted on

Filed under: GPUG, News Tagged: GPUG, News

Continue reading here:
Welcome to the first GPUG Chapter outside of North America

June 12, 2015 · WinthropDC · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 63

Friday Funny: Finally…. The correct way to eat Vegemite

David Meego - Click for blog homepageIn recent years when I have come to conferences in the US, I have been bringing a stash of goodies with me.

Usually, this includes Arnott’s Tim Tams and Allen’s Chicos*, which are liked by almost everyone who tries them. And then there is the Aussie Icon, Vegemite.

The reaction I get from most people is one of abject terror, completely horrified when I suggest they try some vegemite. They will tell me how they have seen other Americans try it and that it is horrible, disgusting and compared to vomit.

US TV Hosts try Vegemite for the first time live on-air to celebrate Australia Day (direct link)


The problem is that those people who have tried it (including celebrities and TV show hosts) usually have tried it wrong. Usually very wrong. To quote one of my favourite TV comedies:

Wrong, wrong, brimming over with wrongability – Rimmer, Red Dwarf.

The problem is that Vegemite is very (read VERY) concentrated. Imagine an extremely salty beef and vegetable stock boiled down to a thick paste. Would you eat a spoonful neat? You just can’t spread it thick like peanut butter or Nutella and expect it to taste anything but disgusting.

It was first made as a by-product from another Australian favourite, beer. It is a dark brown food paste made from leftover brewers’ yeast extract with various vegetable and spice additives developed by Cyril P. Callister in Melbourne, Victoria, in 1922.

Here is another reaction from a recent episode of Jimmy Fallon’s Tonight show:

Jimmy Fallon and Steve Higgins try Vegemite (direct link)


So, finally it takes a famous Australian actor (and X-Man) Hugh Jackman to show Jimmy how to really eat Vegemite:

Hugh Jackman Shows Jimmy How to Really Eat Vegemite (direct link)


Hint: The butter (not margarine) should melt into the hot toast and the vegemite should be spread extremely thinly. If you can’t see the surface of the bread, you have it spread too thick and need to scrape some off.

That little 150g (5oz) jar should last a good 5 to 10 years. You can ignore the use by date. It never goes off and does not need refrigeration.

Go find some Vegemite and enjoy.


* While Allen’s is a Nestle brand, it seems they are too embarrassed to include Chicos in the product list.

This article was originally posted on

Filed under: Fun, Public Service Announcement Tagged: Friday Funny, Fun

View article:
Friday Funny: Finally…. The correct way to eat Vegemite

May 22, 2015 · WinthropDC · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 73