2017-01-31 15 views
0

Как-то у меня есть исторический экземпляр процесса без конечного времени в моей базе данных.Как удалить экземпляр исторического процесса Camunda без времени окончания?

Запись выглядит следующим образом:

ACT_HI_PROCINST (ID_, PROC_INST_ID_, BUSINESS_KEY_, END_TIME_) 
VALUES ('0c128aec-e6f0-11e6-bc94-5456dbfc2b09', '0c128aec-e6f0-11e6-bc94-5456dbfc2b09', '3bc71b87-7134-4ead-8493-4c0f11d635be', null); 

При попытке удалить экземпляр исторического процесса с DELETE HTTP request to the REST interface эта ошибка возникает:

ERROR [org.camunda.bpm.engine.context] (default task-7) ENGINE-16004 Exception while closing command context: Process instance is still running, cannot delete historic process instance: 0c128aec-e6f0-11e6-bc94-5456dbfc2b09: instance.getEndTime() is null: org.camunda.bpm.engine.exception.NullValueException: Process instance is still running, cannot delete historic process instance: 0c128aec-e6f0-11e6-bc94-5456dbfc2b09: instance.getEndTime() is null 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at org.camunda.bpm.engine.impl.util.EnsureUtil.generateException(EnsureUtil.java:329) 
    at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:49) 
    at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:44) 
    at org.camunda.bpm.engine.impl.cmd.DeleteHistoricProcessInstanceCmd.execute(DeleteHistoricProcessInstanceCmd.java:49) 
    at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24) 
    at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:95) 
    at org.camunda.bpm.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:58) 
    at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) 
    at org.camunda.bpm.engine.impl.HistoryServiceImpl.deleteHistoricProcessInstance(HistoryServiceImpl.java:99) 
    at org.camunda.bpm.engine.rest.sub.history.impl.HistoricProcessInstanceResourceImpl.deleteHistoricProcessInstance(HistoricProcessInstanceResourceImpl.java:53) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 

Как я могу удалить экземпляр исторического процесса без время окончания либо на Java, либо через HTTP?

+2

Я думаю, что есть непонимание каких «исторических» означает. У вас будет экземпляр runtime-экземпляра и исторический экземпляр в то же время ... только, что экземпляр среды выполнения удаляется при завершении. Подумайте об историческом примере как о отражении того, что произошло ... так что с момента «начала события» произошло уже историческое прошлое ... –

ответ