When developing Dynamics GP customizations in our WebSan environment, our development phase is contained within a local server configuration to ensure that all modifications to the forms and reports dictionaries are local and will not affect our hosted users. However, there are a few more items to note when separating a development from a production environment.
When enabling and granting access to modified forms and reports in GP, administrative users would navigate to the Microsoft Dynamics GP menu >> Administration >> Alternative/Modified Forms and Reports and grant access to the modified item by selecting the ID, Product, and Type (Windows: Forms or Reports), then checking the box beside the version they would like accessible:
The ID field at the top of this window is used to specify which group of users has access to the forms and reports chosen in the list underneath. Users are assigned an “Alternate Modified Forms and Reports ID” in the ‘User Security’ window:
Therefore, if you are customizing the ‘Payables Transaction Entry’ window and want to ensure that current GP users cannot view these changes until they are completed, you can add your own GP login to a new “DEV” group that has the customized form selected such that further work and testing can be performed without effecting production users. While the ID field handles what version of the form or report the user can view, any VBA code that is applied to the customization is made accessible through the “EventMode” property in the ‘Visual Basic Editor’ (Alt+F11), if the form or report has been added to VBA.
Within the VBA code, you can select the form or report that is using VBA and set the EventMode property to either “0-emOriginalOnly”, “1-emModifiedOnly”, or “2-emNever”. The first applies the VBA code to the original (un-modified) object only, while the second applies it to the modified version. The third ensures that VBA code is not run when that object is accessed:
By utilizing these two properties, it is possible to contain a customization to only a particular group of users until testing is completed, and is ready to be deployed to a production system. If development is occurring within a production environment, configuring these two settings will ensure that other users are unaffected.