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.
Today, I was asked by a partner how simple it would be to default the Sort by fields on the Payables Transaction Inquiry – Vendor window to Document Date in Descending order. This is previously the type of quick tweak that you might have used VBA (Visual Basic for Application) for.
However, now that VBA is “End of Life” and is not supported on the Web Client and some windows platforms, this is a perfect customization to use the GP Power Tools – Developer Tools module for. The entire customization took me about two minutes to complete. In fact, it took much longer to write this article.
I was asked recently to assist with some custom code that had been added to a transaction window in Microsoft Dynamics GP. The customization would work for one user, but not for a different user.
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.
A recent post on the GPUG Forums by my friend David Morinello asked how to fix the issue when the Dexterity Properties window resizes to smaller than its default width.
See the thread here: Dexterity Property Window too narrow
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.
I have been fairly quiet recently on the blog and forums as I have been concentrating on developing the next build of GP Power Tools. All I can say is that it is awesome and you will love it. I have a “Sneak Peak” article coming soon.
While working on the development and testing process, I had some unusual behaviour from my .Net Visual Studio Tools Addins and spent an entire day troubleshooting the issue so I could identify the cause and work out a solution. Read on for the gory details….
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.
Here is something a little different for you. I have two external drives connected to my Microsoft Surface Book 2 15″ computer. One is a 256GB micro SD card hidden in a BaseQi Ninja Stealth Drive loaded into the SD Card slot and the other is a USB 3.0 connected Western Digital 2TB WD Elements Portable. Both of these drives have BitLocker enabled and have the password remembered on this machine.
Every now and then, the drives fail to initialize correctly and in turn fail to unlock with BitLocker. Even though I can see the drives and their total and used capacity, I cannot access them.
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.
This article comes about because we have identified a feature of GP Power Tools that does not work as expected on the Web Client. GP Power Tools has the ability to run scripts and register triggers against Modifier added fields and Modal Dialogs. These features uses the Dynamics.Application object and in particular a suite of functionality historically known as “Continuum”.
We can now confirm that the Dynamics.Application object is not available at all when running Microsoft Dynamics GP in the Web Client and so any functionality reliant on this object will fail to work.
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.
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.