Funções internas

O Studio tem funções internas que você pode usar nos seus scripts. Algumas das funções internas estão disponíveis na lista de auto-preenchimento que aparece quando você digita na janela do Snippet editor. Há outras funções internas que não estão disponíveis nesta lista, mas você ainda pode usá-las. Informações detalhadas sobre todas as funções internas disponíveis estão disponíveis na segunda metade desta página.

Esta página também fornece listas das funções internas agrupadas em categorias. Isto torna mais fácil localizar uma função quando você não sabe o nome dela mas sabe o tipo de dados com o qual está trabalhando e o que gostaria de realizar. Você pode ver listas de funções que permitem que você:

Também há uma lista com outras funções que não se encaixam nas outras categorias.

Você pode aprender mais sobre o uso de funções no Studio, incluindo a criação de suas próprias funções personalizadas, na página da ajuda Funções.

Esta página não fornece informações sobre as funções internas para uso com RestProxy, o serviço que você pode usar para conectar seus scripts a APIs RESTful. Estas funções são descritas na página da ajuda RestProxy.

Experimentando scripts com funções

Baixe o script de exemplos de funções e importe-o para o Studio. Os exemplos desta página de ajuda estão disponíveis nas ações Snippet no script de exemplo. É possível abrir a janela Snippet Editor e executar o depurador para ver como cada exemplo funciona.

Funções para uso com datas e horas

Use as seguintes funções com datas e horas nos seus scripts.

Uma Data de automação OLE é uma data escrita como um número de ponto flutuante. O lado esquerdo do ponto decimal é o número de dias desde a meia-noite, 30 de dezembro de 1899. O lado direito do ponto decimal são as horas naquele dia divididas por 24. Por exemplo, 6:00 da manhã de 31 de dezembro de 1899 é 1,25.

Função

Descrição

asdate() Converte o conteúdo de uma variável em uma string de data/hora usando o formato de data padrão.
asdatedow() Retorna o dia da semana como um valor ordinal de 0 a 6 em que 0 é domingo.
asdatetime() Converte o valor da variável em uma string de data/hora usando o formato de data/hora especificado.
asgmt() e asutc() Converte o conteúdo da variável em uma string de data/hora convertida para GMT ou UTC.
asisodatetime()

Converte o valor de uma variável para um formato de data/hora ISO 8601: aaaa-MM-ddTHH:mm:ss.SSSXXX.

astime() Converte o conteúdo da variável para um valor de tempo.
dateadd(date, value) Retorna uma nova data com base na date mais o value.
datebuild(year, month, day) Retorna uma string de data/hora usando o Ano, Mês e Dia especificado.
datediff(unit,date1, date2) Retorna a diferença entre duas datas.
datefmt(format) Converte o conteúdo de uma variável para uma string de data/hora usando o format especificado.
datepart(unit)

 

Retorna uma parte de uma data ou hora de acordo com o unit especificado.
datetimebuild(year, month, day, hour, minute, second) Retorna uma string de data/hora com base nos Year, Month, Day, Hour, Minute, Second especificados.
dow() Retorna o dia da semana atual como um valor ordinal de 0 a 6 onde 0 é domingo.

Funções para uso com números

Use as seguintes funções com variáveis que contêm valores numéricos. Outras funções que você pode usar com números são as funções para cálculos matemáticos.

Função

Descrição

