0

我刚刚安装了 Bonita 并尝试了一些入门示例(因此没有对常规配置进行任何更改)。我的问题是,每次我尝试编写任何业务变量的某些属性时,就像流程会停止一样。

我想出了这一点,因为如果我尝试在我的业务数据中设置一些默认值(通过在池变量面板中编辑它们)门户甚至不会启动,否则如果我使用服务任务通过操作设置属性而不是我将它连接到人工任务,流程启动但从未检测到人工任务(就像流程将停止到第一个任务一样)。

所以我想当我以任何方式为任何对象编写属性时都会出现问题(我已经仔细检查了由 VacationRequest 示例制作的对象)。我该如何解决?

编辑: 我正在发布日志数据,因为我尝试通过服务任务中的操作插入我的输入,而不是将这个任务连接到人类任务(从不在门户中显示)

这是工作室日志:

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:22.615
!MESSAGE Attempt to login as helen.kelly

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:22.644
!MESSAGE Login successful.

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:23.164
!MESSAGE Building bar for process Pool (1.0 )...

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:24.398
!MESSAGE Build complete for process Pool (1.0 ).

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:24.407
!MESSAGE Attempt to login as helen.kelly

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:24.431
!MESSAGE Login successful.

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:25.138
!MESSAGE Attempt to login as helen.kelly

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:25.162
!MESSAGE Login successful.

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:25.195
!MESSAGE Attempt to login as helen.kelly

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:25.219
!MESSAGE Login successful.

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:25.314
!MESSAGE Attempt to login as helen.kelly

!ENTRY org.bonitasoft.studio.engine 1 0 2015-12-11 16:19:25.337
!MESSAGE Login successful.

这是引擎日志:

