声明语句

声明语句允许您在脚本中引入新的变量、对象或函数。这些语句的关键词是:

  • ASSIGN:当需要创建变量或字符串数组时,使用该语句。
  • DYNAMIC:需要创建动态数据对象时使用此语句。
  • FUNCTION:需要创建动态数据对象时,使用此语句。

对每类语句的讨论都包括语法摘要。这些摘要使用某些约定来表示语句的各个部分,以及每个部分是必需的还是可选的。

ASSIGN 语句

说明:ASSIGN 语句以您指定的名称和值创建一个变量。

语法:ASSIGN <variable> = "<value>" | <value>

Studio 操作: Assign

详细信息:ASSIGN 语句创建 <variable> 并为其分配 <value>。创建变量时无需声明数据类型,除非是日期/时间类型Studio 中的变量为隐式类型,这意味着创建和赋值可以一步完成。例如:

ASSIGN oneName = "Odin"

如果为变量赋值的是数值,则无需用双引号括起来。如果值为是字符串,则必须用双引号括起来。

您可以使用 ASSIGN 语句创建字符串数组:

ASSIGN manyNames = "Odin|Freya|Thor"

可以将一个变量赋值给另一个变量:


ASSIGN x =  1
ASSIGN y = x 
ASSIGN var1 = z

如果变量已经声明,则等号右侧的变量无需用大括号和双引号括起来。该脚本会求值等号右侧的项。如果它不在大括号和双引号中,也不是数字,脚本就认为它是一个变量。如果它已经存在,脚本会将其赋值给第二个变量。如果未声明,脚本会创建一个空值。

可以使用 ASSIGN 为动态对象成员赋值。在用 DYNAMIC 声明对象后,可以使用 ASSIGN 为对象的成员赋值。如果该成员尚不存在,则会在赋值时创建。使用以下语法:ASSIGN <name>.<key> = <value>

在声明变量或时,无需使用关键字 ASSIGN。不过,使用该关键字还是很有帮助的。将 ASSIGN 包含在内,可以使用高级搜索轻松查找在脚本中引入变量或数组的位置。如果没有 ASSIGN,则必须搜索变量或数组的名称。搜索结果将包含对脚本中的变量或数组的所有引用。如果在搜索词中包含 ASSIGN,搜索将只返回明确分配变量的结果。要声明一个不含 ASSIGN 的变量,请使用以下语法:<name> = "<value>"

命名指南:在命名变量时,请遵循以下指南:

  • 使用字母数字字符 (a-z, A-Z, 0-9)。

  • 名称的第一个字符必须是字母。
  • 在名称的任何地方使用下划线字符 ( _ ) 和美元符号 ( $ )。
  • 如果变量名中的最后一个字符为美元符号,则会将该值视为文本
  • 请勿使用预定义变量的名称保留字

了解更多信息:有关变量的更多信息,请参见变量帮助页面。

DYNAMIC 语句

说明:DYNAMIC 语句以指定名称创建动态数据对象变量。

语法:DYNAMIC <name>

详细信息:动态数据对象是一个可以保存多个值的变量。它们与数组类似,但有一些主要区别。

动态数据对象保存的值称为参数。它们被定义为键值对,其中每个参数都有一个键(名称)和一个值。使用 DYNAMIC 关键字声明对象后,即可定义对象成员。

例如:

DYNAMIC beowulfCharacteristics
beowulfCharacteristics.name = "Beowulf"
beowulfCharacteristics.occupation= "Hero" 
beowulfCharacteristics.foe = "Grendel" 

在引用动态数据对象及其参数时,大小写很重要。BeowulfCharacteristicsbeowulfCharacteristics 不同。

如果为对象赋值的是数值,则无需用双引号括起来。如果值为是字符串,则必须用双引号括起来。

使用 DYNAMIC 声明从其他脚本或集成传递到脚本中的任何对象。必须在每个脚本中声明对象,否则在保存时会导致脚本验证错误

