Saltar a contenido

Abril 2024

Orquestador de BotCity

Generador de fragmentos de código

Estamos introduciendo la nueva función de Generador de fragmentos de código.

Nuestro interés al hacer esto es involucrar más a los usuarios con las características más avanzadas y permitirles mejorar su experiencia simplemente accediendo a lo que ya está disponible para ellos.

Encontrar fragmentos de código personalizados

Cada característica del Orquestador tendrá la función de Generador de fragmentos de código.

chrome-capture-2024-4-24 (2) (1).gif

Haz clic en este botón para encontrar fragmentos de código para varios casos de uso.

chrome-capture-2024-4-24.gif

Los usuarios podrán elegir en qué lenguaje desean que esté el fragmento de código, con opciones de Python, Java, JavaScript y TypeScript.

Snippet Generator_img3.png

Y si hay un atributo específico en el fragmento de código, el usuario puede seleccionarlo directamente en la pantalla. En este ejemplo, pueden seleccionar el tipo de archivo que desean importar al realizar una acción de carga de artefacto.

chrome-capture-2024-4-24 (1).gif

Obtener el código en tu IDE

Después de seleccionar el caso de uso, el lenguaje y cualquier atributo especial, se genera un fragmento de código... Este código se puede copiar utilizando el botón "copiar código" y pegarlo en el IDE preferido del usuario.

CPT2404241116-619x479.gif

Nota: No es posible editar el código dentro del generador de fragmentos de código. Si el usuario desea editar algo, debe hacerlo directamente en su IDE.

Si tienes preguntas

Si tienes preguntas sobre un caso de uso o un fragmento de código, puedes consultar la documentación de Botcity a través del hipervínculo "cómo usar".

Snippet Generator_img8.png

Características del producto que incluyen la función [generador de fragmentos de código]:

  • Data Pool
  • Nueva tarea
  • Alertas
  • Registro de errores
  • Registro de ejecución
  • Archivos de resultado
  • Credenciales

Implementación fácil para automatizaciones existentes

Nos dimos cuenta de que algunos usuarios estaban intentando utilizar la función de Implementación fácil para cargar nuevos bots en automatizaciones existentes, y hasta ahora no era posible, así que cambiamos eso.

Ahora será posible implementar un bot para una automatización nueva o existente a través de esta función, facilitando la implementación de un nuevo bot en cualquier automatización.

Dos opciones para comenzar

Ahora, al comienzo del flujo de Implementación fácil, hay estas dos opciones:

  • Crear nueva automatización
  • Elegir automatización existente

Easy deploy - enable choose automation - New.png

Después de eso, los dos caminos son bastante similares, solo con algunas diferencias. En el camino de la automatización existente, algunos datos ya vienen completados y otros no se pueden editar.

Secuencia de pantallas para nueva automatización

Easy deploy - enable choose automation - New.png Easy deploy - enable choose automation - New-4.png Easy deploy - enable choose automation - New-1.png Easy deploy - enable choose automation - New-3.png

Secuencia de pantallas para automatización existente

Easy deploy - enable choose automation - Choose-5.png Easy deploy - enable choose automation - Choose-5.png Easy deploy - enable choose automation - Choose-3.png Easy deploy - enable choose automation - Choose-2.png Easy deploy - enable choose automation - Choose-1.png

Opción de liberar el bot

Ahora es posible liberar el bot que se está implementando seleccionando esta opción aquí:

Necesitas un Runner para comenzar

Otra cosa que cambiamos es que ya no es posible crear un nuevo Runner en este flujo, así que si el espacio de trabajo aún no tiene un Runner, el usuario verá esta pantalla, que lo llevará a la descarga del SDK e instrucciones.

Easy deploy - enable choose automation - New (1).png

BotCity Studio SDK - 2.20.0

Warning

Se recomienda encarecidamente la actualización a esta nueva versión, ya que trae grandes mejoras para el BotCity Runner en cuanto a cómo se manejan los archivos de registro y la estabilidad general.

BotCity Studio - Versión 2.20.0

Esta versión de BotCity Studio recibió una mejora de características y varias correcciones de problemas/errores.

Especificar un repositorio durante la implementación

Si utilizas BotCity Studio para implementar, actualizar y liberar tus bots en BotCity Orchestrator, ahora podrás especificar el repositorio adecuado en el que asignar tu bot.

