Calling a Sub-Process from plain Java has become much simpler **since Axon.ivy 6.3.**
There is now a nice fluent API to invoke a process and get back the the resulting data. The entry point is here:
[ch.ivyteam.ivy.process.call.SubProcessCall][1]
You can find an example in the ConnectivityDemos where a Java REST-Service implementation starts a Process in the engine.
See `ConnectivityDemos` -> `com.axonivy.connectivity.rest.provider.ApprovalService.create(String, String, String)`
ITask task = SubProcessCall.withPath("rest/createApproval")
.withParam("title", title)
.withParam("description", description)
.call()
.get("approvalTask", ITask.class);
[1]: http://developer.axonivy.com/doc/latest/publicApi/ch/ivyteam/ivy/process/call/SubProcessCall.htmlhttps://developer.axonivy.com/doc/latest/public-api/ch/ivyteam/ivy/process/call/SubProcessCall.html