ceil(value

R etorna o menor número inteiro maior ou igual ao value especificado.

floor(value

R etorna o maior número inteiro menor ou igual ao value especificado.

format(format) Retorna uma string com os caracteres formatados usando o format especificado.
isdigit() Avalia o conteúdo de uma variável pra determinar se o primeiro caractere é numérico (0-9).
isnumeric() Avalia o conteúdo de uma variável para determinar se todos os caracteres são alfabéticos (A-Z ou a-z).
max(value1, value2) e min(value1, value2) Retorna o maior ou o menor valor de dois valores especificados.
random() Retorna um número inteiro não negativo aleatório.
round(value) Arredonda o value especificado para o número inteiro mais próximo.

Funções para uso com letras

Use as seguintes funções com variáveis que contêm letras:

Função

Descrição

isalpha() Avalia o conteúdo de uma variável para determinar se todos os caracteres são alfabéticos (A-Z ou a-z).
isletter()

Avalia o conteúdo de uma variável para determinar se o primeiro caractere é alfabético (a-z or A-Z).

islower() e isupper() Avalie o conteúdo de uma variável para determinar se o primeiro caractere é escrito em letra minúscula (a-z) ou maiúscula (A-Z).
lower() e upper()

Converte todos os caracteres de letras no valor para minúsculas (a-z) ou maiúsculas (A-Z).

Funções para efetuar cálculos

Use estas funções para realizar cálculos matemáticos Estas funções não estão disponíveis na lista de auto-preenchimento que aparece quando você usa uma ação SNIPPET, mas elas funcionam se inseridas manualmente.

Função

Descrição

abs(value)

Retorna o valor absoluto do value especificado.

acos(value)

Retorna o ângulo em radianos cujo cosseno é o value especificado.

asin(value)

Retorna o ângulo em radianos cujo seno é o value especificado.

atan(value)

Retorna o ângulo em radianos cuja tangente é o value especificado.

atan2(x, y)

Retorna o ângulo em radianos cuja tangente é o quociente dos dois números especificados (x, y).

cos(value)

Retorna o cosseno do value especificado. O value deve ser em radianos.

cosh(value)

Retorna o cosseno hiperbólico do value especificado. O value deve ser em radianos.

exp(value)

Retorna o número elevado à potência especificada no value.

ln(value)

Retorna o logaritmo natural (base e) do value. O value é especificado como um número de base 10.

log10(value)

Retorna o logaritmo de base 10 do value especificado.

log2(value, base)

Retorna o logaritmo de base 2 do value especificado. O value é especificado como um número de base 10.

logn(value, base)

Retorna o logaritmo do value especificado na base especificada. Ambos os parâmetros são especificados como números de base 10.

round(value)

Arredonda o value especificado para o número inteiro mais próximo.

sgn(value)

Retorna um valor que indica o sinal do value especificado. Retorna -1 se value for menor que zero, 0 se o value for igual a zero e 1 se o value for maior que zero.

sin(value)

Retorna o seno do value especificado. O value deve ser em radianos.

sinh(value)

Retorna o seno hiperbólico do value especificado. O value deve ser em radianos.

sqrt(value)

Retorna a raiz quadrada do value especificado.

tan(value)

Retorna a tangente do value valor especificado. O value deve ser em radianos.

tanh(value)

Retorna a tangente hiperbólica do value especificado. O value deve ser em radianos.

trunc(value)

Calcula a parte integral do value especificado. trunc() arredonda o value para o número inteiro mais próximo para zero.

Funções para modificar valores

Use as seguintes funções quando quiser alterar algo sobre o valor de uma variável ao atribuir o valor a uma variável diferente.

Além das funções nesta tabela, muitas das funções para datas e horas permitem que você altere valores. Por exemplo, é possível converter um valor de data para um formato de data diferente.

Função

Descrição

append(text) Adiciona o conteúdo da primeira variável para uma segunda variável.
asjson() e asxml() Converte o conteúdo de uma variável para JSON ou XML.
dateadd(date, value)

Retorna uma nova data com base na date mais o value.

datefmt(format)

Converte o conteúdo de uma variável para uma string de data/hora usando o format especificado.

format(format) Retorna uma string com os caracteres formatados usando o format especificado.
lower() e upper()

Converte todos os caracteres de letras no valor para minúsculas (a-z) ou maiúsculas (A-Z).

replace(old, new) Substitui todas as ocorrências de old por new.
split(delimiter) Converte o conteúdo de uma variável em uma string delimitada por barra que pode ser tratada como uma matriz. Substitui o delimiter especificado e existente por um caractere de barra.
trim() , ltrim() e rtrim() Retorna uma string com caracteres de espaço em branco removidos. É possível ter todos os espaços em branco removidos, ou apenas os que sucedem ou os que precedem caracteres.
urlencode() e urldecode() Codifica ou decodifica um URL de acordo com o padrão da Internet para codificação de URL.

Funções para determinar o que vai estar em um valor

Use estas funções para ver o que uma variável contém:

Função

Descrição

contains(value) Avalia uma variável para o value especificado.
count() Retorna o número de elementos em uma matriz ou objeto.
index(indexValue) Retorna o elemento da matriz do conteúdo da variável de acordo com o indexValue especificado.
indexof(text) Retorna a posição de caractere do text especificado no conteúdo da variável.
isalpha () Avalia o conteúdo de uma variável para determinar se todos os caracteres são alfabéticos (A-Z ou a-z).
isdigit() Avalia o conteúdo de uma variável pra determinar se o primeiro caractere é numérico (0-9).
isletter()

Avalia o conteúdo de uma variável para determinar se todos os caracteres são alfabéticos (A-Z ou a-z).

isnumeric()

Avalia o conteúdo de uma variável para determinar se todos os caracteres são numéricos (0-9).

isupper() e islower() Avalie o conteúdo de uma variável para determinar se o primeiro caractere é escrito em letra minúscula (a-z) ou maiúscula (A-Z).
length() Retorna o número de caracteres no valor da variável.
left() e right() Retorna os caracteres mais à esquerda e mais à direita do conteúdo da variável, se estes caracteres forem números O número dos caracteres retornados é baseado no count especificado.
size()

Retorna o número de elementos em uma matriz.

Funções para extrair parte de um valor

Use estas funções quando quiser extrair parte de um valor de uma variável pra usar em uma variável diferente:

Função

Descrição

datepart(unit)

Retorna uma parte de uma data ou hora de acordo com o unit especificado.

index(indexValue) Retorna o elemento da matriz do conteúdo da variável de acordo com o indexValue especificado.
left(count) e right(count) Retorna os caracteres mais à esquerda e mais à direita do conteúdo da variável, se estes caracteres forem números O número dos caracteres retornados é baseado no count especificado.
mid(start, length) Retorna os caracteres de start até start+length.
substr(start, end) Retorna os caracteres de start até end.

Funções para uso com matrizes

As seguintes funções trabalham com matrizes.

Função

Descrição

count()

Retorna o número de elementos em uma matriz ou objeto.

index(indexValue)

Retorna o elemento da matriz do conteúdo da variável de acordo com o indexValue especificado.

indexof(text)

Retorna a posição de caractere do text especificado no conteúdo da variável.

size()

Retorna o número de elementos em uma matriz.

split(delimiter)

Converte o conteúdo de uma variável em uma string delimitada por barra que pode ser tratada como uma matriz. Substitui o delimiter especificado e existente por um caractere de barra.

Outro

Função

Descrição

char(code)

Retorna um caractere do valor code do código ASCII, que permite que um script adicione programaticamente caracteres especiais a uma string.

copy(objectName)

Cria uma cópia dos dados que o objeto de dados dinâmicos objectName contém. A cópia fica separada dos dados originais, portanto é possível alterar o valor em uma versão sem afetar o mesmo valor na outra versão.

iif(compare, trueval, falseval)

Inline-If para números. Avalia compare e em seguida retorna trueval ou falseval dependendo dos resultados da avaliação.

iifs(compare, trueval, falseval)

String inline-if. Avalia compare e, em seguida, retorna trueval ou falseval dependendo dos resultados da avaliação.

isnull()

Determina se um objeto de dados dinâmicos ou uma propriedade de um objeto é nulo (indefinido ou 0).

savetodb(1or0) Permite que você tenha o valor de uma variável salvo no banco de dados.
screenpop()

Retorna um valor indicando se a sinalização ScreenPop está definida na variável.

setscreenpop(1or0)

Permite que você use um valor de variável no pop de telaFechado Uma janela pop-up configurável com informações sobre o contato. Aparece na tela de um agente após um determinado evento, geralmente quando o agente se conecta a um contato. se a competênciaFechado Usado para automatizar a entrega de interações com base nas competências, habilidades e conhecimento do agente. ACD atual tiver a opção Usar pops de tela ativada.

setscreenpop() não é uma função true. Ela é uma propriedade de variáveis no Studio que você pode definir ao trabalhar com pops de telaFechado Uma janela pop-up configurável com informações sobre o contato. Aparece na tela de um agente após um determinado evento, geralmente quando o agente se conecta a um contato.. É possível aplicá-la a variáveis ao trabalhar com snippets. Você também pode defini-la quando usar a ação Assign para criar variáveis.

Adicione setscreenpop() a uma variável com 1 como o argumento para ter o valor da variável passado ao pop de tela.

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

 

Todas as funções disponíveis

Esta seção fornece informações detalhadas sobre o uso de cada função interna. Salvo quando indicado em contrário, você pode invocar estas funções em qualquer lugar onde usaria uma variável ou expressão.

abs(value)

Retorna o valor absoluto do value especificado.

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

O(s) resultado do exemplo é abVal = 42

acos(value)

Retorna o ângulo em radianos cujo cosseno é o value especificado.

ASSIGN angleRad3 = "{acos(cosNum)}"

O(s) resultado do exemplo é angleRad3 = 0.394791119699762

append(string)

Adiciona o string ao final do conteúdo existente dentro da variável Esta função funciona apenas dentro de uma ação Snippet ou 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)

O(s) resultados do exemplo são:

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

asdate()

Converte o conteúdo de uma variável em uma string de data/hora usando o formato de data padrão.

Quando usada como uma expressão de string: converte o conteúdo da variável em uma string de data/hora.

Quando usada como uma expressão numérica: converte o conteúdo da variável em uma data-hora de automação OLE, analisando o conteúdo da string. O conteúdo da string deve corresponder a um dos formatos de data padrão do Windows, como mm/dd/yyyy.

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

Os resultados deste exemplo dependem da data local atual de quando a função é executada. Se a data local atual for 07/03/2023. os resultados são:

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

asdatedow()

Converte o conteúdo da variável em uma data-hora de automação OLE analisando o conteúdo da string, e retorna o dia da semana como um valor ordinal de 0 a 6, em que 0 é domingo. O conteúdo da string deve corresponder a um dos formatos de data padrão do Windows, como MM/dd/yyyy.

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

O(s) resultados do exemplo são

  • myDow = 1
  • newToday = Monday

asdatetime()

Converte o valor da variável em uma string de data/hora usando o formato de data/hora especificado.

Quando usada como uma string: Converte o conteúdo da variável em uma string de data e hora.

Quando usada como um valor numérico: Converte o conteúdo da variável em uma data- hora de automação OLE, analisando o conteúdo da string. O conteúdo das strings deve corresponder a um dos formatos data-hora padrão do Windows, como MM/dd/yyyy HH:mm:ss.

Caso passe uma data sem uma hora, a função adiciona uma hora. O padrão é 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()}"
		

