UPDATE: This tool has been updated to support list pages (e.g. Sales Table List Page, Customers List Page) that use queries as their datasource (22/June/2010)
UPDATE: This tool has been updated to use the language from Infolog, and the sort order on the report has been changed to descent on the ProfileId (29/Oct/2010)
--------------------------------------------------

The attached tool, an xpo file inside the zip file, tracks what security keys are being used when a user navigates thru the application. 
The existing AX class we hook into gets used every time a form or report is opened in AX so the tool will slow performance down – so don’t load this in a production environment

Also this doesn’t work for menu items that call classes but we don’t expect that to be a big deal. 
The tool is useful for sorting out security in a test environment.

In order to use this tool go in as an Administrator that has access to all of the forms and reports in the system:

1. Extract the xpo file from the attached zip file and Import it into AX

2. Close the AX client and re-launch it again. This step is important because we have added 2 menu items to the Administration menu and they won’t show up until AX is reloaded.

3. Under Administration go to Security Profiler.

4. Click the Start Profiling button – and leave this form open.

5. Navigate to the forms and reports you want to gather security key information about.

6. Click the Stop Profiling button in the Security Profiler window (the same window opened in step #4).
       a. A form will open showing you all of the security keys that were hit while you navigated thru the system.
       b. To print out the results listed in the report click the Print report button and click the Default button on the print options dialog that opens.
       c. To view your existing security profiles click Administration > Security Profile Results

This tool should not be loaded into a production environment.

Disclaimer: This programming example is for illustration purposes only. Microsoft disclaims all warranties and conditions with regard to use of the programming example for other purposes. Microsoft shall not, at any time, be liable for any special, direct, indirect or consequential damages, whether in an action of contract, negligence or other action arising out of or in connection with the use or performance of the programming example. Nothing herein should be construed as constituting any kind of warranty.

--------------------------------------------------

--author: Becky Newell
--editor: Daniel Durrer
--last edited: Daniel Durrer (29/Oct/10)