Gestion de Modèle de données

Bonjour,
Je vous explique brièvement mon souci:
J’ai installé bonita bpm 7.5.2 sous windows 10 et j’utilise SQL server express 2012 comme base de données,
Tomcat comme serveur d’application.
Lorsque je tente de tester la connexion avec la base de données j’obtiens une exception:

java.lang.reflect.InvocationTargetException
org.bonitasoft.engine.exception.BonitaRuntimeException: USERNAME=install |

java.lang.NullPointerException*

En procédant de même avec le test du Modèle de données j’otiens alors le message d’erreur ci-dessous:

** Une erreur est survenue au déploiement du Modèle de Données Métier dans le moteur
org.bonitasoft.engine.api.HTTPServerAPI.invokeMethod(HTTPServerAPI.java:143)
org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:86)
com.sun.proxy.$Proxy45.installBusinessDataModel(Unknown Source)
org.bonitasoft.studio.businessobject.core.operation.DeployBDMOperation.doDeployBDM(DeployBDMOperation.java:135)
org.bonitasoft.studio.businessobject.core.operation.DeployBDMOperation.run(DeployBDMOperation.java:88)
org.bonitasoft.studio.businessobject.ui.wizard.ManageBusinessDataModelWizard$2.run(ManageBusinessDataModelWizard.java:188)
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
< ========== Beginning of the server stack trace ========== >. ( )
org.bonitasoft.engine.api.impl.TenantAdministrationAPIImpl.installBusinessDataModel(TenantAdministrationAPIImpl.java:248)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:462)
org.bonitasoft.engine.api.impl.ServerAPIImpl$2.call(ServerAPIImpl.java:431)
org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:274)
org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPIInTransaction(ServerAPIImpl.java:438)
org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:272)
org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeMethod(ServerAPIImpl.java:124)
org.bonitasoft.engine.api.internal.servlet.HttpAPIServletCall.doPost(HttpAPIServletCall.java:112)
org.bonitasoft.engine.api.internal.servlet.HttpAPIServlet.doPost(HttpAPIServlet.java:35)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)
Caused by: org.bonitasoft.engine.business.data.SBusinessDataRepositoryDeploymentException.: org.bonitasoft.engine.recorder.SRecorderException: org.bonitasoft.engine.services.SPersistenceException: Problem while saving entity: org.bonitasoft.engine.resources.STenantResource@6dafb416 with id: 0 ( )
org.bonitasoft.engine.business.data.impl.BusinessDataModelRepositoryImpl.createAndDeployClientBDMZip(BusinessDataModelRepositoryImpl.java:174)
org.bonitasoft.engine.business.data.impl.BusinessDataModelRepositoryImpl.install(BusinessDataModelRepositoryImpl.java:146)
org.bonitasoft.engine.api.impl.TenantAdministrationAPIImpl.installBusinessDataModel(TenantAdministrationAPIImpl.java:244)
… 39 more. ( )
Caused by: org.bonitasoft.engine.recorder.SRecorderException.: org.bonitasoft.engine.services.SPersistenceException: Problem while saving entity: org.bonitasoft.engine.resources.STenantResource@6dafb416 with id: 0 ( )
org.bonitasoft.engine.recorder.impl.RecorderImpl.recordInsert(RecorderImpl.java:69)
org.bonitasoft.engine.resources.TenantResourcesServiceImpl.add(TenantResourcesServiceImpl.java:52)
org.bonitasoft.engine.business.data.impl.BusinessDataModelRepositoryImpl.createAndDeployClientBDMZip(BusinessDataModelRepositoryImpl.java:172)
… 41 more. ( )
Caused by: org.bonitasoft.engine.services.SPersistenceException.: Problem while saving entity: org.bonitasoft.engine.resources.STenantResource@6dafb416 with id: 0 ( )
org.bonitasoft.engine.persistence.AbstractDBPersistenceService.setId(AbstractDBPersistenceService.java:210)
org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.setId(AbstractHibernatePersistenceService.java:395)
org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.insert(AbstractHibernatePersistenceService.java:309)
org.bonitasoft.engine.persistence.TenantHibernatePersistenceService.insert(TenantHibernatePersistenceService.java:134)
org.bonitasoft.engine.recorder.impl.RecorderImpl.recordInsert(RecorderImpl.java:62)
… 43 more. ( )
Caused by: org.bonitasoft.engine.commons.exceptions.SObjectNotFoundException.: Found no row for tenantId:1 id: 10501 ( )
org.bonitasoft.engine.sequence.TenantSequenceManagerImpl.getNextId(TenantSequenceManagerImpl.java:234)
org.bonitasoft.engine.sequence.TenantSequenceManagerImpl.selectById(TenantSequenceManagerImpl.java:205)
org.bonitasoft.engine.sequence.TenantSequenceManagerImpl.setNewRange(TenantSequenceManagerImpl.java:132)
org.bonitasoft.engine.sequence.TenantSequenceManagerImpl.getNextId(TenantSequenceManagerImpl.java:104)
org.bonitasoft.engine.sequence.SequenceManagerImpl.getNextId(SequenceManagerImpl.java:81)
org.bonitasoft.engine.persistence.AbstractDBPersistenceService.setId(AbstractDBPersistenceService.java:207)
… 47 more. ( )

