database - Alfresco activiti 错误太长,类型字符不同(255)ACT_HI_TASKINST

标签 database alfresco activiti

我有一个在 activiti 引擎上运行的 Alfresco (5.2.4) 工作流。 当用户提交任务并且用户任务 block 完成时,我收到此错误:

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,但是没有关于数据库定义的内容

更新

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

  • 姓名_
  • 所有者_
  • 受让人_
  • form_key_
  • 类别_
  • tenant_id_

有谁知道如何查看打印 activiti 所做的确切查询?

最佳答案

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

遗憾的是我没有找到一种方法来显示 activiti 完整的 sql 查询。

关于database - Alfresco activiti 错误太长,类型字符不同(255)ACT_HI_TASKINST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55394555/

相关文章:

java - 无法在 Spring Boot 中将受让人设置为 activiti 中的第二个用户任务

workflow - 如何在 Alfresco Share 中自定义工作流程详细信息页面?

python - 使用 SQLAlchemy 仅将类的某些部分映射到数据库?

angularjs - 混合移动应用程序的数据库解决方案

java - RDBMS、JCR、CMIS 之间丢失

java - 如何以编程方式更新 Alfresco 中的链接?

java - 如何使用 Activiti Engine 获取启动时间?

database - 显示数据库语句是 DDL、DML 还是其他?

mysql - QSql 连接并从数据库示例中读取? - 未加载驱动程序

露天门票有效期