Hi ABIDI,
If you want do execute a ProcessInstance step by step, you should use Automatic activity like java or script. You should use state or task activity do do this thing. The state and task activity will stop the execution and wait a signal, until we invoke the executionService.signalExecutionById() they won't continue to next activity.
If you want to provide some data into processInstance, you could use signalExecutionById(String signalName, Map variables) to do that. Or you could invoke executionService.setVariable(exeuctionId, name, value) directly.
cheers.