本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          隨筆-230  評論-230  文章-8  trackbacks-0
          1 新建一個(gè)名為oswf的Web Projcet 項(xiàng)目,并添加項(xiàng)目的? struts capabilities,并把osworkflow所需要jar文件拷貝到lib目錄下.

          2 在tomcat的servers.xml文件中配置一個(gè)項(xiàng)目連接到我們所在的myeclipse工作區(qū)中所建立的oswf項(xiàng)目下的WebRoot目錄下.在servers.xml中添加如下代碼:

          <Context path="/oswf" docBase="D:\peidw\workplace\osworkflow\WebRoot" debug="5" reloadable="true" crossContext="true">
          ??????? <Resource name="jdbc/oswf" auth="Container" type="javax.sql.DataSource"/>
          ????????? <ResourceParams name="jdbc/oswf">
          ????????? <parameter>
          ??????????? <name>factory</name>
          ??????????? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>driverClassName</name>
          ??????????? <value>com.mysql.jdbc.Driver</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>url</name>
          ??????????? <value>jdbc:mysql://localhost:3306/osworkflow</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>username</name>
          ??????????? <value>root</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>password</name>
          ??????????? <value></value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>maxActive</name>
          ??????????? <value>20</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>maxIdle</name>
          ??????????? <value>2</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>maxWait</name>
          ??????????? <value>-1</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>removeAbandoned</name>
          ??????????? <value>true</value>
          ????????? </parameter>
          ????????? <parameter>
          ??????????? <name>removeAbandonedTimeout</name>
          ??????????? <value>300</value>
          ????????? </parameter>
          ??????? </ResourceParams>
          ??????? </Context>

          3? 在src目錄需要建立三個(gè)文件來配置OSWorkflow的相關(guān)配置.首先是osworkflow.xml文件,至于文件的作用一看就明白,內(nèi)容如下:
          ?????? <?xml version="1.0" encoding="UTF-8"?>
          <osworkflow>
          ?<persistence class="com.opensymphony.workflow.spi.jdbc.JDBCWorkflowStore">
          ???? <property key="datasource" value="jdbc/oswf"/>
          ????
          ???? <property key="entry.sequence" value="select max(id)+1 from os_wfentry"/>
          ???? <property key="entry.id" value="id"/>
          ???? <property key="entry.name" value="name" />
          ???? <property key="entry.state" value="state"/>
          ????
          ???? <property key="step.sequence" value="select max(id)+1 from os_stepids"/>
          ???? <property key="step.sequence.increment" value="insert into os_stepids(id) values(null) "/>
          ???? <property key="step.sequence.retrieve" value="select max(id) from os_stepids"/>
          ????
          ???? <property key="history.table" value="os_historystep"/>
          ???? <property key="current.table" value="os_currentstep"/>
          ???? <property key="histroyPrev.table" value="os_historystep_prev"/>
          ???? <property key="currentPrev.table" value="os_currentstep_prev"/>
          ????
          ???? <property key="step.id" value="ID"/>
          ??????? <property key="step.entryId" value="ENTRY_ID"/>
          ??????? <property key="step.stepId" value="STEP_ID"/>
          ??????? <property key="step.actionId" value="ACTION_ID"/>
          ??????? <property key="step.owner" value="OWNER"/>
          ??????? <property key="step.caller" value="CALLER"/>
          ??????? <property key="step.startDate" value="START_DATE"/>
          ??????? <property key="step.finishDate" value="FINISH_DATE"/>
          ??????? <property key="step.dueDate" value="DUE_DATE"/>
          ??????? <property key="step.status" value="STATUS"/>
          ??????? <property key="step.previousId" value="PREVIOUS_ID"/>
          ????
          ?</persistence>
          ?
          ?<factory class="com.opensymphony.workflow.loader.JDBCWorkflowFactory">
          ??<property key="resource" value="workflows.xml"/>
          ?</factory>
          </osworkflow>
          在src目錄下新建一個(gè)propertyset.xml來存儲相應(yīng)的字段配置信息:

          ? <?xml version="1.0" encoding="UTF-8"?>
          <propertysets>
          ??? <propertyset name="jdbc"
          ????? class="com.opensymphony.module.propertyset.database.JDBCPropertySet">
          ??????? <arg name="datasource" value="jdbc/oswf"/>
          ??????? <arg name="table.name" value="OS_PROPERTYENTRY"/>
          ??????? <arg name="col.globalKey" value="GLOBAL_KEY"/>
          ??????? <arg name="col.itemKey" value="ITEM_KEY"/>
          ??????? <arg name="col.itemType" value="ITEM_TYPE"/>
          ??????? <arg name="col.string" value="STRING_VALUE"/>
          ??????? <arg name="col.date" value="DATE_VALUE"/>
          ??????? <arg name="col.data" value="DATA_VALUE"/>
          ??????? <arg name="col.float" value="FLOAT_VALUE"/>
          ??????? <arg name="col.number" value="NUMBER_VALUE"/>
          ??? </propertyset>
          </propertysets>
          還要新建一個(gè)流程的配置文件,該文件的命名與osworkflow.xml的factory節(jié)點(diǎn)里的值有關(guān),如:

          <?xml version="1.0" encoding="UTF-8"?>
          <workflows>
          ? <workflow name="leave" type="resource" location="leave.xml"/>
          </workflows>

          那么leave.xml就是一個(gè)工作流的真正配置文件。其內(nèi)容如下:

          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.7//EN" 
          "http://www.opensymphony.com/osworkflow/workflow_2_7.dtd">
          <workflow>
            <initial-actions>
             <action id="0" name="開始">
                <results>
                  <unconditional-result old-status="Finished" status="Queued" step="1" />
                </results>
              </action>
            </initial-actions>
          
            <steps>
              <step id="1" name="填假單">
                <actions>
                  <action id="1" name="送出">
          	  <pre-functions>
          	    <function type="class">
          	      <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
          	    </function>
          	  </pre-functions>
                    <results>
                      <unconditional-result old-status="Finished" status="Queued" 
          step="2"  owner="User100" />
                    </results>
                  </action>
                </actions>
              </step>
          
              <step id="2" name="批假單">
                <actions>
                  <action id="2" name="準(zhǔn)許">
          	  <pre-functions>
          	    <function type="class">
          	      <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
          	    </function>
          	  </pre-functions>
                    <results>
                      <unconditional-result old-status="Finished" status="Queued" 
          step="3"  owner="${caller}"/>
                    </results>
                  </action>
          
                  <action id="3" name="駁回">
          	  <pre-functions>
          	    <function type="class">
          	      <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
          	    </function>
          	  </pre-functions>
                    <results>
                      <unconditional-result old-status="Finished" status="Queued" 
          step="1"  owner="${caller}"/>
                    </results>
                  </action>
                </actions>      
              </step>
          
              <step id="3" name="停止" />
            </steps>
          </workflow>


          這樣就可以配置OSworkflow持久化進(jìn)mysql中.
          posted on 2006-04-11 15:40 有貓相伴的日子 閱讀(1884) 評論(0)  編輯  收藏 所屬分類: workflow
          本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          主站蜘蛛池模板: 辛集市| 襄樊市| 洛南县| 永安市| 巴林右旗| 东乌珠穆沁旗| 万荣县| 广河县| 龙山县| 阜新| 龙游县| 株洲县| 托克逊县| 孙吴县| 遵义市| 金昌市| 云林县| 花莲县| 新和县| 阿合奇县| 车险| 犍为县| 清新县| 蒙阴县| 民权县| 太谷县| 航空| 阳朔县| 巴林右旗| 治多县| 宁远县| 东海县| 哈密市| 克东县| 阳泉市| 蕉岭县| 洛浦县| 武义县| 永泰县| 玉林市| 比如县|