組み込み関数

Studioには、スクリプトで使用できる組み込み関数があります。組み込み関数のいくつかは、Snippet editorウィンドウに入力するとポップアップ表示されるオートコンプリートリストで利用できます。このリストにはない組み込み関数もあり、それらを使うこともできます。利用可能なすべての組込み関数についての詳細は、このページの後半に記載されています。

このページには、カテゴリ別に分類された組み込み関数のリストも掲載されています。扱うデータの種類や達成したいことが分かっていても、関数名が分からない場合に関数を見つけやすくなっています。以下のことを行える関数のリストを確認できます。

また、カテゴリに当てはまらないその他の関数のリストもあります。

独自のカスタム関数の作成を含め、Studioでの関数の使用についての詳細は、関数ヘルプページを参照してください。

このページでは、スクリプトをRESTful APIに接続するために使用できるサービスであるRestProxyと併用する組み込み関数に関する情報は提供していません。これらの関数についてはRestProxyヘルプページで説明されています。

使い方###

関数の例スクリプトをダウンロードし、Studioインポートします。このヘルプページの例の多くは、サンプルスクリプトのSnippetアクションで利用可能です。Snippet editor ウィンドウを開いてデバッガーを実行することで、各例の動作を確認できます。

日付と時刻を扱う関数

以下の関数は、日付と時刻とともにスクリプトで使用します。Studioは12時間制ではなく、24時間制をサポートしています。スクリプトで時間を扱うときは、このことを考慮に入れてください。

OLEオートメーション日付は、浮動小数点数として記述されている日付です。小数点の左側は、1899年12月30日午前0時からの日数です。小数点の右側は、その日の時刻を24で割ったものです。たとえば、1899年12月31日午前6時は1.25です。

関数

説明

asdate() デフォルトの日付形式を使用して、変数の内容を日付/時刻文字列に変換します。
asdatedow() 曜日を06の序数値として返します。0は日曜日です。
asdatetime() 変数の値を、指定された日付/時刻形式を使って日付/時刻文字列に変換します。
asgmt() および asutc() 変数の内容を、GMTまたはUTCによる日付/時刻文字列に変換します。
asisodatetime()

変数の値をISO 8601日付/時刻形式に変換します:yyyy-MM-ddTHH:mm:ss.SSSXXX

astime() 変数の内容を時刻文字列に変換します。
dateadd(date, value) datevalueを加えた新しい日付を返します。
datebuild(year, month, day) 指定されたを用いて日付/時刻文字列を返します。
datediff(unit,date1, date2) 2つの日付の差を返します。
datefmt(format) 指定されたformatを使用して、変数の内容を日付/時刻文字列に変換します。
datepart(unit)

 

指定されたunitに基づいて日付または時刻の一部を返します。
datetimebuild(year, month, day, hour, minute, second) 指定されたYearMonthDayHourMinuteSecondに基づいて日付/時刻文字列を返します。
dow() 現在の曜日を06の序数値として返します。0は日曜日です。

数字を扱う関数

以下の関数は、数値を含む変数に使用します。数値で使えるその他の関数には、数学計算のための関数があります。

関数

説明

