NTTDoc: Table and Entity documentation for Dynamics 365 F&O
Intro
NTTDoc is an application built to document tables and data entities of a running instance of Dynamics 365 F&O.
Since the release of Dynamics AX 7 (now Dynamics 365 For Finance and Operations), the structure of the Dynamics AX product has totally changed: in place of the traditional 3tier application model, with Client, Application Server and Database backend, lasted till AX 2012 R3 version, a new and more flexible and productive IIS application has been introduced; the modules are now organized as standard .NET assemblies and X++, apart some limitations, can be used as a common .NET language, compiling into managed executables. This has a huge impact on the stability and the scalability of Dynamics 365 F&O which can now scale up to support thousands of concurrent users. Moreover, the users run the application from a standard Internet browser.
On the other hand, for a functional consultant who is analyzing requirements and is trying to fit the gaps, not having access to the metadata and the data structures without involving a programmer can be quite frustrating. Tables are in fact totally hidden from the environment, and even the access to data entities is not that intuitive.
The purpose of NTTDoc is to help functional consultants to achieve visibility on that specific part of the instance: the data structures.
How it works
NTTDoc allows the user to select the table to analyze in addition to two simple options: ‘Show system fields’ and ‘Recursive’; while the first option is self-explanatory, the second one activates the iteration to the N-level relationships tree.
After selecting the table and options, clicking on OK button will start the procedure. The process is run under the supervision of SysOperationSandbox class, taking advantage of the new threading framework, and allowing the user to stop the procedure at any time.
The results will be placed in an Excel workbook:
Structure of the resulting Excel workbook.
1) An Overview worksheet with the main table information and all related tables
2) A detail of the main table
This is the list of all fields along with basic and advanced information (see the ‘Primary table’ column, showing where the field is physically located: in the main table, in a parent table or in an extension. The Module and Model are also specified). The ‘Relation’ column is hyperlinked to the specific worksheet with the details.
3) A worksheet for every related table
In every worksheet there are two links to easily reach the main table structure and the overview page:
Performances
For the ‘CaseDetail’ table, with full options activated (both ‘Show system fields’ and ‘Recursive’ set to ‘On’), the final report is about 935 documented tables and thousands of table fields; it took less than two minutes on a standard development VM on a simple PC. On a test Azure environment can be considerably faster, depending on the available resources.
This version is currently running on version 8.0 of Dyn365F&O
Considering that all the objects are compiled new classes, I think is easily portable to the latest versions (10.0 or 10.0.5).
Conclusion
In conclusion, if you are interested in beta testing, contributing or using the application, feel free to contact me on LinkedIn. For those who wants to have a full report file, I added the sample used for this article on the ‘Document’ section.
Cheers!