Está en la página 1de 30

Blue Prism

Mejor práctica de desarrollo

blueprism.com
Información
Información comercial confidencial
Capa del objeto
Mejor práctica

blueprism.com 2
Información
Información comercial confidencial
Mejor práctica de desarrollo - Objetos
Acciones

Esto confirmará que el proceso está en la ruta


Etapa de espera al correcta y permite absorber la latencia del
comienzo de cada acción sistema para aumentar la resiliencia del
proceso.

Siempre emita una


excepción al llegar al límite
de tiempo de espera
No intente recuperar el proceso tras la etapa
de espera. Emita la excepción y permita que
el proceso la maneje. El proceso puede optar
por intentarlo nuevamente varias veces o
reiniciar el sistema, o bien en última instancia
elevar una alerta.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Acciones

Evite usar esperas


arbitrarias
Espere siempre a que la pantalla
Las esperas arbitrarias solo cambie
deben usarse si no es posible
esperar un cambio de pantalla.
Utilice etapas de espera después de
las etapas de navegación o cualquier
etapa que cause la actualización de la
pantalla.
Esto absorberá la latencia pero
además asegurará que el proceso se
ejecute a su máxima velocidad. En este
ejemplo, no tiene sentido esperar 5
segundos si el sistema está disponible
después de 1 minuto.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Acciones

Aquí, el proceso debe invocar


No invoque acciones la acción “Navigate to New
publicadas desde el interior Proposal” (Navegar a nueva
de un objeto propuesta) y luego la acción
“Submit New Proposal” (Enviar
nueva propuesta).
Esto facilitará mucho el manejo
de excepciones y permitirá que
las acciones puedan volver a
usarse más veces.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Acciones

El diseño del objeto debe ser tal


que haya dos acciones y no una:
Una acción para obtener
No tome decisiones detalles de la cuenta (“Get
comerciales en el objeto Account Details”) que devuelva
todos los detalles de la cuenta
en la pantalla y otra acción para
aplicar un nuevo límite (“Apply
En este ejemplo, nuestra acción new limit”).
obtiene detalles de una cuenta
desde la pantalla y aplica un La decisión de aplicar un nuevo
nuevo límite, a menos que los límite sobre la base del código
códigos de riesgo sean de un de riego debe ser tomada por el
valor específico. proceso y no por el objeto.
Esto habilita a otros procesos
para invocar la acción “Get
Account Details” sin aplicar un
nuevo límite.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Acciones

Brinde el tipo y los detalles


adecuados para todas las
excepciones

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Acciones

Brinde descripciones para


entradas, salidas y acciones

Esto elimina cualquier


ambigüedad y además
proporciona contenido para el
documento autogenerado
Business Object Definition
(BOD) (Definición de objeto
comercial).

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Elementos de datos
Almacene los elementos
de datos globales en la
página de inicialización
Agrupe los bloques
relevantes de elementos de
datos

No hay datos hardcode en


los elementos de datos

Utilice parámetros de entrada y haga que


el proceso brinde los valores. De ser
necesario, el proceso puede consumir
una variable de entorno para los
parámetros que pueden cambiar.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Modelador de aplicación
Cumple con la convención
de nomenclatura local

Por lo general, el formato es {tipo


de elemento} – {nombre de
elemento}, por ejemplo:
Button – Submit (Botón - Enviar)
Input – Account Number
(Entrada - Número de cuenta)
List – Products (Lista - Productos)

Cree secciones para cada parte de la pantalla.


Disposición lógica Esto facilita la asistencia y mitiga el riego de
que se vuelvan a espiar elementos
incorrectos.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Modelador de aplicación

Los datos de cliente


No hay datos de cliente capturados en los atributo
de elementos podrían
romper la seguridad de los
datos.

No hay datos específicos del entorno

Los datos específicos del entorno harán que


el proceso falle al migrar. De ser necesario,
haga que el valor sea dinámico.

Información comercial confidencial


Mejor práctica de desarrollo - Objetos
Exposición

Defina siempre la
exposición de un objeto

Información comercial confidencial


Capa del proceso
Mejor práctica

blueprism.com13
Información
Información comercial confidencial
Solución del proceso
Creación de un proceso

El proceso que construiré para esta sesión es el proceso para crear cotizaciones. Este proceso comercial incluye los siguientes pasos
básicos:
– Obtenga solicitudes de trabajo de un libro de trabajo Excel
– Para cada solicitud, realice cierta navegación y una actualización en una aplicación denominada BP Travel

Antes de comenzar nos hemos asegurado de lo siguiente:


– El diseño está completo:
– El documento PDI para este proceso puede descargarse junto con este tutorial.

Los objetos requeridos ya se han construido. Los objetos que estoy usando son:
– BP Travel – Acciones básicas
– BP Travel – Cotizaciones
– MS Excel VBO

Se han creado la cola de trabajo y las variables de entorno y sesión en el diseño


– Estoy usando una cola de trabajo denominada “Quote Requests” (Solicitudes de cola)

Información comercial confidencial


