It has been brought to my notice that we have another issue with a dictionary adding records to the syMenuMstr (SY07110) table each time a user logs into Microsoft Dynamics GP. This issue is caused by the new Dynamics Online Services dictionary which was installed as part of Microsoft Dynamics GP 10.0 Service Pack 5 and Microsoft Dynamics GP 2010 Service Pack 1. This is similar to the Microsoft Dynamics GP 10.0 Service Pack 5 Login Performance issue found previously.
I started researching this issue after reading Vaidy Mohan's blog post, Online Services for Dynamics GP - Triggers GP "Add Command" Hanging Indefinitely. The fact that he mentions that thousands of records in the SY07110 table were related to a single dictionary, made me test to see if the number of records was increasing each login.
Using the query below, I checked the number of records. I then logged in to Microsoft Dynamics GP, and checked the number of records again. It had increased by one. This means that the code is incorrectly adding a single menu record, even if it already exists in the table. The query is:
select COUNT(*) from DYNAMICS.dbo.SY07110 where CmdDictID = 6499
Over time, the number of records in SY07110 table will become very large. The syMenuMstr table is used during login by the process which hides the menu entries that a user does not have security access to. The table is also used to create the menu tree when adding menu commands to toolbars or shortcuts. Performance during login and when selecting menu commands can be affected by this issue.
The issue has been logged with Development as Collaboration Request 8297 and Problem Report 60427. If this issue is effecting you, please log a support case to get your details registered against the problem report.
To resolve the issue for now it is recommended to create a daily SQL Server Job with the following code to remove the menu entry records. The valid menu entry will be recreated on the next login.
delete from DYNAMICS.dbo.SY07110 where CmdDictID = 6499
We are working to get this fixed as soon as possible in an upcoming compliance release or service pack.
10-Mar-2010: Changed SQL Queries to use CmdDictID rather than CmdParentDictID. This then looks at the menu entry's dictionary rather than where it is attaching to in the structure.