O(s) resultados do exemplo são:

  • numericDateTime = 45110.3720486111 (quando a data/hora local atual é 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() e asutc()

A função asgmt() converte o tempo em GMT e a função asutc() converte o tempo em UTC. O formato da data depende do conteúdo original da variável.

Quando usada com uma expressão de string: As funções convertem o valor para uma data/hora de automação OLE traduzida em GMT ou UTC. A variável deve conter uma representação de sequência válida de uma data / hora. O tempo da fonte é baseado no fuso horário do unidade de negóciosFechado Alto nível de agrupamento organizacional usado para gerenciar o suporte técnico, cobrança e configurações globais para o seu ambiente CXone ou no fuso horário definido por meio da ação Timezone .

Quando usada com uma expressão numérica: As funções convertem o valor para uma string de data/hora traduzida em GMT ou UTC. Por exemplo: “Seg, 03 de outubro 2023 13:35:14 GMT”.

Ao utilizar estas funções, o formato de hora contido na variável também não pode incluir:

  • Uma dedução da UTC.
  • A Z caracteres, como 2023-03-04 18:54:39.000Z. Incluir um caractere Z indica que a hora tem dedução zero em relação ao GMT/UTC.

A inclusão de qualquer uma destas causas causa um erro quando asgmt() ou asutc() tentam converter fusos horários porque o fuso horário original é visto como sendo diferente do fuso horário da unidade de negócios. Além disso, para evitar o erro ao usar o formato de data/hora ISO 8601, inclua uma ação Timezone antes da ação Snippet e configure-a para usar o fuso horário da sua unidade de negócios. Isto estabelece o fuso horário no nível do script para que o script e seu usuário da unidade de negócios tenham o mesmo fuso horário.

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

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

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

asin(value)

Retorna o ângulo em radianos cujo seno é o value especificado.

ASSIGN angleRad4 = "{asin(sinNum)}"

O(s) resultado do exemplo é angleRad4 = 0.394791119699762

asisodatetime()

Converte o valor de uma variável para um formato de data/hora ISO 8601: aaaa-MM-ddTHH:mm:ss.SSSXXX. A saída desta função é sempre um formado de data/hora ISO.

Em chamadas REST API, registros de hora ISO que têm a diferença em relação ao UTC especificada e aparecem na resposta são convertidos para Hora de Montanha norte-americana (MT). Se nenhuma diferença for especificada, o registro de hora não será convertido.

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

O(s) resultados do exemplo são:

  • numericDateTime = 2023-07-03T09:43:06.000Z (quando a data/hora local for 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() e asxml()

Converte um objeto JSON ou XML em uma string e o atribui a uma nova variável. O exemplo a seguir usa um objeto de dados dinâmicos, mas você pode usar estas funções com objetos retornados de uma chamada de API ou os objetos de ações de bots de agentes virtuaisFechado Um aplicativo de software que interage com os clientes no lugar de um agente humano ao vivo..

A função asjson() converte tudo no objeto em uma string com aspas duplas ao seu redor, incluindo valores numéricos ou booleanosFechado Um tipo de dados que tem dois valores possíveis: true e false.. Você pode tomar nota disso no seu script se precisar de um valor numérico ou booleano propriamente formatado no seu JSON. Uma solução seria usar a função replace(). Ela permite que você substitua as aspas duplas no valor da string por nulo.

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

Outra solução seria colocar strings de marcadores de posição que são manualmente substituídas depois que você converte o objeto dinâmico em uma string 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)

Boas práticas: Use a função asjson() em uma ação Snippet e armazene o JSON resultante em uma variável de string. Use a variável de string nas propriedades de outras ações Studio quando precisar transmitir os dados JSON. Essa abordagem evita a possibilidade de erros de validação ao salvar o script.

O(s) resultados do exemplo são:

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

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

astime()

Converte o conteúdo da variável para um valor de tempo.

Quando usada com um valor de string: converte o conteúdo da variável em uma data-hora de automação OLEFechado Estado que permite que um agente conclua os requisitos de trabalho após terminar uma interação.. Por exemplo, 0,353506944447872 .

Quando usada com um valor numérico: converte o conteúdo da variável em uma string de tempo. A variável deve conter um valor de hora de automação OLE. Por exemplo, 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()}" 

