내장 함수

이 도움말 페이지의 정보는 CXone StudioDesktop Studio에 모두 적용됩니다.

Studio에는 스크립트에 사용할 수 있는 함수가 내장되어 있습니다. Snippet editor 창에서 입력할 때 팝업으로 표시되는 자동 완성 목록에서 몇 가지 내장 함수를 사용할 수 있습니다. 이 목록에서 사용할 수 없는 다른 내장 함수도 있지만, 이러한 함수도 사용할 수 있습니다. 사용 가능한 모든 함수에 관한 세부 정보는 이 페이지의 후반부에서 사용할 수 있습니다.

또한 이 페이지에서는 카테고리로 그룹화된 내장 함수 목록을 제공합니다. 이렇게 하면 작업 중인 데이터의 종류와 달성하려는 목표를 알고 있지만 함수 이름을 모를 때 더욱 쉽게 함수를 파악할 수 있습니다. 다음을 수행할 수 있는 함수의 목록을 볼 수 있습니다.

또한 카테고리에 딱 맞지 않는 기타 함수가 포함된 목록도 있습니다.

함수 도움말 페이지에서 자체 사용자 지정 함수 생성 등 Studio에서 함수 사용에 관한 자세한 내용을 알아볼 수 있습니다.

이 페이지에서는 RESTful API에 스크립트를 연결하는 데 사용할 수 있는 RestProxy와 사용하기 위한 내장 함수에 관한 정보를 제공하지 않습니다. 이러한 함수는 RestProxy 도움말 페이지에서 다룹니다.

시도해 보기

함수 예시 스크립트를 다운로드한 다음 Studio가져오기합니다. 이 도움말 페이지의 예시는 예시 스크립트의 Snippet 작업에서 사용할 수 있습니다. Snippet editor 창을 열고 디버거를 실행하여 각 예시가 작동하는 방식을 확인할 수 있습니다.

날짜 및 시간과 사용하기 위한 함수

스크립트 내에서 다음 함수를 날짜 및 시간과 함께 사용합니다. Studio는 12시간제가 아닌 24시간제를 지원합니다. 스크립트에서 시간을 다룰 때 이 점을 고려하십시오.

OLE 자동화 날짜는 부동 소수점 숫자로 기재된 날짜입니다. 소수점 왼쪽은 1899년 12월 30일 자정 이후의 날짜 수입니다. 소수점 오른쪽은 해당 날짜의 시간을 24로 나눈 수치입니다. 예를 들어 1899년 12월 31일 오전 6:00시는 1.25입니다.

기능

설명

asdate() 기본 날짜 형식을 사용하여 변수의 내용을 날짜/시간 문자열로 변환합니다.
asdatedow() 0부터 6까지의 서수 값으로 요일을 반환합니다. 여기서 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) 두 날짜 간의 차이를 반환합니다.
datefmt(format) 지정된 format을(를) 사용하여 변수의 내용을 날짜/시간 문자열로 변환합니다.
datepart(unit)

 

지정된 unit에 따라 날짜 또는 시간의 일부를 반환합니다.
datetimebuild(year, month, day, hour, minute, second) 지정된 Year, Month, Day, Hour, Minute, Second에 따라 날짜/시간 문자열을 반환합니다.
dow() 0부터 6까지의 서수 값으로 현재 요일을 반환합니다. 여기서 0은 일요일입니다.

숫자와 함께 사용하는 함수

숫자 값이 포함된 변수에 다음 함수를 사용합니다. 숫자에 사용할 수 있는 다른 함수로는 수학 계산용 함수가 있습니다.

기능

설명

