OSWorkflow provides several implementations of the com.opensymphony.workflow.Workflow interface that can be used in your application.
BasicWorkflow
The BasicWorkflow has no transactional support, though depending upon your persistence implementation, transactional support can be wrapped around this. It is created by doing
Workflow wf = new BasicWorkflow(username)
where username is the user who is associated with the current request.
EJBWorkflow
The EJB workflow uses the EJB container to manage transactions. This is configured in ejb-jar.xml. It is created by doing
Workflow wf = new EJBWorkflow()
. There is no need to give the username (as in BasicWorkflow and OfbizWorkflow) since that is automatically pulled in from the EJB container once the user has been authorized.
OfbizWorkflow
The OfbizWorkflow is exactly like the BasicWorkflow in every way, except that methods that require transactional support are wrapped with ofbiz TransactionUtil calls.