cancel
Showing results for 
Search instead for 
Did you mean: 

Upgraded from Activiti 5.22 to 6.0.1, how to get RuntimeServices from script task

ens121
Champ in-the-making
Champ in-the-making

Took over some existing models that were used with Activiti 5.22 that made calls similar to this:

    execution.getEngineServices().getRuntimeService().setVariables(

      execution.getId(),

      {'blah1': execution.getVariable('blah1'), 'blah2Key': 'blah2Val'});

getEngineServices is not part of DelegateExecution in Activiti 6, so not sure how to change so the results are identical to what we were doing in 5.22.

I'm guessing the following call would result in variables being set on a different scope:

execution.setVariables({'...': '...'});

2 REPLIES 2

cjose
Elite Collaborator
Elite Collaborator

execution.setVariables({'...': '...'}) should just work! 

Also, did you try runtimeService.setVariables( execution.getId(), {});? The runtimeService bean should be available in the script context.

ens121
Champ in-the-making
Champ in-the-making

Thanks for the response.

I did get it to work by using Context:

org.activiti.engine.impl.context.Context.getProcessEngineConfiguration().getRuntimeService().setVariables(...);

I didn't realize runtimeService was directly available to the script, so removing Context.getProcessEngineConfiguration() works great. Much cleaner solution. Thank you.