Suporte Bitrix24

Usar expressões em parâmetros de ação

Para oferecer a máxima flexibilidade, os parâmetros de ação de Bitrix24 permitem usar expressões especiais cujos valores são calculados na hora de execução.

Para especificar o valor do parâmetro como uma expressão, ponha um sinal de igual - =.

Exemplo: =6^2 + {=Document:PROPERTY_NUM}/2 ou =if({Document:ID}=5, "texto1", "texto2").

Em cada campo podem ser usadas várias expressões diferentes. Se você deseja não apenas realizar um cálculo, mas também exibir dados adicionais (valor da variável, texto), então duas opções estão disponíveis:

  • As expressões podem ser simplesmente colocados no texto, basta usar a construção {{=...}}.
  • Exemplo: Você precisa preencher os documentos antes de {{=DateAdd({=Document:CREATED}, '5d')}}.
  • Ou use o operador de concatenação (&) e ponha o texto entre aspas (").
  • Exemplo: ="Título:" & (1+3) ou ="Autor:" & {=Document:CREATED_BY} & ", " & "Data limite:" & Dateadd({=Document:DATE_CREATE}, "1d").
A sintaxe dos operadores simbólicos é semelhante à sintaxe das funções PHP correspondentes.

Operadores

Ao calcular as expressões em parâmetros de ação, você pode usar vários operadores e funções.

Lista de operadoras disponíveis

Operador Descrição
+ Adiciona dois valores.
- Desconta o segundo valor do primeiro.
* Multiplica dois valores.
/ Divide o primeiro valor pelo segundo.
= Retorna o resultado da expressão.
<> Não é igual.
< Menos que.
> Mais que.
<= Menos que ou igual.
>= Mais que ou igual.
() Entre parênteses.
& Operador de concatenação. Retorna a soma das linhas esquerda e direita em uma nova linha.
^ Potência.
% Porcentagem.
true Verdadeiro.
false Falso.
and Conectivo lógico E.
or Conectivo lógico OU.
Exemplo: =if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no")
not Negação.

Funções

É possível usar funções ao projetar um fluxo de trabalho. Você pode escolhê-las da lista. Para fazer isso, escreva o sinal de = no campo e uma lista será aberta.

Lista de funções com exemplos

Função Descrição
abs Retorna o valor absoluto de um argumento.
dateadd

Adiciona uma quantidade predefinida de dias, meses, anos, horas, minutos e segundos à data indicada.

Sintaxe: =dateadd([data inicial], [intervalo de tempo]).

Variações de escritura e exemplos

y, year, years, m, month, months, d, day, days, h, hour, hours, min, minute, minutes, s, second, seconds.

Pode escrever em maiúsculas ou minúsculas.

Exemplo: =Dateadd({=Document:DATE_CREATE}, "-2d"), =Dateadd({=Document:DATE_CREATE}, "2 days 3 minutes").

Se o número necessário de unidades de tempo para adicionar estiver contido em um campo, variável, etc., use o operador de concatenação &.

Exemplo: =DateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")

datediff

Retorna a diferença entre as duas datas.

Sintaxe: =datediff([data1], [data2], [formato de visualização de diferença])

A diferença pode ser mostrada em várias unidades.

Exemplo: =datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days')
date

A função exibe a data no formato especificado e funciona de maneira semelhante à função Date no PHP.

Sintaxe - date ('formato de visualização', {data necessária})

WorkDateAdd

Adiciona um número especificado de dias, horas e minutos de trabalho à data indicada.

Sintaxe: =WorkDateAdd([data_inicial], [valor_a_ser_adicionado]).

Variações de escritura e exemplos

d, day, days, h, hour, hours, i, min, minute, minutes. Pode escrever em maiúsculas ou minúsculas.

Exemplo: =WorkDateAdd({=Template:Parameter1}, "2d") - o parâmetro contém a data 23.08.2019.

РResultado - 26.08.2019 09:00:00, porque 24.08 e 25.08 são dias de folga, e o próximo dia de trabalho começa às 09:00:00.

Você pode configurar o horário de trabalho e os dias de folga nas configurações do portal. Descubra mais no artigo Página de configurações Bitrix24.

AddWorkDays A função adiciona N dias úteis à data indicada.

Sintaxe: =addworkdays([data a qual será adicionado um número especificado de dias], [o número de dias úteis a serem adicionados]).

Exemplo: {{=addworkdays('24.12.2019', 1)}} - resultado: 26.12.2019 00:00:00, porque 25 de dezembro está especificado nas configurações do portal como feriado.

{{=addworkdays('16.08.2019 16:14:00', 1)}} - 16 de agosto é uma sexta-feira, portanto o resulado será o seguinte: 19.08.2019 16:14:00 - segunda-feira.

isWorkDay verifica se o dia especificado é um dia útil(no calendário).

Sintaxe: =if(isWorkDay([data em verificação]), [mensagem, se é um dia útil], [mensagem, se não é um dia útil]).

Exemplo: {{=if(isWorkDay({=Template:Parameter1}), 'Sim', 'Não')}} - o parâmetro contém a data 31.10.2019. Resultado - Sim, porque é um dia útil.
isWorkTime Uma função análoga à função isWorkDay, serve para o tipo de dados Data/Hora.

Sintaxe: =if(isWorkDay([data e hora em verificação]), [mensagem, se a data e a hora correspondem ao horário comercial especificado nas configurações], [mensagem, se não correspondem]).

Exemplo:{{=if(isWorkTime({=Template:Parameter1}), 'Sim', 'Não')}} - o parâmetro contém a data e a hora úteis 27.04.2016 15:00:00.

Resultado - Sim.

toUserDate A função converte qualquer hora para a hora do funcionário (levando em consideração seu fuso horário).

toUserDate(user,date=now)

Parâmetros:
  • user - usuário, para cujo horário é necessário converter o horário do fluxo de trabalho.
  • date - data inicial, o padrão é a hora atual.

GetUserDateOffset A função retorna o valor do deslocamento do fuso horário do usuário em segundos (em relação ao horário do servidor).

GetUserDateOffset(user)

Parâmetro:
  • user - o usuário para cujo tempo o valor é necessário .
if Especifica a condição.

Sintaxe: =if([condição], [expressão se é verdadeiro], [expressão se é falso])

Exemplo: =if ({=Variable:Variable1_printable}>0, "sim", "não")

Ao comparar os valores das variáveis, também é possível comparar variáveis ​​com diferentes tipos de dados. No entanto, as variáveis ​​que estão sendo comparadas devem corresponder à tabela de conversão de tipo (consulte este artigo).

intval Retorna o valor inteiro da variável.
Exemplo:=intval("234j4hv5jhv43v53jk4vt5hj4") retorna 234 porque o valor começa com esse número, e o caráter que segue inmediatamente após o "4" não é um número.
floatval Retorna número (com ponto flutuante).
numberformat Formata um número com os milhares agrupados.
min Retorna o mínimo dos dois valores.
max Retorna máximo dos dois valores.
rand Retorna um número aleatório.

Sintaxe: =rand([valor mínimo],[valor máximo]).

O valor mínimo é ogrigatório para indicar. Se você não quiser limitar o valor máximo, não o indique na expressão. Por exemplo, =rand(17).

Exemplo: =rand(0,10) - gera um número aleatório de 0 a 10.

round Arredonda um número.

Sintaxe: =round([o valor a ser arredondado],[número de casas decimais])

Exemplos:

  • =round(10/3,2) - resultado 3.33.
  • =round(5/2) - resultado 3.

ceil Arredonda um valor para cima.
Exemplo: =ceil(5.5) resultado 6.
floor Arredonda um valor para baixo.
Exemplo: =floor(5.5) resultado 5.
substr Retorna a parte de uma cadeia como especificado nos dois últimos parâmetros. Esta função é semelhante à do PHP, consulte Manual de PHP para obter mais informações.

Sintaxe: substr([cadeia inicial], [a posição do caráter da cadeia inicial a partir da qual será retornada a subcadeia], [comprimento da subcadeia])

Lembre-se de que a linha começa com o caractere numerado 0. Observe que na cadeia 'abcdef' o caráter 'a' está na posição 0, e o 'c' está na posição 2.

Exemplo: a expressão {{=substr("0123456789", 3, 4)}} retornará a seguinte subcadeia: 3456..

Atenção! Se houver um erro em uma expressão, a mesma não será calculada e ficará como texto.

strpos Retorna a posição da primeira ocorrência de uma subcadeia..
strlen Retorna o tamanho de uma cadeia.
implode Junta elementos de uma matriz em uma cadeia. É útil quando você precisa exibir os valores de múltiplas variáveis ​​no texto com um separador não padrão (o padrão é uma vírgula). Análago do implode no PHP. Retorna uma cadeia contendo a representação da cadeia de todos os elementos da matriz na ordem especificada, com o valor glue entre cada elemento.
implode(glue,pieces) 

Parâmetros:

  • glue - o padrão é uma cadeia vazia
  • pieces - matriz de cadeias para concatenar.
explode A função divide a cadeia usando um delimitador. É útil quando você precisa dividir uma cadeia e atribuir partes como um valor a uma variável múltipla. Análago de explode no PHP. Retorna uma matriz de cadeias obtida pela divisão de cadeia str usando delimiter como delimitador.
explode( delimiter, str)

Parâmetros:

  • delimiter - delimitador
  • str - cadeia para dividir.
randstring Retorna uma cadeia leatória.
merge Permite combinar arranjos.

Sintaxe: = merge({=arranjo1}, {=arranjo2});

Exemplo: = merge({=Document:FILES}, {=Variable:file}).
urlencode Codifica uma URL.
strtolower Converte uma cadeia em minúsculas.
strtoupper Converte uma cadeia em maiúsculas.
ucwords Converte em maiúscula o primeiro caractere de cada nova palavra na cadeia.
firstvalue Retorna o primeiro valor de um campo múltiplo.
swirl Move o primeiro valor de um campo múltiplo para o final. Um campo múltiplo é fornecido à entrada, na saída obtemos os valores deslocados em um passo para a esquerda, ou seja, o primeiro valor está no final. A mudança é sempre um passo.
shuffle Mistura o valor de um campo múltiplo. Análogo do shuffle no PHP. Um campo múltiplo é fornecido na entrada, na saída obtemos valores mistos deste campo múltiplo.
Exemplo

Vamos considerar o trabalho das funções shuffle, firstvalue e swirl no exemplo de um fluxo de trabalho. Usando este fluxo de trabalho, você pode definir uma tarefa para um funcionário aleatório da lista e adicionar outro usuário aos participantes.

O fluxo de trabalho usa uma variável múltipla Usuários, que armazena uma lista de funcionários.

Primeiro, vamos misturar a lista de usuários com shuffle e vamos pegar o primeiro com firstvalue, este será nosso responsável.

Depois, vamos mudar esta lista com swirl e vamos pegar o primeiro com firstvalue, este será nosso participante.

Em seguida, vamos preencher os parâmetros da tarefa.

Depois do lançamento do fluxo de trabalho, funcionários aleatórios serão adicionados à tarefa como responsável ​​e participante.


Artigos recomendados:
Isso ajudou
Obrigado :)
Opcional:
Deixar comentário sobre o artigo
Isso não ajudou
Desculpa :(
Você poderia nos dizer por que:
Deixar comentário sobre o artigo
Eu ainda tenho dúvidas