ceil(value

지정된 value과(와) 동일하거나 이보다 큰 최소 정수를 반환합니다.

floor(value

R 지정된 value 이하의 정수 중 가장 큰 정수를 반환합니다.

format(format) 지정된 format을(를) 사용하여 형식이 지정된 숫자 문자로 된 문자열을 반환합니다.
isdigit() 변수의 내용을 평가하여 첫 문자가 숫자(0-9)인지 여부를 결정합니다.
isnumeric() 변수의 내용을 평가하여 모든 문자가 알파벳(A-Z 또는 a-z)인지 여부를 결정합니다.
max(value1, value2) min(value1, value2) 두 특정 값 중 더 큰 값 또는 더 작은 값을 반환합니다.
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)

탄젠트가 지정된 두 특정 숫자 (x, y)의 몫인 각도를 라디안 단위로 반환합니다.

cos(value)

지정된 value의 코사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

cosh(value)

지정된 value의 쌍곡선 코사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

exp(value)

value에 지정된 숫자를 거듭제곱한 숫자를 반환합니다.

ln(value)

value의 자연(밑수: e) 로그를 반환합니다. value은(는) 밑수가 10인 숫자로 지정됩니다.

log10(value)

지정한 value의 밑수가 10인 로그값을 반환합니다.

log2(value, base)

지정한 value의 밑수가 2인 로그값을 반환합니다. value은(는) 밑수가 10인 숫자로 지정됩니다.

logn(value, base)

지정된 base에서 지정된 value의 로그를 반환합니다. 두 매개변수 모두 10진수로 지정됩니다.

round(value)

지정된 value을(를) 가장 가까운 정수로 반올림합니다.

sgn(value)

지정된 value의 기호를 나타내는 값을 반환합니다. value이(가) 0보다 작으면 -1, value이(가) 0이면 0, value이(가) 0보다 크면 1을(를) 반환합니다.

sin(value)

지정된 value의 사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

sinh(value)

지정된 value의 쌍곡선 사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

sqrt(value)

value에서 지정된 지정된 값의 제곱근을 반환합니다.

tan(value)

지정된 value의 탄젠트를 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

tanh(value)

지정한 value의 쌍곡선 탄젠트를 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

trunc(value)

지정된 value의 정수 부분을 계산합니다. trunc()은(는) value을(를) 0에 가장 가까운 정수로 반올림합니다.

값 수정을 위한 함수

값을 다른 값으로 할당할 때 변수의 값에서 어떤 내용을 변경하려 할 때는 다음 함수를 사용하십시오.

이 테이블의 함수와 더불어, 날짜 및 시간 함수 중 상당수는 값을 수정하는 데 사용할 수 있습니다. 예를 들면, 날짜 값을 다른 날짜 형식으로 수정할 수 있습니다.

기능

설명

append(text) 첫 변수의 내용을 두 번째 변수에 추가합니다.
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)

숫자에 대해 Inline-If입니다. compare을(를) 평가한 다음 평가 결과에 따라 trueval 또는 falseval을(를) 반환합니다.

iifs(compare, trueval, falseval)

문자열 inline-if입니다. compare을(를) 평가한 다음 평가 결과에 따라 trueval 또는 falseval을(를) 반환합니다.

isnull()

동적 데이터 개체 또는 개체의 속성이 null(정의되지 않음 또는 0)인지 확인합니다.

savetodb(1or0) 변수의 값이 데이터에 저장되게 할 수 있습니다.
screenpop()

ScreenPop 플래그가 변수에 설정되는지 여부를 나타내는 값을 반환합니다.

setscreenpop(1or0)

현재 ACD 스킬닫힘 상담원 스킬, 능력 및 지식에 기반한 인터랙션의 전달을 자동화하는 데 사용됩니다.에서 화면 팝업 사용이 활성화되어 있는 경우 화면 팝업닫힘 컨택에 대한 정보가 있는 구성할 수 있는 팝업 창입니다. 일반적으로 상담원이 컨택에 연결할 때와 같은 특정 이벤트 후 상담원의 화면에 나타납니다.에서 사용되는 변수의 값을 가질 수 있게 됩니다. 이 함수는 디지털 스크립트와 작동하지 않습니다. 디지털 스크립트와 화면 팝업을 사용하려는 경우에는 POPURL 작업 또는 RUNAPP 작업(CXone Studio의 도움말 페이지: POPURL 작업 또는 RUNAPP 작업)