Problemas/Errores solucionados

  • Se solucionó un error que hacía que Studio tomara una captura de pantalla cuando se presionaba * en el teclado numérico.
  • Se solucionó un problema que hacía que el icono de Studio parpadeara en la barra de inicio cuando se tomaba una captura de pantalla.
  • Se solucionó un problema que hacía que la lista de archivos del proyecto estuviera desincronizada con el disco.
  • Se solucionó un problema que hacía que el panel de imágenes de la interfaz de usuario tuviera una dimensión diferente a la resolución de la pantalla.

Runner - Versión 2.8.4

La versión 2.8.4 de BotCity Runner ofrece una mayor estabilidad frente a problemas de conectividad, así como algunas mejoras de registro deseadas desde hace mucho tiempo.

Estabilidad

Ahora, si la comunicación con BotCity Orchestrator falla debido a un problema de conectividad, BotCity Runner volverá a intentar las operaciones.

Se agregó un enfoque especial al procedimiento de descarga del bot, en el que BotCity Runner volverá a intentar la descarga hasta 5 veces antes de informar un error.

Registros

En versiones anteriores, el archivo de registro, log.txt, se reiniciaba constantemente cada vez que se reiniciaba el Runner. Además, no había límite de tamaño, lo que causaba problemas en operaciones de larga duración.

A partir de esta versión, los registros ahora se encuentran dentro de la carpeta logs y nunca se sobrescriben.

También se agregó una función para rotar el registro en caso de que ocurra una de las siguientes situaciones:

  1. Comienza un nuevo día
  2. El registro alcanza un tamaño de 3MB

Tip

También agregamos protección para asegurarnos de que la carpeta de registros no crezca indefinidamente.

El sistema eliminará automáticamente los archivos de registro antiguos cuando el tamaño de la carpeta de registros alcance 1GB o los archivos tengan más de 7 días.

Consulta la documentación de BotCity Runner para obtener opciones de personalización e información adicional.

Problemas/Errores solucionados

  • Se solucionó un problema que hacía que PYTHONPATH se sobrescribiera por el Runner.

CLI - Versión 1.2.4

Esta nueva versión de la CLI de BotCity trae muchas mejoras en las características, mejores mensajes de error y una salida visual de los comandos.

Especificar el repositorio

Ahora puedes especificar un repositorio al implementar un bot o al crear un nuevo registro de ejecución.

Parámetros para programación

Al crear una nueva programación para una automatización determinada, ahora puedes especificar los parámetros asociados con esta instancia de programación. Obtén más información y ve ejemplos aquí.

Informe de tarea mejorado

El comando de informe de tarea para exportar datos de la cola de tareas se mejoró para proporcionar más información.

Los nuevos campos son:

  • Etiqueta del Repositorio
  • Total de Elementos, Elementos Procesados y Elementos Fallidos
  • Fecha de Inicio de Ejecución
  • Duración (Segundos)

Haz clic aquí para obtener más información sobre esta función.

Mejora en la salida visual y mensajes de error

BotCLI

Seguridad

Nuestro equipo ha actualizado todas las dependencias externas para incorporar correcciones de posibles vulnerabilidades y mejoras de rendimiento.

Frameworks de Python

Soporte para Python 3.12

Todos los frameworks y complementos ahora son totalmente compatibles con Python 3.12.

Si encuentras algún problema, por favor, repórtalo a nuestro equipo de Automation Experience.

BotCity Maestro SDK - Versión 0.5.1

Note

Esta versión elimina la capa de compatibilidad con la API v1 de BotCity Orchestrator, que ya no está disponible en ninguno de nuestros servidores.

Reporte del número total de elementos procesados, con éxito y fallidos

Ahora puedes especificar el número total de elementos y el número de elementos procesados con éxito y fallidos por cada una de tus tareas al informar su estado de finalización utilizando el método maestro.finish_task.

Important

Se recomienda encarecidamente este cambio, ya que será un aspecto clave del BotCity Orchestrator y BotCity Insights relacionado con el ROI, los ahorros y los FTEs.

Así es como puedes modificar tu código para informar tus elementos:

# Import for integration with BotCity Maestro SDK
from botcity.maestro import *

def main():
    ...
    maestro.finish_task(
        task_id=execution.task_id,
        status=AutomationTaskFinishStatus.SUCCESS,
        message="Task Finished with Success.",
      total_items=10,
      processed_items=6,
      failed_items=4
    )

...

Simulación de llamadas al SDK cuando se está desconectado

Ahora puedes habilitar una nueva opción MOCK_OBJECT_WHEN_DISCONNECTED para devolver instancias del objeto esperado cuando se ejecuta el código desconectado del orquestador.

