Acciones

La acción es el efecto de una condición satisfecha. Una condición puede tener de cero a varias acciones, ejecutadas de arriba hacia abajo, y cada acción ve lo que escribieron las anteriores.

Esta página reúne lo que vale para todas las acciones. Cada acción tiene su propia página, con la configuración y el comportamiento específicos.

Origen, destino y ajustes

Varias acciones consultan un dato y devuelven otro. En todas ellas la configuración sigue el mismo formato:

  • Origen: qué campos del evento alimentan la acción;
  • Destino: qué campos reciben cada resultado;
  • Ajustes: parámetros propios de la acción.

Cada destino es opcional individualmente: si solo necesita el país y no el identificador, deje el otro en blanco. Pero cada acción exige al menos un destino completado: una acción que no graba nada en ningún lugar no sería ejecutada y no se acepta al guardar.

Un resultado que la acción no logró resolver deja el campo de destino intacto, en lugar de grabar un valor vacío. Esto es intencional: un campo en blanco sigue siendo comprobable por una condición posterior ($issuer_country == null), y ninguna suposición es mejor que un dato equivocado. En cambio, false y 0 son resultados legítimos y se graban normalmente.

Valor fijo o expresión

Las dos acciones que graban un valor, completar campo y definir variable temporal, aceptan ese valor de dos formas, elegidas en un selector al lado del destino:

  • Valor fijo: el contenido se graba exactamente como fue escrito. Nada dentro de él se interpreta: en valor fijo, $amount graba el texto $amount.
  • Expresión: el contenido se interpreta, y lo que se graba es el resultado.

Las acciones creadas antes de esta opción abren en Valor fijo y mantienen el comportamiento anterior.

Una expresión puede ser:

Forma Ejemplo
un campo del evento $issuer_country
una variable temporal %bot.score
un texto, número o booleano "aprobado", 10, true
una unión con concat concat($order_id, "-", %bot.score_cell)

Se aplica la misma sintaxis de las condiciones, con una diferencia: la expresión de una acción produce un valor, no un verdadero o falso, y no hay comparaciones ni and/or. Como en cualquier condición, una variable temporal leída en la expresión debe haber sido producida por una acción anterior.

Tipos compatibles

Un texto, número o booleano escrito directamente en la expresión es validado por el campo de destino, exactamente como lo sería un valor fijo.

En cambio, un campo, una variable temporal o un concat necesitan tener un tipo compatible con el destino. La conversión solo ocurre cuando no hay pérdida:

Tipo del campo de destino Acepta valor de
Texto cualquier tipo
Entero Entero
Decimal Decimal, Entero
Booleano Booleano
Fecha y hora Fecha y hora

Un decimal no se graba en un campo entero: redondear automáticamente decidiría por el autor de la regla qué hacer con la parte fraccionaria. El camino contrario, un entero en un campo decimal, se acepta. El resultado de concat siempre es un texto, y por eso solo cabe en un campo de texto.

Una variable temporal no tiene tipo de destino, de modo que acepta cualquier valor, incluso un conjunto como %bot.triggered_cells. Copiado solo, el conjunto sigue siendo un conjunto y continúa utilizable a la derecha de un in. Ese mismo conjunto no puede grabarse en un campo, ni usarse dentro de un concat.

Valores ausentes

Una expresión que solo copia un valor, como $campo o %variable solos, no graba nada cuando ese valor no existe: el campo de destino queda como estaba, y la variable temporal sigue ausente. Es la misma elección descrita arriba, de no sustituir un dato ausente por una suposición. En cambio, false, 0 y un texto vacío son lecturas legítimas y se graban.

Un concat siempre graba, porque construye un texto nuevo en lugar de copiar uno existente; las partes ausentes entran como vacío.


Tabla de contenidos