命名指南:在命名动态数据对象时,请遵循以下指南:

  • 使用字母数字字符 (a-z, A-Z, 0-9)。

  • 名称的第一个字符必须是字母。
  • 在名称的任何地方使用下划线字符 ( _ ) 和美元符号 ( $ )。
  • 请勿使用预定义变量的名称保留字

了解更多信息:有关动态数据对象的更多信息,请参阅对象数据结构帮助页面。

DYNAMIC 还有一个重要用途,那就是为从其他来源传入脚本的对象创建声明语句。如果不声明这些对象,脚本保存时就会出错。。

FUNCTION 语句

描述:创建自定义函数。

声明语法:FUNCTION <name><([parameter], [...])> <{ ... [RETURN [data]]}>

调用语法:<functionName><([parameter], [parameter], [...])><{<varName>.<functionName><([parameter], [parameter], [...])>}>

详细信息:声明一个函数,方法是在函数末尾给出一个带有一组左圆括号和右圆括号的 <name>。例如,FUNCTION functionName()。在括号之间添加可选的 [parameters]。参数允许将数据(称为参数)传入或传出函数。

在声明标头后的大括号 { RETURN <data>} 之间,加入调用函数时希望脚本执行的代码。在代码结尾处加上 RETURN 关键字,后跟要保存函数输出的变量 <data>。只有在需要将数据传回调用脚本时,才需要在 RETURN 后面加上变量。

即使函数没有任何参数,函数名称也必须始终包含括号。例如:

FUNCTION noParams()

FUNCTION twoParams(name, accountNum)

您可以在需要使用脚本中的代码时调用函数。使用哪种语法调用函数取决于函数是否返回值。

如果函数定义有 <parameters>,则脚本必须将相应的信息传递给函数。必须在函数调用中包含参数。请按照函数定义中出现的顺序包含所有参数。例如,callVar.twoParams('Beowulf', 349839)

如果希望将函数的结果赋值给变量,可以将函数作为 ASSIGN 语句的一部分来调用。例如,ASSIGN var = otherVar.function()。但是,有一种情况下这样做是行不通的,那就是调用 GetRESTproxy() 函数的成员函数。

在函数定义中的函数名称后添加注释,以便为函数提供行内帮助。在 Snippet editor 窗口中键入时,行内帮助会在弹出菜单中提供建议。

命名指南:在命名函数时,请遵循以下指南:

  • 使用字母数字字符 (a-z, A-Z, 0-9)。

  • 名称的第一个字符必须是字母。
  • 在名称的任何地方使用下划线字符 ( _ ) 和美元符号 ( $ )。
  • 请勿使用保留字或内置函数的名称。

了解更多:有关函数的更多信息,请参阅函数帮助页面。

示例

FUNCTION TimerRound(Timer)
{
  IF Timer = "-1"
  {
    ASSIGN Timer = Timer
  }
  ELSE
  {
    ASSIGN PeriodLocation = Timer.indexof('.')
	IF PeriodLocation = 0
	{
	  ASSIGN Timer = Timer
	}
	ELSE
	{
	    ASSIGN DataLength = Timer.length
	    IF DataLength - PeriodLocation <= 2
	        {
	          ASSIGN Timer = Timer
            }   
	    ELSE
	     {
            ASSIGN DigitCheck = Timer.substr(PeriodLocation + 3, PeriodLocation + 3)
            IF DigitCheck >=5 && DigitCheck <= 9
               {
                  ASSIGN Timer = Timer + .01
               }
            ELSE
              {
                 ASSIGN Timer = Timer
              }
		
            ASSIGN Timer = Timer.substr(1, PeriodLocation + 2)
         }
      }
   }
  
   TRACE "{Timer}"
   RETURN Timer
}

IF TEST = 1
   {
      ASSIGN DC1 = "1.931876668494874"
   }   

   ASSIGN DC1 = TimerRound(DC1)