One great thing about doing the job I do as an Escalation Engineer on the Asia Pacific Microsoft Dynamics GP support team is I have no end of support cases from which to draw ideas for blog posts from.
So here a Dexterity case I helped with recently.
The question from the Dexterity developer was:
I am using Dexterity with Visual Source Safe (VSS) for Source Code Control (SCC) and I have an alternate window based on the SOP_Entry form. I would like to remove the alternate form altogether and recover the core SOP_Entry form. I have tried using Dexterity Utilities to transfer from an original Dynamics.dic into my development dictionary, but it gives it a resource id > 22000.
There are two options that can be used achieve what the developer was trying to do:
- Ensure all resources are checked in to VSS and update the index file. Remove the SOP_Entry window from VSS and then update (using Index file) into a clean DYNAMICS.DIC.
- Use Dexterity utilities to Transfer >> Dictionary Module and copy an unmodified version of the SOP_Entry form into your dictionary. Then remove the SOP_Entry form from VSS and Update the SCC state.
Once completed, compile all scripts to identify if there are any references to the fields you might have added to the SOP_Entry form. Update and remove your trigger code that used the alternate window.
The Theory Bits
When you use Transfer >> Resource in Dexterity Utilities, it will try to use the same Resource ID if available, but if the Resource ID is already used or the resource being transferred is a core resource (< 22,000), then the next available Resource ID will be assigned. Also this option does not transfer compiled code and so relies on the scripts being available on a form so it can be re-compiled.
To transfer a form without renumbering resources or losing the compiled code, you must use Transfer >> Dictionary Module in Dexterity Utilities. This is why this window is used to transfer alternate forms and reports during the chunk creation process.
Hope you find this useful.