Alex:
Sure, below is the process defined in Orbeon. I'll explain what we do based on the process below. The web service call triggered sends the document_id to the endpoint as a query string "document". We capture that value in our web service and save that in our database to reference later. If the page is reloaded by the user, we pull out the value for the document_id saved. If there is a value then we change the mode to "edit", pass in that document_id, and load the form.
<property as="xs:string" name="oxf.fr.detail.process.evo-save-draft.*.*">
save-progress
then send(uri = "
http://localhost/mywsapi/orbeon/draft",
method = "POST",
headers = "OrderUID:{//order-uid} \n ServiceUID:{//service-uid} \n UserUID:{//user-uid}")
</property>
Thanks,