Axivox Guía del usuario
Volver al sitio

Switch / Case

Encamina la llamada según el valor de una variable. Cada caso declarado crea su propia salida, por igualdad exacta o según un patrón, y Defecto recoge el resto.

En resumen

Salidasuna por caso declarado, más Defecto
Etiqueta de una salidael valor del caso, precedido de ~ cuando Regex está marcado
CamposExpresión a comprobar, y luego una tabla Valor del caso con una casilla Regex
Comparación por defectoigualdad exacta, mayúsculas y espacios incluidos
Número de casosilimitado
Ordengana el primer caso que coincide; los siguientes no se evalúan

El texto de ayuda mostrado en la ventana es: «Cada caso crea una salida; "Defecto" se toma si ningún caso coincide. Marque "Regex" para tratar el valor como una expresión regular (ej. ^\+251, ^0[1-9][0-9]{7}$). Si no, igualdad exacta.»

Cómo funciona

El módulo calcula primero la expresión a comprobar, en general una variable escrita {{mi_variable}}. Obtiene así un texto, el que porta la variable en el momento del paso de la llamada.

Recorre después sus casos de arriba abajo y se detiene en el primero que coincide. Si ninguno coincide, toma Defecto.

Igualdad exacta

Sin la casilla Regex, un caso coincide cuando el valor es rigurosamente idéntico: Premium y premium son dos valores distintos, y un espacio de más basta para que la comparación falle.

Patrón, o expresión regular

Una expresión regular es una descripción de forma más que un valor. En lugar de enumerar los miles de números que empiezan por 02, describe «empieza por 02, luego cifras».

Bastan unos pocos signos para cubrir casi todas las necesidades:

EscrituraQué significa
^el principio del valor
$el final del valor
\dun dígito
[0-9]un dígito, otra escritura
[1-9]un dígito del 1 al 9
+el signo anterior, una vez o más
*el signo anterior, cero veces o más
{7}el signo anterior, exactamente siete veces

Los dos ejemplos de la interfaz se leen así: ^\+251 corresponde a cualquier valor que empiece por +251, y ^0[1-9][0-9]{7}$ a un valor de nueve dígitos que empieza por un cero seguido de un dígito del 1 al 9.

Escriba el patrón solo, sin encerrarlo entre barras. ^02 es correcto, /^02/ no coincidirá con nada.

Qué hay que indicar

CampoQué se esperaSi lo deja vacío
Expresión a comprobaruna variable, por ejemplo {{idioma}}, o un texto que la contengael valor comprobado está vacío, y solo un caso vacío o Defecto puede tomarse
Valor del casoel valor esperado, o el patrón si Regex está marcadosin Regex, el caso solo coincide con un valor él mismo vacío; con Regex, coincide con todo y captura todas las llamadas
Regexmarcada, el valor se convierte en un patróncomparación por igualdad exacta

El botón Añadir crea una línea de caso, Eliminar retira la de la línea. Guardar cierra la ventana, y las salidas del módulo se reetiquetan de inmediato.

Procedimiento

  1. Coloque el módulo Switch / Case y conecte el nodo anterior a su entrada.
  2. Ábralo y rellene la Expresión a comprobar, copiando la variable desde el panel Variables disponibles en lugar de volver a escribirla.
  3. Haga clic en Añadir e indique el Valor del caso. Repita para cada valor que quiera distinguir.
  4. Marque Regex únicamente en las líneas donde describe una forma, y no un valor preciso.
  5. Ordene sus casos del más preciso al más general: gana el primero que coincide.
  6. Haga clic en Guardar. El módulo muestra ahora una salida por caso, más Defecto.
  7. Conecte cada salida a su destino, Defecto incluida: una salida tomada que no lleva a ninguna parte cuelga la llamada.
  8. Coloque un módulo Depuración justo antes, con la variable comprobada como mensaje. Leerá el valor realmente comparado.
  9. Haga clic en Guardar, y luego en Aplicar los cambios en la barra superior.
  10. Llame a su número provocando cada uno de los casos, y compruebe que la llamada sale efectivamente donde la espera.

Si no funciona

Todas las llamadas van a Defecto. Lea primero el valor realmente comprobado, con una Depuración colocada justo antes. Nueve de cada diez veces está vacío, porque el módulo que fija la variable no se ha atravesado, o porque el nombre escrito entre llaves no corresponde.

Mi valor es el correcto pero el caso no se toma. La comparación es exacta: Premium no es premium, y un espacio al final del valor cuenta. Marque Regex y describa la forma, por ejemplo ^[Pp]remium$.

Mi patrón nunca coincide. Escríbalo sin barras alrededor: ^02\d+ y no /^02\d+/. Compruebe después que un patrón mal formado no pasa desapercibido: nunca coincide y no muestra ningún error.

Siempre gana el mismo caso, aunque dos podrían coincidir. Es el comportamiento esperado. Suba el caso más preciso por encima del más general, o restrinja el patrón del más general.

La llamada se corta aunque un caso coincide correctamente. La salida de ese caso no está conectada a nada. Compruebe cada salida del módulo, Defecto incluida, después de añadir o eliminar un caso: las salidas se renumeran.

Cómo se construye el plan de llamadas, explicado con imágenes

Ver la página Planes de numeración