I'm trying the new database connector, and I'm using an Oracle DataBase, and I want to assign a single value into a Bonita's defined value (int, bool) and when I do it, the process stops to work. When I retrieve a list of values and I assign it to an Array List, I don't have any problem, but when I want to work with single values, I can't do that, please help me.
Yes, I want to retrieve a single value from my table (I'm using: Select max(id_his) from historia) and I have tested this query and I retrieve a single Integer value (for example: 1, 5, 30, etc), I will attach the engine log, Thank You for your help.
Error Log:
ene 02, 2014 11:04:29 AM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log WARNING: A work failed, The failure will be handled, work is: ExecuteConnectorOfActivity: flowNodeInstanceId = 29, connectorDefinitionName = seleccionarHistoria ene 02, 2014 11:04:29 AM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log WARNING: Exception was:org.bonitasoft.engine.data.instance.exception.SUpdateDataInstanceException: Impossible to update data instance 'num_id_historia': org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 org.bonitasoft.engine.core.operation.exception.SOperationExecutionException: org.bonitasoft.engine.data.instance.exception.SUpdateDataInstanceException: Impossible to update data instance 'num_id_historia': org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.updateDataInstance(UpdateOperationExecutorStrategy.java:74) at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.update(UpdateOperationExecutorStrategy.java:57) at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:141) at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.executeOutputOperation(ConnectorServiceImpl.java:206) at org.bonitasoft.engine.connector.ConnectorServiceDecorator.executeOutputOperation(ConnectorServiceDecorator.java:115) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.evaluateOutput(ExecuteConnectorWork.java:103) at org.bonitasoft.engine.execution.work.ExecuteConnectorOfActivity.evaluateOutput(ExecuteConnectorOfActivity.java:77) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateConnectorOutputsTxContent.call(ExecuteConnectorWork.java:273) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateConnectorOutputsTxContent.call(ExecuteConnectorWork.java:256) at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:223) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.work(ExecuteConnectorWork.java:127) at org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork.work(FailureHandlingBonitaWork.java:72) at org.bonitasoft.engine.work.BonitaWork.run(BonitaWork.java:56) at org.bonitasoft.engine.work.SequenceRunnableExecutor.innerRun(SequenceRunnableExecutor.java:45) at org.bonitasoft.engine.work.BonitaRunnable.run(BonitaRunnable.java:35) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.bonitasoft.engine.data.instance.exception.SUpdateDataInstanceException: Impossible to update data instance 'num_id_historia': org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.data.instance.DataInstanceDataSourceImpl.updateDataInstance(DataInstanceDataSourceImpl.java:99) at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bonitasoft.engine.data.DataSourceImplementationProxy.invoke(DataSourceImplementationProxy.java:39) at com.sun.proxy.$Proxy18.updateDataInstance(Unknown Source) at org.bonitasoft.engine.data.instance.api.impl.DataInstanceServiceImpl.updateDataInstance(DataInstanceServiceImpl.java:147) at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.update(UpdateOperationExecutorStrategy.java:45) at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.updateDataInstance(UpdateOperationExecutorStrategy.java:72) ... 20 more Caused by: org.bonitasoft.engine.recorder.SRecorderException: org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.recorder.impl.RecorderImpl.recordUpdate(RecorderImpl.java:136) at org.bonitasoft.engine.data.instance.DataInstanceDataSourceImpl.updateDataInstance(DataInstanceDataSourceImpl.java:97) ... 28 more Caused by: org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.setField(AbstractHibernatePersistenceService.java:300) at org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.update(AbstractHibernatePersistenceService.java:289) at org.bonitasoft.engine.recorder.impl.RecorderImpl.recordUpdate(RecorderImpl.java:128) ... 29 more Caused by: org.bonitasoft.engine.commons.ReflectException: java.lang.reflect.InvocationTargetException at org.bonitasoft.engine.commons.ClassReflector.invokeMethodByName(ClassReflector.java:157) at org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.setField(AbstractHibernatePersistenceService.java:298) ... 31 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bonitasoft.engine.commons.ClassReflector.invokeMethodByName(ClassReflector.java:155) ... 32 more Caused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer at org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl.setValue(SIntegerDataInstanceImpl.java:45) ... 37 more ene 02, 2014 11:04:29 AM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log WARNING: Error while executing connector with id 57 org.bonitasoft.engine.core.operation.exception.SOperationExecutionException: org.bonitasoft.engine.data.instance.exception.SUpdateDataInstanceException: Impossible to update data instance 'num_id_historia': org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.updateDataInstance(UpdateOperationExecutorStrategy.java:74) at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.update(UpdateOperationExecutorStrategy.java:57) at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:141) at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.executeOutputOperation(ConnectorServiceImpl.java:206) at org.bonitasoft.engine.connector.ConnectorServiceDecorator.executeOutputOperation(ConnectorServiceDecorator.java:115) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.evaluateOutput(ExecuteConnectorWork.java:103) at org.bonitasoft.engine.execution.work.ExecuteConnectorOfActivity.evaluateOutput(ExecuteConnectorOfActivity.java:77) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateConnectorOutputsTxContent.call(ExecuteConnectorWork.java:273) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateConnectorOutputsTxContent.call(ExecuteConnectorWork.java:256) at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:223) at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.work(ExecuteConnectorWork.java:127) at org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork.work(FailureHandlingBonitaWork.java:72) at org.bonitasoft.engine.work.BonitaWork.run(BonitaWork.java:56) at org.bonitasoft.engine.work.SequenceRunnableExecutor.innerRun(SequenceRunnableExecutor.java:45) at org.bonitasoft.engine.work.BonitaRunnable.run(BonitaRunnable.java:35) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.bonitasoft.engine.data.instance.exception.SUpdateDataInstanceException: Impossible to update data instance 'num_id_historia': org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.data.instance.DataInstanceDataSourceImpl.updateDataInstance(DataInstanceDataSourceImpl.java:99) at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bonitasoft.engine.data.DataSourceImplementationProxy.invoke(DataSourceImplementationProxy.java:39) at com.sun.proxy.$Proxy18.updateDataInstance(Unknown Source) at org.bonitasoft.engine.data.instance.api.impl.DataInstanceServiceImpl.updateDataInstance(DataInstanceServiceImpl.java:147) at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.update(UpdateOperationExecutorStrategy.java:45) at org.bonitasoft.engine.core.operation.impl.UpdateOperationExecutorStrategy.updateDataInstance(UpdateOperationExecutorStrategy.java:72) ... 20 more Caused by: org.bonitasoft.engine.recorder.SRecorderException: org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.recorder.impl.RecorderImpl.recordUpdate(RecorderImpl.java:136) at org.bonitasoft.engine.data.instance.DataInstanceDataSourceImpl.updateDataInstance(DataInstanceDataSourceImpl.java:97) ... 28 more Caused by: org.bonitasoft.engine.services.SPersistenceException: Problem while updating entity: org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl@adf5ac50 with id: 6544 at org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.setField(AbstractHibernatePersistenceService.java:300) at org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.update(AbstractHibernatePersistenceService.java:289) at org.bonitasoft.engine.recorder.impl.RecorderImpl.recordUpdate(RecorderImpl.java:128) ... 29 more Caused by: org.bonitasoft.engine.commons.ReflectException: java.lang.reflect.InvocationTargetException at org.bonitasoft.engine.commons.ClassReflector.invokeMethodByName(ClassReflector.java:157) at org.bonitasoft.engine.persistence.AbstractHibernatePersistenceService.setField(AbstractHibernatePersistenceService.java:298) ... 31 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bonitasoft.engine.commons.ClassReflector.invokeMethodByName(ClassReflector.java:155) ... 32 more Caused by: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer at org.bonitasoft.engine.data.instance.model.impl.SIntegerDataInstanceImpl.setValue(SIntegerDataInstanceImpl.java:45) ... 37 more
The goovy code works perfectly in the Oracle Connector, and consecuently my process work again, Thank you for your answer, and I have another question, I guess that I can use this (or some similar) code to "extract" values in Boolean Mode (from Oracle DB) to a Bonita Boolean values, I question it, because Oracle stores its boolean values like a kind of number (please correct me if I'm wrong).
Also you can set a verification if it returns true, null, blank... I believe it's easier than try to convert everything that comes from the DB. But it's just my opinion. ;)
Of course, it's easier, sometimes we are searching for hard answers when there is a better way to do it, Thank you for your time, I'll try to do my query with your groovy code, and I'm sure that it will work, once again thank you very much for your help.
So you want to retrieve a single value from your table into a Bonita's variable? Not sure if this is what you wanna do. If it is what you are intending to do and you're not getting that, can you paste your engine log? Someone can help you better if we see the error that's happening.
I have the same problem with the SugarCRM-Connector:
Warnung: A work failed, The failure will be handled, work is: ExecuteConnectorOfActivity: flowNodeInstanceId = 20037, connectorDefinitionName = SugarCRM-1Object
Jan 19, 2014 12:14:36 AM org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log
Warnung: Exception was:org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: No value found for mandatory expression 'jsonObject' of type Input Expression
org.bonitasoft.engine.core.operation.exception.SOperationExecutionException: org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: No value found for mandatory expression 'jsonObject' of type Input Expression
Bonitasoft empowers development teams with Bonita, the open-source and extensible platform to solve the most demanding process automation use cases. The Bonita platform accelerates delivery of complex applications with clear separation between capabilities for visual programming and for coding. Bonita integrates with existing solutions, orchestrates heterogeneous systems, and provides deep visibility into processes across the organization.