* ENGINE-12018 History Time To Live (TTL) cannot be null. TTL is necessary for the History Cleanup to work. The following options are possible:
* Set historyTimeToLive in the model
* Set a default historyTimeToLive as a global process engine configuration
* (Not recommended) Deactivate the enforceTTL config to disable this check: ENGINE-12018 History Time To Live (TTL) cannot be null. TTL is necessary for the History Cleanup to work. The following options are possible:
* Set historyTimeToLive in the model
* Set a default historyTimeToLive as a global process engine configuration
* (Not recommended) Deactivate the enforceTTL config to disable this check | resource xxdTest.bpmn | line 3 | column 76
org.camunda.bpm.engine.ParseException: ENGINE-09005 Could not parse BPMN process. Errors:
* ENGINE-12018 History Time To Live (TTL) cannot be null. TTL is necessary for the History Cleanup to work. The following options are possible:
* Set historyTimeToLive in the model
* Set a default historyTimeToLive as a global process engine configuration
* (Not recommended) Deactivate the enforceTTL config to disable this check: ENGINE-12018 History Time To Live (TTL) cannot be null. TTL is necessary for the History Cleanup to work. The following options are possible:
* Set historyTimeToLive in the model
* Set a default historyTimeToLive as a global process engine configuration
* (Not recommended) Deactivate the enforceTTL config to disable this check | resource xxdTest.bpmn | line 3 | column 76
关闭
Update from 7.19 to 7.20 | docs.camunda.org
camunda:
bpm:
generic-properties:
properties:
# 用户、用户组 ID白名单,如果不加,特殊字符无法使用
generalResourceWhitelistPattern: ".+"
# History Cleanup is disabled (no cleanup)
enforceHistoryTimeToLive: false
P360000D
清理时间无限大
Camunda 7.20 History Time To Live cannot be null! Cannot deploy WF created in 7.18
package org.camunda.bpm.engine.impl.util.ParseUtil;
protected static final Pattern REGEX_TTL_ISO = Pattern.compile("^P(\\\\d+)D$");
/**
* Parse History Time To Live in ISO-8601 format to integer and set into the given entity
* @param historyTimeToLive
*/
public static Integer parseHistoryTimeToLive(String historyTimeToLive) {
Integer timeToLive = null;
if (historyTimeToLive != null && !historyTimeToLive.isEmpty()) {
Matcher matISO = REGEX_TTL_ISO.matcher(historyTimeToLive);
if (matISO.find()) {
historyTimeToLive = matISO.group(1);
}
timeToLive = parseIntegerAttribute("historyTimeToLive", historyTimeToLive);
}
if (timeToLive != null && timeToLive < 0) {
throw new NotValidException("Cannot parse historyTimeToLive: negative value is not allowed");
}
return timeToLive;
}