Para ofrecer la máxima flexibilidad, los parámetros de acción de Bitrix24 permiten el uso de expresiones especiales cuyos valores se calculan en tiempo de ejecución.
Para especificar el valor del parámetro como una expresión, comience el valor con el signo "igual": =
.
=6^2 + {=Document:PROPERTY_NUM}/2
o =if({Document:ID}=5, "texto1", "texto2")
. Se pueden utilizar varios cálculos diferentes en cada campo. Si no solo desea realizar un cálculo, sino también mostrar datos adicionales (valor de variables, texto), hay dos opciones de hacerlo:
-
Los valores calculados se pueden colocar simplemente en el texto colocando el cálculo en la construcción
{{=...}}
.Ejemplo:Debe completar los documentos antes del {{=DateAdd({=Document:DATE_CREATE}, '5d')}}
.
-
O puede usar el operador de concatenación (
&
), y encerrar el texto en las expresiones entre comillas dobles ("texto"
).
Operadores
Al calcular los valores de expresiones en parámetros de acción, puede utilizar varios operadores y funciones.
Lista de operadores disponibles
Operador | Descripción |
---|---|
+
|
Suma. |
-
|
Resta. |
*
|
Multiplicación. |
/
|
División. |
=
|
Igual. |
<>
|
Distinto. |
<
|
Menor que. |
>
|
Mayor que. |
<=
|
Menor o igual que. |
>=
|
Mayor o igual que. |
()
|
Paréntesis. |
&
|
El operador de concatenación, el cual retorna el resultado de concatenar sus argumentos derecho e izquierdo. |
^
|
Potencia. |
%
|
Porcentaje. |
true
|
Verdadero. |
false
|
Falso. |
and
|
operador lógico Y |
or
|
operador lógico O.
Ejemplo:
=if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no") |
not
|
No. |
Funciones para los cálculos
Al diseñar procesos de negocios, puede utilizar funciones especificadas en la lista. Para hacer esto, escriba en el campo el signo =
y se abrirá una lista
Lista de funciones con ejemplos
Función | Descripción |
---|---|
abs
|
Devuelve el valor absoluto del número. |
dateadd
|
Añade una cantidad de días, meses, años, horas, minutos y segundos a la fecha especificada.
Sintaxis: Ejemplos
Al escribir, puede utilizar mayúsculas o minúsculas. Ejemplos:
=Dateadd({=Document:DATE_CREATE}, '-2d') , Dateadd({=Document:DATE_CREATE}, "2 days 3 minutes") .
Si el número de unidades de tiempo necesarias para sumar forma parte de un campo, una variable, etc., entonces debe utilizar el operador de concatenación Ejemplo:
=DateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")
|
datediff
|
Devuelve la diferencia entre dos fechas.
Sintaxis: La diferencias se puede mostrar en varias unidades, dependiendo de las tareas que esté resolviendo. Ejemplos:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days') |
date
|
La función da formato a la fecha/hora local y funciona de la misma forma que la función Date en PHP.
Sintaxis - |
WorkDateAdd
|
Añade la cantidad de días laborales, horas y minutos a la fecha especificada.
Sintaxis: Ejemplos
Ejemplo:
=WorkDateAdd({=Template:Parameter1}, "2d") - el parámetro incluye la fecha 28.04.2016 .
Resultado - 02.05.2016 09:00:00, ya que 30.04 y 1.05 - es el fin de semana, y estos días serán omitidos. 09:00:00 - inicio de la jornada laboral. Puede configurar la lista de fines de semana, feriados e inicio de la jornada laboral en los Ajustes de la cuenta de Bitrix24.
|
AddWorkDays
|
La función añade N días laborales a la fecha especificada.
Sintaxis: Ejemplos:
{{=addworkdays('07.03.2016', 1)}} - resultado: 09.03.2016 00:00:00 , ya que en los ajustes de la cuenta el 8 de marzo es un día feriado.
|
isWorkDay
|
Comprueba si una fecha es un día laboral (por Calendario).
Sintaxis: Ejemplo:
{{=if(isWorkDay({=Template:Parameter1}), 'Sí', 'No')}} - el parámetro incluye la fecha 28.04.2016 . Resultado - Sí, ya que es un día laboral. |
isWorkTime
|
Es la misma función que isWorkDay , pero para los tipos de datos Fecha/Hora.
Sintaxis: Ejemplo:
{{=if(isWorkTime({=Template:Parameter1}), 'Sí', 'No')}} - el parámetro incñuye la fecha y la hora 27.04.2016 15:00:00 .
Resultado - Sí, ya que es la hora laboral.
|
toUserDate
|
La función convierte cualquier hora a la hora del empleado (teniendo en cuenta su zona horaria).
toUserDate(user,date=now)Parámetros:
|
GetUserDateOffset
|
La función devuelve el valor del desplazamiento de la zona horaria del usuario en segundos (en relación con la hora del servidor).
GetUserDateOffset(user)Parámetro:
|
if
|
Operador condicional.
Sintaxis: Ejemplo:
=if ({=Variable:Variable1_printable}>0, "sí", "no")
Al comparar los valores de las variables, también es posible comparar variables con diferentes tipos de datos. Sin embargo, las variables que se comparan deben coincidir con la tabla de conversión de tipos (puede encontrarla en este artículo). |
intval
|
Devuelve el valor entero de una variable.
Ejemplo:
=intval("234j4hv5jhv43v53jk4vt5hj4") devuelve 234 |
floatval
|
Devuelve el valor flotante de una variable. |
numberformat
|
Formatea un número con los millares agrupados. |
min
|
Devuelve el valor mínimo. |
max
|
Devuelve el valor máximo. |
rand
|
Genera un número aleatorio.
Sintaxis:
Solo se requiere el valor mínimo. Si no quiere limitar el valor máximo, puede omitir el segundo parámetro, por ejemplo Ejemplo:
=rand(0,10) - elegir un número de 0 a 10.
|
round
|
Redondea el número.
Sintaxis: Ejemplos:
|
ceil
|
Redondea fracciones hacia arriba.
Ejemplo:
=ceil(5.5) devuelve 6. |
floor
|
Redondea fracciones hacia abajo.
Ejemplo:
=floor(5.5) devuelve 5. |
substr
|
Devuelve parte de cadena de longitud especificada que comienza con el carácter especificado. Esta función es similar a la existente en PHP, puede leer más en detalle aquí.
Sintaxis: Tenga en cuenta que la cadena comienza con el carácter número 0. Por ejemplo, en la cadena 'abcdef', en la posición 0 está el carácter 'a', en la posición 2 está el carácter 'c', y etc. Ejemplo:
{{=substr("0123456789", 3, 4)}} devuelve 3456 .
¡Atención! Si la sintaxis de la expresión es incorrecta, se mostrará como texto.
|
strpos
|
Devuelve la posición de la primera ocurrencia de una subcadena en una cadena. |
strlen
|
Devuelve la longitud de una cadena. |
implode
|
Une elementos de un array en una cadena. Resulta útil cuando necesita mostrar los valores de múltiples variables en el texto con un separador no estándar (el estándar es solo una coma). La misma función que implode en PHP. Devuelve una cadena que contiene la representación de cadena de todos los elementos de la matriz en el orden especificado, con el valor glue entre cada elemento.
implode(glue,pieces) Parámetros:
|
explode
|
La función divide una cadena en varias cadenas con un separador. Resulta úti cuando necesita dividir una cadena y asignar partes como un valor a una variable múltiple. La misma función que explode en PHP. Devuelve un array de cadenas, formado por la división de la cadena str realizada por el delimitador delimiter especificado como separador.
explode( delimiter, str) Parámetros:
|
randstring
|
Devuelve una cadena aleatoria. |
merge
|
Permite combinar arrays.
Sintaxis: Ejemplo:
= merge({=Document:FILES}, {=Variable:file}) . |
urlencode
|
Codifica como URL una cadena. |
strtolower
|
Convierte una cadena a minúsculas. |
strtoupper
|
Convierte una cadena a mayúsculas. |
ucwords
|
Convierte a mayúsculas el primer carácter de cada palabra de una cadena. |
firstvalue
|
Devuelve el primer valor de un campo múltiple. |
swirl
|
Mueve el primer valor de un campo múltiple al final. Se proporciona un campo múltiple a la entrada, en la salida obtenemos los valores desplazados un paso hacia la izquierda, es decir, el primer valor llegó al final. El cambio es siempre un paso. |
shuffle
|
Mezcla un array. La misma función que shuffle en PHP. La entrada es un campo múltiple, la salida son los valores mixtos de este campo múltiple.
Ejemplo
Consideremos las funciones El proceso de negocio utiliza la variable múltiple Usuarios que almacena la lista de empleados..
Primero mezclemos la lista de usuarios utilizando la función swirl y tomemos el primer usuario utilizando la función firstvalue , éste será el participante de la tarea.
Luego completemos los parámetros de la tarea. Una vez lanzado el proceso de negocio, se agregarán empleados aleatorios a la tarea como persona responsable y participante. |