聲明語句

聲明語句允許您在指令碼中引入新變數、物件或函數。這些語句的關鍵字是:

  • 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

如果已經聲明等號右側的變數,則無需用大括號和雙引號括起來。指令碼會評估等號右側的術語。如果它不在大括號和雙引號中,也不是數字,指令碼會假定它是一個變數。如果它已經存在,指令碼會將其值賦給第二個變數。如果未聲明,指令碼會建立一個 null 值。

您可以使用 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() 函數的成員函數。

在函數定義中的函數名後新增備註,為函數提供 IntelliPrompt 幫助。在 Snippet Editor 視窗中鍵入時,IntelliPrompt 會在彈出選單中提供建議。

命名準則:命名函數時,請遵循這些準則:

  • 使用字母數字字元 (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)