Os resultados deste exemplo dependem da hora local quando a função é testada. Se o valor de time for 8:37:42 AM, os resultados serão:

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

atan(value)

Retorna o ângulo em radianos cuja tangente é o value especificado.

ASSIGN angleRad = "{atan(0.4166666666666667)}"		

O(s) resultado do exemplo é angleRad=0.394791119699762

atan2(value)

Retorna o ângulo em radianos cuja tangente é o quociente dos dois números especificados (x, y).

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

O(s) resultado do exemplo é angleRad2=0.394791119699761

ceil(value) e floor(value)

ceil retorna o menor número inteiro maior ou igual ao value especificado.

floor retorna o maior número inteiro menor ou igual ao value especificado.

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

ASSIGN newValue2 = ceil(value)

O(s) resultados do exemplo são:

  • newValue1 é 102.
  • newValue1 é 103.

contains(value)

Retorna um valor de 1 (true) se a variável contiver um value especificado. Se a variável for uma matriz, todos os elementos serão verificados quanto ao value exato.

contains() não diferencia maiúsculas de minúsculas.

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

O(s) resultados do exemplo são:

  • stringFoundRes1 é 1 (true).
  • stringFoundRes2 é 0 (false).
  • DNISFoundRes1 é 1 (true).
  • DNISFoundRes2 é 0 (false).