Votre aide serait la bienvenue…

Comme indiqué dans la documentation il existe un problème connu entre le gestionnaire de transactions utilisé par Bonita dans Tomcat et SQL Server.

La solution est donc d’utiliser WildFly.

Merci Antoine.
un lien pour télécharger WildFly ?

https://fr.bonitasoft.com/telecharger puis cliquer sur “Personnalisez votre téléchargement”.

Merci Antoine.
J’ai téléchargé et installé BonitaBPMCommunity-7.5.2-wildfly-10.1.0.Final.
Toutes les configurations ont été faites à l’instar de la documentation.
En lançant le test de connexion j’obtenus un ArrayList suivi de données de la table prise en test.
Je presume que la connexion est établie.
Mon souci actuel est au niveau du Contract.
J’ai défini une autre *Organisation * que celle de Bonita.
En exécutant le process ,les acteurs de ma nouvelle organisation ne sont pas pris en compte.
voir ci-dessous le message d’erreur:

Échec lors de l’annulation du déploiement du processus
org.bonitasoft.studio.engine.BOSEngineManager.createSession(BOSEngineManager.java:402)
org.bonitasoft.studio.engine.operation.UndeployProcessOperation.undeployProcess(UndeployProcessOperation.java:137)
org.bonitasoft.studio.engine.operation.UndeployProcessOperation.undeploy(UndeployProcessOperation.java:111)
org.bonitasoft.studio.engine.operation.UndeployProcessOperation.run(UndeployProcessOperation.java:100)
org.bonitasoft.studio.engine.operation.DeployProcessOperation.undeploy(DeployProcessOperation.java:304)
org.bonitasoft.studio.engine.operation.DeployProcessOperation.run(DeployProcessOperation.java:114)
org.bonitasoft.studio.engine.operation.RunProcessOperation.run(RunProcessOperation.java:84)
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

Je demande de l’aide…

Bonjour,
J’ai installé le Server d’application Wildfly de la même version comme indiqué dans la documentation.
En parcourant la documentation j’ai pu lancer l’url: http://localhost:8080/bonita ;
le test avec les exemples de Bonita ont été concluant.

En effet, en voulant pousser un petit loin mon experience, j’ai créé un autre groupe sur le portal en admin.
mon groupe, pour un départ contient juste 8 utilisateurs.

J’ai pu également défini un simple processus comme sur le Getting start.
Mais en exétutant mon processus j’obtiens des erreurs liées aux acteurs: dépendances, membre non défini…Lorsque je force la main, le processus s’exécute et en remplissant le formulaire générique ,l’erreur suivant s’affiche:

USERNAME=abbas.khamis | org.bonitasoft.engine.core.process.instance.api.exceptions.SProcessInstanceCreationException: PROCESS_DEFINITION_ID=4669373994133277696 | PROCESS_NAME=User Access Request | PROCESS_VERSION=1.0 | org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: PROCESS_INSTANCE_ID=1009 | Declared return type interface java.util.List is not compatible with evaluated type class com.company.model.UserAccessRequestApprove for expression initUserAccessRequestApprove()

Etant donné que je suis un débutant…le souci pourrait se trouver dans le type de données de sortie??

L’erreur mentionne la classe com.company.model.UserAccessRequestApprove qui je suppose fait partie de votre BDM.
L’erreur mentionne également initUserAccessRequestApprove qui est le nom par défaut du script Groovy en charge de définir la valeur par défaut du business variable qui serait nommée userAccessRequestApprove.
Vu qu’il est mentionné un problème entre le type UserAccessRequestApprove et le type List, je suppose que votre business variable est indiquée comme “multiple” ce qui a pour effet de déclaré une List et que le script Groovy retourne un élément unique au lieu d’une liste.

Si vous rencontrez encore des problème merci d’ouvrir une question séparée et d’utiliser l’ajout de commentaire sur une réponse plutôt que poser une nouvelle question.
Vu que le problème lié à la question posée ici semble résolu merci d’accepter la réponse.

Merci Antoine.
J’ouvrirai une question séparée.
Avez-vous un exemple de script groovy d’initialisation de business variable pour me
permettre d’obtenir un premier résultat;
je peine à m’en sortir…