Alfresco activiti 错误太长,类型字符不同(255)ACT_HI_TASKINST
Alfresco activiti error too long for type character varying(255) ACT_HI_TASKINST
我有一个在 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 会自动存储在工作流中执行的 "steps" 的历史记录,因此会引发错误。
我想知道是否有一些 DB table 定义我可以查找以搜索可能超过 255 个字符总数的列。
如果我无法在用户完成任务时修改我的 javascript 代码,有没有办法增加该长度?
谢谢
P.S.: 我找到这个documentation for activiti,但是没有关于DB definition
更新
我已经能够直接连接到我的 activiti 数据库,在 alfresco-global.properties 中搜索连接属性。因此,我能够看到 table 结构并查找 varchar(255) 字段。他们是 7:
- 姓名_
- 所有者_
- 受让人_
- form_key_
- 类别_
- tenant_id_
有谁知道如何查看 activiti 的确切查询?
我在我的工作流定义中找到了我的 activiti 查询错误的原因。这是一个不完整的 activiti:assignee 属性 导致了这个问题。我写了 activiti:assignee="${mywf_assignee}"
而不是 activiti:assignee="${mywf_assignee.properties.userName}"
。所以基本上查询会尝试将整个 nodeRef 写入 assignee_
列中,这超过 255 个字符。
遗憾的是我没有找到显示活动完成 sql 查询的方法。
我有一个在 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 会自动存储在工作流中执行的 "steps" 的历史记录,因此会引发错误。
我想知道是否有一些 DB table 定义我可以查找以搜索可能超过 255 个字符总数的列。
如果我无法在用户完成任务时修改我的 javascript 代码,有没有办法增加该长度?
谢谢
P.S.: 我找到这个documentation for activiti,但是没有关于DB definition
更新
我已经能够直接连接到我的 activiti 数据库,在 alfresco-global.properties 中搜索连接属性。因此,我能够看到 table 结构并查找 varchar(255) 字段。他们是 7:
- 姓名_
- 所有者_
- 受让人_
- form_key_
- 类别_
- tenant_id_
有谁知道如何查看 activiti 的确切查询?
我在我的工作流定义中找到了我的 activiti 查询错误的原因。这是一个不完整的 activiti:assignee 属性 导致了这个问题。我写了 activiti:assignee="${mywf_assignee}"
而不是 activiti:assignee="${mywf_assignee.properties.userName}"
。所以基本上查询会尝试将整个 nodeRef 写入 assignee_
列中,这超过 255 个字符。
遗憾的是我没有找到显示活动完成 sql 查询的方法。