Custom reports are reports that you define yourself. You can base custom reports on existing algorithms and algorithm groups or new ones that you write yourself. For example, suppose you are preparing to migrate to Windows 7 and a 64-bit platform and want one combined report rather than separate reports for each platform. You can create a custom report that is based on the algorithms in both the Windows 7 and the 64-bit reports. You can also create new algorithms based on your own specialized knowledge of your environment. This topic supplements the Custom reports topic with key considerations when creating custom reports.


AppDNA does not restrict the number of custom reports that you can create or the number of algorithm groups you can add to a custom report. However, each additional custom report adds to the size of the database and adds another column to the Overview Summary report. This can eventually lead to the Overview Summary report becoming unreadable or all of the available disk space being used up. Similarly each algorithm group adds a column to the Application Issues report view and a bar to the bar chart in the Issues View. These can become unreadable if you add too many algorithm groups. The Application Actions report view and the Actions View can be affected in a similar way if you add too many algorithms.

Desktop applications vs. web applications

The Custom Reports Manager screen is flexible and it does not restrict you from adding a mixture of web and desktop algorithms in a custom report. Similarly, AppDNA does not restrict which applications you can analyze against a custom report. This means that it is possible to create a custom report that mixes algorithms from the IE and Windows 7 reports, for example. You could then analyze both desktop and web applications against this custom report. Depending on the algorithms involved, this may not make much sense.

Important: Citrix therefore recommends that you do not mix web application algorithms and desktop application algorithms in a custom report and that you name your custom reports carefully to make it clear whether they are designed for desktop or web applications.

OS image-dependent algorithms

Some of the AppDNA algorithms test applications for dependencies on features that are provided by the operating system (OS). When relevant, these tests interrogate the OS image DNA that has been loaded into the AppDNA database – for example, to find out whether features have been enabled in the image. These are called image-dependent algorithms.

If you add any image-dependent algorithms to a custom report, AppDNA adds an entry for the custom report to the OS image settings. Use this to select the default OS image for the custom report.

Note: You cannot add image-dependent algorithms from more than one AppDNA report to the same custom report. If you attempt to do this, AppDNA displays a message explaining that this is not possible.

For an overview of how AppDNA uses OS images, see Operating systems.

Templates for new algorithms

AppDNA comes with a number of templates for creating new algorithms in custom reports. When you create a new algorithm that you define yourself, you select the template you want to use from a drop-down list on the final page of the New Algorithm wizard (as described in Create custom reports).

Each template defines an issue that, when found in an application, triggers the algorithm. The template defines a generic issue and you enter a specific value. For example, if the generic issue is that the application contains a particular file or installs to a specific path, you enter the particular file or path that causes the problem.

The templates provide an example value that you then edit to meet your specific requirements. You can use the percent sign (%) as a wildcard character to match zero or more characters. The following table lists the templates that are available and the example value.

Application triggers algorithm if Example value
It has a specific file filetofind.ini
It installs to a specific path D:\SomePath%
It sets a specific registry entry HKEY_LOCAL_MACHINE\Software\MyApplication
It has an INI file that contains specific contents FileContentMatchString
Its installer contains a custom action with specific contents CustomActionMatchString
It imports APIs from a particular file msvbvm%.dll

When using the registry entry template, you can search for a key and value name. To do this, prefix the value name with two backslashes (\\). For example, to find all services with a port value, use: HKEY_LOCAL_MACHINE\%services%\\port.

Advanced users can create raw SQL queries to define the logic for new custom report algorithms. However, Citrix cannot guarantee that these will work in future versions of AppDNA because the structure of the database may change from version to version.