ループのステートメント
このヘルプページの情報は、CXone StudioとDesktop 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>は、任意の正の整数リテラルか、ゼロまたは正の整数に評価される任意の式にできます。
ループを中止するには、オプションの
ツリービューのプロパティ
ツリービュータブでは、
設定するプロパティは以下のとおりです:
- Comment:繰り返しに関するコメントを追加します。
- Line Number:コマンドの行番号がエディターに表示されます。
-
Repeat:数値として評価される式を入力して、指定した動作を繰り返す回数を定義します。
例
この例をツリービューで見るには、テキストビュータブにコピー&ペーストしてから、ツリービュータブをクリックします。
REPEAT 10
{
phone = "{phone}{random(10)}"
}
BREAK ステートメント
説明:ループを直ちに終了します。
構文:BREAK
詳細はこちら:BREAKステートメントに達すると、現在のループは直ちに終了します。スクリプトは、ループの下のスニペットコードを完了するまで実行し続けます。
BREAKはオプションです。これが含まれていない場合、ループは定義された停止条件が満たされるまで続行します。