我有一个在activiti引擎上运行的Alfresco(5.2.4)工作流程。 当用户提交任务并且用户任务块完成时,我会收到此错误:
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用于激活,但是数据库定义没有任何意义
我已经能够直接连接到我的活动数据库,在alfresco-global.properties中搜索连接属性。因此,我能够看到该表结构并查找varchar(255)字段。他们是7:
有人知道如何打印出与查询活动相同的内容吗?
答案 0 :(得分:0)
我在我的工作流程定义中找到了我的活动查询错误的原因。导致问题的原因是activiti:assignee属性不完整。我写的是activiti:assignee="${mywf_assignee}"
而不是activiti:assignee="${mywf_assignee.properties.userName}"
。因此,基本上查询将尝试将整个nodeRef写入assignee_
列中,该列超过255个字符。
可悲的是,我没有找到一种方法来显示activiti完整的sql查询。