How to resolve Dictionary not Loaded errors

David Meego

From the Microsoft Dynamics GP Application Level Security Series.

When attempting to open a window you might receive the following error message: 

Cannot access this form because the dictionary containing it is not loaded.

There are two main reasons for this error:

  1. Situation: You are running in Dexterity debug Test Mode (which is a single dictionary environment) and do not have any other dictionaries loaded.  This is very common when attempting to use lookups, as most lookup forms are alternate windows in the SmartList dictionary. 

    Solution: The solution to this issue for v9.0 and earlier is covered the following Knowledge Base (KB) article (even if it does not mention SQL Server):

    How To Create a Company and Copy in my Existing Data for Great Plains on Pervasive.SQL 2000 or C-tree (KB 850489) Secure Link
      
    For v10.0 the following KB article is relevant:
     
    Error message when you try to open a lookup window in Dexterity debug Test Mode in Microsoft Dynamics GP 10.0: "Form Load Failed" (KB 942326) Secure Link
     

  2. Situation: You have previously installed a product and since removed it.  The system still has security records pointing to an alternate version of the window in a dictionary that is no longer in the Dynamics.set launch file.

    Solution: The solution to this issue for v8.0 and v9.0 is to use Advanced Security's Verify feature to clean up references to non-existent dictionaries. For more information see Question 32 on the following KB:

    Frequently asked questions about Advanced Security and about Field Level Security in Microsoft Dynamics GP and in Microsoft Great Plains (KB 894705) Secure Link

    The solution for v10.0 is to run Check Links on the security tables. This will remove the references to the dictionaries. From the menus, click Microsoft Dynamics GP, click Maintenance, click Check Links. Change the Series to System. Insert Security Setup and Security User Assignment tables and click OK
     
    Note: Ensure that the solutions above are executed on a workstation which has all the required dictionaries loaded, otherwise it will change security records that are wanted.

Once the security records no longer point to the missing dictionary, the error message will stop appearing. 

David