Implementación de bucles en un script | Repetición de slotGraphlogic.ai documentación
Last updated
Last updated
La Ranura de Repetición y sus Ranuras Hijo (Repetir Siguiente, Repetir Fin, Repetir Error, Repetir Límite) están diseñadas para ejecutar un bucle de un número especificado de iteraciones en el Script. La Ranura de Repetición es una Ranura Compleja y no puede existir sin cuatro Ranuras Hijo: Repeat Next, Repeat End, Repeat Error, Repeat Limit, que inician sus propias Ramas de Script.
Límite del número de iteraciones del ciclo de una ranura de repetición: 500 iteraciones.
Se permiten varias construcciones Repeat en un Script.
La sub-rama Repetir siguiente y la siguiente rama de script son una rama de bucle. El script sigue esta Rama de Script hasta que se cumple una de las siguientes condiciones:
se ha alcanzado el número de iteraciones de bucle establecido en la Ranura;
se recibe un mensaje del Usuario Bot, si no hay ninguna Ranura en el ciclo que pueda procesarlo;
Se ha alcanzado el límite del número de iteraciones del ciclo de una ranura de repetición (500 iteraciones) o el límite del número de iteraciones del ciclo por minuto por empresa (200 iteraciones).
La sub-ranura Repetir Fin está pensada para continuar el Script cuando el ciclo ha terminado, es decir, se ha completado el número de iteraciones del bucle establecido en la Ranura, así como para salir del bucle si, durante su ejecución, se ha recibido un mensaje del Usuario Bot, y no hay ninguna Ranura en el bucle que pueda procesarlo.La Subslot Repeat Error está diseñada para continuar el Script si se ha producido un error en la ejecución del bucle al establecer un número no válido de iteraciones.La Subslot Repeat Limit está diseñada para salir del bucle cuando se alcanza el Límite del número de iteraciones del ciclo de una Slot Repeat (500 iteraciones) o el Límite del número de iteraciones del ciclo por minuto por Compañía(200 iteraciones).
Nombre de la Ranura ー el nombre de la Ranura, que se mostrará en el Árbol de Script. La longitud máxima de un valor de campo es de 40 caracteres.
Número de iteraciones ー Número de iteraciones del bucle.
Valores válidos
valor exacto - entero positivo o 0;
La Expresión que da el resultado que es un entero positivo o 0;
Variable de contexto.
Recorte de espacios: al pulsar el botón CREAR (al crear una Ranura) o GUARDAR (al editar una Ranura), se recortan los espacios y saltos de línea al principio y al final del campo Número de iteraciones.
Al importar un archivo de configuración de Agente con un valor no válido en el campo Número de iteraciones (ver apartado 2a), se mostrarán mensajes de error y el Agente no se importará a la Plataforma.
Al crear una ranura, se generan automáticamente cuatro subranuras: Repetir siguiente, Repetir final, Repetir error, Repetir límite.
Estas ranuras secundarias no se pueden modificar y sólo se pueden eliminar de la ranura principal.
La ubicación de las subslots se determina automáticamente; no puede mover las subslots
La subranura de repetición siguiente es siempre la subranura superior de una ranura compleja determinada;
La ranura de repetición final es siempre la segunda en orden en una ranura compleja dada;
La subranura de error de repetición es siempre la tercera en orden en una determinada ranura compleja;
La subslot de límite de repetición es siempre la subslot más baja de una determinada ranura compleja.
No se pueden añadir nuevas subranuras a la repetición de ranura padre.
Nombre de la Ranuraー el nombre de la Ranura, que se mostrará en el Árbol de Script. La longitud máxima de un valor de campo es de 40 caracteres. Por defecto, el campo está establecido en Repetir Siguiente.
Nombre de la Ranuraー el nombre de la Ranura, que se mostrará en el Árbol de Script. La longitud máxima de un valor de campo es de 40 caracteres. Por defecto, el campo se establece en Repetir Fin.
Nombre de la Ranuraー el nombre de la Ranura, que se mostrará en el Árbol de Script. La longitud máxima de un valor de campo es de 40 caracteres. Por defecto, el campo está configurado para Repetir Error.
Nombre de la Ranuraー el nombre de la Ranura, que se mostrará en el Árbol de Script. La longitud máxima de un valor de campo es de 40 caracteres. Por defecto, el campo está configurado como Límite de Repetición.
En la Ranura de Repetición, se permite utilizar Expresión en el campo Número de iteraciones. Más detalles: Sintaxis
Para reflejar el número de la iteración actual del bucle, se utilizan las variables de contexto del sistema repeat_index. La numeración de las iteraciones comienza en 0.
Al entrar en la ranura de repetición, el valor de repeat_index se establece en -1, y el valor del Número de iteraciones de bucle se calcula en el campo Número de iteraciones:
Si el resultado del cálculo no es un entero o un número menor que 0, se produce una transición a Error de repetición, y:
el valor de repeat_index no cambia y permanece igual a -1 (hubo un intento de iniciar el ciclo, pero no funcionó);
error toma el valor número inválido de iteraciones.
Se restablece el estado de ciclo (véase Restablecimiento del estado de ciclo)
Si el resultado del cálculo es 0, se produce la transición a Fin de repetición, y:
el valor de repeat_index no cambia y permanece igual a -1 (intentaron iniciar el ciclo, pero nunca funcionó)
Se restablece el estado de ciclo (véase Restablecimiento del estado de ciclo)
Si el resultado del cálculo es un número entero mayor que 0, se produce la transición a Repetir siguiente.
La rama de script Repetir siguiente implementa un algoritmo cíclico sin bloqueo.
Puede ir a Repetir siguiente:
de la repetición de la ranura de los padres;
utilizando la ranura de salto;
automáticamente desde el final de la rama Repetir siguiente script - transición a la siguiente iteración del ciclo.
Al entrar en la subranura Repetir siguiente, se determina dónde debe realizarse la siguiente transición y, a continuación, se realiza la transición propiamente dicha:
Se comprueba si se ha alcanzado el número de iteraciones de bucle especificado en la ranura de repetición: si el valor de repeat_index es mayor o igual que el número <valor especificado en el campo Número de iteraciones> - 1, entonces se produce la transición a la Rama de Script de Fin de Repetición.
Ejemplo: se especifica el número 10 en el campo Número de iteraciones. La numeración de iteraciones en repeat_index comienza desde 0, entonces cuando repeat_index toma el valor 9, se produce una transición a la rama de script Repeat End.
Se comprueba el Límite del número de iteraciones del ciclo de una Ranura de repetición: si el valor de repeat_index es mayor o igual que el Límite en el número de iteraciones del ciclo de una Ranura de Repetición:
Se produce una transición a la Rama de Guión de Límite de Repetición.
Se restablece el estado de ciclo (véase Restablecimiento del estado de ciclo)
Ejemplo: El Límite del número de iteraciones del ciclo de una Ranura de Repetición es 500. Si el valor de repeat_index es 500 o 501, se produce una transición a la rama de script de límite de repetición.
Inicio de la siguiente iteración del ciclo: Si las operaciones anteriores no alcanzaron las subcuadrículas Repeat Limit y Repeat End, el valor de repeat_index se incrementa en 1 y se produce la transición a Repeat Next.
Ejemplo: el campo Número de iteraciones contiene el número 10. El valor de repeat_index es 3. En este caso, repeat_index toma el valor 4 y se produce la transición a la rama Repeat Next Script Branch.
Se introdujo un retraso artificial de 0,3 segundos entre las iteraciones del bucle.
El ciclo se interrumpe y se completa:
Debido a que se salta más allá de la Rama Repetir Siguiente Guión utilizando la Ranura de Salto;
Ejemplo: en este Script hay una transición desde la Rama Repetir Siguiente Script a la Ranura de Texto con ID 11762076.
b. Debido a la transferencia al operador;
c. Debido a la recepción de un Mensaje de un usuario Bot, para cuyo procesamiento no hay Slot en la Rama Repetir Siguiente Script;
d. Debido a que se ha alcanzado el Límite del número de iteraciones del ciclo por minuto por Empresa;
e. Debido a la superación del Límite del número de iteraciones del ciclo de una Ranura de Repetición.
El estado del ciclo se restablece al entrar en las subzonas de error de repetición, fin de repetición y límite de repetición, así como en la siguiente iniciación del ciclo.
Al restablecer el estado de ciclo:
el ciclo termina;
repeat_index permanece en el Chat Context, cuyo valor es el índice del ciclo en la última iteración completada;
el estado de bucle pasa a ser no iniciado.
Para reiniciar un bucle después de restablecer el estado del bucle, se debe ejecutar la Ranura de Repetición en el Script para iniciar el bucle.
En caso de que haya una transición a la rama de guión Repetir siguiente utilizando la ranura de salto, con la excepción de una transición a la propia ranura Repetir siguiente, y
ciclo iniciado:
La Conversación se mueve hasta el final de la Rama Script sin incrementar repeat_index, y luego se mueve a la Rama Repetir Siguiente Script para la siguiente iteración, de acuerdo con el párrafo 3 de la sección Continuación del ciclo.
no se inicia el ciclo y/o no se calcula el valor especificado en el campo Número de iteraciones:
después de pasar la Rama de Guión Repetir Siguiente hasta el final, se produce una transición a la Rama de Guión Repetir Error (excepto en el caso de que haya sobrepasado sus límites utilizando la Ranura de Salto)
Después de reiniciar el estado del bucle, la próxima vez que se mueva a la Rama de Repetición de Guión Siguiente usando la Ranura de Salto (sin pasar de nuevo por la Ranura de Repetición), después de pasar por la Rama de Repetición de Guión Siguiente, se hará una transición a la Rama de Repetición de Guión de Error (siempre que no haya una Rama de Repetición de Guión Siguiente que vaya más allá usando la Ranura de Salto).
Si hay un Cambio de Modo de Chat en la Rama Repetir Siguiente Script, entonces el Diálogo se cierra y las siguientes iteraciones no se realizan.
Si la iteración actual Repetir Siguiente no tiene una Ranura de Espera de Entrada, pero durante la ejecución de esta iteración se recibe un Mensaje del usuario Bot, entonces después de la finalización de la iteración actual, se produce una transición a la Rama Repetir Fin de Guión.
Si, mientras se realizan iteraciones, se alcanza el Límite del número de iteraciones del ciclo por minuto por Empresa, se produce una transición a la Rama de Guión Límite de Repetición, que puede ocurrir antes, después o durante la iteración.