char(code)

Retorna um caractere do valor code do código ASCII, que permite que um script adicione programaticamente caracteres especiais a uma string. Por exemplo, você pode adicionar retornos de carro, guias e novos caracteres de linha.

Tome cuidado com esta função. char(0) a char(7) são reservados para uso interno e podem causar mau funcionamento dos scripts.

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

O(s) resultados do exemplo são:

  • 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)

Cria uma cópia dos dados que o objeto de dados dinâmicos objectName contém. A cópia fica separada dos dados originais, portanto é possível alterar o valor em uma versão sem afetar o mesmo valor na outra versão. Saiba mais sobre copiar objetos dinâmicos.

É possível usar a função copy() com subpropriedades: por exemplo: currentContact.who = copy(beowulfCharacteristics.name).

DYNAMIC firstObject
DYNAMIC secondObject

secondObject = copy(firstObject)

A função copy() usa mais recursos do sistema do que atribuir uma referência. Ela executa uma cópia profunda ao converter o objeto em uma representação textual e, em seguida, novamente em um objeto. Se o objeto com o qual estiver trabalhando contiver uma grande quantidade de dados, este processo poderá impactar o funcionamento do script.

cos (valor)

Retorna o cosseno do value especificado. O value deve ser em radianos.

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

O(s) resultado do exemplo é cosNum=0.923076923076923

cosh (valor)

Retorna o cosseno hiperbólico do value especificado. O value deve ser em radianos.

 ASSIGN hCosine = "{cosh(angleRad)}"

O(s) resultado do exemplo é hCosine=1.07894746856059

count() e size()

Retorna o número de elementos dentro de uma matriz. size() funciona somente com matrizes. count() funciona com matrizes em objetos.

Se o valor não for uma matriz mas não estiver vazio, o valor 1 (true) será retornado. Se o valor estiver vazio, 0 (false) será retornado.

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)

O(s) resultados do exemplo são:

  • exSize e ex1Count são 7.
  • ex2Size e ex2Count são 1.
  • ex3Size e ex3Count são 0.
  • ex4Count é 2.

dateadd(unit, date, value)

Retorna uma nova data com base na date mais o value.. A nova data é retornada como uma data/hora de automação OLEFechado Uma maneira de escrever datas como um inteiro de ponto flutuante. Indica o número de dias desde 30 de dezembro de 1899.. A interpretação de value é determinada por unit. Se value for negativo, value é subtraído de date.

A prática recomendada é passar uma variável de data/hora válida, conforme mostrado no exemplo abaixo, onde o valor de myDateTime tem um sinal de número ( # ) à sua esquerda. Isto a torna uma variável de data/hora.

Possíveis opções para unidade são: year, month, week, day, hour, minute e second.

unit diferencia letras maiúsculas de minúsculas. Coloque unit entre aspas duplas ou simples ou passe uma variável que contenha unit. Caso esteja passando uma variável, não coloque a variável entre aspas ou chaves.

Para usar esta função em uma string, inclua asdatetime(), conforme mostrado no exemplo abaixo.

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

O(s) resultados do exemplo são conforme a seguir, usando 3 de março de 2023 no formato 3/3/2023 10:42:44 AM como o valor de 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)

Retorna uma string de data/hora usando os Year, Month e Day fornecidos.

Quando usada em uma string: Retorna um data numérica no formato de data/hora padrão, que inclui a hora. A hora tem como padrão meia noite. Caso queira as datas usando os nomes dos meses e dias, use as funções asdate() ou asdatetime(), conforme mostrado no exemplo abaixo.

Quando usada em uma expressão numérica: Retorna uma data como uma string data-hora de automação OLEFechado Uma maneira de escrever datas como um inteiro de ponto flutuante. Indica o número de dias desde 30 de dezembro de 1899..

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)

O(s) resultados do exemplo são:

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

datediff(unit, date2)

Retorna a diferença entre duas datas, date1 e date2.

unit especifica a parte da data para comparar e date2 especifica a data para comparar com o valor da variável. Se date2 for maior que o valor da variável, os resultados serão positivos.

Possíveis opções para unidade são: week, day, hour, minute e second.

