AppDNA

Ejemplo de Forward Path

En este ejemplo se explica cómo crear un caso de Forward Path simple y un script de tarea.

Crear el caso

  1. En los menús de AppDNA, elija Configurar > Forward Path.

  2. En la barra de herramientas del Editor de lógica de Forward Path, haga clic en Nuevo caso.

  3. En el cuadro de diálogo Nombre de script de Forward Path, escriba un nombre y una descripción para el nuevo caso y, a continuación, haga clic en Aceptar.

    Esto crea un nuevo caso y lo abre en el Editor. La nueva script de caso es la siguiente:

    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. Este es un script de caso funcional, aunque no es de ningún uso práctico. Para entender cómo funciona, haga clic en Probar en la barra de herramientas Editor.

    Esto evalúa el caso en comparación con las aplicaciones que están actualmente seleccionadas en la Lista de aplicaciones y abre los resultados en la ficha Salida.

    Observe que el valor de la columna Resultado es “Resultado de muestra” para cada aplicación y, de manera similar, el valor de las columnas RAG y Coste es “Verde” y 100 para todas las aplicaciones seleccionadas. Esto se debe a que los valores de estas columnas están “codificados” en el script en las líneas 6-8.

    Observe que las columnas Descripción y Campo personalizado están vacías porque el caso no proporciona valores para estas columnas.

  5. Cambie el valor de la columna RAG para reflejar el RAG real de la aplicación para el informe de Windows 7. Cambie la línea 8 en el script de caso de la siguiente manera:

    myForwardpathresult.RAG = currentApplication.Modules.Windows7.RAG
    

    Esto establece el valor de la columna RAG en el estado RAG de Windows 7 de la aplicación. (Esto supone que la aplicación ya se ha analizado para el informe de Windows 7. Si este informe no está disponible, elija otro informe que esté disponible. Utilice el Explorador de propiedades para detectar cómo hacer referencia a los otros informes.)

  6. Haga clic en Probar para ver los resultados.

    Los valores de la columna RAG reflejan los valores RAG reales.

  7. A continuación, haga que el valor de la columna Resultado dependa del estado RAG de Windows 7. Para hacer esto, reemplace la línea 6 con una instrucción If, como esta:

    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
    

    Esta instrucción comprueba si el estado RAG de Windows 7 de la aplicación es verde. Si es así, la script escribe “Aceptar para Windows 7” en la columna Resultado y, de no ser así, comprueba si el estado RAG de Windows 7 es ámbar. Si es ámbar, el script escribe “Remediation required” en la columna Outcome y escribe “Redevelopment required” en la columna Outcome, porque si el estado de RAG no es verde o ámbar, debe ser rojo (suponiendo que la aplicación se haya analizado y desbloqueado).

  8. Haga clic en Probar para ver los resultados.

    Observe que ahora los valores de la columna Resultado reflejan la lógica de la instrucción If.

Este es un ejemplo deliberadamente trivial que está diseñado para introducir cómo funciona Forward Path. Para ver algunos ejemplos más realistas, utilice el Explorador de casos para examinar los casos de ejemplo que vienen con AppDNA y utilice el Explorador de propiedades para explorar las propiedades que están disponibles para los scripts de caso.

Nota: El objeto Output se muestra como ForwardPathReportOutput en el Explorador de propiedades.

Por ejemplo, puede utilizar la propiedad Output.Display para controlar el ancho y la visibilidad de las columnas estándar en los informes, como este:

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

Del mismo modo, puede utilizar las propiedades Output.CustomFieldn.Display para controlar el ancho y la visibilidad de las columnas de campo personalizadas:

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

Estas propiedades controlan la visualización de las columnas al ejecutar el informe. No controlan las columnas de la ficha Salida del Editor lógico de Forward Path.

Crear un script de tarea

Ahora vamos a crear un script de tarea asociado con el valor “Redevelopment required” en la columna Resultado creada por nuestro script de caso de ejemplo.

  1. Abra el script de ejemplo que creamos en el paso anterior en el Editor.

  2. En la barra de herramientas principal, haga clic en Nueva script de tarea.

    Esto abre el cuadro de diálogo Script de tarea de Forward Path, que enumera los valores posibles en la columna Resultado para el caso que está abierto en el Editor.

  3. En la lista desplegable, seleccione Redevelopment required, escriba una descripción y haga clic en Aceptar.

    Esto crea una nueva script de tarea y la abre en el Editor. La nueva script de tareas es la siguiente:

    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
    

    Se trata de una script de tareas esqueleto que inicia una Install Capture.

  4. Cambiaremos las líneas relacionadas con Install Capture (líneas 11-21) con código que enviará un correo electrónico. Sin embargo, primero agregaremos las siguientes líneas después de la línea 6 para importar los espacios de nombres que necesitamos para enviar un correo electrónico:

    Imports System.Net.Mail
    Imports System.Net
    
  5. Ahora reemplace el código Install Capture (ahora líneas 13 a 23) por lo siguiente:

    ' 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. Reemplace <validsmtpserver> <emailaccountusername>, <emailaccountpassword>, <fromaddress> y <recipientemailaddress> por los valores adecuados para su entorno.

  7. Haga clic en Guardar para conservar los cambios.

  8. Ahora vamos a ejecutar el script de tarea:

    1. En la barra lateral de AppDNA, seleccione Informes: Aplicaciones > Forward Path.
    2. En el visor de informes Forward Path, seleccione el caso Forward Path que hemos creado anteriormente.
    3. Haga clic en Evaluar tareas.

    Esto abre la pantalla Secuenciación de tareas de Forward Path, que muestra las aplicaciones que han sido procesadas por el caso Forward Path y muestra si tienen un script de tarea asociado a ellas.

  9. Seleccione una aplicación que tenga asociado un script de tarea y haga clic en Inicio en la barra de herramientas.

    Esto ejecuta el script de tarea para esa aplicación. La columna Estado muestra si la script se ejecutó correctamente. Cuando se produce un error, se muestra en la parte inferior de la pantalla. En este ejemplo, la script falla si no ha especificado los parámetros de correo adecuados para su entorno (paso 6 anterior).

  • Para ver algunos ejemplos más, utilice el Explorador de scripts de tareas para examinar los scripts de tareas de ejemplo que vienen con AppDNA.
  • Para obtener información sobre la ejecución de un perfil de ejecución desde un script de tarea, consulteEjecutar un perfil de ejecución.

Ejemplo de Forward Path