ループのステートメント

このヘルプページの情報は、CXone StudioDesktop Studioの両方に適用されます。

ループステートメントを使用して、指定した終了条件が満たされるまで、スクリプトに1つのタスクまたは一連のタスクを繰り返し実行させることができます。これは、あるセットの各メンバーに対して一連のタスクを実行したい場合に便利です。

ループステートメントのキーワードは次のとおりです。

  • FORブーリアン閉じた 真と偽の2つの値を持つデータ型。式がtrueと評価される限り、埋め込まれたステートメントを実行します。
  • FOREACH:配列の各要素につき埋め込まれたステートメントを1回実行します。
  • REPEAT:埋め込まれたステートメントを指定した回数実行します。

ループステートメントには、常に条件付きコードブロックが必要です。ブロックは中括弧({ })で囲みます。ブロックには次のオプションのステートメントを含めることができます。

BREAK:一連のステートメントのループを終了します。

FOR ステートメント

説明:ステートメントまたは一連のステートメントを特定の回数繰り返します。

構文:FOR <var> = <start> TO <end> <{ ... [BREAK] }>

詳細:FORループは中括弧内のコード{...}<start>から<end>までの範囲の各整数値ごとに1回ずつ繰り返します。<start><end>は、式またはリテラル値です。各反復で、ループのヘッダー行で命名された変数<var>に、範囲内の現在の値が代入されます。これは、イテレーター変数と呼ばれます。

オプションのBREAK句はループを中止します。スクリプトは実行を続け、閉じ中括弧の後のコードを実行するか、次のStudioアクション閉じた Studioスクリプト内で、顧客データの収集、メッセージや音楽の再生、またはコンタクトをエージェントにルーティングするなどのプロセスを実行すること。に進みます。

<start><end>の初期値は、ループの開始時に1度評価されます。<end>の値は、中括弧内のコードステートメント{...}の中で変更できます。ループ内から<var>の値を変更することもできます。

<start>の値は<end>未満でなくてもかまいません。<end><start>より小さい場合、ループはイテレーター値の降順に実行されます。ループは必ず少なくとも1回反復されます。この動作は他の一部のプログラミング言語とは異なります。次の例はこの動作を示しています。

この例では、<end><start>より大きい値です。結果はph="123456789"です。

FOR i=1 TO 9
{
	ph = "{ph}{i}"
}

この例では、<start><end>より大きい値です。結果はph="987654321"です。

FOR i=9 TO 1
{
	ph = "{ph}{i}"
}

IF TEST = 1
{
  ASSIGN Names = "Wes|Nate|Dan|Clay"
  ASSIGN EyeColors = "Blue|Blue|Brown|Brown"
  ASSIGN Signs = "Aquarius|Aries|Pisces|Leo"
  ASSIGN Foods = "Spagetti|Pizza|Sushi|Deep Fried Twinkies"
}

DYNAMIC Persons

ASSIGN PeopleCount = Names.size

FOR i = 1 TO PeopleCount
{
  ASSIGN Persons[i].Name = "{Names[i]}"
  ASSIGN Persons[i].Eyecolor = "{EyeColors[i]}"
  ASSIGN Persons[i].Sign = "{Signs[i]}"
  ASSIGN Persons[i].Food = "{Foods[i]}"
}
FOR i=1 TO 9
{
	a = "{a}{i}"
}
//Result: a="123456789"


FOR i=9 TO 1
{
	b = "{b}{i}"
}
//Result: b="987654321"

FOREACHステートメント

説明:指定された文字列配列の各要素に対してループを1回繰り返します。

フォーマット:FOREACH <var> IN <array> <{ ... [ BREAK ] }>

詳細:FOREACHループは中括弧内のコード{...}を、文字列配列またはダイナミックデータオブジェクト配列の各要素に対して1回繰り返します。配列の各要素の値が、ループのヘッダー行で指定されている変数<var>に代入されます。

オプションのBREAK句はループを中止します。スクリプトは実行を続け、閉じ中括弧の後のコードを実行するか、次のStudioアクション閉じた Studioスクリプト内で、顧客データの収集、メッセージや音楽の再生、またはコンタクトをエージェントにルーティングするなどのプロセスを実行すること。に進みます。

次の例は、IFステートメントを含むFOREACHループを示しています。



IF TEST = 1 
{
	ASSIGN Names="Odin|Freya|Thor|Loki"
}
ASSIGN SubCounter=1
FOREACH Name IN Names
{
	IF Name = "Odin" |  Name = "Freya"
	{
		ASSIGN NewNames[SubCounter]= "{Name}"

		ASSIGN SubCounter=SubCounter + 1

	}
}

REPEAT ステートメント

説明:指定されたコマンドを指定された回数実行します。

構文:REPEAT <expression> <{ ... [ BREAK ]}>

詳細:このコマンドは、中括弧内のコード{...}<expression>で定義された回数だけ繰り返します。<expression>は、任意の正の整数リテラルか、ゼロまたは正の整数に評価される任意の式にできます。

ループを中止するには、オプションのBREAKキーワードを含めます。スクリプトはその後実行を続け、REPEATブロックの閉じ中括弧の後のコードを実行するか、次のStudioアクション閉じた Studioスクリプト内で、顧客データの収集、メッセージや音楽の再生、またはコンタクトをエージェントにルーティングするなどのプロセスを実行すること。に進みます。

ツリービューのプロパティ

ツリービュータブでは、REPEATREPEAT 0のように表示されます。

設定するプロパティは以下のとおりです:

  • Comment:繰り返しに関するコメントを追加します。
  • Line Number:コマンドの行番号がエディターに表示されます。
  • Repeat:数値として評価される式を入力して、指定した動作を繰り返す回数を定義します。

REPEATを完成させるには、REPEAT 0を右クリックし、スクリプトに繰り返させる動作を選択します。複数の動作を追加できます。選択した各動作を設定します。

この例をツリービューで見るには、テキストビュータブにコピー&ペーストしてから、ツリービュータブをクリックします。


REPEAT 10
{
	phone = "{phone}{random(10)}"
}	

BREAK ステートメント

説明:ループを直ちに終了します。

構文:BREAK

詳細はこちら:BREAKステートメントに達すると、現在のループは直ちに終了します。スクリプトは、ループの下のスニペットコードを完了するまで実行し続けます。

BREAKはオプションです。これが含まれていない場合、ループは定義された停止条件が満たされるまで続行します。