setscreenpop()은(는) 실제 함수가 아닙니다. 화면 팝업닫힘 컨택에 대한 정보가 있는 구성할 수 있는 팝업 창입니다. 일반적으로 상담원이 컨택에 연결할 때와 같은 특정 이벤트 후 상담원의 화면에 나타납니다.으로 작업할 때 설정할 수 있는 Studio의 변수 속성입니다. 스니펫으로 작업할 때 변수에 적용할 수 있습니다. 또한 Assign 작업을 사용하여 변수를 생성할 때도 설정할 수 있습니다.

setscreenpop()을(를) 1이(가) 있는 변수에 인수로 추가하면 변수의 값이 화면 팝업으로 전달됩니다.

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()}" 

이 예시의 결과는 함수가 실행될 때 현재 지역 날짜에 따라 달라집니다. 현재 지역 날짜가 07/03/2023이면 결과는 다음과 같습니다.

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

asdatedow()

asdatedow는 문자열 콘텐츠를 구문 분석하여 변수의 콘텐츠를 OLE 자동화 날짜/시간으로 변환한 다음, 0에서 6까지의 서수 값으로 요일을 반환합니다. 여기서 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:00 AM입니다.

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로 변환합니다. 날짜의 형식은 변수의 원래 내용에 따라 달라집니다.

문자열 표현식 사용 시: 함수가 OLE 자동화 날짜/시간의 값을 GMT 또는 UTC로 변환합니다. 변수는 날짜/시간의 올바른 문자열 표현을 포함해야 합니다. 소스 시간은 테넌트닫힘 고급 조직 그룹화는 CXone 환경을 위해 기술 지원, 청구 및 글로벌 설정을 관리하는 데 사용됩니다. 시간대를 따르거나 Timezone 작업 (CXone Studio의 도움말 페이지: Timezone 작업)을 통해 설정된 시간대를 따릅니다.

문자열 표현식 사용 시: 함수가 날짜/시간 문자열의 값을 GMT 또는 UTC로 변환합니다. 예를 들면 “Mon, 03 Oct 2022 13:35:14 GMT”입니다.

이 함수를 사용할 때, 변수에 포함된 시간 형식은 다음 중 하나를 포함할 수 없습니다.

  • UTC로부터의 오프셋입니다.
  • 2022-03-04 18:54:39.000Z 등 A~Z 캐릭터입니다. Z가 포함되면 시간의 GMT/UTC로부터 오프셋이 0이라는 의미입니다.

이 중 하나를 포함하는 경우, 원래 시간대가 사업부의 시간대와 다른 것으로 표시되기 때문에, 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() 함수는 숫자 또는 부울닫힘 참 및 거짓과 같은 두 가지의 가능한 값을 가진 데이터 형식. 값 등 개체 내의 모든 것을 큰따옴표로 묶인 문자열로 변환합니다. 적절한 형식의 숫자 또는 부울 값을 JSON에 사용해야 하는 경우 스크립트에서 이를 활용할 수 있습니다. 한 가지 방법으로는 replace() 함수 사용이 있습니다. 문자열 값의 따옴표를 null로 대체할 수 있습니다.

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()}"		

또 다른 해결책은 동적 개체를 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)

탄젠트가 지정된 두 특정 숫자 (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)

예시의 결과입니다:

  • newValue1은(는) 102입니다.
  • newValue1은(는) 103입니다.

contains(value)

변수에 지정된 value이(가) 포함되어 있으면 1(참) 값을 반환합니다. 변수가 배열로 된 경우, 모든 요소가 정확한 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

예시의 결과입니다:

  • stringFoundRes1은(는) 1(참)입니다.
  • stringFoundRes2은(는) 0(거짓)입니다.
  • DNISFoundRes1은(는) 1(참)입니다.
  • DNISFoundRes2은(는) 0(거짓)입니다.

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은(는) 라디안(radian) 단위여야 합니다.

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

예시의 결과입니다 cosNum=0.923076923076923

cosh(값)

지정된 value의 쌍곡선 코사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

 ASSIGN hCosine = "{cosh(angleRad)}"

예시의 결과입니다 hCosine=1.07894746856059

count()size()

배열 내의 구성요소 수를 반환합니다. size()에는 배열만 사용할 수 있습니다. count()에는 개체에 있는 배열만 사용할 수 있습니다.

