I recently responded on a forum post which asked why the paths for the custom forms and reports dictionaries in the Dynamics.set launch file where pointing to the Data folder. The post also asked why the application did not complain about the fact that the dictionaries listed in the Dynamics.set did not actually exist in the Data folder.
So, I thought it would be a good excuse to answer the questions raised as a blog post.
I will answer the second part first as it is a simple answer. The custom forms and reports dictionaries listed in the Dynamics.set for each product will only be created the first time the Modifier or Report Writer is used for the specific application dictionary. The paths in the Dynamics.set define where the custom dictionaries will be created and what their names will be. This means that on a new install, we would not expect to see any .dic files in the Data folder.
So then the next question is why do we have a Data folder? It did not exist in versions prior to v10.0, so why was it added for Microsoft Dynamics GP 10.0 and later?
The answer to this is also fairly simple: Windows Vista and User Account Control.
User Account Control (UAC) now enforces the security guidelines which have existed for quite a while. Namely that once installed to C:\Program Files, an application should not write or update changes to its subfolder in C:\Program Files folder.
This is enforced by making the C:\Program Files folder and subfolders read only for non-administrator users. The screen shot below shows the permissions and you can see that Full Control, Modify and Write permissions are not enabled.
Microsoft Dynamics GP needed somewhere to store files for which write access was required, so during the install the Data folder is created which has the Full Control, Modify and Write permissions enabled for normal users.
This is why files such as the Dex.ini and custom forms and reports dictionaries are now stored in the Data folder.
Currently UAC is implemented on Windows Vista, Windows 7, Windows Server 2008 and Windows Server 2008 R2.