2015-12-11 16:19:22.686 +0100 org.bonitasoft.engine.api.impl.transaction.process.DisableProcess org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Informazioni: THREAD_ID=4392 | HOSTNAME=Light-PC | TENANT_ID=1 | The user <helen.kelly> has disabled process <Pool> in version <1.0> with id <8793400777422165775>
2015-12-11 16:19:23.131 +0100 org.bonitasoft.engine.api.impl.ProcessManagementAPIImplDelegate org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Informazioni: THREAD_ID=66 | HOSTNAME=Light-PC | TENANT_ID=1 | The user <walter.bates> has deleted process with id = <8793400777422165775>
2015-12-11 16:19:25.115 +0100 org.bonitasoft.engine.api.impl.ProcessAPIImpl org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Informazioni: THREAD_ID=4333 | HOSTNAME=Light-PC | TENANT_ID=1 | The user <helen.kelly> has installed process <Pool> in version <1.0> with id <7896310222649598842>
2015-12-11 16:19:25.174 +0100 org.bonitasoft.engine.api.impl.transaction.process.EnableProcess org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Informazioni: THREAD_ID=4333 | HOSTNAME=Light-PC | TENANT_ID=1 | The user <helen.kelly> has enabled process <Pool> in version <1.0> with id <7896310222649598842>
2015-12-11 16:19:25.282 +0100 org.bonitasoft.engine.api.impl.ProcessStarter org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Informazioni: THREAD_ID=4333 | HOSTNAME=Light-PC | TENANT_ID=1 | The user <helen.kelly> has started the process instance <26> of process <Pool> in version <1.0> and id <7896310222649598842>
2015-12-11 16:19:25.343 +0100 org.hibernate.engine.jdbc.spi.SqlExceptionHelper org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions 
WARN: SQL Error: 23502, SQLState: 23502
2015-12-11 16:19:25.344 +0100 org.hibernate.engine.jdbc.spi.SqlExceptionHelper org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions 
ERROR: NULL not allowed for column "DATAINGRESSOUE"; SQL statement:
insert into CITIZEN (persistenceId, DATAINGRESSOUE, DATAUSCITAUE, FINEVALIDITAVISTO, FINGERPRINT, GIORNISPESI, INIZIOVALIDITAVISTO, NAME, RPT, SURNAME, persistenceVersion) values (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23502-170]
2015-12-11 16:19:25.349 +0100 org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Grave: THREAD_ID=5005 | HOSTNAME=Light-PC | TENANT_ID=1 | The work [ExecuteFlowNodeWork: processInstanceId:26, flowNodeInstanceId: 44] failed. The failure will be handled.
2015-12-11 16:19:25.356 +0100 org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl log 
Grave: THREAD_ID=5005 | HOSTNAME=Light-PC | TENANT_ID=1 | javax.persistence.PersistenceException : "org.hibernate.exception.ConstraintViolationException: could not execute statement"
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1316)
    at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:898)
    at org.bonitasoft.engine.business.data.impl.JPABusinessDataRepositoryImpl.merge(JPABusinessDataRepositoryImpl.java:259)
    at org.bonitasoft.engine.operation.MergeEntityAction.execute(MergeEntityAction.java:41)
    at org.bonitasoft.engine.operation.EntitiesActionsExecutor.executeAction(EntitiesActionsExecutor.java:42)
    at org.bonitasoft.engine.operation.BusinessDataJavaMethodOperationExecutorStrategy.delegateBusinessValueForLeftOperand(BusinessDataJavaMethodOperationExecutorStrategy.java:64)
    at org.bonitasoft.engine.operation.BusinessDataJavaMethodOperationExecutorStrategy.computeNewValueForLeftOperand(BusinessDataJavaMethodOperationExecutorStrategy.java:46)
    at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.calculateRightOperandValue(OperationServiceImpl.java:122)
    at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.executeOperators(OperationServiceImpl.java:105)
    at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:94)
    at org.bonitasoft.engine.core.operation.impl.OperationServiceImpl.execute(OperationServiceImpl.java:81)
    at org.bonitasoft.engine.execution.StateBehaviors.executeOperations(StateBehaviors.java:657)
    at org.bonitasoft.engine.execution.state.ExecutingAutomaticActivityStateImpl.onEnterToOnFinish(ExecutingAutomaticActivityStateImpl.java:48)
    at org.bonitasoft.engine.execution.state.FlowNodeStateWithConnectors.execute(FlowNodeStateWithConnectors.java:73)
    at org.bonitasoft.engine.execution.state.FlowNodeStateWithConnectors.execute(FlowNodeStateWithConnectors.java:35)
    at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.executeState(FlowNodeExecutorImpl.java:128)
    at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.updateState(FlowNodeExecutorImpl.java:180)
    at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.stepForward(FlowNodeExecutorImpl.java:164)
    at org.bonitasoft.engine.execution.FlowNodeExecutorImpl.executeFlowNode(FlowNodeExecutorImpl.java:315)
    at org.bonitasoft.engine.execution.work.ExecuteFlowNodeWork.work(ExecuteFlowNodeWork.java:72)
    at org.bonitasoft.engine.execution.work.TxBonitaWork$1.call(TxBonitaWork.java:48)
    at org.bonitasoft.engine.execution.work.TxBonitaWork$1.call(TxBonitaWork.java:44)
    at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:316)
    at org.bonitasoft.engine.execution.work.TxBonitaWork.work(TxBonitaWork.java:53)
    at org.bonitasoft.engine.execution.work.LockProcessInstanceWork.work(LockProcessInstanceWork.java:79)
    at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
    at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
    at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
    at org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork.work(FailureHandlingBonitaWork.java:66)
    at org.bonitasoft.engine.work.BonitaWork.run(BonitaWork.java:56)
    at org.bonitasoft.engine.work.SequenceRunnableExecutor.innerRun(SequenceRunnableExecutor.java:47)
    at org.bonitasoft.engine.work.BonitaRunnable.run(BonitaRunnable.java:35)
    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:744)
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:129)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:124)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:189)
    at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:96)
    at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:58)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2987)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3499)
    at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81)
    at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:395)
    at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:229)
    at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:209)
    at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:193)
    at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:321)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:286)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:192)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:125)
    at org.hibernate.ejb.event.EJB3MergeEventListener.saveWithGeneratedId(EJB3MergeEventListener.java:71)
    at org.hibernate.event.internal.DefaultMergeEventListener.saveTransientEntity(DefaultMergeEventListener.java:236)
    at org.hibernate.event.internal.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:216)
    at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:154)
    at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:76)
    at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:833)
    at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:817)
    at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:821)
    at org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:889)
    ... 33 more
Caused by: org.h2.jdbc.JdbcSQLException: NULL not allowed for column "DATAINGRESSOUE"; SQL statement:
insert into CITIZEN (persistenceId, DATAINGRESSOUE, DATAUSCITAUE, FINEVALIDITAVISTO, FINGERPRINT, GIORNISPESI, INIZIOVALIDITAVISTO, NAME, RPT, SURNAME, persistenceVersion) values (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23502-170]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.table.Column.validateConvertUpdateSequence(Column.java:293)
at org.h2.table.Table.validateConvertUpdateSequence(Table.java:689)
at org.h2.command.dml.Insert.insertRows(Insert.java:120)
at org.h2.command.dml.Insert.update(Insert.java:84)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:333)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:149)
at java.lang.Thread.run(Thread.java:744)

at org.h2.engine.SessionRemote.done(SessionRemote.java:568)
at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:181)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:156)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:142)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:64)
at com.sun.proxy.$Proxy142.executeUpdate(Unknown Source)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:186)
... 55 more
4

1 回答 1

2

根据引擎日志内容,当您为“CITIZEN”业务变量创建新条目时,您似乎没有为“DATAINGRESSOUE”属性指定任何值(或指定空值)。

此属性可能是强制性的,这将解释错误日志消息: NULL not allowed for column "DATAINGRESSOUE";

您在这里有两个选择:

  • 编辑您的业务数据模型以使此属性可选。我还建议您在发布更改时选中重置现有数据的选项,即使此类更改不应该是强制性的。
  • 编辑默认值 Groovy 脚本以确保为“DATAINGRESSOUE”属性和所有其他必需属性提供非空值。
于 2015-12-14T09:15:19.323 回答