Beispiel für Forward Path

In diesem Beispiel werden Sie durch das Erstellen eines einfachen Forwardpfad-Szenarios und eines Taskskripts geführt.

Erstellen Sie das Szenario

  1. Wählen Sie in den AppDNA-Menüs “Konfigurieren” > “Weiterleitungspfad”.

  2. Klicken Sie auf der Symbolleiste im Forwardpfadlogik-Editor auf Neues Szenario.

  3. Geben Sie im Dialogfeld Forward Path Script Name einen Namen und eine Beschreibung für das neue Szenario ein, und klicken Sie dann auf OK.

    Dadurch wird ein neues Szenario erstellt und im Editor geöffnet. Das neue Szenario-Skript lautet wie folgt:

    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. Dies ist ein funktionales Szenario-Skript, obwohl es nicht praktisch ist. Um zu verstehen, wie es funktioniert, klicken Sie auf der Editor-Symbolleiste auf Test.

    Dies wertet das Szenario anhand der Anwendungen aus, die derzeit in der Anwendungsliste ausgewählt sind, und öffnet die Ergebnisse auf der Registerkarte Ausgabe.

    Beachten Sie, dass der Wert in der Spalte Ergebnis für jede Anwendung “Beispielergebnis” ist und der Wert in den Spalten RAG und Kosten “Grün” und 100 für alle ausgewählten Anwendungen ist. Dies liegt daran, dass die Werte für diese Spalten im Skript in Zeilen 6-8 “fest codiert” sind.

    Beachten Sie, dass die Spalten Description und CustomField leer sind, da das Szenario keine Werte für diese Spalten enthält.

  5. Ändern Sie den Wert der RAG-Spalte, um die tatsächliche RAG der Anwendung für den Windows 7-Bericht zu widerspiegeln. Ändern Sie Zeile 8 im Szenarioskript wie folgt:

    myForwardpathresult.RAG = currentApplication.Modules.Windows7.RAG
    

    Dadurch wird der Wert in der RAG-Spalte auf den Windows 7-RAG-Status der Anwendung festgelegt. (Dies setzt voraus, dass die Anwendung bereits für den Windows 7-Bericht analysiert wurde. Wenn dieser Bericht nicht verfügbar ist, wählen Sie einen anderen Bericht aus, der verfügbar ist. Verwenden Sie den Eigenschaftenexplorer, um zu ermitteln, wie Sie auf die anderen Berichte verweisen.)

  6. Klicken Sie auf Test, um die Ergebnisse anzuzeigen.

    Die Werte in der Spalte RAG spiegeln die tatsächlichen RAG-Werte wider.

  7. Machen Sie als Nächstes den Wert in der Spalte Ergebnis vom Windows 7-RAG-Status abhängig. Ersetzen Sie dazu Zeile 6 durch eine If-Anweisung wie folgt:

    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
    

    Diese Anweisung testet, ob der Windows 7 RAG-Status der Anwendung grün ist. Wenn dies der Fall ist, schreibt das Skript “OK für Windows 7” in die Spalte Ergebnis, und wenn nicht, wird überprüft, ob der Status von Windows 7 RAG gelb ist. Wenn es bernsteinfarben ist, schreibt das Skript “Korrektur erforderlich” in die Spalte Ergebnis und schreibt ansonsten “Redevelopment required” in die Spalte Ergebnis. Wenn der RAG-Status nicht grün oder gelb ist, muss er rot sein (vorausgesetzt, die Anwendung wurde analysiert und entsperrt).

  8. Klicken Sie auf Test, um die Ergebnisse anzuzeigen.

    Beachten Sie, dass die Werte in der Spalte Ergebnis die Logik in der If-Anweisung widerspiegeln.

Dies ist ein bewusst triviales Beispiel, das entwickelt wurde, um einzuführen, wie Forward Path funktioniert. Um einige realistischere Beispiele anzuzeigen, verwenden Sie den Szenarien-Explorer, um die Beispielszenarien zu durchsuchen, die mit AppDNA geliefert werden, und verwenden Sie den Property-Explorer, um die Eigenschaften zu erkunden, die für die Szenarioskripts verfügbar sind.

