1. opensymphony
  2. osworkflow


osworkflow / docs / 2. Integration with Other Modules.html

        <title>OSWorkflow - 
         Integration with Other Modules
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">

	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
			    <td valign="top" class="pagebody">
	<li>Back to <a href="1.5 Loading Workflow Definitions.html" title="1.5 Loading Workflow Definitions">1.5 Loading Workflow Definitions</a></li>
	<li>Forward to <a href="2.3 Spring framework.html" title="2.3 Spring framework">2.3 Spring framework</a></li>

<h3><a name="2.IntegrationwithOtherModules-IntegrationwithOSCore">Integration with OSCore</a></h3>

<p>OSWorkflow requires <a href="http://www.opensymphony.com/propertyset" title="Visit page outside Confluence">PropertySet</a>, and <a href="http://www.opensymphony.com/oscore" title="Visit page outside Confluence">OSCore</a>. Furthermore, OSWorkflow makes heavy usage of the many useful features in OSCore, and therefore OSCore version 2.2.0 or above is required to use OSWorkflow. OSUser is not strictly required, however, all of the built-in user/group functions and conditions use it, so you should include it unless you plan on writing your own versions of those conditions.</p>
<h3><a name="2.IntegrationwithOtherModules-IntegrationwithPropertySet">Integration with PropertySet</a></h3>

<p>One of the key features in OSWorkflow is the ability to save variables dynamically. This allows for a function (see <a href="3.4 Functions.html" title="3.4 Functions">3.4 Functions</a>) to take place on day 1 in the workflow lifecycle and store a piece of data in OSWorkflow. Then, many days later, when an action is executed in the workflow, that same data can be pulled up and re-used in another function. This is a very powerful feature that when used properly can allow for highly customized, long-lived workflow behavior that persists even after server restarts.</p>

<p>This is all possible by using the <a href="http://www.opensymphony.com/propertyset" title="Visit page outside Confluence">PropertySet</a> module. What kinds of variable types you can dynamically store in the propertyset (usually exposed as the variable <b>ps</b>) is totally up to the PropertySet implementation that is chosen by the <b>WorkflowStore</b> you have configured in <em>osworkflow.xml</em>. For example, if you choose the <em>JDBCWorkflowStore</em>, you must make sure that the jdbc propertyset is properly configured in <em>propertyset.xml</em>. Information on setting up the propertyset backend store (for example, sql scripts for the JDBCPropertySet) can be found in the propertyset download.</p>