by using workflow how can i cancel document before submit (after draft)
This is currently not available. It was on the roadmap, but seems to have gone off priority.
has this been made available yet? how do I make a workflow that allows one to reject or approve a draft sales order?
There is the option to make a workflow status of rejected with a doc status of 0. Otherwise, you will have to submit for approval.
Not available out of the box right now:
You can sponsor this if you have the budget.