unit diferencia letras maiúsculas de minúsculas. Coloque unit entre aspas duplas ou simples ou passe uma variável que contenha unit. Caso esteja passando uma variável, não coloque a variável entre aspas ou chaves.

Se a diferença for fracionária, o valor de retorno também será fracionário. Por exemplo, se a variável contiver a data-hora 10/15/2023 6:00 AM e date2 for 10/16/2023 6:00 PM, o resultado para unit dia será 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)

O(s) resultados do exemplo são:

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

datefmt(date, format)

Resulta em date usando a string de formato especificada. O valor de date deve ser um dos seguintes:

Ao definir a saída format, use os especificadores de formato para definir como você quer que a data e a hora apareçam.

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

O(s) resultados do exemplo são

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

A datefmt() função também permite que você extraia parte da data de um valor existente de data/hora. Para fazer isto, use esta sintaxe:

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

Por exemplo:

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

O(s) resultado do exemplo é myYear2 = 2023

datepart(unit)

Retorna uma parte de uma data ou hora. Retorna uma parte de uma data ou hora de acordo com o unit especificado. A variável deve conter um tipo de data/hora ou uma string que é uma data/hora devidamente formatada ou um número de automação OLEFechado Uma maneira de escrever datas como um inteiro de ponto flutuante. Indica o número de dias desde 30 de dezembro de 1899.. unit especifica a parte da data a retornar. Esta função deve ser usada em uma variável de data/hora. Ela não funcionará se você passar um valor de data/hora para a função.

As opções possíveis para a unidade são: year, month, day, hour, minute, second e dow.

unit diferencia letras maiúsculas de minúsculas. Coloque unit entre aspas duplas ou simples ou passe uma variável que contenha unit. Caso esteja passando uma variável, não coloque a variável entre aspas ou chaves.

Se a função não puder ser concluída devido a uma entrada incorreta ou inesperada, a saída padrão é 30 de dezembro de 1899.

Quando usadas em uma string:

Retorna a representação de string da parte da date especificada:

  • Month retorna a abreviação de mês com três caracteres.
  • Year retorna os quatro dígitos inteiros do ano.
  • Hour retorna a hora no formato de 24 horas.
  • Dow significa dia da semana e retorna a string de representação inteira sem abreviações do nome do dia da semana. Por exemplo, quinta-feira.

Todos os valores numéricos, exceto o ano, são prefixados com 0 se houver menos de dois dígitos.

Quando usadas em uma expressão numérica:

Retorna a representação numérica da parte date especificada:

  • Year retorna o ano completo com 4 dígitos.
  • Hour retorna a hora no formato de 24 horas.
  • Dow significa Dia da semana e retorna o valor ordinal (0-6)para o dia da semana, no qual domingo é 0, segunda-feira é 1, e assim por diante.
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')

O(s) resultados do exemplo são:

  • 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)

Retorna um valor de data/hora. Se a função não puder ser concluída devido a uma entrada incorreta ou inesperada, a saída padrão é 30 de dezembro de 1899.

Quando usada em uma string: retorna uma data/hora formatada no formato padrão de data/hora.

Quando usada como uma expressão numérica: retorna uma data/hora com OLE automationFechado Uma maneira de escrever datas como um inteiro de ponto flutuante. Indica o número de dias desde 30 de dezembro de 1899..

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)

O(s) resultados do exemplo são:

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

dow()

Retorna o dia da semana como um valor ordinal de 0 a 6 onde 0 é domingo.

A variável deve conter um tipo de data/hora ou uma string que é uma data/hora devidamente formatada ou um número de automação OLEFechado Uma maneira de escrever datas como um inteiro de ponto flutuante. Indica o número de dias desde 30 de dezembro de 1899.. Se a função não puder ser concluída devido a uma entrada incorreta ou inesperada, a saída padrão é 30 de dezembro de 1899.

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

Os resultados da função dependem de now quando dow o valor é avaliado.

format(specifiers)

Retorna uma string formatada usando o specifiers especificado. O specifiers é aplicado apenas ao valor numérico contido na variável. Para pscifiers, use os seguintes especificadores de formato:

  • C ou c: moeda
  • E or e: científico/exponencial
  • F ou f: ponto fixo
  • N ou n: número

  • P ou p: porcentagem
  • R ou r: ida e volta
  • X ou x: hexadecimal
  • 0: marcador de posição zero

É possível saber mais sobre estes formatos numéricos para usar com esta função.

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('###,###.##')

O(s) resultados do exemplo são:

  • 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)

Retorna o elemento da matriz do conteúdo da variável de acordo com o indexValue especificado. Isso é o mesmo que ler uma matriz usando colchetes quadrados. Por exemplo, variable[3] é o mesmo que variable.index(3).

Matrizes no Studio começam com 1, não com 0.

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

indexof(string)

