强制设置清理时间

* 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

A

关闭

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

B

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;
  }