값이 배열은 아니지만 비어 있지 않은 경우, 값 1(참)이(가) 반환됩니다. 값이 비어 있으면 0(거짓)이(가) 반환됩니다

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)

예시의 결과입니다:

  • exSizeex1Count은(는) 7입니다.
  • ex2Sizeex2Count은(는) 1입니다.
  • ex3Sizeex3Count은(는) 0입니다.
  • ex4Count은(는) 2입니다.

dateadd(unit, date, value)

datevalue에 따라 새 날짜를 반환합니다.. 새로운 날짜는 OLE 자동화닫힘 날짜를 부동 소수점 정수로 쓰는 방법입니다. 1899년 12월 30일 이후의 일수를 나타냅니다. 날짜/시간으로 반환됩니다. value의 해석은 unit에 의해 결정됩니다. value이(가) 음수면 value은(는) date에서 빠집니다.

가장 좋은 방법은 아래 예시와 같이 유효한 날짜/시간 변수를 전달하는 것입니다(myDateTime 값 앞에 숫자 기호( #)가 있는 경우). 이에 따라 날짜/시간 변수가 만들어집니다.

단위에 대해 사용 가능한 선택: year, month, week, day, hour, minute, second.

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()}"

다음과 같이 예시의 결과입니다입니다. now의 값으로 3/3/2023 10:42:44 AM 형식을 사용하면 3 March 2023이 됩니다.

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)

제공된 Year, Month, 및 Day을(를) 사용하여 날짜/시간 문자열을 반환합니다.

문자열에서 사용하는 경우: 시간을 포함한 표준 날짜/시간 형식으로 형식이 지정된 숫자 날짜를 반환합니다. 시간의 기본값은 자정입니다. 날짜가 월과 일 이름을 사용하기를 원하는 경우 아래 예시처럼 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을(를) 반환합니다.

unit 은(는) 비교할 날짜 부분을 지정하며, date2은(는) 변수의 값과 비교할 날짜를 지정합니다. date2이(가) 변수 내의 값보다 큰 경우에는 결과가 양수입니다.

단위에 대해 사용 가능한 선택: week, day, hour, minute, second.

unit은(는) 대소문자를 구분합니다. unit을(를) 큰따옴표 또는 작은따옴표로 묶거나 unit이(가) 포함된 변수를 전달합니다. 변수를 전달할 때는 변수를 따옴표 또는 중괄호로 묶지 마십시오.

차이가 소수라면 반환되는 값 역시 소수입니다. 예를 들어 변수가 날짜-시간 10/15/2022 6:00 AM 을 포함하고 date2이(가) 10/16/2022 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은(는) 반환할 날짜 부분을 지정합니다. 이 함수는 날짜/시간 변수로 호출해야 합니다. 함수에 날짜/시간 값을 전달하면 작동하지 않습니다.

에 대해 사용 가능한 선택 항목은 year, month, day, hour, minute, second, dow입니다.

unit은(는) 대소문자를 구분합니다. unit을(를) 큰따옴표 또는 작은따옴표로 묶거나 unit이(가) 포함된 변수를 전달합니다. 변수를 전달할 때는 변수를 따옴표 또는 중괄호로 묶지 마십시오.

예상치 못했거나 잘못된 입력으로 인해 함수를 완료할 수 없는 경우, 기본 출력은 1899년 12월 30일입니다.

문자열에서 사용하는 경우:

지정된 date 부분을 문자열로 표현하여 반환합니다:

  • Month은(는) 달의 3글자 약자를 반환합니다.
  • Year은(는) 연도를 4자리 숫자로 반환합니다.
  • Hour은(는) 24시간 형식으로 시간을 반환합니다.
  • Dow은(는) 요일을 의미하며, 약자가 아닌 요일의 전체 이름을 문자열로 반환합니다. 예를 들면 '목요일'입니다.

연도를 제외한 모든 숫자 값은 2자리 미만인 경우 접두사 0이(가) 붙습니다.

숫자 표현식에서 사용하는 경우:

지정된 date 부분을 숫자로 표현하여 반환합니다:

  • Year은(는) 연도를 4자리 숫자로 반환합니다.
  • Hour은(는) 24시간 형식으로 시간을 반환합니다.
  • Dow은(는) 요일을 의미하며, 1주일 기준으로 요일의 순서를 서수(0-6)로 표시합니다. 예를 들면 일요일은 0, 월요일은 1 등입니다.
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)

날짜/시간 값을 반환합니다. 예상치 못했거나 잘못된 입력으로 인해 함수를 완료할 수 없는 경우, 기본 출력은 1899년 12월 30일입니다.

문자열에서 사용되는 경우: 표준 날짜/시간 형식으로 날짜/시간 형식을 반환합니다.

숫자 표현식으로 사용하는 경우 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()

0부터 6까지의 서수 값으로 요일을 반환합니다. 여기서 0은 일요일입니다.

함수에는 날짜/시간 유형 또는 적절히 형식이 지정된 날짜/시간인 문자열 또는 OLE 자동화 숫자닫힘 날짜를 부동 소수점 정수로 쓰는 방법입니다. 1899년 12월 30일 이후의 일수를 나타냅니다.가 포함되어야 합니다. 예상치 못했거나 잘못된 입력으로 인해 함수를 완료할 수 없는 경우, 기본 출력은 1899년 12월 30일입니다.

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

함수의 결과는 now when dow이(가) 평가될 때 값에 따라 달라집니다.

format(specifiers)

지정된 specifiers을(를) 사용하여 형식화된 문자열을 반환합니다. specifiers은(는) 변수 내 포함된 숫자 값에만 적용됩니다. pscifiers의 경우, 다음 형식 지정자를 사용합니다.

  • C 또는 c: 통화
  • E 또는 e: 과학/지수
  • F 또는 f: 고정 소수점
  • N 또는 n: 숫자

  • P 또는 p: 백분율
  • R 또는 r: 라운드 트립
  • X 또는 x: 16진수
  • 0: 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배열은(는) 1로 시작하며, 0으로 시작하지 않습니다.

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)

숫자에 대해 Inline-If입니다. compare을(를) 평가한 다음 평가 결과에 따라 trueval 또는 falseval을(를) 반환합니다.

compare이(가) 0이 아니면(참) trueval이(가) 반환됩니다.

compare이(가) 0이면(거짓) 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)

문자열 inline-if입니다. compare을(를) 평가한 다음 평가 결과에 따라 trueval 또는 falseval을(를) 반환합니다.

compare이(가) 0이 아니면(참) truestr이(가) 반환됩니다.

compare이(가) 0이면(거짓) 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()

변수 내의 모든 문자가 알파벳 문자(A-Z, a-z)인 경우 isalpha() 함수는 1(참)을(를) 반환합니다. 일부 문자가 알파벳이 아닌 경우 함수는 0을(를) 반환합니다. 빈 변수 또는 특수 문자(예: # 또는 $) 또는 숫자가 포함된 값은 0을(를) 반환합니다. isletter()도 참조하십시오.

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

isdigit()

isdigit() 함수는 변수 내의 첫 번째 문자가 숫자(0-9)인 경우 1(참)을(를) 반환합니다. 아니면 함수는 0(거짓)을(를) 반환합니다. 빈 변수 또는 특수 문자로 시작하는 값은 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()

isletter() 함수는 변수 내의 첫 번째 문자가 알파벳 문자(A-Z, a-z)인 경우 1(참)을(를) 반환합니다. 아니면 함수는 0(거짓)을(를) 반환합니다. 빈 변수 또는 특수 문자로 시작하는 값은 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()

변수 내의 모든 문자가 숫자인 경우 isnumeric() 함수는 1(참)을 반환합니다. 문자가 숫자가 아닌 경우 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(참)을(를) 반환합니다. 아니면 함수는 0(거짓)을(를) 반환합니다.

islower() 함수는 변수의 첫 문자가 소문자인 경우 1(참)을(를) 반환합니다. 아니면 함수는 0(거짓)을(를) 반환합니다.

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의 밑수가 10인 로그값을 반환합니다.

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()은(는) 지정된 두 가지 숫자 값 중 더 큰 값을 반환합니다.

min()은(는) 지정된 두 가지 숫자 값 중 더 작은 값을 반환합니다.

문자열 값을 전달하면 두 함수 모두 항상 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)

