Академический Документы
Профессиональный Документы
Культура Документы
7/)
Search
Tutorial de inicio
Este tutorial explica cómo crear una aplicación que incluya un proceso. La aplicación se crea con Bonita
Community Edition y utiliza funciones que están disponibles en todas las ediciones. La aplicación de
ejemplo es una herramienta de viaje de negocios.
Este es el caso de uso: un empleado abre la aplicación Travel Tool para ver sus solicitudes de viaje
pendientes y aprobadas. Crean una nueva solicitud de viaje. Luego, la solicitud se envía al gerente del
empleado. El gerente revisa la solicitud y la aprueba o rechaza.
En una aplicación de gestión de viajes real, habría varios pasos del proceso después de la aprobación:
estimar los costos, posiblemente obtener un segundo nivel de aprobación si el costo supera un cierto
umbral, presentar un reclamo de gastos después del viaje, revisar el reclamo de gastos, escalar
cualquier cosa de política y autorización de pago. Sin embargo, para este tutorial considerará solo la
primera parte del proceso, donde se envía una solicitud de viaje y luego se revisa.
Este tutorial asume que eres un desarrollador que usa Bonita por primera vez. Da instrucciones para usar
Bonita Studio, el Diseñador de UI y Bonita Portal. Se supone que está familiarizado con las API de
JavaScript, JSON y REST.
Use Bonita Studio para definir su proceso, incluido el uso del Diseñador de IU para crear páginas y
formularios. Luego use Bonita Portal para construir la aplicación.
Esta es la secuencia recomendada para crear una aplicación, pero generalmente las páginas de la
aplicación, el modelo de datos y los procesos se definen en paralelo y evolucionan a medida que
profundiza en los detalles de la aplicación:
Bonita Studio UI Designer es un entorno para crear páginas y formularios de aplicaciones. Para iniciar el
Diseñador de UI, haga clic en el icono del Diseñador de UI en la barra de enfriamiento de Bonita Studio
(en la parte superior de la pantalla). El Diseñador de IU se abre en un navegador.
La herramienta de viaje tiene una página de inicio que muestra una lista de solicitudes de viaje
pendientes y aprobadas para el usuario actual. Contiene un botón para iniciar una nueva solicitud de
viaje.
La forma más fácil de crear estos formularios es desde la definición del proceso, por lo que es lo que
hará más adelante en el tutorial.
Las siguientes secciones explican cómo crear la página de la aplicación y luego llenarla con datos
ficticios. En cualquier etapa, puede hacer clic en Vista previa y ver una vista previa del diseño de la
página tal como aparecerá para los usuarios. Recuerde hacer clic en Guardar para guardar su trabajo
con frecuencia.
Un widget LINK con propiedad de texto Create new travel request y estilo establecida en
primaria.
Un CONTENEDOR para las solicitudes aprobadas por el usuario, con los siguientes widgets:
Un widget TITLE con un nivel de título más bajo que el título de la página (por ejemplo,
"Nivel 3"), con el texto My approved requests .
Un widget TABLE para enumerar las solicitudes de viaje aprobadas, con las siguientes
propiedades:
Encabezados establecidos en Departure date, Number of nights, Hotel needed,
Destination, Reason .
Clave de columnas establecida en departureDate, numberOfNights, hotelNeeded,
destination, reason .
Cuando haya agregado los widgets, haga clic en Vista previa para ver cómo se muestra la página.
Cambie la disposición de los widgets en la pizarra usando arrastrar y soltar y usando la propiedad Ancho
, hasta que esté satisfecho con el resultado.
Recuerde hacer clic en el botón Guardar superior o escriba Ctrl+S para guardar su trabajo.
1. En el panel Variables (en la parte inferior de la página), haga clic en Crear una nueva variable .
2. Ingrese el nombre de la variable, myPendingRequests .
3. Seleccione el tipo JSON.
4. Ingrese este valor:
[
{
"userId": 3,
"destination": "Grenoble",
"departureDate": "2016-02-09",
"numberOfNights": 1,
"hotelNeeded": true,
"reason": "Bonita 7.2 launch",
"status": "pending",
"refusalReason": ""
},
{
"userId": 3,
"departureDate": "2016-10-09",
"numberOfNights": 3,
"hotelNeeded": false,
"destination": "Paris",
"reason": "Open source conference",
"status": "pending",
"refusalReason": ""
},
{
"userId": 3,
"departureDate": "2016-07-07",
"numberOfNights": 4,
"hotelNeeded": false,
"destination": "San Francisco",
"reason": "BPAD training",
"status": "pending",
"refusalReason": ""
}
]
Cuando haya definido esta variable, seleccione el widget de tabla para las solicitudes aprobadas y
establezca el valor de la propiedad Contenido en myApprovedRequests (recuerde hacer clic en el icono "
fx ").
Primero, crearemos el modelo de datos comerciales, que luego estará disponible para todos los
procesos. Usaremos un modelo con un objeto:
TravelRequest contiene los detalles del viaje que se solicita y su estado de aprobación.
2. Junto a la lista de tipos de objeto de negocio, haga clic en Agregar . Un nombre de tipo
temporal, como BusinessObject1, se agrega a la lista.
4. Seleccione el tipo de objeto comercial TravelRequest y agregue sus atributos. Esta tabla muestra
los atributos y sus tipos:
ID de usuario Largo si
hotelNeeded Booleano si
destino Cuerda si
razón Cuerda si
estado Cuerda si
3. Seleccione el tipo de la lista desplegable. Para mostrar la lista, haga clic en el extremo derecho
de la columna Tipo .
4. No hay atributos múltiples en este objeto, por lo que puede ignorar esta columna.
6. Agregue una consulta personalizada que usará para buscar datos utilizando el ID de usuario y el
estado:
1. Haga clic en Nuevo diagrama en la página de bienvenida de Bonita Studio. Esto crea un diagrama
casi vacío para que pueda comenzar a actualizar:
2. Lo primero que debe hacer es darle al diagrama un nombre más descriptivo. Haga clic en el
diagrama fuera del grupo, luego vaya al panel Detalles . Esta es el área en la esquina inferior
derecha de la pantalla.
3. En la pestaña General , panel Diagrama , haga clic en Editar ... junto al campo Nombre .
4. Ingrese el nuevo nombre del diagrama, Solicitud de viaje simple , en la ventana emergente y haga
clic en Aceptar . Puede ver en la pestaña en la parte superior de la pizarra que el nombre del
diagrama ha cambiado.
5. Ahora dale al Pool un nombre más descriptivo. Seleccione la piscina haciendo clic en el espacio
entre el borde de la piscina y el borde del carril en el lado izquierdo del diagrama. Luego, vaya al
panel Detalles , pestaña General , panel Grupo y haga clic en Editar ... junto al campo Nombre .
Ingrese el nuevo nombre del grupo, Solicitud de viaje , en la ventana emergente. Cuando ha
cambiado el nombre del diagrama y el grupo, el diagrama se ve así:
6. Este proceso comienza cuando un empleado completa un formulario de solicitud de viaje. No
necesita crear una tarea para esto porque es esta acción la que desencadena el inicio del proceso.
Esto se conoce como instanciación de procesos. Se define un formulario para la creación de
instancias de proceso a nivel de grupo.
7. Defina qué sucede después de que el usuario envíe un formulario de solicitud: el gerente revisa la
solicitud de viaje y la aprueba o rechaza. Puede usar la tarea de ejemplo que se agregó al
diagrama automáticamente. Haga clic en el nombre de la tarea y cámbielo a Revisión del
administrador .
8. En una futura evolución de este proceso, la siguiente tarea sería enviar los detalles de la solicitud
de viaje al equipo de administración para que puedan manejar la reserva. Por ahora, aunque solo
estamos interesados en que la primera parte del proceso funcione, agregue un final después de la
tarea de revisión. Puede hacerlo arrastrando el icono de fin (círculo rojo) desde la paleta a la
pizarra y luego conectándose a la tarea de revisión del Administrador con un elemento de flujo.
1. Selecciona la piscina.
2. Vaya al panel Detalles , pestaña Datos , panel Variables de grupo y haga clic en Agregar ... junto
al cuadro Variables empresariales.
3. En el campo Nombre, escriba travelRequest .
4. Agregue una descripción para documentar su desarrollo si lo desea.
5. En la lista Objeto comercial, elija TravelRequest .
6. No configure el valor predeterminado. El valor predeterminado utiliza información que está en el
contrato, por lo que la definirá más adelante.
7. Haga clic en Finalizar para guardar la definición.
Los atributos de travelRequest son la información que se utiliza en el proceso. No hay otras variables
para definir.
Crear contratos
Un contrato es la especificación de lo que debe devolver un formulario a la instancia de proceso. Defina
un contrato para la instanciación de procesos y para cada tarea humana.
El contrato no necesita incluir información que se envía desde la instancia de proceso al formulario. Esto
se incluye en el contexto, que es el conjunto de información que se pasa al formulario. No puedes
configurar el contexto.
Ahora que el contrato de instanciación de casos está configurado, agregaremos dos restricciones a sus
valores.
El primero asegurará que la fecha de salida sea futura y el segundo validará que el número de noches es
mayor o igual a cero.
1. Aún en el panel Contrato , cambie a la pestaña Restricciones y haga clic en Agregar . Esto
agrega una restricción de marcador de posición.
2. Haga clic en el nombre del marcador de posición y cámbielo a exitInFuture .
3. Haga clic en el campo Expresión , luego haga clic en el icono que aparece a la derecha del
campo. Esto abre una ventana emergente donde puede ingresar la expresión de restricción.
4. Defina la restricción con este
script: travelRequestInput.departureDate.isAfter(java.time.LocalDate.now())
5. En la columna Mensaje de error , agregue este texto: Departure date must be in the future.
6. Agregue una segunda restricción de la siguiente manera:
Nombre: zeroOrMoreNights
Expresión: travelRequestInput.numberOfNights >= 0
Mensaje de error: Number of nights must be greater or equal to zero.
En el panel Detalles , pestaña Ejecución , panel Contrato , pestaña Entradas , haga clic en la flecha al
lado de travelRequestInput para expandir la lista de atributos.
Para cada atributo, agregue una Descripción . La descripción se muestra en el formulario generado
automáticamente utilizado para las pruebas de proceso, por lo tanto, incluya información que ayudará
al usuario a completar el formulario correctamente, de la siguiente manera:
Atributo Descripción
Atributo Descripción
El contrato para la tarea de revisión del administrador solo tiene dos entradas, estado y motivo de
rechazo , por lo que puede crearlo directamente en lugar de datos.
También tiene una restricción: se debe especificar un motivo de rechazo si el gerente rechaza la
solicitud. Para definir este contrato:
rechazo Motivo Texto No Si rechaza una solicitud, debe dar una razón
4. Vaya a la pestaña Restricciones y haga clic en Agregar . Esto agrega una restricción de marcador
de posición.
6. Haga clic en el campo Expresión , luego haga clic en el icono que aparece a la derecha del
campo. Esto abre una ventana emergente donde puede ingresar la expresión de restricción.
7. Defina la restricción con este script: status == "approved" || (status == "refused" &&
refusalReason?.trim())
8. En la columna Mensaje de error , agregue este texto: If you refuse a request, you must give a
reason.
1. Seleccione el grupo y vaya al panel Detalles , pestaña Datos , panel Variables del grupo .
2. Haga doble clic en travelRequest para editarlo.
3. Haga clic en el ícono de lápiz junto al campo Valor predeterminado . Esto abre el editor de
expresiones.
4. Se generó automáticamente un script initTravelRequest () para inicializar nuestros datos con el
contrato. Completaremos este script configurando los atributos userId y status .
Inserte el siguiente código después de la primera línea:
travelRequestVar.userId = BonitaUsers.getProcessInstanceInitiator(apiAccessor, processInsta
travelRequestVar.status = "pending"
Especificar actores
La siguiente etapa es definir quién lleva a cabo los pasos del proceso. Esto se hace mediante la
asignación de actores (?page=actors) .
Un actor es un marcador de posición para la persona que realizará una tarea.
Cuando configura un proceso, establece la conexión entre los actores definidos en la definición del
proceso y las personas del mundo real que harán los pasos del proceso.
Bonita Studio viene con una organización de prueba, llamada ACME, que puede usar para las pruebas. En
este ejemplo, tenemos dos personas, el empleado que inicia el proceso y el gerente del empleado.
Los gerentes también son empleados, por lo que puede usar el mismo actor para la creación de
instancias de proceso y para la tarea de revisión, pero use un filtro para especificar quién realiza el paso
de aprobación. Así es como funciona:
1. En el diagrama, seleccione el grupo y vaya al panel Detalles , pestaña General , panel Actores .
Aquí es donde define a todos los actores para el proceso.
Por defecto, ya hay un actor empleado, que está definido para la prueba. Puede cambiar la
organización y los actores más tarde, pero para las pruebas iniciales, esto funcionará bien.
La configuración predeterminada significa que cualquier empleado de la organización puede
iniciar un caso del proceso de solicitud de viaje. No necesitas cambiar nada.
2. Luego, seleccione el paso de revisión del Administrador y defina quién puede hacer esto. Este
paso lo realizará el gerente de la persona que inició la solicitud.
Todos los gerentes también son empleados, y el actor empleado está definido para el carril, así
que marque el botón Usar el actor definido en el carril .
3. Para asegurarse de que la tarea de revisión se envíe al administrador correcto, use un filtro de
actor:
1. Haga clic en el filtro de actor Establecer ... botón.
2. Abra la lista de filtros de actores de proceso.
3. Seleccione Administrador de iniciador . Esto significa que la tarea de revisión debe ser
realizada por el gerente de la persona que presentó la solicitud que inició el proceso. Haga
clic en siguiente
4. Especifique un nombre para la definición de filtro de actor, requestersManager y haga clic
en Finalizar .
El proceso ya está definido. La siguiente sección le muestra cómo configurarlo y ejecutarlo para
verificar que la definición del proceso sea correcta antes de definir formularios y crear la aplicación.
Antes de poder ejecutar el proceso, debe configurarlo. Para la primera ejecución usaremos la
configuración predeterminada.
Puede ejecutar el proceso y ver los formularios temporales para verificar que la definición del proceso
sea correcta.
1. Click Run in the coolbar. This opens a browser window, logs you in to Bonita Portal as Walter Bates
(user used for authentication in the default process configuration), and displays the travel request
form.
2. Fill out the form. Make sure that you use the right format for each field in the temporary forms
("yyyy-mm-dd" format for dates and either "true" or "false" value for booleans).
3. When you have filled out the form, click Start. This submits the form and starts the process
instance.
4. At the top-right of the Portal window, click the arrow beside Walter's name and choose Logout.
5. Log in as Walter's manager, Helen Kelly, with username helen.kelly and password bpm . The
Tasks view is displayed, where there is a task called Manager review.
6. Select the Manager review task. The temporary form for the manager review is displayed in the
right hand panel.
It contains fields for the items defined in the contract for this step, but not the information that
Walter entered in the request.
When you create your own forms, you will add this information, so that the manager can see the
details of the request before approving or refusing it.
For now, you can see the form, so you have verified that the process definition is correct.
Create forms
The easiest way to create a process form is to generate it automatically from the contract. This
automatically creates a mapping between the process and the form and defines form data. You can then
update the form manually to add or remove field, and to change the layout.
While using the UI Designer, click Save frequently to save your work.
1. In Bonita Studio, select the pool and go to the Details panel, Execution tab, Contract pane.
2. At the top-right of the Details panel, click the UI Designer icon. This opens the UI Designer in a
browser window, with the automatically generated form.
3. Change the form name. All forms that are generated automatically are called newForm, so you
must rename them to avoid confusion. To do this, double-click on the name in the top bar, and
then specify a new form name, submitTravelRequest.
The form is now created. A form is a UI Designer page that is mapped to a process and a contract. A
page is a collection of widgets, and each field is defined by a widget.
Widgets are arranged in rows and each row is divided into 12 columns. Each widget has a width that
spans across one or more column. In addition to their width, widgets have a set of editable properties
that can be set on the right side of the window.
Para cambiar la apariencia y el comportamiento de una página, actualice los widgets. En cualquier
momento, puede hacer clic en Vista previa para ver cómo se verá la página para un usuario.
Para tener más espacio para actualizar la página, puede ocultar las pestañas Variables y Activos
haciendo clic en la flecha hacia abajo.
Antes de mejorar el aspecto del formulario, aplicaremos algunas reglas de validación en los diferentes
campos:
Ahora que el formulario es funcional, vamos a mejorar su apariencia para que sea más fácil de usar:
1. Seleccione el widget de título y cambie la propiedad Texto a Submit a new travel request .
2. Haga que el widget Fecha de salida sea más estrecho. Para hacer esto, selecciónelo y cambie el
valor de la propiedad Ancho a 4 columnas.
3. Mueva el widget de destino hacia la parte superior del formulario (debajo del título).
4. Mueva el número de noches y los widgets necesarios para el hotel a la misma fila que la fecha de
salida, y reduzca los anchos.
Nota: cuando agrega un widget a una fila, automáticamente toma todas las columnas restantes,
por lo tanto, configure el ancho después de mover los widgets.
5. Borre el valor inicial de Número de noches para mostrar el marcador de posición en tiempo de
ejecución:
1. En el panel Variables (en la parte inferior de la página), ubique la fila que contiene la
variable formInput .
2. Haga clic en el ícono de lápiz ubicado en el lado derecho de esta fila.
3. Cambie el valor del atributo numberOfNights de 0 a nulo .
4. Haz clic en Guardar .
Ahora defina el formulario para la tarea de revisión del Administrador . Comience generando
automáticamente el formulario desde el contexto, luego agregue widgets para mostrar los detalles de la
solicitud para que el administrador los revise. Sigue estos pasos:
1. En Bonita Studio, seleccione la tarea de revisión del Administrador y vaya al panel Detalles ,
pestaña Ejecución , panel Contrato .
2. En la esquina superior derecha del panel Detalles , haga clic en el icono del Diseñador de IU. Esto
genera un formulario y lo abre en el Diseñador de UI.
4. Agregue una variable para obtener la información que el usuario ingresa en el formulario de
solicitud. Para hacer esto:
7. All of the other widgets you will add will be placed inside the form container (identified with a
dashed border).
8. Add a title widget and set its text property to Review travel request . Set the Level property to
Level 4, so it is the same size as the title of the form for creating a request.
9. Add read-only widgets to display the details of the travel request, using the following
information:
10. Elimine el widget "Motivo de rechazo" que se agregó automáticamente, lo reemplazaremos por
algo más fácil de usar en el siguiente paso.
Propiedad Valor
Oculto formInput.status === 'approved' (haga clic en el ícono "fx" / "bind" primero)
Valor formInput.refusalReason
Necesario si
La propiedad oculta dinámica ocultará el widget cuando el estado de la solicitud esté configurado
como 'aprobado'. De lo contrario, el campo se marcará como requerido y la validación del
formulario evitará que el usuario rechace una solicitud sin un motivo.
Propiedad Valor
Etiqueta Decisión de
revisión
Valores disponibles (primero haga clic en el icono de enlace "fx" al lado statusValues
del campo de entrada)
14. Obtenga una vista previa del formulario para probar la validación y reorganice los widgets hasta
que se vea así en el editor:
Ejecutar el proceso
Ahora puede ejecutar el proceso utilizando los formularios que creó. Asegúrese de haber guardado todo
en el Diseñador de IU. Luego haga clic en Ejecutar en la barra de enfriamiento de Studio.
Complete el formulario de solicitud como Walter, luego inicie sesión como Helen y realice la tarea de
revisión.
Cuando se muestra el formulario de revisión, contiene la información que ingresó Walter en el
formulario de solicitud. Puede aprobar o rechazar la solicitud.
Una vez finalizado el proceso, puede ver la información de la solicitud tal como está almacenada en la
base de datos de datos empresariales en Bonita Studio:
Su proceso ahora está completo, por lo que puede incluirlo en una aplicación.
Construye la aplicación
Esta sección explica cómo compilar la aplicación a partir de las páginas y el proceso que ya ha creado.
Existen los siguientes pasos:
1. En el Diseñador de IU, actualice la página de la aplicación para usar datos comerciales en lugar de
los datos JSON ficticios y para especificar la conexión entre la página y el proceso.
2. En Bonita Portal, cree la aplicación.
Después de que el usuario envía el formulario, se muestra la vista Tareas de Bonita Portal.
Construir aplicación
Para compilar la aplicación Travel Tool, debe exportar la página desde el Diseñador de UI, implementar
el proceso y luego crear la aplicación en Bonita Portal.
Para exportar la página, haga clic en el icono Exportar en el editor de páginas (junto al botón Guardar)
o en la página de inicio. La página se exporta como un archivo zip en la ubicación de descarga
predeterminada del navegador.
Para implementar el proceso, simplemente puede ejecutarlo desde Bonita Studio. Si no ha cambiado el
proceso desde la última vez que lo ejecutó, ya está implementado.
1. Inicie sesión en Bonita Portal haciendo clic en el icono de Portal en la barra de enfriamiento y
haga clic en la flecha al lado de "Usuario" y seleccione "Administrador" para cambiar al perfil de
Administrador.
2. En la barra de menú, elija Recursos y luego haga clic en Agregar e importe la página TravelTool
que exportó desde el Diseñador de IU.
3. Vaya a Aplicaciones y haga clic en Nuevo .
4. Asigne un nombre a su aplicación Travel App , configure su URL para viajar y haga clic en Crear .
Se crea la aplicación.
5. En la lista de aplicaciones, haga clic en el icono editar (triple punto) para configurar su nueva
aplicación.
6. En la sección Páginas , haga clic en Agregar .
7. Seleccione la página de la herramienta de viaje que importó. Establezca su URL a las solicitudes .
Haz clic en Agregar .
8. Haga que esta página sea la página de inicio de la aplicación haciendo clic en el icono de inicio
que aparece al pasar el mouse sobre ella.
9. Eliminar la página de inicio predeterminada.
10. Verifique que la aplicación esté correctamente definida haciendo clic en la URL. Se muestra la
página de resumen de solicitudes de viaje, con un enlace al formulario para crear una nueva
solicitud. Cuando hace clic en el enlace, se muestra el formulario para enviar una nueva solicitud
de viaje.