Solución del proceso
Práctica errónea

A la derecha aparece la página principal del primer intento de creación del proceso.
Necesita mejoras porque:
– Hay solo una dificultad importante para leer la página
– La apariencia y el comportamiento del proceso son evidentes para mí, y esto
dificultará la compatibilidad para otros
– No hay una lógica de manejo de excepciones
– Si surge un problema menor en un sistema finalizará el proceso
– El proceso es difícil de controlar mientras se está ejecutando porque no hay
variables de sesión

¿Cómo podemos mejorar el proceso?


• Este proceso necesita mejorar para ser más granular, sólido y fácil de controlar.

Información comercial confidencial


Solución del proceso
Una simple página principal que utiliza subpáginas

A la derecha aparece la página principal de mi proceso después de haber


movido la mayoría de la lógica del proceso a subpáginas
Nuevas subpáginas:
– Start Up (Arranque): abre e inicia sesión en las aplicaciones
– Close Down (Cierre): cierra sesión y sale de las aplicaciones
– Populate Queue (Completar cola): carga trabajo desde la fuente
de origen en una cola de trabajo de Blue Prism
– Work Pages (Páginas de trabajo): mi proceso cuenta con algunas
subpáginas de “trabajo” para navegar en los sistemas que usa y
actualizarlos
¿Por qué esto es mejor?
• Ahora es más fácil comprender rápidamente lo que hace el proceso: solo basta
con echar un vistazo a la página principal.

Información comercial confidencial


Solución del proceso
Mayor control: la decisión de detener o no el proceso
A la derecha aparece la página principal de mi proceso después de agregar
una etapa para decidir o no detenerlo (Stop?).
Esta decisión evalúa las variables de sesión después de haber trabajado en
cada elemento de la cola de trabajo.
Variables de sesión de la decisión de detención:
– Stop ASAP (marcador para detener lo antes posible): variable de
sesión de marcador para indicar si el proceso debe detenerse
después de trabajar en el caso actual
– Stop Time (Tiempo de detención): variable de sesión de tiempo
que se define con el tiempo que debe transcurrir para que el
proceso deje de trabajar
– Stop After Items (Detención tras una cantidad de elementos):
variable de sesión de cantidad que indica cuántos elementos más
hay que trabajar antes de que se detenga el proceso
¿Por qué esto es mejor?
• El controlador ahora puede alterar fácilmente la ejecución de una sesión
de proceso desde el interior de la Sala de control.

Información comercial confidencial


Solución del proceso
Solidez: bloque de excepción de la página principal
Si surge una excepción en nuestra página principal proveniente de una
subpágina, no queremos que el proceso finalice.
Bloque de la página principal
En el diagrama de flujo que se muestra a la derecha, he agregado lo
siguiente:
– Un bloque que rodea las subpáginas de la interfaz de trabajo
principal con una etapa de recuperación.
– Una etapa de acción Mark Exception (Marcar excepción) que
marca el elemento actual de la cola de trabajo como una
excepción.
– Una etapa de reanudación para que el flujo pueda continuar e
intentar trabajar en el siguiente elemento de la cola de trabajo.
¿Por qué esto es mejor?
• Todos los elementos de la cola de trabajo deben tener un resultado
definido por el proceso, ya sea Completed (Completado) o Exception
(Excepción)
• El proceso no debe finalizar si un caso tiene un problema.

Información comercial confidencial


Solución del proceso
Solidez: bucles de reintento de las subpáginas

Si ocurre una excepción en una subpágina, puede tratarse de un problema por única vez (por ejemplo, el
límite de tiempo de una red) que se resolvería si el flujo del proceso simplemente hiciera un nuevo
intento.
• Bucle de reintento de subpágina
• En todas mis subpáginas de “trabajo” hice lo
siguiente:
‐ Capturé cualquier excepción con una etapa
de recuperación
‐ Evalué la excepción con una decisión de
posible reintento (Retry?)
‐ Si hubo menos de 3 intentos y la excepción
es un tipo que deseo reintentar, creé un
bucle para intentarlo nuevamente
‐ Si lo intenté nuevamente, ordené el sistema
usado, en este caso solo lo estamos ¿Por qué esto es mejor?
reiniciando
• En los errores de aplicaciones por única vez o en los sistemas que
‐ Si no lo intenté nuevamente, “emití” la
tienen problemas de confiabilidad, el bucle de reintento mejora las
excepción hasta la página principal
probabilidades de que un elemento de la cola de trabajo se trabaje
correctamente.
Información comercial confidencial
Solución del proceso
Solidez: excepciones concurrentes

Si se produce la misma excepción para cada elemento de la cola de


trabajo con el que el proceso intenta trabajar, es mejor finalizar el
proceso para que un controlador pueda investigar el problema.
Marque el elemento como una excepción
La página principal que aparece a la derecha invoca una subpágina
que realiza las siguientes acciones:
– Compara la excepción actual con la anterior
– Finaliza el proceso (“arroja” la excepción) si la misma
excepción se produce de forma repetida para una cantidad
configurable de casos concurrentes.

