I received an email from a user who wanted to use GP Power Tools to replace some VBA (Visual Basic for Applications) code using GP Power Tools. They wanted to update a SOP (Sales Order Processing) Sales Transaction Entry User Defined Field based automatically but the code they had developed was not working.
While the issue has been logged with Microsoft Support, the fix will not be available for a while, so I was asked how easy would it be to force the window to only work exclusively for a single user at a time using GP Power Tools.
The answer…. very easy …. initially.
This article completes the creation of a GP Power Tools customization to prevent POP Receivings from updating the Originating Invoice Cost field on the Item Vendors Maintenance window.
Please make sure you have read the previous articles before continuing:
In the previous articles we used GP Power Tools to identify the table and field we want to work with as well as the script responsible for making the change to the field during the receivings posting process and then used triggers to restore the previous value of the field when posting receivings transactions.
This article continues the creation of a GP Power Tools customization to prevent POP Receivings from updating the Originating Invoice Cost field on the Item Vendors Maintenance window.
Please make sure you have read the previous article before continuing:
In the previous article we used GP Power Tools to identify the table and field we want to work with as well as the script responsible for making the change to the field during the receivings posting process.
I was recently working with a GP Power Tools customer who wanted to solve an issue with how the Purchase Order Processing (POP) module on their Microsoft Dynamics GP system functions.
They have international suppliers who specify the cost for their inventory items on a regular basis by sending through a price list document. Due to long lead times and shipping delays caused by the pandemic, cost pricing might change while the items are still in transit.
The issue is that when receiving a purchase order, the Originating Invoice Cost field on the Item Vendors Maintenance window is updated from the last received transaction, overwriting the current cost price provided by the supplier. The result is that subsequent purchase orders created have the incorrect cost value from the receivings transaction instead of from the supplier’s price list.
The customization was created using GP Power Tools‘ Developer Tools module, but similar code could have been created using Dexterity, Visual Studio Tools or even VBA (Visual Basic for Applications).
You might have seen yesterday’s article: #GPPT Processes are currently being run Dialog when logging into Microsoft Dynamics GP, which discusses a problem caused by a clash of a GP Power Tools build 28 feature and FastPath SSO (Single Sign On).
[Edit] FastPath have already released an update which fixes the issue. Thanks for the quick turn around.
The root cause of this issue is the undocumented side effect of using the Dexterity Activity_GetBackgroundStatus() command. Read on for the full explanation.
As promised, following on from the previous article: #Dexterity Automating or Customizing the Report Destination Window, this article shows how you can achieve the automating of the Report Destination dialogs using GP Power Tools – Development Tools module, including the dialogs in the Dexterity Runtime Engine.
Back in 2009, I posted about Automating or Customizing the Report Destination Window. In that article I discussed that there is more than one version of the Report Destination dialog and that additional methods would be required to control the version that is in the Dexterity Runtime Engine.
This article gets into more detail showing how the control the different dialogs with Dexterity.
Following on from the previous articles: #GPPT Speeding Up Referencing Modifier Added Fields and staying Web Client compatible and #GPPT Referencing Modifier Added Fields in the Web Client using .Net Execute, this article looks how we can use VB.Net rather than C# as the scripting language in the .Net Execute scripts.
Both VB.Net and C# use the .Net Common Language Runtime (CLR) and it is usually possible to write exactly the same code in either language. So we will duplicate our existing C# scripts and convert them to VB.Net, then we will duplicate the triggers to call the new scripts.
Using the method discussed in the article #GPPT Referencing Modifier Added Fields in the Web Client using .Net Execute it was possible able to get past some of the limitations mentioned in the article Dynamics.Application Object not available on Web Client.
However, running the .Net (C# or VB.Net) code is slightly slower than running the Dexterity (sanScript) code. This article explains a method of how to improve Desktop Client performance while staying compatible with the Web Client.
You probably saw the recent article: Dynamics.Application Object not available on Web Client where I described an issue that was recently discovered and meant that the “Continuum” based triggers and scripts used to reference Modifier Added Fields in GP Power Tools – Developer Tools module were unable to work in the Web Client.
I mentioned a workaround that would function with the current GP Power Tools code when running on the Web Client (and Desktop Client). This article will show how you can use scripts in the .Net Execute Setup window to reference Modifier Added Fields.
Recently on the GPUG Open Forum, Jeff Roe asked if it was possible to disable manual entry by users into the SOP Number field on the Sales Transaction Entry (SOP_Entry) window.
I suggested using GP Power Tools – Developer Tools module to create a quick trigger to lock or disable the field. As Jeff is already a GP Power Tools user and has the Developer Tools module registered, I created the required code and posted it on the forum thread. Here is a slightly more detailed version of the forum response.
This article is comes about thanks to my friend, Melissa Brown, who approached me for a solution to a reporting requirement she had for a customer due to new legislation brought in by the US state of Minnesota.
The requirement was not possible to solve with the Dynamics Report Writer alone as it involved an array in a table which prevented a static relationship from working to retrieve the data needed.
The previous article: #GPPT Parsing Returned SQL Data into Rows and Columns had some examples of how to convert string representations of various datatypes back to their native datatypes.
With GP Power Tools, it is a common technique to store additional data in the DUOS (Dynamic User Object Store) table (SY90000). However, the DUOS uses a 132 character string field to store the data and so datatype conversions in both directions will be needed.
When writing customizations using GP Power Tools as your development tool, there may be times where you need to return a SQL query as a data set to your Trigger Setup script or Runtime Execute Setup script.
It is possible to display a data set to the end user in a SQL Results window using the MBS_SQL_Results helper function. If you have “Goto” actions defined, the MBS_SQL_Results_Goto helper function will display the data and enable the SQL Goto functionality.
But what if we don’t want the data displayed to the user and just need to use the data in your code.
Dexterity is the native language of Microsoft Dynamics GP. It is an amazing development environment that is still the best and most powerful tool to integrate with the Dynamics GP User Interface. While Dexterity was originally developed in the late 1980’s, it has been continuously developed and extended with more and more features and functionality which allow it to handle everything needed for modern business applications AND still be completely backwards compatible to its original release.
However, Dexterity does have some limitations: It is a little bit more complex if you need to integrate with other third party dictionaries and it cannot work with modified windows. GP Power Tools extends Dexterity’s scripting capabilities to make it possible to easily work with multiple dictionaries and with modified windows.
Welcome to the eighth and final article in the series of articles that explains in detail the steps to add a user defined custom field to a window using Modifier, Report Writer and GP Power Tools to add the business logic.
The series should be read in order starting with the introduction article:
In this article we will put everything in the previous articles together in a video demonstration of the steps.
Welcome to the seventh article in the series of articles that explain in detail the steps to add a user defined custom field to a window using Modifier, Report Writer and GP Power Tools to add the business logic.
The series should be read in order starting with the introduction article:
In this article we will adjust security and GP Power Tools settings to publish the customization to all users.