Jay Paloma's Tech and Music Blog

Sometimes, this writer can no longer distinguish between the two.

The Non-Developer’s Survival Guide to Citrix AppDNA Forward Path

with 4 comments

I will lay down the cards to you straight: I am not a developer. However since the AppDNA Forward Path feature requires some scripting and coding knowledge, someone who will be handling the organization’s AppDNA tool should learn some scripting for that person to appreciate the power and flexibility of Citrix AppDNA.

Don’t get me wrong: developer knowledge is not a prerequisite for Citrix AppDNA, since one could already import apps and generate reports without scripting. However, if you intend to make use of the Forward Path feature, one cannot avoid having some practical knowledge and experience of scripting. If you are an IT Professional with very limited coding or scripting knowledge, read on!

AppDNA Forward Path

Forward Path is a business decision tool built into AppDNA where it is possible to create a model of different deployment scenarios and compare their results. Different scenarios can be created that reflect the organization’s deployment strategies, and even execute certain tasks based on the results.

The definition alone is a dead-giveaway: this feature is something that one customizes to make the best use of it — and customizing this means creating scripts. Although there are default scripts included in AppDNA, it would be safe to assume that sooner or later one would require customizations over and above what has been included out of the box.

Surviving Your First Forward Path Script

If you’re a non-developer, the best way to scare you off from going any further is to take a look at the default scenarios.

01 - Default Scenario

Though it may be enough to scare off folks who avoid scripting like the plague, it is these very scripts that a non-dev may actually take a look at to get an idea what Forward Path is all about. These and the fact that creating a new scenario gives you a basic — though useless — code to work off from. We will create our own custom Forward Path scenario to find out.

Let’s now customize AppDNA Forward Path. Forward Path can be accessed from the Configure menu item, then click Forward Path. Click the New Scenario, and you will be prompted for details. Since this will be your first one, and maybe even your first experience at scripting, feel free to have your own version of Hello World!

02 - New Scenario

After we hit OK, we will now be presented not with a blank screen, but a basic Forward Path script. Now for all intents and purposes this script does not do anything practical. However, this will be a good starting point for us to understand the basics of Forward Path scripting. This saves the non-developer the trouble of writing all that header information.

03 - New Scenario Default Script

Click Test to determine what this script does.

04 - New Scenario Results

If you look closer, the code simply populated the columns Outcome, Rag and Cost with identical values. As you can see in Line 8 of the code the Rag column has been hardcoded to Green.

Now let’s replace Line 8 with the RAG result of the 64-bit Module instead of a hardcoded “Green.” To do this we will need the currentApplication object. Here is where the Property Explorer would come in handy for us to familiarize with the object model of Forward Path. From this point forward, it is assumed that the 64-bit Module is Enabled and applications had been analyzed for 64-bit.

Replace line 8 with the following line:

myForwardpathresult.RAG = currentApplication.Modules.x64.RAG

Click Test to see the results. As we can see, the Rag column now contains the RAG results of the 64-bit Module.

05 - x64 RAG

Let’s now add some logic into our code. Click the Editor tab and add the following lines from Line 10

If (currentApplication.Modules.x64.RAG = RAG.Green) Then

  myForwardpathresult.Outcome = “OK for 64-bit”


  If (currentApplication.Modules.x64.RAG = RAG.Amber) Then
    myForwardpathresult.Outcome = “Have 64-bit issues”


    myForwardpathresult.Outcome = “Not good for 64-bit”

  End If

End If

This piece of code indicates the Outcome column as “OK for 64-bit” if the RAG result is Green, “Have 64-bit issues” when the RAG result is Amber, and “Not good for 64-bit” if the RAG result is Red.

And click Test to see the result.

06 - x64 Conditions

Try examining the Property Explorer and you will find out some of the other things you can do. You can customize your own sets of conditions based on RAG results of different tests, or even customize actions that are based on results of these tests.

07 - Property Explorer

For more information on Citrix AppDNA, go to http://www.citrix.com/AppDNA. If you haven’t done so, make sure to register and download the free evaluation copy of AppDNA from http://www.citrix.com/AppDNA/try. Also download the AppDNA Forward Path Planning Guide in PDF form here http://support.citrix.com/article/CTX133842.


Written by jpaloma

June 11, 2013 at 5:47 PM

Posted in AppDNA, Citrix

4 Responses

Subscribe to comments with RSS.

  1. This is a fantastic piece explaining Forward Path, perhaps the best I’ve seen out there. Well done Jay!

    Stuart Mathews

    August 20, 2013 at 5:34 AM

  2. Well one Jay, great explanation. I work on the AppDNA team in Citrix, have you had the opportunity to look at what Forward Path actions do?

    Clayton Doige

    September 13, 2013 at 10:12 PM

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: