If you don't have any wait states in your process which means it will process all nodes after calling start process then the only way is to use event listeners. While using event listeners you have two options:
- use event listeners that are shipped with jbpm as part of BAM module
- create your custom event listener
If you use persistence for your processes I would recommend to use BAM module for this as it will record most of the data you would like to have and then you could query history log to get data, it includes variable information as well. For more information about history log, please have a look in the documentation.