AppDNA

Exemple Forward Path

Cet exemple vous montre comment créer un scénario Forward Path et un script de tâche simples.

Créer le scénario

  1. Dans les menus AppDNA, choisissez Configurer > Forward Path.

  2. Dans la barre d’outils de l’éditeur logique Forward Path, cliquez sur Nouveau scénario.

  3. Dans la boîte de dialogue Nom du script Forward Path, entrez un nom et une description pour le nouveau scénario, puis cliquez sur OK.

    Cela crée un nouveau scénario et l’ouvre dans l’éditeur. Le nouveau script de scénario est le suivant :

    1 Public Function ForwardPath(ByVal currentApplication As Application)
    As Output
    2    ' TODO: Your new Forward Path Logic definition must be defined here.
    3    ' Refer to the sample Forward Path scripts which have been provided.
    4    Dim myForwardpathresult As New Output()
    5
    6    myForwardpathresult.Outcome = "Sample Outcome"
    7    myForwardpathresult.Cost = 100
    8    myForwardpathresult.RAG = RAG.Green
    9
    10   ForwardPath = myForwardpathresult
    11
    12 End Function
    
  4. Il s’agit d’un script de scénario fonctionnel, bien qu’il ne soit pas d’utilité pratique. Pour comprendre comment cela fonctionne, cliquez sur Tester dans la barre d’outils de l’éditeur.

    Cela évalue le scénario par rapport aux applications actuellement sélectionnées dans la liste des applications et ouvre les résultats sous l’onglet Sortie.

    Notez que la valeur de la colonne Résultats est « Exemple de résultat » pour chaque demande, et de même, la valeur dans les colonnes RAG et Coût est « Vert » et 100 pour toutes les demandes sélectionnées. En effet, les valeurs de ces colonnes sont « codées en dur » dans le script dans les lignes 6-8.

    Notez que les colonnes Description et Champ personnalisé sont vides car le scénario ne fournit pas de valeurs pour ces colonnes.

  5. Modifiez la valeur de la colonne RAG pour refléter le RAG réel de l’application pour le rapport Windows 7. Changez la ligne 8 du script de scénario comme suit :

    myForwardpathresult.RAG = currentApplication.Modules.Windows7.RAG
    

    Cela définit la valeur de la colonne RAG sur l’état de Windows 7 RAG de l’application. (Cela suppose que l’application a déjà été analysée pour le rapport Windows 7. Si ce rapport n’est pas disponible, choisissez un autre rapport disponible. Utilisez l’Explorateur de propriétés pour découvrir comment faire référence aux autres rapports.)

  6. Cliquez sur Tester pour afficher les résultats.

    Les valeurs de la colonne RAG reflètent les valeurs RAG réelles.

  7. Ensuite, faites que la valeur dans la colonne Résultat dépend de l’état de Windows 7 RAG. Pour ce faire, remplacez la ligne 6 par une instruction If, comme ceci :

    If (currentApplication.Modules.Windows7.RAG = RAG.Green) Then
      myForwardpathresult.Outcome = "OK for Windows 7"
    Else
      If (currentApplication.Modules.Windows7.RAG = RAG.Amber) Then
        myForwardpathresult.Outcome = "Remediation required"
      Else
        myForwardpathresult.Outcome = "Redevelopment required"
      End If
    End If
    

    Cette instruction teste si l’état de Windows 7 RAG de l’application est vert. Si c’est le cas, le script écrit « OK pour Windows 7 » dans la colonne Résultat et, si ce n’est pas le cas, il teste si l’état de Windows 7 RAG est orange. S’il est orange, le script écrit « Correction requise » dans la colonne Résultat et écrit « Réaménagement requis » dans la colonne Résultat — car si le statut RAG n’est pas vert ou orange, il doit être rouge (en supposant que l’application a été analysée et déverrouillée).

  8. Cliquez sur Tester pour afficher les résultats.

    Notez que maintenant les valeurs de la colonne Résultat reflètent la logique de l’instruction If.

Il s’agit d’un exemple délibérément trivial qui est conçu pour introduire le fonctionnement de Forward Path. Pour afficher des exemples plus réalistes, utilisez l’Explorateur de scénarios pour parcourir les exemples de scénarios fournis avec AppDNA et utilisez l’Explorateur de propriétés pour explorer les propriétés disponibles pour les scripts de scénario.

Remarque : l’objet Output est affiché sous la forme ForwardPathReportOutput dans l’Explorateur de propriétés.

Par exemple, vous pouvez utiliser la propriété Output.Display pour contrôler la largeur et la visibilité des colonnes standard dans les rapports, comme ceci :

myForwardpathresult.Display.Application.Width = 250
myForwardpathresult.Display.Manufacturer.Width = 100
myForwardpathresult.Display.Version.Width = 50
myForwardpathresult.Display.SourcePath.Visible = false
myForwardpathresult.Display.Outcome.Width = 400

De même, vous pouvez utiliser les propriétés Output.CustomFieldn.Display pour contrôler la largeur et la visibilité des colonnes de champs personnalisés :

myForwardpathresult.CustomField1.Display.Width = 50
myForwardpathresult.CustomField2.Display.Width = 100

Ces propriétés contrôlent l’affichage des colonnes lorsque vous exécutez le rapport. Ils ne contrôlent pas les colonnes de l’onglet Sortie dans l’éditeur logique Forward Path.

Créer un script de tâche

