对于类型字符变化(255)ACT_HI_TASKINST,Alfresco activiti错误太长

问题描述 投票:1回答:1

我有一个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用于活动,但没有关于数据库定义

UPDATE

我已经能够直接连接到我的activiti DB,在alfresco-global.properties中搜索连接属性。因此,我能够看到该表结构并查找varchar(255)字段。他们7岁:

  • 那么_
  • 所有者_
  • assignee_
  • form_key_
  • 类别_
  • tenant_id_

有谁知道怎么看打印确切的查询activiti吗?

database alfresco activiti
1个回答
1
投票

我在工作流程定义中找到了我的activiti查询错误的原因。这是一个不完整的活动:受让人财产导致了这个问题。我写了activiti:assignee="${mywf_assignee}"而不是activiti:assignee="${mywf_assignee.properties.userName}"。所以基本上查询会尝试在assignee_列中写入整个nodeRef,这超过255个字符。

可悲的是,我没有找到一种方法来显示activiti完整的SQL查询。

© www.soinside.com 2019 - 2024. All rights reserved.