Vamos a manejar documentos dentro de un proceso.
El proceso se instancia subiendo un archivo desde nuestro disco duro al espacio de documentos del proceso.
La tarea consiste en revisar ese documento y aceptarlo o no. Para ello, el formulario nos proporciona un enlace al documento previamente subido.
Al examinar el caso, podemos acceder al mismo archivo.
Hay que tener en cuenta que:
Los documentos no pertenecen a la variable de negocio y, por tanto, no se pueden definir como tales en el BDM
Hay distintas formas de manejar archivos desde un proceso. En este caso estamos utilizando la opción de almacenamiento FILE, directamente gestionada por Bonita. Esto quiere decir que no encontraremos una carpeta donde Bonita guarde el documento, habrá que acceder al caso archivado para recuperarlo.
Si quisiéramos trabajar con un control total de las ubicaciones del documento, tendríamos que conectar nuestro proceso con un CMS (Content Manager System, sistema de gestión documental) externo.
Hay una tercera opción, adjuntar documentos como recurso del proceso. Esto está destinado a documentos estáticos que sirven de apoyo a todas las instancias que se ejecuten del proceso. Por ejemplo, un documento de ayuda.
Pide archivo
Este proceso no tendrá ni modelo de datos de negocio ni variable de negocio.
Sí estableceremos una variable documento, que llamaremos "miDocumento". Con el proceso seleccionado, accede a Datos/Documentos.
En la ventana de diálogo que se nos abre, damos el nombre al documento (miDocumento) y, en este caso, elegimos las opciones:
Solo (solo se podrá manejar un único archivo)
Ninguno (esto cambiará automáticamente cuando definamos el contrato)
Con el proceso seleccionado, accede a Ejecución/Contrato, y "Añadir desde datos". Solo te aparecerá miDocumento como opción: selecciónalo.
Acto seguido, nos informa de los cambios que ha realizado en la instanciación. De hecho, si volvemos a editar el documento en "Datos" veremos que ha cambiado el "contenido inicial".
fUpload
Genera el formulario, y guárdalo sin modificar nada.
En este caso no estamos utilizando variable de negocio, por lo tanto, con la tarea "revisar documento" seleccionada, vamos a Ejecución/Contrato, y pulsamos "añadir". A continuación, cambiamos el tipo de la entrada de contrato a Boolean.
fRevisa0
Recuerda que el contrato solo tiene un input de tipo booleano. Eso genera un widget CHECK que podemos actualizar. Para que el documento esté accesible para su revisión tendremos que modificar el formulario. Utiliza el widget FILE VIEWER que encontrarás en el panel izquierdo de UI Designer.
En el panel de configuración del widget ya indica, más o menos, lo que hay que poner. En nuestro caso. context.miDocumento_ref.
Si queremos, podemos mostrar una previsualización, o dejarlo como un simple enlace en el que pinchar. Dependiendo del tipo de archivo, la previsualización funcionará o no.
El proceso está completamente configurado. Ejecuta para probarlo.
También se puede utilizar un widget LINK y acceder al documento con la variable del formulario context. Esta variable aparece en los formularios de tarea —no en los de instanciación— y permite acceder a los datos del caso. En este proceso:
{
"miDocumento_ref": {
"id": 306,
"processInstanceId": 3006,
"name": "miDocumento",
"author": 4,
"creationDate": 1665513520292,
"fileName": "TFG227075.pdf",
"contentMimeType": "application/pdf",
"contentStorageId": "306",
"url": "documentDownload?fileName=TFG227075.pdf&contentStorageId=306",
"description": "Un archivo a adjuntar desde el disco duro.",
"version": "1",
"index": -1,
"contentFileName": "TFG227075.pdf"
}
}
La configuración del widget:
Texto: {{context.miDocumento_ref.fileName}}, o cualquier otro texto
URL: "/bonita/portal/" + context.miDocumento_ref.url