When you create a new item inside other item, for example, you create a workorder using the 'add' button from a service call, the 'child' item doesn't get created until you save the parent item, in this case the service call.
But if yoy create a work order alone, it has to work.
You may be aware that you can configure OVSD to assign IDs when the new object is first displayed on the screen (which means that you may have holes in the ID sequence), or only after the object is saved (in which case your sequence should be complete and without holes). Your choice depends on when you need to inform people of the ID of the ticket.
This is not really an answer to your question - which appears to be solved - but you do seem concerned about the issue of when you get the service call ID.