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
-
En los menús de AppDNA, elija Configurar > Forward Path.
-
En la barra de herramientas del Editor de lógica de Forward Path, haga clic en Nuevo caso.
-
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
-
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.
-
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.)
-
Haga clic en Probar para ver los resultados.
Los valores de la columna RAG reflejan los valores RAG reales.
-
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).
-
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.
-
Abra el script de ejemplo que creamos en el paso anterior en el Editor.
-
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.
-
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.
-
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
-
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)
-
Reemplace <validsmtpserver> <emailaccountusername>, <emailaccountpassword>, <fromaddress> y <recipientemailaddress> por los valores adecuados para su entorno.
-
Haga clic en Guardar para conservar los cambios.
-
Ahora vamos a ejecutar el script de tarea:
- En la barra lateral de AppDNA, seleccione Informes: Aplicaciones > Forward Path.
- En el visor de informes Forward Path, seleccione el caso Forward Path que hemos creado anteriormente.
- 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.
-
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.