我有一个Alfresco(5.2.4)工作流程,它运行在activiti引擎上。当用户提交任务并完成用户任务块时,我收到以下错误:
2019-03-28 10:02:28,024 ERROR [impl.interceptor.CommandContext] [http-bio-8080-exec-17] Error while closing command context
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.postgresql.util.PSQLException: ERRORE: il valore è troppo lungo per il tipo character varying(255)
### The error may involve org.activiti.engine.impl.persistence.entity.HistoricTaskInstanceEntity.insertHistoricTaskInstance-Inline
### The error occurred while setting parameters
### SQL: insert into ACT_HI_TASKINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, OWNER_, ASSIGNEE_, START_TIME_, CLAIM_TIME_, END_TIME_, DURATION_, DELETE_REASON_, TASK_DEF_KEY_, FORM_KEY_, PRIORITY_, DUE_DATE_, CATEGORY_, TENANT_ID_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
### Cause: org.postgresql.util.PSQLException: ERRORE: il valore è troppo lungo per il tipo character varying(255)
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:172)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:157)
at org.activiti.engine.impl.db.DbSqlSession.flushRegularInsert(DbSqlSession.java:830)
at org.activiti.engine.impl.db.DbSqlSession.flushPersistentObjects(DbSqlSession.java:811)
at org.activiti.engine.impl.db.DbSqlSession.flushInserts(DbSqlSession.java:794)
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:615)
对于我到目前为止搜索过的内容,我发现activiti会自动存储在工作流程中执行的“步骤”的历史记录,因此会引发错误。
我想知道是否有一些数据库表定义我可以查找哪些列可能超过255个字符总数。
在我无法修改用户任务完成时的javascript代码的情况下,有没有办法增加长度数?
谢谢
P.S。:我发现这个documentation用于活动,但没有关于数据库定义
我已经能够直接连接到我的activiti DB,在alfresco-global.properties中搜索连接属性。因此,我能够看到该表结构并查找varchar(255)字段。他们7岁:
有谁知道怎么看打印确切的查询activiti吗?
我在工作流程定义中找到了我的activiti查询错误的原因。这是一个不完整的活动:受让人财产导致了这个问题。我写了activiti:assignee="${mywf_assignee}"
而不是activiti:assignee="${mywf_assignee.properties.userName}"
。所以基本上查询会尝试在assignee_
列中写入整个nodeRef,这超过255个字符。
可悲的是,我没有找到一种方法来显示activiti完整的SQL查询。