Strange, it seems to work with form properties. I defined a form property isOK as boolean. The explorer (and the engine) have recognized it, because in the explorer, a checkbox is displayed instead of a text field.
Now, when I update this variable in a servlet using <code>processEngine.getRuntimeService().setVariable(task.getExecutionId(), "isOK", "true");</code>
the datatype remains boolean and in the Activiti Explorer, the checkbox is activated. In addition, ${isOK == true} is true.
This is great but I do not understand, how this can be? Because I passed "true", and this is a string.
And the same is true vor a date.
With <code>processEngine.getRuntimeService().setVariable(task.getExecutionId(), "myDate", "15/12/2014");</code>, the variable gets updated and the Explorer still sees it a a date, because it shows me the calendar widget.
That´s great, because it seems that the engine automatically choses the pre-defined datatype.