0보다 크거나 같고 지정된 최대값보다 작은 음이 아닌 정수 난수를 반환합니다.

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의 값 속성입니다. 스니펫으로 작업할 때 변수에 적용할 수 있습니다. 또한 Assign action을 사용할 때도 설정할 수 있습니다. 저장된 데이터에는 다음과 같은 두 가지 방법으로 액세스할 수 있습니다.

다음 예제처럼 savetodb()을(를) 1이(가) 있는 변수에 인수로 추가하면 변수 값이 데이터베이스에 저장됩니다.

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

savetodb()을(를) RUNSUB 작업과 함께 생성된 하위 스크립트에서 사용하는 경우 변수를 전역으로 선언해야 합니다. 이렇게 하면 하위 스크립트가 호출 스크립트에 제어권을 반환한 후에도 변수가 유지됩니다. 변수를 글로벌로 선언하지 않으면 해당 변수는 하위 스크립트 안에만 존재하는 로컬 변수가 됩니다. savetodb()은(는) 호출 스크립트에 존재하는 변수에서만 작동합니다.

하위 스크립트에 있는 변수를 글로벌로 선언하는 것은 하위 스크립트에 있는 변수의 값에 액세스하는 한 가지 방법입니다. 다른 옵션은 GET /contacts/{contactId}/custom-data 중앙에서 오른쪽 상단 모서리 방향으로 가리키는 화살표가 있는 사각형 아이콘입니다. API를 사용하는 것입니다.

screenpop() and setscreenpop(1or0)

screenpop()setscreenpop()은(는) 실제 함수가 아닙니다. 화면 팝업닫힘 컨택에 대한 정보가 있는 구성할 수 있는 팝업 창입니다. 일반적으로 상담원이 컨택에 연결할 때와 같은 특정 이벤트 후 상담원의 화면에 나타납니다.으로 작업할 때 설정할 수 있는 Studio에 있는 함수의 속성입니다. 스니펫으로 작업할 때 변수에 적용할 수 있습니다. 또한 Assign 작업으로 설정할 수도 있습니다.

setscreenpop()을(를) 1이 있는 변수에 인수로 추가하면 변수의 값이 화면 팝업으로 전달됩니다.

screenpop()을(를) 변수에 추가하여 ScreenPop 플래그가 설정되었는지 확인합니다. 변수는 참일 경우 1을(를), 거짓일 경우 0을(를) 반환합니다.

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

sgn(value)

지정된 value의 기호를 나타내는 값을 반환합니다. value이(가) 0보다 작으면 -1, value이(가) 0이면 0, value이(가) 0보다 크면 1을(를) 반환합니다.

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

예시의 결과입니다 signOfNum = 1, 0, -1

sin(value)

지정된 value의 사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

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

예시의 결과입니다 sinNum = 0.384615384615385

sinh(value)

지정된 value의 쌍곡선 사인을 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

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은(는) 라디안(radian) 단위여야 합니다.

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

예시의 결과입니다 tanNum = 0.416666666666667

tanh(value)

지정한 value의 쌍곡선 탄젠트를 반환합니다. value은(는) 라디안(radian) 단위여야 합니다.

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을(를) 0에 가장 가까운 정수로 반올림합니다.

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() 함수는 인터넷 표준 FOR URL 인코딩을 사용하여 인코딩된 변수의 콘텐츠를 반환합니다. 예를 들어, 화면 팝업닫힘 컨택에 대한 정보가 있는 구성할 수 있는 팝업 창입니다. 일반적으로 상담원이 컨택에 연결할 때와 같은 특정 이벤트 후 상담원의 화면에 나타납니다.을 위해 URL에 추가해야 하는 데이터의 일부는 제대로 전송하려면 인코딩해야 합니다.

urldecode() 함수는 인터넷 표준 for 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()