Hinweis: Das Output -Objekt wird im Property Explorer als ForwardPathReportOutput angezeigt.

Sie können beispielsweise die Output.Display -Eigenschaft verwenden, um die Breite und Sichtbarkeit der Standardspalten in Berichten wie folgt zu steuern:

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

Ebenso können Sie die Eigenschaften output.customFieldn.display verwenden, um die Breite und Sichtbarkeit der benutzerdefinierten Feldspalten zu steuern:

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

Diese Eigenschaften steuern die Anzeige der Spalten beim Ausführen des Berichts. Sie steuern nicht die Spalten auf der Registerkarte Ausgabe im Forward Path Logic Editor.

Erstellen eines Taskskripts

Wir erstellen nun ein Task-Skript, das dem Wert “Redevelopment required” in der Spalte Ergebnis zugeordnet ist, die durch unser Beispiel-Szenario Skript erstellt wurde.

  1. Öffnen Sie das Beispielskript, das wir im vorherigen Schritt im Editor erstellt haben.

  2. Klicken Sie auf der Hauptsymbolleiste auf Neues Taskskript.

    Daraufhin wird das Dialogfeld Taskskript weiterleiten geöffnet, in dem die möglichen Werte in der Spalte Ergebnis für das Szenario aufgeführt werden, das im Editor geöffnet ist.

  3. Wählen Sie in der Dropdown-Liste die Option Redevelopment required aus, geben Sie eine Beschreibung ein, und klicken Sie auf OK.

    Dadurch wird ein neues Task-Skript erstellt und im Editor geöffnet. Das neue Aufgabenskript lautet wie folgt:

    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
    

    Dies ist ein Skelett-Aufgabenskript, das eine Installations-Capture startet.

  4. Wir ändern die Zeilen, die sich auf Install Capture beziehen (Zeilen 11 — 21) mit Code, der eine E-Mail sendet. Zuerst werden wir jedoch die folgenden Zeilen nach Zeile 6 hinzufügen, um die Namespaces zu importieren, die wir benötigen, um eine E-Mail zu senden:

    Imports System.Net.Mail
    Imports System.Net
    
  5. Ersetzen Sie nun den Install Capture-Code (jetzt Zeilen 13 — 23) durch Folgendes:

    ' 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. Ersetzen Sie <validsmtpserver>, <emailaccountusername>, <emailaccountpassword>, <fromaddress> und <recipientemailaddress> durch entsprechende Werte für Ihre Umgebung.

  7. Klicken Sie auf Speichern, um die Änderungen beizubehalten.

  8. Lassen Sie uns nun das Task-Skript ausführen:

    1. Wählen Sie in der Seitenleiste AppDNA Berichte: Anwendungen > Pfad weiterleiten.
    2. Wählen Sie im Berichtsbetrachter “Forward Path” das zuvor erstellte Szenario “Forward Path” aus.
    3. Klicken Sie auf Aufgaben auswerten.

    Dadurch wird das Fenster Tasksequenzierung weiterleiten geöffnet, in dem die Anwendungen aufgeführt sind, die vom Szenario Weiterleitungspfad verarbeitet wurden, und es wird angezeigt, ob ihnen ein Taskskript zugeordnet ist.

  9. Wählen Sie eine Anwendung aus, der ein Taskskript zugeordnet ist, und klicken Sie auf der Symbolleiste auf Start.

    Dadurch wird das Taskskript für diese Anwendung ausgeführt. In der Spalte Status wird angezeigt, ob das Skript erfolgreich ausgeführt wurde. Wenn ein Fehler auftritt, wird er im unteren Teil des Bildschirms angezeigt. In diesem Beispiel schlägt das Skript fehl, wenn Sie keine entsprechenden E-Mail-Parameter für Ihre Umgebung eingegeben haben (Schritt 6 oben).

  • Um weitere Beispiele zu sehen, verwenden Sie den Taskskript-Explorer, um die Beispiel-Taskskripts zu durchsuchen, die mit AppDNA geliefert werden.
  • Hinweise zum Ausführen eines Ausführungsprofils aus einem Taskskript finden Sie unter Ausführen eines Ausführungsprofils.

Beispiel für Forward Path