Set value to Start-Timer-Event in EventSubProcess dynamically

I was checking it. If it works will update.

By the way date value should be 2019-01-23T00:00:00.000Z or 2019-01-23T20:10:00.000+0100 this format?

@nikola.koevski it didn’t worked.

I was starting the process instance with variable:

{
  "variables": {
    "taskResolveDate" : {
        "value" : "2019-01-23T20:10:00.000+0100",
        "type": "Date"
    }
  }
}

Hi @aravindhrs,

Sorry for the delayed response. The 2019-01-23T20:10:00.000+0100 format is the correct one, it should have worked when you tried it.

Can you provide the server logs from when you tried last time?
Can you locate the variable in the database?

Best,
Nikola

Hi @nikola.koevski,

I’m not able to locate the variable in database, becuase i was sending that date value while starting process instance itself, so the process instance start itself failed with below error.

[org.camunda.bpm.engine.context] [logError] @ 156 : ENGINE-16004 Exception while closing command context: Unknown property used in expression: ${timerDate}. Cause: Cannot resolve identifier 'timerDate' 
org.camunda.bpm.engine.ProcessEngineException: Unknown property used in expression: ${timerDate}. Cause: Cannot resolve identifier 'timerDate'
	at org.camunda.bpm.engine.impl.el.JuelExpression.getValue(JuelExpression.java:60)
	at org.camunda.bpm.engine.impl.el.JuelExpression.getValue(JuelExpression.java:48)
	at org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl.initializeConfiguration(TimerDeclarationImpl.java:114)
	at org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl.postInitialize(TimerDeclarationImpl.java:142)
	at org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl.postInitialize(TimerDeclarationImpl.java:36)
	at org.camunda.bpm.engine.impl.jobexecutor.JobDeclaration.createJobInstance(JobDeclaration.java:120)
	at org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl.createTimer(TimerDeclarationImpl.java:169)
	at org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl.createTimerInstance(TimerDeclarationImpl.java:154)
	at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.initializeTimerDeclarations(ExecutionEntity.java:407)

For full stack trace, check this . PropertyNotFoundException.txt (31.5 KB)

BPMN file is: timer.bpmn (5.2 KB)

Payload:

{
  "businessKey": "5c432441778531931cd63985",
  "variables": {
    "timerDate": {
      "type": "Date",
      "value": "2019-02-23T20:10:00.000+0100"
    }
  }
}

@nikola.koevski any idea on the above post ? :wink:

Are you possibly running into an issue that the variable hasn’t been persisted yet when the event subprocess is started? You could try adding the asynchronous before checkmark to the process’ start event to see if it’s that. Although the event subprocess scope might also be created as part of the process creation, I’m not sure

I’m not sure, what’s the issue. And also not sure about marking Async-before in start event will solve the issue, because i tried this out early. :frowning:

Tried with this bpmn: timer.bpmn (5.3 KB)

Hi @aravindhrs,

Sorry for the delay.

I used the model and data you provided and I managed to start the process successfully. This is what I did:

  1. I send a HTTP POST Request to the /process-definition/key/timerbpmn/start endpoint of the Rest API
  2. The POST Request has the following body:
{
  "businessKey": "5c432441778531931cd639865",
  "variables": {
    "timerDate": {
      "type": "Date",
      "value": "2019-01-31T10:11:00.000+0100"
    }
  }
}
  1. I get a successful HTTP Response and I can see the Process Instance running in Cockpit.
  2. After the specified timerDate time expires, the timer is executed and the Process Instance finishes.

Do you do something different when you try to start a Process Instance?
Are the endpoint and it’s parameters correct? (note the key/timerbpmn part)

Best,
Nikola

With same bpmn i was getting 500 internal server error from postman.

[org.camunda.bpm.engine.context] [logError] @ 156 : ENGINE-16004 Exception while closing command context: Unknown property used in expression: ${timerDate}. Cause: Cannot resolve identifier 'timerDate' 
org.camunda.bpm.engine.ProcessEngineException: Unknown property used in expression: ${timerDate}. Cause: Cannot resolve identifier 'timerDate'
	at org.camunda.bpm.engine.impl.el.JuelExpression.getValue(JuelExpression.java:60)
	at org.camunda.bpm.engine.impl.el.JuelExpression.getValue(JuelExpression.java:48)
	at org.camunda.bpm.engine.impl.jobexecutor.TimerDeclarationImpl.initializeConfiguration(TimerDeclarationImpl.java:114)

Did you configured anything like JacksonDateFormatter or Date serialization or using Spin dependencies to handle date values?

No, I’m using the default configuration of version 7.10.1 without any changes.

What is your setup?

Does it work when you remove the business key?

What happens if you leave everything as it is and remove the Event Sub-Process?

If i remove BusinessKey alone, its not working.

Later, i removed event subprocess and able to startProcess instance and can see the instance in cockpit like below:

With businessKey:

And the timerDate variable is available in these cases?

Also, what version of the engine are you using, and with what database (also database version)? Maybe something is misconfigured.

yeah. In both cases, i was passing it.

Scenario1:

{     
  "variables": {
    "timerDate": {
      "type": "Date",
      "value": "2019-01-31T10:11:00.000+0100"
    }
  }
}

Scenario2:

{
  "businessKey": "5c432441778531931cd639865",
  "variables": {
    "timerDate": {
      "type": "Date",
      "value": "2019-01-31T10:11:00.000+0100"
    }
  }
}

im using camunda spring boot starters.

Camunda version: 7.9.0
JDK 1.8
springBootVersion = '2.0.3.RELEASE'
camundaBPMStarterVersion= '3.0.0'
AWS RDS : Mysql(InnoDB) = 5.7.17

Also i tried starting process instance directly in cockpit.

You should use the correct Spring Boot version. For Camunda 7.9 + Camunda Spring Boot Starter 3.0.0, it’s 2.0.2.RELEASE. You can see the compatibility matrix here.

Does the problem persist after updating to the correct Spring Boot version?

After changing version also same issue. Downgraded springboot version from 2.0.3 to 2.0.2

image

In cockpit, its not allowing to start a instance with date format: 2019-10-12T10:10:00.000+0100

I have upgraded the versions:

image

After upgrading to the above version it was working fine now with dateFormat: 2019-10-12T10:10:00.000+0100

But same with camunda version 7.9 its not working. This is a bug, can anyone look into that.

Thanks @nikola.koevski for your extended support. :100:

CC: @nikola.koevski, @thorben

1 Like