Red de conocimiento informático - Aprendizaje de programación - Práctica fluida (5) Formas y variables de flujo

Práctica fluida (5) Formas y variables de flujo

?Cuando una instancia de proceso ejecuta pasos, necesita guardar y usar algunos datos, que se denominan variables en Flowable.

?Las instancias de proceso pueden guardar variables, llamadas variables de proceso.

?Para mejorar la eficiencia, Flowable divide las variables en dos tipos: variables de tiempo de ejecución y variables de historial.

?Cuando se ejecuta una instancia de proceso, las variables del proceso se almacenan en la tabla act_ru_variable. Una vez que la instancia del proceso termine de ejecutarse, las variables de la instancia se eliminarán de la tabla.

?Las variables de proceso se pueden configurar cuando se crea e inicia la instancia de proceso. Todos los métodos startProcessInstanceXXX tienen un parámetro opcional para configurar una variable. Por ejemplo, en RuntimeService:

?También se pueden agregar variables para la ejecución del proceso. Por ejemplo, (RuntimeService):

método ?ReadVariable (tenga en cuenta que existe un método similar en TaskService. Esto significa que las tareas, al igual que las ejecuciones, pueden contener variables locales y estas variables permanecerán mientras la tarea continúa existiendo).

?Variables históricas, almacenadas en la tabla act_hi_varinst. Cuando comienza el proceso, las variables del proceso se almacenarán en la tabla de historial al mismo tiempo; cuando finaliza el proceso, las variables en la tabla de historial todavía existen. Esto puede considerarse como una "generación permanente" de variables de proceso.

?Obtiene todas las HistoricVariableInstances de la instancia de proceso completada con id "XXX", ordenadas por nombre de variable.

?En los negocios reales, los procesos van acompañados de varios formularios, y el motor Flowable almacena uniformemente los datos del formulario como variables de proceso en la tabla de variables. Por lo tanto, para el motor Flowable, puede ejecutarse de forma completamente independiente del formulario porque puede usar variables de proceso en lugar de los datos del formulario.

?Pero en general, necesitamos datos estructurados y los formularios siguen siendo nuestro uso recomendado.

?Hay dos formas de definir formularios: formularios integrados y formularios externos.

? Tome permiso como ejemplo, contenido XML:

? Uso:

¿O

? suficiente para entender, en la práctica En las aplicaciones, las aplicaciones prefieren utilizar formularios externos.

?El formulario de tarea que se representa según el archivo de formulario se denomina formulario externo.

?En el entorno springboot, cualquier archivo de definición de formulario con el sufijo .form en el directorio resources/forms se implementará automáticamente.

Por ejemplo, guarde el contenido de la definición del formulario 2.2.2 como el archivo Leave.form en el directorio recursos/formularios.

?Casi todos los datos necesarios para representar el formulario se reúnen mediante los dos métodos siguientes:

?Los parámetros del formulario se pueden enviar mediante los dos métodos siguientes:

?Información detallada del parámetro del formulario FormProperty:

?Métodos para obtener datos del formulario para una determinada instancia de proceso:

?Métodos para enviar datos del formulario:

?Form Los datos en realidad se almacenan en la tabla de variables de proceso, por lo que los métodos para obtener y enviar datos del formulario se pueden usar con los métodos de variables de proceso.

? El formulario admite los siguientes tipos de campos

? En la práctica, los tipos de campos de formulario proporcionados por Flowable no cumplen completamente con los requisitos.

?Todos los tipos de campos personalizados deben heredar de la clase abstracta del tipo de expresión "org.flowable.engine.form.AbstractFormType ".

?Por ejemplo, para definir un tipo personalizado "Tarjeta":

?Cree una nueva clase de configuración y registre la clase de análisis del tipo de campo personalizado

? admite motores de formularios personalizados para adaptarse a diversos escenarios de aplicaciones. Simplemente implemente la interfaz org.flowable.engine.impl.form.FormEngine y registre su clase de implementación del motor de formulario personalizado con el motor.

El método de registro es similar al tipo de campo de formulario personalizado. Simplemente agregue la siguiente declaración en la clase de configuración:

Cómo utilizar:

Pase este artículo. En el artículo, aprendimos sobre el uso específico de variables de formulario y variables de proceso. De manera similar, se necesita mucha optimización en el uso comercial real. Por ejemplo, podemos guardar la clave común en formKey, usar algoritmos o conversiones para obtener la plantilla de formulario que realmente necesita usarse, mostrar un formulario en una aplicación web con un tamaño de pantalla normal y mostrar otro formulario en una pantalla pequeña como como un teléfono móvil. Además, el próximo artículo hablará sobre la "Integración de JPA" para optimizar aún más el uso de variables de formulario y proceso.