ceil(value

指定されたvalue以上の最小の整数をします。

floor(value

指定されたvalue未満の最大の整数をします。

format(format) 指定されたformatを使用してフォーマットされた数字の文字列を返します。
isdigit() 変数の内容を評価し、最初の文字が数字(0-9)かどうかを判定します。
isnumeric() 変数の内容を評価し、すべての文字がアルファベット(A-Zまたはa-z)かどうかを判定します。
max(value1, value2) および min(value1, value2) 指定された2つの値のうち大きい方または小さい方を返します。
random() ランダムな非負の整数を返します。
round(value) 指定されたvalueを最も近い整数に丸めます。

文字を扱う関数

以下の関数は、文字を含む変数に使用します。

関数

説明

isalpha() 変数の内容を評価し、すべての文字がアルファベット(A-Zまたはa-z)かどうかを判定します。
isletter()

変数の内容を評価し、最初の文字がアルファベット(a-zまたはA-Z)かどうかを判定します。

islower() および isupper() 変数の内容を評価し、最初の文字が小文字(a-z)か大文字(A-Z)かを判定します。
lower() および upper()

値のすべての文字を小文字(a-z)または大文字(A-Z)に変換します。

計算を実行する関数

これらの関数は、数学的計算を実行するのに使用します。これらの関数は、SNIPPETアクションを使用する際にポップアップ表示されるオートコンプリートリストでは使用できませんが、手動で入力すれば機能します。

関数

説明

abs(value)

指定されたvalue値の絶対値を返します。

acos(value)

コサインが指定されたvalueである角度をラジアンで返します。

asin(value)

サインが指定されたvalueである角度をラジアンで返します。

atan(value)

接線が指定されたvalueである角度をラジアンで返します。

atan2(x, y)

接線が指定された2つの数値の商である角度をラジアンで返します (x, y)

cos(value)

指定されたvalueのコサインを返します。valueはラジアンでなければなりません。

cosh(value)

指定されたvalueの双曲線余弦を返します。valueはラジアンでなければなりません。

exp(value)

valueで指定された累乗の数値を返します。

ln(value)

valueの自然(基数e)対数を返します。valueは基数10の数値として指定されます。

log10(value)

指定されたvalueの常用対数を返します。

log2(value, base)

指定されたvalueの2進対数を返します。valueは基数10の数値として指定されます。

logn(value, base)

指定されたbaseの指定されたvalueの対数を返します。両方のパラメーターは、基数10の数値として指定されます。

round(value)

指定されたvalueを最も近い整数に丸めます。

sgn(value)

指定されたvalueの符号を示す値を返します。valueがゼロ未満の場合は-1を返し、valueがゼロに等しい場合は0を返し、valueがゼロより大きい場合は1を返します。

sin(value)

指定されたvalueのサインを返します。valueはラジアンでなければなりません。

sinh(value)

指定されたvalueの双曲正弦を返します。valueはラジアンでなければなりません。

sqrt(value)

指定されたvalueの平方根を返します。

tan(value)

指定されたvalueの正接を返します。valueはラジアンでなければなりません。

tanh(value)

指定されたvalueの双曲正接を返します。valueはラジアンでなければなりません。

trunc(value)

指定されたvalueの整数部分を計算します。trunc()は、valueをゼロに向かって最も近い整数に丸めます。

値を変更する関数

変数の値を別の変数に代入する際に、その変数の値に関する何かを変更したい場合は以下の関数を使用します。

この表の関数に加え、日付と時刻を扱う関数の多くでは、値を変更することができます。例えば、日付の値を別の日付形式に変換することができます。

関数

説明

append(text) 最初の変数の内容を2番目の変数に追加します。
asjson() および asxml() 変数の内容を、JSONまたはXMLに変換します。
dateadd(date, value)

datevalueを加えた新しい日付を返します。

datefmt(format)

指定されたformatを使用して、変数の内容を日付/時刻文字列に変換します。

format(format) 指定されたformatを使用してフォーマットされた数字の文字列を返します。
lower() および upper()

値のすべての文字を小文字(a-z)または大文字(A-Z)に変換します。

replace(old, new) oldのすべての出現箇所をnewで置き換えます。
split(delimiter) 変数の内容を、配列として扱うのに適したパイプ区切りのストリングとして返します。既存の指定されたdelimiterをパイプ文字に置き換えます。
trim() ltrim() 、および rtrim() 空白文字を削除した文字列を返します。すべての空白文字を削除することも、先頭または末尾の空白文字だけを削除することもできます。
urlencode() および urldecode() URLエンコードのインターネット標準に従って、URLをエンコードまたはデコードします。

値の中身を判断する関数

これらの関数は、変数に何が含まれているかを見るために使用します。

関数

説明

contains(value) 指定されたvalueのために変数を評価します。
count() 配列またはオブジェクト内の要素の数を返します。
index(indexValue) 指定されたindexValueに従って、変数の内容から配列要素を返します。
indexof(text) 変数内の指定されたtextの文字位置を返します。
isalpha () 変数の内容を評価し、すべての文字がアルファベット(A-Zまたはa-z)かどうかを判定します。
isdigit() 変数の内容を評価し、最初の文字が数字(0-9)かどうかを判定します。
isletter()

変数の内容を評価し、すべての文字がアルファベット(A-Zまたはa-z)かどうかを判定します。

isnumeric()

変数の内容を評価し、すべての文字が数字(0-9)かどうかを判定します。

isupper() および islower() 変数の内容を評価し、最初の文字が小文字(a-z)か大文字(A-Z)かを判定します。
length() 変数の値の文字数を返します。
left() および right() 文字が数値の場合、変数の内容から左端または右端の文字を返します。返される文字数は、指定されたcountに基づきます。
size()

配列内の要素の数を返します。

値の一部を抽出する関数

これらの関数は、ある変数から値の一部を取り出して別の変数で使いたいときに使用します。

関数

説明

datepart(unit)

指定されたunitに基づいて日付または時刻の一部を返します。

index(indexValue) 指定されたindexValueに従って、変数の内容から配列要素を返します。
left(count) および right(count) 文字が数値の場合、変数の内容から左端または右端の文字を返します。返される文字数は、指定されたcountに基づきます。
mid(start, length) startからstart+lengthまでの文字を返します。
substr(start, end) start からendまでの文字を返します。

配列を扱う関数

以下の関数では配列を処理できます。

関数

説明

count()

配列またはオブジェクト内の要素の数を返します。

index(indexValue)

指定されたindexValueに従って、変数の内容から配列要素を返します。

indexof(text)

変数内の指定されたtextの文字位置を返します。

size()

配列内の要素の数を返します。

split(delimiter)

変数の内容を、配列として扱うのに適したパイプ区切りのストリングとして返します。既存の指定されたdelimiterをパイプ文字に置き換えます。

その他

関数

説明

char(code)

ASCIIのcode値から文字を返します。これにより、スクリプトがプログラムで文字列に特殊文字を追加できるようになります。

copy(objectName)

ダイナミックデータオブジェクトobjectNameが保持するデータのコピーを作成します。コピーはオリジナルとは個別のものなので、一方のバージョンで値を変更しても、もう一方のバージョンの同じ値には影響しません。

iif(compare, trueval, falseval)

数字用のインラインIf。compareを評価し、その結果に応じてtruevalまたはfalsevalを返します。

iifs(compare, trueval, falseval)

文字列のインラインIf。compareを評価し、その結果に応じてtruevalまたはfalsevalを返します。

isnull()

ダイナミックデータオブジェクトまたはオブジェクトのプロパティがnull(未定義または0)であるかどうかを判定します。

savetodb(1or0) 変数値のデータベースへの保存を有効にすることができます。
screenpop()

変数にScreenPopフラグが設定されているかどうかを示す値を返します。

setscreenpop(1or0)

現在のACDスキル閉じた エージェントのスキル、能力、知識に基づいてインタラクションの配信を自動化するために使用されますユーザスクリーンポップが有効になっている場合、変数の値をスクリーンポップ閉じた コンタクトに関する情報が表示される、設定可能なポップアップウィンドウ。 通常、エージェントがコンタクトに接続した場合など、特定のイベント後にエージェントの画面に表示されます。で使用できるようにします。

setscreenpop()は真の関数ではありません。これはStudioの変数のプロパティで、スクリーンポップ閉じた コンタクトに関する情報が表示される、設定可能なポップアップウィンドウ。 通常、エージェントがコンタクトに接続した場合など、特定のイベント後にエージェントの画面に表示されます。の作業時に設定できます。スニペットで作業をするときに変数に適用できます。また、Assignアクションを使用して変数を作成する際にも設定できます。

1を引数として変数にsetscreenpop()を追加すると、変数の値がスクリーンポップに渡されます。

ASSIGN val1 = "name"
ASSIGN popthis = val1.setscreenpop(1)

 

利用可能なすべての関数

このセクションでは、各組み込み関数の使用に関する詳細な情報を提供します。特に指定がない限り、これらの関数は変数や式を使用できるすべての場所で呼び出すことができます。

abs(value)

指定されたvalue値の絶対値を返します。

ASSIGN abVal = "{abs(-42)}"

例の結果abVal = 42

acos(value)

コサインが指定されたvalueである角度をラジアンで返します。

ASSIGN angleRad3 = "{acos(cosNum)}"

例の結果angleRad3 = 0.394791119699762

append(string)

変数内の既存のコンテンツの最後にstringを追加します。この関数は、SnippetまたはASSIGNアクション内でのみ機能します。

IF TEST = 1
{
  ASSIGN originalString = "My name"
  ASSIGN originalString2 = "Whose pajamas are these? "
  ASSIGN appendWithEscape = $"They're the cat's pajamas."			
}
originalString.append(" is Inigo Montoya.")
originalString2.append(AppendWithEscape)

例の結果:

  • originalString = My name is Inigo Montoya.
  • originalString2 = Whose pajamas are these?They're the cat's pajamas.

asdate()

デフォルトの日付形式を使用して、変数の内容を日付/時刻文字列に変換します。

文字列表現として使用する場合:変数の内容を日付/時刻文字列に変換します。

数値式として使用する場合:文字列の内容を解析して、変数の内容をOLEオートメーションの日付-時刻に変換します。文字列の内容は、mm/dd/yyyyのようなWindows標準の日付形式のいずれかに一致する必要があります。

IF TEST = 1
{
  ASSIGN myDate = "{date}"
}

//This example converts a date string into its OLE numeric equivalent
ASSIGN numericDate = myDate.asdate()

//This example converts an OLE numeric date to its string equivalent
ASSIGN stringDate = "{numericDate.asdate()}" 

この例の結果は、関数が実行された時点のローカルの日付に依存します。現在の現地日付が2023年03月07日の場合。結果は次のようになります:

  • numericDate = 45110
  • stringDate = 07/03/2023

asdatedow()

文字列の内容を解析して変数の内容をOLEオートメーションの日付-時刻に変換し、曜日を06の序数値として返します。ここで0は日曜日です。文字列の内容は、MM/dd/yyyyのようなWindows標準の日付形式のいずれかに一致する必要があります。

IF TEST = 1
{
  ASSIGN MyDate = "07/03/2023"
}
ASSIGN MyDow = MyDate.asdatedow()
SWITCH MyDow
{
  CASE 0   { ASSIGN newToday = "Sunday" }
  CASE 1   { ASSIGN newToday = "Monday" }
  CASE 2   { ASSIGN newToday = "Tuesday" }
  CASE 3   { ASSIGN newToday = "Wednesday" }
  CASE 4   { ASSIGN newToday = "Thursday" }
  CASE 5   { ASSIGN newToday = "Friday" }
  CASE 6   { ASSIGN newToday = "Saturday" }
}

例の結果

  • myDow = 1
  • newToday = Monday

asdatetime()

変数の値を、指定された日付/時刻形式を使って日付/時刻文字列に変換します。

文字列として使用する場合:変数の内容を日付および時刻文字列に変換します。

数値として使用する場合:文字列の内容を解析して、変数の内容をOLEオートメーションの日付-時刻に変換します。文字列の内容は、MM/dd/yyyy HH:mm:ssのようなWindows標準の日付-時刻形式のいずれかに一致する必要があります。

時刻なしで日付を渡すと、関数が時刻を追加します。デフォルトは午前12時です。

IF TEST = 1
{
  ASSIGN MyDateTime = "{now}"
  ASSIGN anotherDateTime = "04/03/23 11:34:09 PM"
}
ASSIGN numericDateTime = myDateTime.asdatetime()
ASSIGN numericDateTime2 = anotherDateTime.asdatetime()

ASSIGN stringDateTime = "{numericDateTime.asdatetime()}"
ASSIGN stringDateTime2 = "{numericDateTime2.asdatetime()}"
		

例の結果:

  • numericDateTime = 45110.3720486111(現在の現地日時が7/3/2023 8:55:45 AMの場合)
  • numericDateTime2 = 45019.9820486111
  • stringDateTime = 7/3/2023 8:55:45 AM
  • stringDateTime2 = 4/3/2023 11:34:09 PM

asgmt()asutc()

asgmt()関数は時刻をGMTに変換し、asutc()関数は時刻をUTCに変換します。日付の形式は、変数の元の内容に依存します。

文字列表現で使用する場合:関数は文字列の内容を、GMTまたはUTCによるOLEオートメーションの日付/時刻に変換します。変数には、日付/時刻の有効な文字列表現が含まれている必要があります。ソース時刻は、ビジネスユニット閉じた CXone環境におけるテクニカルサポート、請求、およびグローバル設定を管理するために使用される上位レベルの組織グループタイムゾーン、またはTimezoneアクションで設定されたタイムゾーンに基づいています。

数値式で使用する場合: 関数は、値をGMTまたはUTCによる日付/時刻文字列に変換します。例:「Mon, 03 Oct 2023 13:35:14 GMT」。

これらの関数を使用する場合、変数に含まれる時刻の形式に、次のいずれかを含めることはできません。

  • UTCからのオフセット。
  • 2023-03-04 18:54:39.000ZのようなZ文字。GMT/UTCからのオフセットがゼロであることを示すZ文字を含みます。

このいずれかが含まれていると、asgmt()またはasutc()がタイムゾーンを変換しようとしたときに、元のタイムゾーンがビジネスユニットのタイムゾーンと異なると見なされるため、エラーが発生します。また、ISO 8601の日付/時刻形式を使用する際のエラーを回避するには、Snippetアクションの前にTimezoneアクションを含めて、ビジネスユニットのタイムゾーンを使用するように設定してください。これにより、スクリプトとビジネスユニットのタイムゾーンが一致するように、スクリプトレベルでタイムゾーンが設定されます。

IF TEST = 1
{
  ASSIGN MyDateTime = #"{now}" 
}

ASSIGN GMTDateTimeNumeric = MyDateTime.asgmt()
ASSIGN GMTDateTimeString = "{GMTDateTimeNumeric.asdatetime()}"

ASSIGN UTCDateTimeNumeric = MyDateTime.asutc()
ASSIGN UTCDateTimeString = "{UTCDateTimeNumeric.asdatetime()}"

asin(value)

サインが指定されたvalueである角度をラジアンで返します。

ASSIGN angleRad4 = "{asin(sinNum)}"

例の結果 angleRad4 = 0.394791119699762

asisodatetime()

変数の値をISO 8601日付/時刻形式に変換します:yyyy-MM-ddTHH:mm:ss.SSSXXX。この関数の出力は常にISO日付/時刻形式です。

REST APIコールでは、UTCからのオフセットが指定され、レスポンスに表示されるISOタイムスタンプは、山岳部時間(MT)に変換されます。オフセットが指定されない場合、タイムスタンプは変換されません。

IF TEST = 1
{
	ASSIGN myDateTime = "{now}"
	ASSIGN anotherDateTime = "04/03/23 11:34:09 PM"
}
ASSIGN numericDateTime = myDateTime.asisodatetime()
ASSIGN numericDateTime2 = anotherDateTime.asisodatetime()
ASSIGN stringDateTime = "{numericDateTime.asisodatetime()}"
ASSIGN stringDateTime2 = "{numericDateTime2.asisodatetime()}"

例の結果:

  • numericDateTime = 2023-07-03T09:43:06.000Z(現在の現地日時が7/3/2023 9:43:06 AMの場合)
  • numericDateTime2 = 2023-04-03T23:34:09.000Z
  • stringDateTime = 2023-07-03T05:43:06.000Z
  • stringDateTime2 = 2023-04-03T19:34:09.000Z

asjson()asxml()

JSONまたはXMLオブジェクトを文字列に変換し、それを新しい変数に代入します。以下の例ではダイナミックデータオブジェクトを使用していますが、APIコールやバーチャルエージェントボット閉じた ライブの人間のエージェントの代わりに顧客とのやり取りを処理するソフトウェアアプリケーション。アクションから返されたオブジェクトを指定してこれらの関数を使用することもできます。

関数asjson()は、数値やブーリアン閉じた 真と偽の2つの値を持つデータ型。の値を含め、オブジェクト内のすべてを二重引用符で囲んだ文字列に変換します。JSONに適切な書式の数値やブーリアン値が必要な場合は、スクリプトでこれに対応することができます。1つの解決策として、replace()関数を使用できます。これにより、文字列値の二重引用符をヌル値に置き換えることができます。

DYNAMIC object1
ASSIGN object1.value1 = "this"
ASSIGN object1.value2 = "that"
DYNAMIC object2				
ASSIGN object2.value1 = "first"
ASSIGN object2.value1 = "last"			

ASSIGN objectjson = "{object1.asjson()}"
ASSIGN objectxml = "{object2.asxml()}"		

もう1つの解決策は、ダイナミックオブジェクトをJSON文字列に変換した後に手動で置換されるプレースホルダー文字列を注入することです。

ASSIGN integerValue = 1234
ASSIGN trueValue = true
ASSIGN falseValue = false
DYNAMIC object
ASSIGN object.myIntegerValue = "INTEGERVALUE_PLACEHOLDER"
IF trueValue = true
  {
	ASSIGN object.myTrueValue = "TRUE_PLACEHOLDER"
  }
ELSE
  {
	ASSIGN object.myTrueValue = "FALSE_PLACEHOLDER"
  }
IF falseValue = true
  {
	ASSIGN object.myFalseValue = "TRUE_PLACEHOLDER"
  }
ELSE
  {
	ASSIGN object.myFalseValue = "FALSE_PLACEHOLDER"
  }
ASSIGN objectJSON = "{object.asjson()}"

ASSIGN objectJSON = objectJSON.replace("{char(34)}TRUE_PLACEHOLDER{char(34)}","true").replace("{char(34)}FALSE_PLACEHOLDER{char(34)}","false")
ASSIGN objectJSON = objectJSON.replace("{char(34)}INTEGERVALUE_PLACEHOLDER{char(34)}",integerValue)

ベストプラクティス: Snippetアクションasjson()関数を使用し、結果のJSONを文字列変数に格納します。JSONデータを渡す必要がある場合は、他のStudioアクションのプロパティで文字列変数を使用します。この方法により、スクリプトを保存する際に検証エラーが発生する可能性を回避できます。

例の結果:

  • objectjson={"value1":"this","value2":"that"}

  • objectxml=<?xml version="1.0" encoding="utf-16" standalone="yes"?><DynamicDataObject><value1>first</value1><value2>last</value2></DynamicDataObject>

astime()

変数の内容を時刻文字列に変換します。

文字列値で使用する場合:文字列の内容をOLEオートメーション閉じた 日付を浮動小数点数として表現する方法。 1899年12月30日からの経過日数を示します。の日付-時刻に変換します。例:0.353506944447872

数値で使用する場合:変数の内容を時刻文字列に変換します。変数にはOLEオートメーションの時間値が含まれていなければなりません。例:8:29:03 AM

IF TEST = 1
{
  ASSIGN myTime = "{time}"
}

//This example converts a time string into its OLE numeric equivalent
ASSIGN numericTime = myTime.astime()

//This example converts a OLE numeric time to its string equivalent
ASSIGN stringTime = "{numericTime.astime()}" 

この例の結果は、関数をテストする時点のローカル時刻に依存します。timeの値が8:37:42 AMの場合、結果は次のようになります:

  • numericTime = 0.359513888892252
  • stringTime = 8:37:42 AM

atan(value)

接線が指定されたvalueである角度をラジアンで返します。

ASSIGN angleRad = "{atan(0.4166666666666667)}"		

例の結果 angleRad=0.394791119699762

atan2(value)

接線が指定された2つの数値の商である角度をラジアンで返します (x, y)

ASSIGN angleRad2 = "{atan2(5,12)}"

例の結果 angleRad2=0.394791119699761

ceil(value)floor(value)

ceil 指定されたvalue以上の最小の整数をします。

floor 指定されたvalue未満の最大の整数をします。

IF TEST = 1
{
  ASSIGN value = 102.589
}
ASSIGN newValue1 = floor(value)

ASSIGN newValue2 = ceil(value)

例の結果:

  • newValue1102です。
  • newValue1103です。

contains(value)

変数に指定されたvalueが含まれている場合は、1(true)の値を返します。変数が配列の場合、すべての要素の正確なvalueがチェックされます。

contains()は大文字と小文字を区別しません。

IF TEST = 1
{
  ASSIGN varString1 = "abc!123"
  ASSIGN varString2 = "8001234567|8881234567|8771234567"
  ASSIGN dnis = 8881234567
  ASSIGN dnis2 = 8887654321
}
ASSIGN stringFoundRes1 = varString1.contains('!') // true
ASSIGN stringFoundRes2 = varString1.contains('D') // false 

ASSIGN DNISFoundRes1 = varString2.contains(dnis) // true
ASSIGN DNISFoundRes2 = varString2.contains(dnis2) // false

例の結果:

  • stringFoundRes11(true)です。
  • stringFoundRes20(false)です。
  • DNISFoundRes11(true)です。
  • DNISFoundRes20(false)です。

char(code)

ASCIIのcode値から文字を返します。これにより、スクリプトがプログラムで文字列に特殊文字を追加できるようになります。例えば、キャリッジリターン、タブ、改行文字を追加することができます。

この機能には注意が必要です。char(0)からchar(7)は内部用に予約されており、スクリプトが誤動作する可能性があります。

IF TEST = 1
{
  ASSIGN textToSpeech = "John Doe"
  ASSIGN varWithCommas = "one,two,three,four"
}

ASSIGN character1 = "{char(34)}"
ASSIGN character2 = "{char(44)}"
ASSIGN character3 = "{char(39)}"

ASSIGN marqueeMessage = "Marquee {char(10) char(13)} Message on {char(10) char(13)} different lines."

ASSIGN promptListWithDoubleQuotes = "{char(34)}Prompts\File with space.wav{char(34)} {char(34)}{textToSpeech}{char(34)}"

ASSIGN varWithReplacedCommas = "{varWithCommas.replace(char(44),' ')}"

ASSIGN character4 = "{char(123)}"
ASSIGN character5 = "{char(125)}"
ASSIGN cssWithReplacedBrackets = "a {char(123)}text-decoration: none;{char(125)}"

例の結果:

  • marqueeMessage = "Marquee

    Message on

    different lines."

  • promptListWithDoubleQuotes = "Prompts\File with space.wav" "John Doe"
  • varWithReplacedCommas = one two three four
  • cssWithReplacedBrackets = a {text-decoration: none;}

copy(objectName)

ダイナミックデータオブジェクトobjectNameが保持するデータのコピーを作成します。コピーはオリジナルとは個別のものなので、一方のバージョンで値を変更しても、もう一方のバージョンの同じ値には影響しません。ダイナミックオブジェクトのコピーについての詳細を学びます。

copy()関数をサブプロパティと一緒に使用できます。例:currentContact.who = copy(beowulfCharacteristics.name)

DYNAMIC firstObject
DYNAMIC secondObject

secondObject = copy(firstObject)

copy()関数は、参照を代入するよりも多くのシステムリソースを使用します。オブジェクトをテキスト表現に変換してからオブジェクトに戻すことにより、ディープコピーを実行します。オブジェクトに大量のデータが含まれている場合、この処理はスクリプトの動作に影響を与える可能性があります。

cos(値)

指定されたvalueのコサインを返します。valueはラジアンでなければなりません。

ASSIGN angleRad = 0.394791119699762 //in radians
ASSIGN cosNum = "{cos(angleRad)}"		

例の結果 cosNum=0.923076923076923

cosh(値)

指定されたvalueの双曲線余弦を返します。valueはラジアンでなければなりません。

 ASSIGN hCosine = "{cosh(angleRad)}"

例の結果 hCosine=1.07894746856059

count()size()

配列内の要素の数を返します。size()は配列にのみ使用できます。count()はオブジェクト内の配列で使用できます。

値が配列でなく空ではない場合、値1(true)が返されます。文字列が空の場合、0(false)が返されます。

IF TEST = 1
{
  ASSIGN example1 = "Beowulf|Grendel|Hrothgar|Wyrm|Breca|Scyld|Hrethel"
  ASSIGN example2 = "8015551234"
  ASSIGN example3 = ""
  DYNAMIC example4 
  ASSIGN example4[1].name = "Beowulf"
  ASSIGN example4[2].name = "Grendel"
}
ASSIGN ex1Size = example1.size()
ASSIGN ex2Size = example2.size()
ASSIGN ex3Size = example3.size()

ASSIGN ex1Count = example1.count()
ASSIGN ex2Count = example2.count()
ASSIGN ex3Count = example3.count()

ASSIGN ex4Count = count(example4)

例の結果:

  • exSizeex1Count7です。
  • ex2Sizeex2Count1です。
  • ex3Sizeex3Count0です。
  • ex4Count2です。

dateadd(unit, date, value)

datevalueを加えた新しい日付を返します。。新しい日付がOLEオートメーション閉じた 日付を浮動小数点数として表現する方法。 1899年12月30日からの経過日数を示します。の日付/時刻として返されます。valueの解釈はunitによって決定されます。valueが負の場合、valuedateから差し引かれます。

ベストプラクティスとしては、以下の例に示すように、有効な日付/時刻変数を渡します。ここでmyDateTimeの値の前に数字を示すシャープ記号(#)があります。したがって、これは日付/時刻変数です。

単位の選択肢は、 yearmonthweekdayhourminutesecondです。

unitでは大文字と小文字が区別されます。unitを二重引用符または一重引用符で囲むか、unit名を含む変数を渡します。変数を渡す場合は、変数を引用符や中括弧で囲んではいけません。

この関数を文字列内で使用するには、asdatetime()を含めます。以下に例を示します。

IF TEST = 1
{
  ASSIGN myDateTime = #"{now}"
}
//These are examples of adding to a datetime variable:

ASSIGN newDateYearNumeric = dateadd('year', myDateTime, 1) //add a single year
ASSIGN newDateYearString = "{newDateYearNumeric.asdatetime()}"

ASSIGN newDateMonthNumeric = dateadd('month', myDateTime, 1) //add a single month
ASSIGN newDateMonthString = "{newDateMonthNumeric.asdatetime()}"

ASSIGN newDateWeekNumeric = dateadd('week', myDateTime, 1) //add a single week
ASSIGN newDateWeekString = "{newDateWeekNumeric.asdatetime()}"

ASSIGN NewDateDayNumeric = dateadd('day', MyDateTime, 1) //add a single day
ASSIGN NewDateDayString = "{NewDateDayNumeric.asdatetime}"

ASSIGN newDateHourNumeric = dateadd('hour', myDateTime, 1) //add a single hour
ASSIGN newDateHourString = "{newDateHourNumeric.asdatetime()}"

ASSIGN NewDateMinuteNumeric = dateadd('minute', myDateTime, 1) //add a single minute
ASSIGN NewDateMinuteString = "{NewDateMinuteNumeric.asdatetime()}"

ASSIGN newDateSecondNumeric = dateadd('second', myDateTime, 1) //add a single second
ASSIGN newDateSecondString = "{newDateSecondNumeric.asdatetime()}"

//This is an example of subtracting from a date:
ASSIGN oldDateMonthNumeric = dateadd('month', myDateTime, -2) //remove 2 months
ASSIGN oldDateMonthString = "{0ldDateMonthNumeric.asdatetime()}"

例の結果以下のとおりで、3 March 2023を3/3/2023 10:42:44 AMのフォーマットでnowの値として使用:

newDateYearString = 3/3/2024 10:42:44 AM

newDateMonthString = 4/3/2023 10:42:44 AM

newDateWeekString = 3/10/2023 10:42:44 AM

newDateDayString = 3/4/2023 10:42:44 AM

newDateHourString = 3/3/2023 11:42:44 AM

newDateMinuteString = 3/3/2023 10:43:44 AM

newDateSecondString = 3/3/2023 10:42:45 AM

datebuild(year, month, day)

指定されたYearMonth、およびDayを用いて日付/時刻文字列を返します。

文字列で使用した場合:時刻を含む標準の日付/時刻形式でフォーマットされた数値の日付を返します。時刻のデフォルトは午前0時です。月と日の名前を使って日付を表示する場合、以下の例に示すように、asdate()またはasdatetime()関数を使用します。

数値式で使用した場合:日付をOLEオートメーション閉じた 日付を浮動小数点数として表現する方法。 1899年12月30日からの経過日数を示します。の日付-時刻文字列として返します。

IF TEST = 1
{
  ASSIGN month = "1"
  ASSIGN day = "24"
  ASSIGN year = "1936"
}

ASSIGN stringDate1 = "{datebuild(Year,Month,Day).asdate}"
ASSIGN stringDate2 = "{datebuild(Year,Month,Day)}"

ASSIGN numericDate = datebuild(Year,Month,Day)

例の結果:

  • stringDate1 = 1/24/1936
  • stringDate2 = 1/24/1936 12:00:00 AM
  • numericDate = 13173

datediff(unit, date2)

date1date2の2つの日付の差を返します。

unit は比較する日付部分を指定し、date2は変数の値と比較する日付を指定します。date2が変数内の値より大きい場合、結果は正になります。

単位の選択肢は、weekdayhourminutesecondです。

unitでは大文字と小文字が区別されます。unitを二重引用符または一重引用符で囲むか、unit名を含む変数を渡します。変数を渡す場合は、変数を引用符や中括弧で囲んではいけません。

差が小数の場合、戻り値も小数になります。例えば、変数に日付10/15/2023 6:00 AMが含まれ、date210/16/2023 6:00 PMの場合、unit の結果は1.5になります。

IF TEST = 1
{
  ASSIGN myDateTime = #"{now}"
  ASSIGN myBirthday = #"4/24/1936 10:42 PM"
}
ASSIGN weekDiff = datediff("week", myBirthday, myDateTime)
ASSIGN dayDiff = datediff("day", myBirthday, myDateTime)
ASSIGN hourDiff = datediff("hour", myBirthday, myDateTime)
ASSIGN minuteDiff = datediff("minute", myBirthday, myDateTime)
ASSIGN secondDiff = datediff("second", myBirthday, myDateTime)

例の結果:

  • dayDiff = 1584.9546875
  • hourDiff = 38038.9125
  • minuteDiff = 2282334.75
  • secondDiff = 136940085
  • weekDiff = -368.850553902116

datefmt(date, format)

指定されたフォーマット文字列を使ってdateを出力します。dateの値は次のいずれかでなければなりません。

出力formatを定義する際、フォーマット指定子を使用して、日付と時刻の外観を定義します。

ASSIGN currentTime = now
ASSIGN formCurrentTime1 ="{datefmt(currentTime, 'yyyy-MM-dd HH:mm:ss')}"
ASSIGN formCurrentTime2 ="{datefmt(currentTime, 'MM/dd/yyyy hh:mm:ss')}"
ASSIGN formCurrentTime3 ="{datefmt(currentTime, 'HHmmssyyyyMMdd')}"
ASSIGN formCurrentTime4 ="{datefmt(currentTime, 'HH:mm:ss')}"

例の結果

  • formCurrentTime1 = 2023-06-30 14:03:17
  • formCurrentTime2 = 06/30/2023 02:03:17
  • formCurrentTime3 = 14031720230630
  • formCurrentTime4 = 14:03:17

datefmt() 関数を使用して、既存の日付/時刻値から日付の一部を抽出することもできます。これを行うには、次の構文を使います。

ASSIGN <var> = "{<date var>.datefmt('<format>')}"

例:

ASSIGN myDate = #"{now}"
ASSIGN myYear2 = "{myDate.datefmt('yyyy')}"

例の結果 myYear2 = 2023

datepart(unit)

日付または時刻の一部を返します。指定されたunitに基づいて日付または時刻の一部を返します。変数には、適切にフォーマットされた日付/時刻型または文字列、OLEオートメーション番号閉じた 日付を浮動小数点数として表現する方法。 1899年12月30日からの経過日数を示します。を格納する必要があります。unitは、返す日付部分を指定します。この関数は、日付/時刻変数に対して呼び出さなければなりません。日付や時刻の値を渡した場合、関数は機能しません。

単位の選択肢は、 yearmonthdayhourminutesecond、およびdowです。

unitでは大文字と小文字が区別されます。unitを二重引用符または一重引用符で囲むか、unit名を含む変数を渡します。変数を渡す場合は、変数を引用符や中括弧で囲んではいけません。

予期せぬ入力があったために関数が完了できなかった場合、デフォルトの出力は「December 30, 1899」となります。

文字列で使用する場合

指定されたdate部分の文字列表現を返します。

  • Monthは3文字の月の略称を返します。
  • Yearは、4桁の完全な年を返します。
  • Hourは、24時間形式の時間を返します。
  • Dowは曜日を表し、曜日の名前をフルの省略されていない文字列表現として返します。たとえば、木曜日

年を除くすべての数値には、2桁未満の場合は先頭に0が付けられます。

数値式で使用した場合

指定されたdate部分の数値表現を返します。

  • Yearは、4桁の完全な年を返します。
  • Hourは、24時間形式の時間を返します。
  • Dowは曜日を表し、日曜日を0、月曜日を1、などとして、平日の序数値(0-6)を返します。
IF TEST = 1
{
  ASSIGN myDateTime = now
}
ASSIGN myYear = myDateTime.datepart('year')
ASSIGN myHour = myDateTime.datepart('hour')				
ASSIGN myMinute = myDateTime.datepart('minute')
ASSIGN mySecond = myDateTime.datepart('second')
				
ASSIGN stringMyDay = "{myDateTime.datepart('day')}"
ASSIGN numericMyDay = myDateTime.datepart('day')
				
ASSIGN stringMyMonth = "{myDateTime.datepart('month')}"
ASSIGN numericMyMonth = myDateTime.datepart('month')
							
ASSIGN stringMyDow = "{myDateTime.datepart('dow')}"
ASSIGN numericMyDow = myDateTime.datepart('dow')

例の結果:

  • myYear = 2023
  • myHour = 13
  • myMinute = 51
  • mySecond = 3
  • stringMyDay = 30
  • numericMyDOW = 5
  • stringMyDOW = Friday
  • numericMyMonth = 6
  • stringMyMonth = Jun

datetimebuild(year, month, day, hour, minute, second)

日付/時刻値を返します。予期せぬ入力があったために関数が完了できなかった場合、デフォルトの出力は「December 30, 1899」となります。

文字列で使用した場合:標準の日付/時刻形式でフォーマットされた日付/時刻を返します。

数値式で使用した場合OLEオートメーション閉じた 日付を浮動小数点数として表現する方法。 1899年12月30日からの経過日数を示します。の日付/時刻を返します。

IF TEST = 1
{
  ASSIGN month = "1"
  ASSIGN day = "24"
  ASSIGN year = "1985"
  ASSIGN hour = "15"
  ASSIGN minute = "42"
  ASSIGN second = "13"
}
ASSIGN stringDate = "{datetimebuild(year,month,day,hour,minute,second)}"
ASSIGN numericDate = datetimebuild(year,month,day,hour,minute,second)

例の結果:

  • numericDate = 31071.6543171296
  • stringDate = 1/24/1985 3:42:13 PM

dow()

曜日を06の序数値として返します。0は日曜日です。

変数には、適切にフォーマットされた日付/時刻型または文字列、OLEオートメーション番号閉じた 日付を浮動小数点数として表現する方法。 1899年12月30日からの経過日数を示します。を格納する必要があります。 予期せぬ入力があったために関数が完了できなかった場合、デフォルトの出力は「December 30, 1899」となります。

ASSIGN myNow = "{now}"
ASSIGN myDow = myNow.dow()

関数の結果は、dowが評価される時点のnow の値に依存します。

format(specifiers)

指定されたspecifiersを使用してフォーマットされた文字列を返します。specifiersは、変数に含まれる数値にのみ適用されます。pscifiersでは、以下のフォーマットを使用します。

  • Cまたはc:通貨
  • Eまたはe:科学的/指数的値
  • Fまたはf:固定小数点
  • Nまたはn:数値

  • Pまたはp:パーセント
  • Rまたはr:ラウンドトリップ
  • Xまたはx:16進数
  • 0:ゼロプレースホルダー

この関数で使用する数値フォーマットの詳細について学ぶことができます。

IF TEST = 1
{
  ASSIGN stringVal = "0013001.93912837"
  ASSIGN stringVal2 = 6002348902348890234.234432234
}
ASSIGN currencyResultBigC = "{stringVal.format('C3')}"
ASSIGN currencyResultLilC = "{stringVal.format('c')}"

ASSIGN scientificResult = "{stringVal.format('e')}"
ASSIGN scientificResult2 = "{stringVal.format('E2')}"

ASSIGN fixedPointResult = "{stringVal.format('F3')}"
ASSIGN fixedPointResult2 = "{stringVal.format('f')}"


ASSIGN numberResult = "{stringVal.format('N')}"
ASSIGN numberResult2 = "{stringVal.format('n4')}"

ASSIGN percentResult = "{stringVal.format('P')}"
ASSIGN percentResult2 = "{stringVal.format('P2')}"

ASSIGN roundTripResult = "{stringVal.format('R')}"

ASSIGN number1 = "1789789"
ASSIGN sectionSeparator1 = number1.format('###,###.##;0000.00;000.0000')

ASSIGN number2 = "0"
ASSIGN sectionSeparator2 = number2.format('0.00;0000.00;000.0000')

ASSIGN number3 = "-4321"
ASSIGN sectionSeparator3 = number3.format('0.00;0000.00;000.0000')

ASSIGN number6 = "2343.56"
ASSIGN digitPlaceholders1 = number6.format('###.###')

//Examples of the double ## and 00 placeholders

ASSIGN number4 = "456.47"
ASSIGN doubleZeroSpecifier = number4.format('00')

ASSIGN number7  = "456.47"
ASSIGN doubledigitSpecifier = number7.format('##')

//in the following example, notice the 0 in the hundredths place. 
//With the zero placeholder, it appears in the output. With the # placeholder
//it does not. 

ASSIGN number5 = "2343456.2043"
ASSIGN zeroPlaceholders = number5.format('000,000.00')

ASSIGN number8 = "2043456.2043"
ASSIGN digitPlaceholders2 = number8.format('###,###.##')

例の結果:

  • currencyResultBigC = $13,001.939
  • currencyResultLilC = $13,001.94
  • fixedPointResult = 13001.939
  • fixedPointResult2 = 13001.94
  • numberResult = 13,001.94
  • numberResult2 = 13,001.9391
  • percentResult = 1,300,193.91%
  • percentResult2 = 1,300,193.91%
  • roundTripResult = 13001.93912837
  • scientificResult = 1.300194e+004
  • scientificResult2 = 1.30E+004

index(indexValue)

指定されたindexValueに従って、変数の内容から配列要素を返します。これは、角括弧を使用して配列を読み取ることと同じです。例えば、variable[3]variable.index(3)と同じです。

Studioでは配列が0ではなく1から始まります。

IF TEST = 1
{
  ASSIGN example1 = "Beowulf|Grendel|Hrothgar|Wyrm|Breca|Scyld|Hrethel"
  ASSIGN indexValue = 3
}
ASSIGN arrayPart1 = "{example1.index(indexValue)}"

indexof(string)

変数に含まれるstringの文字位置を返します。最初の位置は1です。変数にstringが含まれていない場合、関数は値0を返します。この関数では大文字と小文字が区別されます。

IF TEST = 1
{
  ASSIGN example1 = "Beowulf|Grendel|Hrothgar|Wyrm|Breca|Scyld|Hrethel"
  ASSIGN example2 = "The Epic Poem"
}
ASSIGN arrayLoc = example1.indexof('Breca')
ASSIGN characterLoc = example2.indexof('E')
ASSIGN invalidLoc = example2.indexof('e')

iif(compare, trueval, falseval)

数字用のインラインIf。compareを評価し、その結果に応じてtruevalまたはfalsevalを返します。

compareがゼロ以外(true)の場合、truevalが返されます。

compareがゼロ(false)の場合、falsevalが返されます。

truevalfalsevalはどちらも数値または式である必要があります。文字列は使用できません。この関数は、数値の入力を期待して数値を返すことを除いては、iifs()関数と同じです。

ASSIGN val1 = 4 > 5
ASSIGN val2 = 4  < 5

ASSIGN test1 = val1 > val2
ASSIGN test2 = val1 < val2

ASSIGN trueS = "you win"
ASSIGN falseS = "try again"

ASSIGN varFalse = "{iif(test1,trueS,falseS)}"

ASSIGN varTrue = "{iif(test2,trueS,falseS)}"

例の結果:

  • varFalse = "try again"
  • varTrue = "you win"

iifs(compare, truestr, falsestr)

文字列のインラインIf。compareを評価し、その結果に応じてtruevalまたはfalsevalを返します。

compareがゼロ以外(true)の場合、truestrが返されます。

compareがゼロ(false)の場合、falsestrが返されます。

この関数は、文字列の入力を期待して文字列を返すことを除いてはiif()と同じです。

ASSIGN val1 = "grapes" 
ASSIGN val2 = "grapey"

ASSIGN test1 = val1 >  val2
ASSIGN test2 = val1 <  val2

ASSIGN trueS = "you win"
ASSIGN falseS = "try again"

ASSIGN varFalse = "{iifs(test1,trueS,falseS)}"

ASSIGN varTrue = "{iifs(test2,trueS,falseS)}"

例の結果 :

  • varFalse = "try again"
  • varTrue = "you win"

isalpha()

関数1は、変数内のすべての文字がアルファベット(A-Z、a-z)の場合、isalpha()(true)を返します。すべての文字がアルファベットでない場合、関数は0を返します。空の変数、または#や$などの特殊文字や数値を含む値の場合、0を返します。次も参照してください:isletter()

IF TEST = 1
{
  ASSIGN varAlpha = "abcde"
  ASSIGN varNum = "12345"
}
ASSIGN alphaRes1 = varAlpha.isalpha() //true
ASSIGN alphaRes2 = varNum.isalpha() //false

isdigit()

関数isdigit()は、変数内の最初の文字が1桁の数値(0-9)の場合、1(true)を返します。そうでない場合、関数は0(false)を返します。空の変数や特殊文字で始まる値の場合、0を返します。次も参照してください:isletter()

IF TEST = 1
{
  ASSIGN example1 = "12Monkeys"
  ASSIGN example2 = "Oceans11"
}
ASSIGN result1 = example1.isdigit() //This is True
ASSIGN result2 = example2.isdigit() //This is False

isletter()

関数1は、変数内の最初の文字がアルファベット1文字(A-Z、a-z)の場合、isletter()(true)を返します。そうでない場合、関数は0(false)を返します。空の変数や特殊文字で始まる値の場合、0を返します。次も参照してください:isdigit()

IF TEST = 1
{
  ASSIGN example1 = "12Monkeys"
  ASSIGN example2 = "Oceans11"
}
ASSIGN result3 = example1.isletter() //This Is False
ASSIGN result4 = example2.isletter() //This Is True

isnumeric()

関数1は、変数内のすべての文字が数字の場合、isnumeric()(true)を返します。数字以外の文字がある場合、この関数は0を返します。空の変数、または#や$などの特殊文字や数値を含む値の場合、0を返します。次も参照してください:isdigit()

IF TEST = 1
{
  ASSIGN varAlpha = "abcde"
  ASSIGN varNum = "12345"
}
ASSIGN numRes1 = varNum.isnumeric() //true
ASSIGN numRes2 = varAlpha.isnumeric() //false

islower()isupper()

関数isupper()は、変数の最初の文字が大文字の場合に1(true)を返します。そうでない場合、関数は0(false)を返します。

関数islower()は、変数の最初の文字が小文字の場合に1(true)を返します。そうでない場合、関数は0(false)を返します。

IF TEST = 1
{
  ASSIGN example1 = "Beowulf"
  ASSIGN example2 = "monster fighter"
}
ASSIGN result1 = example1.isupper() //This is true
ASSIGN result2 = example2.isupper() //This is false
ASSIGN result3 = example1.islower() //This is false
ASSIGN result4 = example2.islower() //This is true

left(number)right(number)

左端または右端のnumber文字を返します。

IF TEST = 1
{
  ASSIGN example1 = "Abc.456"
  ASSIGN locationVar = 4
}
ASSIGN stringLeftVariable = "{example1.left(locationVar - 1)}"
ASSIGN numericLeftVariable = example1.left(locationVar - 1)
ASSIGN stringRightVariable = "{example1.right(locationVar + 1)}"
ASSIGN numericRightVariable = example1.right(locationVar + 1)

例の結果

  • numericLeftVariable = Gre
  • numericRightVariable = 34567
  • stringLeftVariable = Gre
  • stringRightVariable = 34567

length()

変数の値のテキスト表現の長さを返します。例えば、値が1234.56のような数値の場合、長さは7として返されます。スペースと特殊文字も長さのカウントに含まれます。

IF TEST = 1
{
  ASSIGN example1 = "8015551234"
  ASSIGN example2 = 2357.984
  ASSIGN example3 = "Beowulf Herot"
}

ASSIGN ex1Len = example1.length()
ASSIGN ex2Len = example2.length()
ASSIGN ex3Len = example3.length()

例の結果

  • ex1Len = 10
  • ex2Len = 8
  • ex3Len = 13

ln(value)

valueの自然(基数e)対数を返します。valueは基数10の数値として指定されます。

ASSIGN natLog = "{ln(434)}"

例の結果 natLog=6.07304453410041

log10(value)

指定されたvalueの常用対数を返します。

ASSIGN log10Num = "{log10(434)}"

例の結果 log10Num=2.63748972951251

log2(value)

指定されたvalueの2進対数を返します。valueは基数10の数値として指定されます。

ASSIGN log2Num = "{log2(434)}"

例の結果 log2Num=8.76155123244448

logn(value,base)

指定されたbaseの指定されたvalueの対数を返します。両方のパラメーターは、基数10の数値として指定されます。

ASSIGN lognNum = "{logn(434,5)}"

例の結果 lognNum=3.77339472817288

max(value1,value2)min(value1,value2)

max()は、指定された2つの数値のうち大きい方を返します。

min()は、指定された2つの数値のうち小さい方を返します。

文字列値を渡すと、どちらの関数も常に0と評価されます。

IF TEST = 1
{
  ASSIGN value1 = 10
  ASSIGN value2 = 12
}
ASSIGN resultMin = min(value1, value2)

ASSIGN resultMax = max(value1, value2)

例の結果:

  • resultMin = 10
  • resultMax = 12

mid(start,length)

startからstart+lengthまでの文字を返します。最初の文字の位置は1です。start+length がソーステキストの長さを超える場合、ソーステキストの最後で自動的に切り捨てられます。

この関数はsubstr()に似ています。mid()substr()も、文字のサブセットを返します。ただし、substr()の場合、指定した始点と終点の間の文字を返す点が異なります。mid()では、関数は指定されたstartの後に、lengthで定義された指定数の文字を返します。

IF TEST = 1
{
  ASSIGN phoneNum = "8015553549"
  ASSIGN fullName = "Hrothgar King"
}
ASSIGN localNumber = "{phoneNum.mid(4,7)}"

ASSIGN spaceLoc = fullName.indexof(' ')
ASSIGN fullNameLength = fullName.length
ASSIGN firstName = "{fullName.mid(1,SpaceLoc - 1)}"
ASSIGN lastName = "{fullName.mid(SpaceLoc + 1,fullNameLength - spaceLoc)}"

例の結果:

  • firstName = Hrothgar
  • lastName = King
  • localNumber = 1234567

random(value)

ゼロ以上、指定された最大値未満の、整数の非負の乱数を返します。

1からvalueまでの範囲の値が必要な場合、関数randomの出力に1を加算できます。

ASSIGN d20Result = random(20) + 1

IF TEST = 1
{
  ASSIGN value = 10
}
ASSIGN newValue1 = random(Value)
ASSIGN newValue2 = random(Value)
ASSIGN newValue3 = random(Value)
ASSIGN newValue4 = random(Value)

replace(old,new)

oldのすべての出現箇所をnewで置き換えます。この関数は、以下のすべてのフォーマットバリエーションで機能します。

  • ASSIGN result = "{value.replace(char,'-')}"
  • ASSIGN result = value.replace(char,'-')
  • ASSIGN result = value.replace('{char}','-')
  • ASSIGN result = value.replace("{char}",'-')
IF TEST = 1
{
	ASSIGN replaceTest1 = "$1234.56"
	ASSIGN replaceTest2 = "Beowulf%Grendel^Hrothgar*@Grendel\'s mom"
	ASSIGN replaceTest3 = "It   was   a   hard   battle."
	ASSIGN replaceTest4 = "Beowulf%Grendel^Hrothgar*@Grendel\'s mom"
}

//The first example will replace the dollar sign in an amount with nothing

ASSIGN replaceTest1 = "{replaceTest1.replace('$','')}"

//The second example we are just replacing random charcters and replacing
//them with a space.  The final result is a space between each name

ASSIGN replaceTest2 = "{replaceTest2.replace('%',' ')}"
ASSIGN replaceTest2 = "{replaceTest2.replace('^',' ')}"
ASSIGN replaceTest2 = "{replaceTest2.replace('*',' ')}"
ASSIGN replaceTest2 = "{replaceTest2.replace('@','')}"

ASSIGN replaceTest3 = "{replaceTest3.replace('  ',' ')}"
ASSIGN replaceTest3 = "{replaceTest3.replace('  ',' ')}"

//The following example is the second example, but broken out so 
//each step is preserved in a separate variable that you can see
//in the Debugger panel on the right. 

ASSIGN replaceTest4a = "{replaceTest4.replace('%',' ')}"
ASSIGN replaceTest4b = "{replaceTest4a.replace('^',' ')}"
ASSIGN replaceTest4c = "{replaceTest4b.replace('*',' ')}"
ASSIGN replaceTest4d = "{replaceTest4c.replace('@','')}"

例の結果:

  • replaceTest1 = 1234.56
  • replaceTest2 = Beowulf Grendel Hrothgar Grendel\'s mom
  • replaceTest3 = It was a hard battle.
  • replaceTest4 = Beowulf%Grendel^Hrothgar*@Grendel\'s mom
  • replaceTest4a = Beowulf Grendel^Hrothgar*@Grendel\'s mom
  • replaceTest4b = Beowulf Grendel Hrothgar*@Grendel\'s mom
  • replaceTest4c = Beowulf Grendel Hrothgar @Grendel\'s mom
  • replaceTest4d = Beowulf Grendel Hrothgar Grendel\'s mom

round(value)

IEEE標準754、セクション4を使用して最も近い整数に丸められたvalueを返します(いわゆる銀行家の丸め)。

IF TEST = 1
{
  ASSIGN numEx = 102.5689
}
ASSIGN newValue = round(numEx)

例の結果numEx = 102.5689

savetodb(1or0)

この関数は、インタラクションの終了時に変数の値をデータベースに保存します。変数の値は、スクリプトの実行中に変更される可能性があることに注意してください。変数の値は、さまざまなアクションや処理によって変更されたりクリアされたりします。そうなった場合、スクリプトの特定の時点での値を保存するには、新しい変数を作成して必要な値を代入し、それをsavetodb()で使用します。

savetodb()は真の関数ではありません。これはStudioの変数のプロパティです。スニペットで作業をするときに変数に適用できます。また、Assignactionを使用する際にも設定できます。保存されたデータにアクセスする方法は2つあります。

次の例にあるように、1を引数として変数にsavetodb()を追加すると、変数の値がデータベースに保存されます。

ASSIGN variable='123123123'
variable.savetodb(1)

RUNSUBアクションでスポーンされたサブスクリプトでsavetodb()を使用する場合、この変数をグローバルとして宣言する必要があります。これにより、サブスクリプトが呼び出し元のスクリプトに制御を戻した後も、変数が持続します。変数をグローバル変数として宣言しない場合、これはサブスクリプト中だけに存在するローカル変数になります。savetodb()は、呼び出し側のスクリプトに存在する変数に対してのみ機能します。

サブスクリプト内の変数の値にアクセスするには、サブスクリプト内の変数をグローバルとして宣言する方法があります。もう1つの方法として、GET /contacts/{contactId}/custom-data中央から右上隅に矢印が向いている正方形のアイコン。APIを使用することもできます。

screenpop() and setscreenpop(1or0)

screenpop()setscreenpop()は真の関数ではありません。これらはStudioの変数のプロパティで、スクリーンポップ閉じた コンタクトに関する情報が表示される、設定可能なポップアップウィンドウ。 通常、エージェントがコンタクトに接続した場合など、特定のイベント後にエージェントの画面に表示されます。の作業時に設定できます。これらはスニペットで作業するときに変数に適用できます。また、Assign アクションでも設定できます。

1を引数として変数にsetscreenpop()を追加すると、変数の値がスクリーンポップに渡されます。

ScreenPopフラグがセットされているかどうかをチェックするには、変数にscreenpop()を追加します。プロパティは、trueの場合は1を返し、falseの場合は0を返します。

ASSIGN val1 = "name"
//ASSIGN popthis = val1.setscreenpop(1)
ASSIGN ispop = thispop.screenpop

sgn(value)

指定されたvalueの符号を示す値を返します。valueがゼロ未満の場合は-1を返し、valueがゼロに等しい場合は0を返し、valueがゼロより大きい場合は1を返します。

ASSIGN signOfNum = "{sgn(89)}, {sgn(0.00)}, {sgn(-89)}"

例の結果 signOfNum = 1, 0, -1

sin(value)

指定されたvalueのサインを返します。valueはラジアンでなければなりません。

ASSIGN angleRad = 0.394791119699762
ASSIGN sinNum = "{sin(angleRad)}"

例の結果 sinNum = 0.384615384615385

sinh(value)

指定されたvalueの双曲正弦を返します。valueはラジアンでなければなりません。

ASSIGN hSine = "{sinh(angleRad)}"

例の結果 hSine=0.405126696125173

split(delimiter)

変数の内容を、配列として扱うのに適したパイプ区切りの文字列として返します。delimiterはパイプ(|)記号に変換されます。

結果が新しい変数に割り当てられると、新しい変数は配列のように動作し、variable[index]のように配列インデクサー構文をサポートします。

splitは、スニペット内で変数を配列に変換するためにも使用できます。この方法で使用すると、変数の内容が変更されます。

IF TEST = 1
{
  ASSIGN varString = "one,two,three,four"
}
//Example One using split to assign result to a new variable

ASSIGN varArray = "{varString.split(',')}"

//Example Two using split to change the value of an existing variable to an array

VvarString.split(',')

例の結果:

  • varArray = one|two|three|four
  • varString = one|two|three|four

sqrt(value)

指定されたvalueの平方根を返します。

ASSIGN root = "{sqrt(25)}"

例の結果 root = 5

substr(start,end)

start からendまでの文字を返します。最初の文字の位置は1です。endがソーステキストの長さを超える場合、ソーステキストの最後で自動的に切り捨てられます。

この関数はmid()に似ています。mid()substr()も、文字のサブセットを返します。ただし、substr()の場合、指定した始点と終点の間の文字を返す点が異なります。mid()では、関数は指定されたstartの後に、lengthで定義された指定数の文字を返します。

IF TEST = 1
{
  ASSIGN enteredAmount = 15269
  ASSIGN phoneNum = "8015553437"

}
ASSIGN areaCode = "{phoneNum.substr(1,3)}"

ASSIGN amountLength = enteredAmount.length()
ASSIGN dollars = enteredAmount.substr(1,amountLength - 2)
ASSIGN cents = enteredAmount.substr(amountLength - 1,amountLength)
ASSIGN totalAmount = "${dollars}.{cents}"

例の結果:

  • areaCode = 801
  • totalAmount = $152.69

tan(value)

指定されたvalueの正接を返します。valueはラジアンでなければなりません。

ASSIGN angleRad = 0.394791119699762
ASSIGN tanNum = "{tan(angleRad)}"

例の結果 tanNum = 0.416666666666667

tanh(value)

指定されたvalueの双曲正接を返します。valueはラジアンでなければなりません。

ASSIGN angleRad = 0.394791119699762
ASSIGN hTan = "{tanh(angleRad)}"

例の結果 hTan = 0.375483244486081

trim()ltrim()、およびrtrim()

関数trim()は、先頭と末尾の空白文字をすべて削除した文字列を返します。空白には、スペース、タブ、改行が含まれます。

関数ltrim()は、先頭の空白文字をすべて削除した文字列を返します。

関数ritrim()は、末尾の空白文字をすべて削除した文字列を返します。

IF TEST = 1
{
  ASSIGN varString = "      Beowulf      "
}
ASSIGN trimRes = varString.trim

ASSIGN lTrimRes = varString.ltrim

ASSIGN rTrimRes = varString.rtrim

例の結果

  • trimRes = "Beowulf "
  • lTrimRes = "Beowulf      "
  • rTrimRes = "      Beowulf".

trunc(value)

指定されたvalueの整数部分を計算します。trunc()は、valueをゼロに向かって最も近い整数に丸めます。

ASSIGN truncNum = "{trunc(945.6)}, {trunc(946.9)}"

例の結果 truncNum = 945, 946

upper()lower()

関数upper()は、すべての文字が大文字に変換された変数の内容を返します。

関数lower()は、すべての文字が小文字に変換された変数の内容を返します。

IF TEST = 1
{
  ASSIGN variable1 = "Beowulf is a monster fighter"
  ASSIGN variable2 = "BEOWULF IS A MONSTER FIGHTER"
}
ASSIGN variable1  = "{variable1.upper()}"

ASSIGN variable2  = "{variable2.lower()}"

urlencode()urldecode()

関数urlencode()は、URLエンコードのインターネット標準を使用してエンコードされた変数の内容を返します。例えば、スクリーンポップ閉じた コンタクトに関する情報が表示される、設定可能なポップアップウィンドウ。 通常、エージェントがコンタクトに接続した場合など、特定のイベント後にエージェントの画面に表示されます。のURLに追加する必要がある一部のデータは、正しく送信されるようにエンコードする必要があります。

関数urldecode()は、URLエンコードのインターネット標準からデコードされた変数の内容を返します。次の例では、urldecode()がURLという変数をデコードしています。したがって、URLnewURLの値は同じです。

IF TEST = 1
{
  ASSIGN dnis= "5551234567"
  ASSIGN ani = "5550987654"
  ASSIGN waitTime = "2 02:39:42"
  ASSIGN callOriginationTime = "{datefmt(now, 'yyy-MM-dd HH:mm:ss')}"
}

ASSIGN URL = "?&sys_id=-1&sysparm_query=u_source_phone={DNIS}^u_caller_phone={ANI}^u_wait_time_string={waitTime}^opened_at={callOriginationTime}"
ASSIGN eURL = URL.urlencode()
ASSIGN popURL = "http://www.incontact.com{eURL}"

ASSIGN newURL = eURL.urldecode()