Nous allons maintenant créer un script de tâche associé à la valeur « Redevelopment required » dans la colonne Résultat créée par notre exemple de script de scénario.

  1. Ouvrez l’exemple de script que nous avons créé à l’étape précédente dans l’éditeur.

  2. Dans la barre d’outils principale, cliquez sur Nouveau script de tâche.

    La boîte de dialogue Script de tâche Forward Path s’ouvre, qui répertorie les valeurs possibles dans la colonne Résultat pour le scénario ouvert dans l’éditeur.

  3. Dans la liste déroulante, sélectionnez Réaménagement requis, entrez une description et cliquez sur OK.

    Cela crée un nouveau script de tâche et l’ouvre dans l’éditeur. Le nouveau script de tâche est le suivant :

    1  ' This sample script kicks off an Install Capture of the given file
    2  ' as well as interacts with the gui
    3  LoadAssembly System.Windows.Forms.dll
    4
    5  Imports AppDNA.AppTitude.Scripting
    6  Imports System.Collections.Generic
    7
    8  Public Class ScriptClass
    9
    10   Public Function Start(controller As IActionController) As TaskStatusEnum
    11     ' If you need to override or provide replaceable to the
    12     ' execution profiles add then to this dictionary
    13
    14     Dim replaceables As Dictionary(Of String, String)
    15     ' replaceables.Add( "replaceablename", "value")
    16
    17    ' This informs the controller that it can abort if the user cancels
    18     controller.AbortOnCancel()
    19
    20     ' This lets you run the execution profile for a given app using a given VM
    21     ProductionManager.RunExecutionProfile(controller, "Snapshot",
    replaceables, "Default VM Configuration")
    22
    23     ' Add you own actions
    24     controller.GUI.ProgressPercent = 100
    25     Start = TaskStatusEnum.Complete
    26   End Function
    27
    28 End Class
    

    Il s’agit d’un script de tâche squelette qui démarre une Install Capture.

  4. Nous allons modifier les lignes qui se rapportent à Install Capture (lignes 11 à 21) avec le code qui enverra un e-mail. Cependant, nous allons d’abord ajouter les lignes suivantes après la ligne 6 pour importer les espaces de noms dont nous avons besoin pour envoyer un e-mail :

    Imports System.Net.Mail
    Imports System.Net
    
  5. Maintenant, remplacez le code Install Capture (maintenant lignes 13 à 23) par ce qui suit :

    ' This informs the controller that it can abort if the user cancels
    controller.AbortOnCancel()
    
    Dim myClient As New SmtpClient("<validsmtpserver>")
    myClient.Credentials = New NetworkCredential("<emailaccountusername>",
        "<emailaccountpassword>")
    
    Dim MainMessage As String = ""
    
    Dim Message As New MailMessage()
    Dim Address As New MailAddress("<fromaddress>", "AppDNA Notification")
    Dim ToAddress As New MailAddress("<recipientemailaddress>")
    
    MainMessage = MainMessage + "<html>"
    MainMessage = MainMessage + "<head>"
    MainMessage = MainMessage + "<title>AppDNA Notification</title>"
    
    MainMessage = MainMessage + "</head>"
    MainMessage = MainMessage + "<body>"
    
    MainMessage = MainMessage + "Hello,"
    MainMessage = MainMessage + "<br />"
    MainMessage = MainMessage + "<br />"
    MainMessage = MainMessage + "Application needs redevelopment."
    MainMessage = MainMessage + "<br />"
    MainMessage = MainMessage + "Application Name: " + controller.Application.Name
    MainMessage = MainMessage + "<br />"
    MainMessage = MainMessage + "Source Path: " + controller.Application.SourcePath
    MainMessage = MainMessage + "<br />"
    MainMessage = MainMessage + "Goodbye."
    MainMessage = MainMessage + "<br />"
    MainMessage = MainMessage + "</body>"
    MainMessage = MainMessage + "</html>"
    
    Message.Body = MainMessage
    Message.IsBodyHtml = True
    Message.From = Address
    Message.To.Add(ToAddress)
    
    Message.Subject = "AppDNA Notification"
    
    myClient.Send(Message)
    
  6. Remplacez <validsmtpserver>, <emailaccountusername>, <emailaccountpassword>, <fromaddress> et <recipientemailaddress> par des valeurs appropriées pour votre environnement.

  7. Cliquez sur Enregistrer pour conserver vos modifications.

  8. Maintenant, exécutons le script de tâche :

    1. Dans la barre latérale AppDNA, choisissez Rapports : Applications > Forward Path.
    2. Dans la visionneuse de rapports Forward Path, sélectionnez le scénario Forward Path que nous avons créé précédemment.
    3. Cliquez sur Evaluer les tâches.

    L’écran Séquencement des tâches Forward Path s’ouvre, qui répertorie les applications qui ont été traitées par le scénario Forward Path et indique si un script de tâche leur est associé.

  9. Sélectionnez une application associée à un script de tâche et cliquez sur Démarrer dans la barre d’outils.

    Cela exécute le script de tâche pour cette application. La colonne Status indique si le script a été exécuté correctement. Lorsqu’une erreur se produit, elle est affichée dans la partie inférieure de l’écran. Dans cet exemple, le script échoue si vous n’avez pas entré les paramètres de messagerie appropriés pour votre environnement (étape 6 ci-dessus).

  • Pour afficher d’autres exemples, utilisez l’Explorateur de scripts de tâche pour parcourir les exemples de scripts de tâche fournis avec AppDNA.
  • Pour plus d’informations sur l’exécution d’un profil d’exécution à partir d’un script de tâche, reportez-vous à la sectionExécuter un profil d’exécution.

Exemple Forward Path