Buenos días,
Estoy usando la versión 5.10.1 de Bonita.
Estoy haciendo uso de la API Rest de Bonita para lanzar un proceso desde una aplicación Java externa. En mi entorno de desarrollo todo iba correctamente, conectaba con la API y ejecutaba el proceso.
Ahora lo he desplegado en un entorno de producción (en JBOSS), y todo va igualmente correcto salvo en un caso. El proceso en Bonita es lanzado igualmente a través de la API sin problema, pero en algunos casos, al inicio del proceso, recojo unos ficheros desde un recurso compartido y los cargo en variables del proceso de la siguiente manera (este método está comprobado que funciona):
String domain; NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("",configuracion.getFileUser(), configuracion.getFilePass()); SmbFile smbFile; SmbFileInputStream smbfin; byte[] fileContent; domain = "smb:" + configuracion.getFileDomain() + notificacion.getCodigoNotificacion() + "/Registro/" + notificacion.getAdjuntosRegistro()[0]; smbFile = new SmbFile(domain,auth);
smbfin = new SmbFileInputStream(smbFile);
fileContent = new byte[(int)smbFile.length()];
smbfin.read(fileContent);
AccessorUtil.getRuntimeAPI().createDocumentOrAddDocumentVersion(processInstance.getProcessInstanceUUID(), "adjuntoRegistro1", notificacion.getAdjuntosRegistro()[0], "",fileContent);
Si ejecuto el proceso de Bonita aisladamente, recoge el fichero correctamente, pero si ejecuto el proceso a través de la API desde la aplicación web en JAVA, recibo el siguiente error:
Can't find an instance with uuid SMS_Gestion_de_notificacion_de_peligro_potencial--1.0--30
El error es exactamente en la siguiente línea cuando se le pasa el UUID de la instancia del proceso:
AccessorUtil.getRuntimeAPI().createDocumentOrAddDocumentVersion(processInstance.getProcessInstanceUUID(), "adjuntoRegistro1", notificacion.getAdjuntosRegistro()[0], "",fileContent);
Investigando el tema, he visto algo extraño que estoy seguro que estará relacionado. Si yo vuelvo a instalar este proceso en Bonita User Experience, y lanzo aisladamente el proceso, las instancias empiezan a tener el UUID desde el 1 (nombre_del_proceso–versión–1). Sin embargo, cuando ejecuto el proceso desde la API, el UUID tiene el número siguiente a la última instancia que se ejecutó (nombre_del_proceso–versión–31). Me imagino que este es el motivo de que no encuentre la instancia con ese UUID, aunque realmente esa instancia existe y es precisamente la que da el fallo.
¿Alguien podría ayudarme con este tema?
Muchas gracias, saludos.