Antes de esta opción, el SDK devolvía None o una función ficticia que hacía que el código como el ejemplo siguiente fallara.

# Import for integration with BotCity Maestro SDK
from botcity.maestro import *

# Disable errors if we are not connected to Maestro
BotMaestroSDK.RAISE_NOT_CONNECTED = False
# Opt-in to receive mock objects when not connected to Maestro
BotMaestroSDK.MOCK_OBJECT_WHEN_DISCONNECTED = True

def main():
    maestro = BotMaestroSDK()
    maestro.from_sys_args()
    task = maestro.get_task("12345")
    print("Maestro Task: ", task)
    print("Task Interrupted: ", task.is_interrupted())

if __name__ == '__main__':
    main()

"""
This will generate the following output:

Maestro Task:
AutomationTask(
    id=0, state=<AutomationTaskState.START: 'START'>,
    parameters=None, input_file=None, activity_id=0,
    activity_label=None, agent_id=0,
    user_creation_id=0, user_creation_name=None,
    org_creation_id=0, date_creation=None, date_last_modified=None,
    finish_status=<AutomationTaskFinishStatus.FAILED: 'FAILED'>, finish_message=None,
    test=False, interrupted=False, killed=False, machine_id=None
)

Task Interrupted:  False
"""

Problemas/Bugs solucionados

  • Se solucionó un problema en el que no se utilizaba la bandera VERIFY_SSL_CERT al realizar solicitudes.
  • Se solucionó un problema en el que el valor timeout no se propagaba correctamente cuando estaba configurado.

BotCity Framework Web - Versión 1.0.0

Esta es una versión importante, ya que cambia la versión principal de Selenium de 3 a 4.

Nuestro equipo ha sido diligente al crear una capa de compatibilidad para evitar problemas con el código existente siempre que sea posible bajo las llamadas de método encapsuladas.

Para utilizar esta nueva versión, recomendamos que cambies la versión en tu archivo requirements.txt a algo similar a esto:

botcity-framework-web>=1.0.0,<2.0

Soporte para Selenium 4

Nuestro framework se ha actualizado para admitir la versión 4 de Selenium con una capa de compatibilidad hacia atrás para la sintaxis de Selenium 3.x.

Si encuentras algún problema, por favor, informa tus hallazgos a nuestro equipo de Automation Experience o abre un problema en nuestro repositorio de GitHub.

Soporte experimental para undetected_chromedriver

Esta versión agrega soporte experimental para undetected_chromedriver como uno de los navegadores posibles. Obtén más información sobre undetected_chromedriver haciendo clic aquí.

Puedes probarlo cambiando la propiedad browser a UNDETECTED_CHROME:

# Import the Browser enum
from botcity.web import WebBot, Browser

def main():
    # Instantiate the WebBot.
    bot = WebBot()

    # Configure whether or not to run on headless mode.
    bot.headless = False

    # Configure the browser as UNDETECTED CHROME
    bot.browser = Browser.UNDETECTED_CHROME

    ...

Important

Ten en cuenta que no se garantiza que tu automatización no sea detectada por mecanismos de detección de bots.

Limpieza automática del navegador

Hemos añadido un gancho atexit para asegurarnos de que stop_browser siempre se invoque.

Esto ayuda a evitar problemas en los que el código se queda en ejecución y bloquea el BotCity Runner hasta que el controlador web finaliza debido a que el código no llama a stop_browser al final.

Problemas/Bugs solucionados

  • Se desactivó la protección de pantalla inteligente en Microsoft Edge.
  • Se solucionó un problema cuando no había ninguna pestaña activa al detener el navegador.

Frameworks de Java

BotCity Maestro SDK - Versión 2.2.0

Reporte del número total de elementos procesados, con éxito y fallidos

Ahora puedes especificar el número total de elementos y el número de elementos procesados con éxito y fallidos por cada una de tus tareas al informar su estado de finalización utilizando el método maestro.finishTask.

Important

Se recomienda encarecidamente este cambio, ya que será un aspecto clave del BotCity Orchestrator y BotCity Insights relacionado con el ROI, los ahorros y los FTEs.

Así es como puedes modificar tu código para informar tus elementos:

...

int totalItems = 10;
int processedItems = 6;
int failedItems = 4;

maestro.finishTask(
    task.id, "Task Finished with Success.", FinishStatus.SUCCESS,
  totalItems, processedItems, failedItems
);
...