Retorna a posição do caractere do string conforme contido na variável. A primeira posição é 1. Se string não estiver contido na variável, a função retornará o valor 0. Esta função faz distinção entre maiúsculas e minúsculas.

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 para números. Avalia compare e em seguida retorna trueval ou falseval dependendo dos resultados da avaliação.

Se compare for diferente de zero (true), o trueval será retornado.

Se compare for zero (false), o falseval será retornado.

Tanto trueval quanto falseval devem ser expressões ou valores numéricos. Strings não podem ser usadas. Esta função é idêntica à função iifs(), mas ela espera valores numéricos.

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

O(s) resultados do exemplo são:

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

iifs(compare, truestr, falsestr)

String inline-if. Avalia compare e, em seguida, retorna trueval ou falseval dependendo dos resultados da avaliação.

Se compare for diferente de zero (true), o truestr será retornado.

Se compare for zero (false), o falsestr será retornado.

Esta função é idêntica a iif(), porém espera strings.

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

O(s) resultados do exemplo são :

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

isalpha()

A função isalpha() retorna 1 (true) se todos os caracteres dentro da variável forem letras do alfabeto (A-Z, a-z). Se todos os caracteres não forem alfabéticos, a função retornará 0. Uma variável vazia ou um valor que inclui caracteres especiais (como # ou $) ou números retornam 0. Veja também: isletter().

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

isdigit()

A função isdigit() retorna 1 (true) se o primeiro caractere dentro da variável for um dígito numérico (0-9). Caso contrário, a função retorna 0 (false). Uma variável vazia ou um valor que começa com um caractere especial retorna 0. Veja também: 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()

A função isletter() retorna 1 (true) se o primeiro caractere dentro da variável for uma letra do alfabeto (A-Z, a-z). Caso contrário, a função retorna 0 (false). Uma variável vazia ou um valor que começa com um caractere especial retorna 0. Veja também: 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()

A função isnumeric() retorna 1 (true) se todos os caracteres dentro da variável forem números. Se algum dos caracteres for não numérico, a função retornará 0Uma variável vazia ou um valor que inclui caracteres especiais (como # ou $) ou números retornam 0. Veja também: isdigit().

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

islower() e isupper()

A função isupper() retorna 1 (true) se o primeiro caractere da variável for uma letra maiúscula. Caso contrário, a função retorna 0 (false).

A função islower() retorna 1 (true) se o primeiro caractere da variável for uma letra minúscula. Caso contrário, a função retorna 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) e right(number)

Retorna os caracteres de number mais à esquerda ou mais à direita.

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)

O(s) resultados do exemplo são

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

length()

Retorna o comprimento da representação textual do valor da variável. Por exemplo, se o valor for um número como 1234.56, o comprimento é retornado como 7. Caracteres de espaço e caracteres especiais são contados no comprimento.

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

O(s) resultados do exemplo são

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

ln(value)

Retorna o logaritmo natural (base e) do value. O value é especificado como um número de base 10.

ASSIGN natLog = "{ln(434)}"

O(s) resultado do exemplo é natLog=6.07304453410041

log10(value)

Retorna o logaritmo de base 10 do value especificado.

ASSIGN log10Num = "{log10(434)}"

O(s) resultado do exemplo é log10Num=2.63748972951251

log2(value)

Retorna o logaritmo de base 2 do value especificado. O value é especificado como um número de base 10.

ASSIGN log2Num = "{log2(434)}"

O(s) resultado do exemplo é log2Num=8.76155123244448

logn(value,base)

Retorna o logaritmo do value especificado na base especificada. Ambos os parâmetros são especificados como números de base 10.

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

O(s) resultado do exemplo é lognNum=3.77339472817288

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

max() retorna o maior dos dois valores numéricos especificados.

min() retorna o menor dos dois valores numéricos especificados.

Caso passe valores de string, ambas as funções serão sempre avaliadas como 0.

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

ASSIGN resultMax = max(value1, value2)

O(s) resultados do exemplo são:

  • resultMin = 10
  • resultMax = 12

mid(start,length)

Retorna os caracteres de start até start+length. A posição do primeiro caractere é 1. Se start+length exceder o comprimento do texto de origem, ele truncará automaticamente no final do texto de origem.

Esta função é similar a substr(). Tanto mid() e substr() retornam um subconjunto de caracteres. A diferença é que com substr(), a função retorna os caracteres entre os pontos iniciais e finais especificados. Com mid(), a função retorna um número especificado de caracteres, definido por length, após o start especificado.

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

O(s) resultados do exemplo são:

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

random(value)

Retorna um número aleatório inteiro não negativo maior ou igual a zero e menor que o valor máximo especificado.

Se precisar de um valor dentro do intervalo de um até value, você pode adicionar 1 à saída da função random:

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)

Substitui todas as ocorrências de old por new. Esta função funciona com todas as seguintes variações de formatação:

  • 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 pane on the right. 

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

O(s) resultados do exemplo são:

  • 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)

Retorna o value arredondado para o número inteiro mais próximo usando o IEEE Standard 754, seção 4 (também chamado de arredondamento do banqueiro).

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

