Every now and then a support request comes in where a customer has received an error message referencing the ‘MBS_ScreenShot_Forms’ table. These support requests are usually redirected from Microsoft’s support team. The error is caused by environmental issues and are generated from GP Power Tools (or its predecessor, the Support Debugging Tool).
This article explains what can cause the error and provides suggestions on how to modify your environment to avoid the issue re-ocurring.
The table error dialog may be proceeded by an unhandled script exception error dialog, which is a symptom of the table error. As Dexterity cannot access the table, it is also unable to access any of the fields in the table and so generates an illegal address error.
Below are examples of the errors you might receive:
An open operation on the table ‘MBS_ScreenShot_Forms’ failed because the path does not exist.
This error is caused by problems accessing the ctree memory table in a folder in the workstation’s temporary folder. Any errors accessing ctree memory tables or local ctree temporary tables normally come down to one of the following:
- %TEMP% environment variable not set.
- %TEMP% environment variable pointing to invalid path.
- %TEMP% path does not have full control access for the user.
- %TEMP% path drive is running out of space.
- %TEMP% path contents are being deleted by some sort of cleanup process.
- Anti-virus software is interfering with the files in the %TEMP% path.
The way these ctree memory tables work in Dexterity is as follows:
- The first time a memory table is accessed, Dexterity will generate a temporary name in the form TNTXXXX, where XXXX is hexadecimal characters.
- It will check if a file with the name TNTXXXX.tmp exists, if it does it goes back to step 1; otherwise it creates the TNTXXXX.tmp placeholder file.
- Now it creates a folder TNTXXXX and uses that folder to create each of the memory tables as named data files (*.dat and *.idx). All memory tables for the current Microsoft Dynamics GP session will be stored in this folder.
- In our case, the MBS_ScreenShot_Forms table is OPENFORM.dat and OPENFORM.idx. For example:
Note: Normal ctree temporary tables use a similar method but instead of using a folder with a fixed name, it will create TNTXXXX.dat and TNTXXXX.idx files directly in the %TEMP% folder.
Also, on a terminal server, there sometimes is an additional folder level in the %TEMP% folder path to separate multiple sessions for one user. You can see this by looking at the %TEMP% environment variable.
Errors will occur if there are problems accessing the folder path or if the *.dat and *.idx files are removed. It is likely that the problems will affect all ctree memory and temporary tables for the current Microsoft Dynamics GP session.
The reason this usually shows up with the MBS_ScreenShot_Forms table is because this table is accessed every time a form is opened or closed in Dynamics GP.
Anti-virus software can cause issues when Dexterity tries to clean up files in the temporary folder. Dexterity requests the file deletes but does not validate that the delete was successful. If the anti-virus software is currently scanning the files, it can prevent them from being deleted. So we can have a situation where the TNTXXXX.tmp placeholder file is deleted, but the TNTXXXX folder (or TNTXXXX.idx and TNTXXXX.dat files) are left behind. The next time Dexterity tries to use the same TNTXXXX name and the TNTXXXX.tmp file is missing, it will think that the name is available even though old folders and/or files might still exist.
Firstly, manually cleanup the temporary folder. Get all users to exit and reboot the machine, then before any applications are run, delete all the deleteable files from the %TEMP% folder. This will remove any junk left over from previous sessions.
Then make sure that there are no automated cleanup processes and that no one does any manual cleanup while users are logged in.
Finally, adjust the anti-virus software settings to exempt *.tmp, *.dat, and *.idx files in the %TEMP% folder from the antivirus.
The following articles also discuss these issues:
I hope this helps explain everything.
13-Dec-2019: Update More Information Links to current blog.
This article was originally posted on http://www.winthropdc.com/blog.