转发路径规格

脚本语言

默认情况下,所有方案和任务脚本都编译为可视化基本 .NET 2.0(VB .NET)。有关全面的可视化基本 .NET 文档,请参阅http://msdn.microsoft.com/en-gb/library/2x7h1hfk.aspx

您可以选择将任务脚本(但不是场景)编译为 C#2.0。若要执行此操作,请使用以下字符串启动任务脚本:

Language CSharp

但是,AppDNA 脚本编辑器只支持可视化基本 .NET 的语法突出显示。

程序集引用

方案和任务脚本在内存中编译为 .NET 程序集。因此,他们可以使用整个 .NET 框架和全局程序集缓存 (GAC) 中的任何其他程序集。例如,您可以使用 System.Collections.通用命名空间中可用的任何类。(有关MSDN 库此命名空间的文档,请参阅。)

任务脚本具有对 AppDNA.AppTitude.Scripting 程序集的自动引用。

您可以使用 LoadAssembly 扩展语法指定程序集。例如:

LoadAssembly System.Windows.Forms.dll

如果程序集不在 GAC 中,则必须指定完整路径。这不会影响使用带有命名空间的导入。

VB .NET <multiline_string> 扩展

当语言为 VB .NET 时,您可以对字符串使用以下语法:

<multiline_string>xxxx</multiline_string>

其中 xxxx 是一个字符串。在编译之前,解析器将其转换为 VB .NET 字符串文字。这使得指定跨越脚本中多行的字符串比使用标准 VB .NET 语法更容易。

例如:

Dim s As String  = <multiline_string>;
   '---Some vbscript
   Option Explicit
   Wscript.Echo "string"
   </multiline_string>

变成:

Dim s As String  = "" & Microsoft.VisualBasic.Constants.vbCRLF & __
"   '---Some vbscript" & Microsoft.VisualBasic.Constants.vbCRLF & _
"   Option Explicit" & Microsoft.VisualBasic.Constants.vbCRLF & _
"   Wscript.Echo ""string""" & Microsoft.VisualBasic.Constants.vbCRLF & _
"   "

所需的方案脚本格式

基本的“转发路径”方案脚本由一个函数组成,该函数定义“转发路径”报告中的输出列。以下示例是在主工具栏上单击“新建方案”时创建的基本方案。

Public Function ForwardPath(ByVal currentApplication As Application) As Output

' TODO: Your new Forward Path Logic definition must be defined here.
' For Help, please refer to the sample Forward Path scripts which
' have been provided.

    Dim myForwardpathresult As New Output()

    myForwardpathresult.Outcome = "Sample Outcome"
    myForwardpathresult.Cost = 100
    myForwardpathresult.RAG = RAG.Green

    ForwardPath = myForwardpathresult

End Function

函数的签名非常重要,函数必须返回至少定义一个输出列的 Output 对象。如果要将任务脚本与方案关联,则必须定义“结果”输出列。

请注意,应用程序对象被传递到函数中。该函数将针对当前选中的每个应用程序运行,并且传递到该函数的应用程序对象表示当前正在处理的应用程序。

使用“正向路径逻辑编辑器”屏幕右侧的“属性资源管理器”来探索“应用程序”和“输出”对象的结构。(输出对象在属性资源管理器中显示为 ForwardPathReportOutput。)

方案脚本可以包括其他功能,这些功能允许您按组聚合应用程序数据并生成报告级别的总计。有关详细信息,请参阅向前分组路径报告

必需的任务脚本格式

任务脚本必须具有以下格式:

Imports AppDNA.AppTitude.Scripting

Public Class ScriptClass

    Public Function Start(controller As IActionController) As TaskStatusEnum
        ' Do stuff
        Start = TaskStatusEnum.Complete
    End Function

End Class

类的名称和可访问性以及函数的签名非常重要。除此之外,任何 VB .NET 构造都是有效的。

单击工具栏上的任务脚本帮助以查看任务脚本可用的 AppDNA API 的文档。