¿Por qué esto es mejor?


• Si un sistema no está disponible o ha cambiado no queremos que
nuestro proceso lo intente con cada elemento de la cola de trabajo
y marque todos los elementos como excepciones.

Información comercial confidencial


Solución del proceso
Otras mejoras

Las mejoras finales en mi proceso se realizan para garantizar el uso de variables de entorno para guardar mis datos
de proceso configurables y de etiquetas para capturar cualquier MI que yo requiera.

• Variables de entorno
- Las variables de entorno deben usarse para guardar información
configurable, como por ejemplo:
- Rutas de red
- Configuración de correo electrónico, base de datos o servicio
web
- Configuración del sistema tal como direcciones URL
• Etiquetas de colas de trabajo
- Las etiquetas de colas de trabajo se informan en el informe de desempeño
de Blue Prism (Blue Prism Performance Report)
- Todos los elementos de la cola de trabajo que representan excepciones
deben marcarse como excepciones del sistema o excepciones comerciales
- Otras etiquetas son de utilidad para obtener cantidades totales de
diferentes tipos de trabajo o casos

Información comercial confidencial


Solución del proceso
Plantillas de proceso de Blue Prism
Familiarícese con las plantillas de proceso
Si observa el proceso creado en este tutorial y lo compara con una
plantilla de proceso de Blue Prism (disponible en el portal), verá que
se ven extremadamente similares.
Nuestras plantillas de proceso tienen el mismo aspecto y
comportamiento, y las mismas funciones para que los procesos sean
sólidos y más fáciles de comprender y compatibilizar.

Utilice siempre plantillas de proceso


– Siempre debe usar plantillas de proceso de Blue Prism como
punto de partida al crear un nuevo proceso.
– Ahorre tiempo: las plantillas de proceso ya han hecho un
inicio en la lógica de su proceso.
– Asegure las mejores prácticas: las plantillas de proceso ya
contienen todas las lecciones de este tutorial.

Información comercial confidencial


Mejor práctica de desarrollo - Proceso
Estructura
Utilice las plantillas de Blue
Prism o las plantillas
suministradas por la autoridad
de diseño local

La lógica estándar de las


plantillas posibilita una
familiaridad que facilita la
compatibilidad.

La página principal debe


contener pasos de alto
nivel de proceso

Todos los detalles y decisiones


del proceso deben dividirse en
subpáginas lógicas
Información comercial confidencial
Mejor práctica de desarrollo - Proceso
Detención de las sesiones ya existentes
Si el controlador de la cola decide que las sesiones
existentes deben detenerse para llegar al objetivo,
recorrerá repetidamente las sesiones y elegirá las más
antiguas (las sesiones que se iniciaron con mayor
anticipación) para enviarles una solicitud de detención.

Una vez que el controlador envía una solicitud de Utilice las plantillas de Blue
detención a una sesión, la sesión se marca con la Prism o las plantillas
leyenda Stopping (En detención). En este estado, la suministradas por la autoridad
de diseño local
sesión aún está en “ejecución”: contribuye al recuento
de sesiones activas de la cola y no está disponible para
ejecutar más sesiones. La lógica estándar de las
plantillas posibilita una
Para hacer la detención correctamente, el proceso de familiaridad que facilita la
trabajo debe verificar la función IsStopRequested() compatibilidad.
periódicamente, limpiar su entorno y salir del proceso
cuando la función indique que se ha solicitado una
detención. Los procesos en ejecución en la
Sala de control ahora pueden
detenerse con el comando
“Request” (Solicitar) cuando se
usa la función IsStopRequested
en el proceso Información comercial confidencial
Mejor práctica de desarrollo - Proceso
Reintentos
Uso correcto de reintentos

Si la cola de trabajo lo permite,


reintente excepciones del sistema. No
reintente excepciones comerciales

Verifique las excepciones del sistema


consecutivas

La misma excepción del sistema en varios


casos consecutivos puede ser una señal de
que el sistema ha cambiado.

Información comercial confidencial


Mejor práctica de desarrollo - Proceso
Reintentos

Uso correcto de reintentos

De ser posible, reintente


las excepciones del
sistema dentro del
proceso. Esto puede
requerir una navegación
especial o incluso el
reinicio del sistema

Información comercial confidencial


Mejor práctica de desarrollo
Prácticas aún mejores

blueprism.com27
Información
Información comercial confidencial
Mejor práctica de desarrollo
Prácticas aún mejores

Siempre verifique que no


haya errores o realice una
validación al guardar.

Información comercial confidencial


Mejor práctica de desarrollo
Prácticas aún mejores

Los bucles fabricados tienen


mecanismos de defensa

Al crear sus propios bucles, cree siempre un


contador y arroje una excepción si se alcanza
un límite excesivo.
Esto evitará que el flujo entre en un bucle
infinito.

La etapa local adhiere al


control de diseño local

Información comercial confidencial


Mejor práctica de desarrollo

®Blue Prism es una marca comercial registrada de Blue Prism Limited

Información comercial confidencial

También podría gustarte