宣言のステートメント

宣言ステートメントを使うと、新しい変数やオブジェクト、または関数をスクリプトに導入できます。これらのステートメントのキーワードは次のとおりです。

  • ASSIGN:変数や文字列配列を作成する必要がある場合に使用します。
  • DYNAMIC:ダイナミックデータオブジェクトを作成する必要がある場合に使用します。
  • FUNCTION:スクリプトに新しい関数を作成する場合に使用します。

各ステートメントのタイプに関する説明には構文サマリーが含まれています。これらのサマリーは、ステートメントの各部分と、各部分が必須であるかオプションであるかを示すために、特定の規約を使用しています。

ASSIGN ステートメント

説明:ASSIGNステートメントは、指定された名前と値で変数を作成します。

構文:ASSIGN <variable> = "<value>" | <value>

Studioアクション:Assign

詳細:ASSIGNステートメントは<variable>を作成し、それに<value>を代入します。変数の作成時にデータ型を宣言する必要はありません。ただし、日付/時刻型は例外です。Studioの変数は暗黙の型指定です。したがって、作成と値の代入を1ステップで行うことができます。例:

ASSIGN oneName = "Odin"

変数に代入する値が数値の場合、二重引用符で囲む必要はありません。値が文字列の場合は、二重引用符で囲まなければなりません。

ASSIGNステートメントを使って文字列配列を作成できます:

ASSIGN manyNames = "Odin|Freya|Thor"

ある変数を別の変数の値として代入することができます:


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

等号の右側にある変数がまだ宣言されていない場合、中括弧と二重引用符で囲む必要はありません。スクリプトは等号の右側の項を評価します。これが中括弧と二重引用符で囲まれておらず、数値でもない場合、スクリプトはそれを変数と見なします。すでに存在する場合は、スクリプトはその値を2番目の変数に代入します。宣言されていない場合、スクリプトは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にはもう1つの重要な用途があります。それは、他のソースからスクリプトに渡されたオブジェクトの宣言ステートメントを作成することです。これらのオブジェクトを宣言しないと、スクリプトの保存時にエラーが発生します。.

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() 。しかし、これが不可能なケースが1つあります。それは、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)