聲明語句

本説明頁面上的資訊同時適用於 CXone StudioDesktop Studio

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

  • ASSIGN:需要建立變數或字串陣列時使用該語句。
  • DYNAMIC:需要建立動態資料物件時使用此語句。
  • FUNCTION:使用此語句在指令碼中建立一個新函數。

每種語句類型的討論包括語法摘要。 這些摘要使用某些慣例來表示語句的各個部分,以及每個部分是必需的還是可選的。

ASSIGN 語句

描述:ASSIGN語句建立一個變數,變數名和變數值由您指定。

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

Studio動作:Assign CXone 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() 函數的成員函數。

在函數定義中的函數名稱後面新增備註,以提供函數的內嵌說明。 當您在 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)