O(s) resultado do exemplo é numEx = 102.5689

savetodb(1or0)

savetodb() não é uma função verdadeira. Ela é uma propriedade de variáveis no Studio. É possível aplicá-la a variáveis ao trabalhar com snippets. Também é possível defini-la ao usar a action Assign. Você pode acessar os dados armazenados de duas maneiras:

Adicione savetodb() a uma variável com 1 como o argumento para ter o valor da variável salvo no banco de dados.

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

screenpop() and setscreenpop(1or0)

screenpop() e setscreenpop() não são funções verdadeiras. Elas são propriedades de variáveis no Studio que você pode definir ao trabalhar com pops de telaFechado Uma janela pop-up configurável com informações sobre o contato. Aparece na tela de um agente após um determinado evento, geralmente quando o agente se conecta a um contato.. Você pode aplicá-las a variáveis quando trabalha com snippets. Você também pode defini-las com a ação Assign .

Adicione setscreenpop() a uma variável com 1 como argumento para ter o valor da variável passado ao pop de tela.

Adicione screenpop() a uma variável para verificar se a sinalização ScreenPop está definida. A propriedade retorna 1 se for true e 0 se for false.

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

sgn(value)

Retorna um valor que indica o sinal do value especificado. Retorna -1 se value for menor que zero, 0 se o value for igual a zero e 1 se o value for maior que zero.

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

O(s) resultado do exemplo é signOfNum = 1, 0, -1

sin(value)

Retorna o seno do value especificado. O value deve ser em radianos.

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

O(s) resultado do exemplo é sinNum = 0.384615384615385

sinh(value)

Retorna o seno hiperbólico do value especificado. O value deve ser em radianos.

ASSIGN hSine = "{sinh(angleRad)}"

O(s) resultado do exemplo é hSine=0.405126696125173

split(delimiter)

Retorna o conteúdo da variável como uma string delimitada por tubo, adequada para ser tratada como uma matriz. O delimiter é convertido no símbolo de tubo vertical ( | ).

Quando os resultados são atribuídos a uma nova variável, a nova variável se comportará como uma matriz e suportará a sintaxe do indexador da matriz, como em variable[index].

Split também pode ser usada dentro de um snippet para converter uma variável em uma matriz. Usá-la dessa maneira altera o conteúdo da variável.

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(',')

O(s) resultados do exemplo são:

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

sqrt(value)

Retorna a raiz quadrada do value especificado.

ASSIGN root = "{sqrt(25)}"

O(s) resultado do exemplo é root = 5

substr(start,end)

Retorna os caracteres de start até end. A posição do primeiro caractere é 1. Se end exceder o comprimento do texto de origem, ele truncará automaticamente no final do texto de origem.

Esta função é similar a mid(). Tanto mid() e substr() retornam um subconjunto de caracteres. A diferença é que com substr(), a função retorna os caracteres entre os pontos iniciais e finais especificados. Com mid(), a função retorna um número especificado de caracteres, definido por length, após o start especificado.

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

O(s) resultados do exemplo são:

  • areaCode = 801
  • totalAmount = $152.69

tan(value)

Retorna a tangente do value valor especificado. O value deve ser em radianos.

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

O(s) resultado do exemplo é tanNum = 0.416666666666667

tanh(value)

Retorna a tangente hiperbólica do value especificado. O value deve ser em radianos.

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

O(s) resultado do exemplo é hTan = 0.375483244486081

trim(), ltrim() e rtrim()

A função trim() retorna uma string com todos os caracteres de espaço em branco à esquerda e à direita removidos. O espaço em branco inclui espaços, tabulações e quebras de linha.

A função ltrim() retorna uma string com todos os caracteres de espaço em branco à esquerda removidos.

A função ritrim() retorna uma string com todos os caracteres de espaço em branco à direita removidos.

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

ASSIGN lTrimRes = varString.ltrim

ASSIGN rTrimRes = varString.rtrim

O(s) resultados do exemplo são

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

trunc(value)

Calcula a parte integral do value especificado. trunc() arredonda o value para o número inteiro mais próximo para zero.

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

O(s) resultado do exemplo é truncNum = 945, 946

upper() e lower()

A função upper() retorna o conteúdo da variável com todas as letras convertidas em maiúsculas.

A função lower() retorna o conteúdo da variável com todas as letras convertidas em minúsculas.

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() e urldecode()

A função urlencode() retorna o conteúdo da variável codificada usando o padrão da Internet para codificação de URL. Por exemplo, alguns dos dados que precisam ser adicionados a um URL para popups de telaFechado Estado que permite que um agente conclua os requisitos de trabalho após terminar uma interação. precisam ser codificados para serem enviados corretamente.

A função urldecode() retorna o conteúdo da variável decodificada do padrão da Internet para codificação de URL. No exemplo a seguir, urldecode() está decodificando o URL da variável, o que significa que URL e newURL têm o mesmo valor.

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