Flowable

Install

Warning

Flowable servers must stay on Ubuntu 22.04 LTS (see Ubuntu 24.04 LTS for more information)

Warning

The SMTP settings for the mail server are not configured, but do not rush to put them right. Flowable tasks send emails in the background and we don’t want customers receiving duplicate or out of date emails!

Ubuntu 22.04 LTS

Warning

Flowable servers must stay on Ubuntu 22.04 LTS (see Ubuntu 24.04 LTS for more information)

Ubuntu 24.04 LTS

Warning

Flowable does not work on Tomcat 10 (Ubuntu 24.04 LTS), so we need something for our development machines.

I updated the Salt states to manually install Tomcat 9 into /var/lib/tomcat for Ubuntu 24.04 LTS. This is only for development machines which need to reproduce the live server environment:

sudo tail -f /var/lib/tomcat/logs/catalina.out

Podman

Warning

Live Flowable servers must stay on Ubuntu 22.04 LTS (for now)

For development on Ubuntu 24.04 LTS, we can use the Podman container.

Download flowable-rest.yaml:

podman kube play flowable-rest.yaml

podman pod start flowable-rest
podman pod stop flowable-rest
podman pod restart flowable-rest

podman pod logs -f flowable-rest
podman pod rm flowable-rest

Browse to http://localhost:8080/flowable-rest/docs/?url=specfile%2Fprocess%2Fflowable-swagger-process.json#!/Tasks/listTasks

Login with kermit, kermit.

Issues

value too long

I spent several hours diagnosing a value too long error e.g:

workflow.activiti.ActivitiError:
'ActivitiError, 500 error: for url:
http://localhost:8080/flowable-rest/service/runtime/tasks/10a5a39-8ea7-11ee:
{"message": "Internal server error",
  "exception":
    ### "Error updating database. Cause: org.postgresql.util.PSQLException:
    ERROR: value too long for type character varying(255)
    ### The error may exist in org/flowable/task/service/db/mapping/entity/HistoricTaskInstance.xml
    ### The error may involve org.flowable.task.service.impl.persistence.entity.HistoricTaskInstanceEntityImpl.insertHistoricTaskInstance-Inline
    ### The error occurred while setting parameters
    ### SQL: insert into ACT_HI_TASKINST (
      ID_, REV_, TASK_DEF_ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_,
      SCOPE_ID_, SUB_SCOPE_ID_, SCOPE_TYPE_, SCOPE_DEFINITION_ID_,
      PROPAGATED_STAGE_INST_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_, LAST_UPDATED_TIME_
    ) values ( ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
    ### Cause: org.postgresql.util.PSQLException:
    ERROR: value too long for type character varying(255)"}'
  • I checked the Postgres logs (SQL Logging) but this didn’t help because the parameters are not written if the query fails.

  • I also checked the data in the python code and none of it was over 255 characters.

The documentTitle field was 179 characters long:

  • The next task in the workflow had a fairly long name which also used the documentTitle e.g. Please review ${documentTitle} etc etc...

  • When combined, the name is too long (over 255 characters)

For more information, see https://www.kbsoftware.co.uk/crm/ticket/6958/