??xml version="1.0" encoding="utf-8" standalone="yes"?>无码一区二区三区视频,亚洲一区二三区,亚洲精品大片http://www.aygfsteel.com/lewhwa/熙熙攘攘一闲h 以冷静的眼光观察技?/description>zh-cnSat, 17 May 2025 11:48:59 GMTSat, 17 May 2025 11:48:59 GMT60Activiti User GuideQActiviti用户指南)-Chapter 18. JBPM MigrationQJBPM q移Q(2Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/03/08/345975.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Tue, 08 Mar 2011 13:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/03/08/345975.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/345975.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/03/08/345975.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/345975.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/345975.html</trackback:ping><description><![CDATA[<p><strong>Extend the migration logic</strong> </p> <p><strong>扩展q移逻辑</strong><strong></strong> </p> <p>The migration logic is written in such a way, that it is easy to extend to suit your needs. The source code is available as a Maven 2 project in the srcsubfolder of the downloaded zip file. To build a new zip file, after having changed or extended the logic, simply execute a </p> <p>q移逻辑可以~写Q以便轻村֜满你的需求。源代码在所下蝲zip文g里src子文件夹里作一个Maven 2目来用。ؓ了构Z个新的zip文gQ在已经改变或者扩展逻辑之后Q简单执行下面指?/p> <p> </p> <div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000; "> mvn clean install</span></div> <p> </p> <p>to produce a new zip file in the target folder. </p> <p>在target文g下生一个新的zip文g? </p> <p>Following picture gives a high-level overview of the classes in the migration logic. </p> <p>下图提供了在q移逻辑里类的高层次概貌? </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/f00075002d21_12E6D/migration.code.overview_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="migration.code.overview" border="0" alt="migration.code.overview" src="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/f00075002d21_12E6D/migration.code.overview_thumb.png" width="767" height="494" /></a> </p> <ul> <li>Both the <strong>ProcessConversion</strong> and <strong>ProcessDataMigration</strong> classes have a main method that directly is called from the ant build script in the root of the migration zip. </li> <li><strong>ProcessConversion</strong> and <strong>ProcessDataMigration</strong> q两个类都有在迁Uzip的根目录下的ant构徏脚本里调用的<strong>main</strong>Ҏ? </li> <li>These classes construct a <strong>ServiceFactory</strong> based on the two properties files, using a static factory method </li> <li>通过使用静态的工厂ҎQ基于两个properties文gq些cLZ?strong>ServiceFactory</strong></li> </ul> <pre> <div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; ">ServiceFactory.configureFromProperties(jbpmDbProperties, activitiDbProperties);</span></div> </pre> <ul> <li>The services are constructed by the ServiceFactory (eg. getProcessConversionService()) and are used to execute the migration logic: </li> <li>通过<strong>ServiceFactory</strong> (eg. <strong>getProcessConversionService()</strong>)构徏q些服务Q这些服务被用来执行q移逻辑Q?/li> </ul> <pre> <div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> execute() </span><span style="color: #0000FF; ">throws</span><span style="color: #000000; "> IOException {<br /> </span><span style="color: #008080; "> 2</span> <span style="color: #000000; ">    <br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">  </span><span style="color: #008000; ">//</span><span style="color: #008000; "> convert processes</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">  ServiceFactory serviceFactory </span><span style="color: #000000; ">=</span><span style="color: #000000; "> createServiceFactory();<br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">  ProcessConversionService processConversionService </span><span style="color: #000000; ">=</span><span style="color: #000000; "> serviceFactory.getProcessConversionService();<br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">  Map</span><span style="color: #000000; "><</span><span style="color: #000000; ">String, Document</span><span style="color: #000000; ">></span><span style="color: #000000; "> migratedProcesses </span><span style="color: #000000; ">=</span><span style="color: #000000; "> processConversionService.convertAllProcessDefinitions();<br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">  <br /> </span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">  </span><span style="color: #008000; ">//</span><span style="color: #008000; "> write results to bpmn20.xml files</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">  writeConvertedProcesses(migratedProcesses, workingDir);<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">    <br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">  </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Deploy processes to Activiti</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">12</span> <span style="color: #000000; ">  ActivitiService activitiService </span><span style="color: #000000; ">=</span><span style="color: #000000; "> serviceFactory.getActivitiService();<br /> </span><span style="color: #008080; ">13</span> <span style="color: #000000; ">  activitiService.deployConvertedProcesses(migratedProcesses);<br /> </span><span style="color: #008080; ">14</span> <span style="color: #000000; ">    <br /> </span><span style="color: #008080; ">15</span> <span style="color: #000000; ">  </span><span style="color: #008000; ">//</span><span style="color: #008000; "> data migration</span><span style="color: #008000; "><br /> </span><span style="color: #008080; ">16</span> <span style="color: #000000; ">  <img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /><br /> </span><span style="color: #008080; ">17</span> <span style="color: #000000; ">}</span></div> </pre> <ul> <li>The <strong>ProcessConversionService</strong> is an interface that contains process conversion and process definition data retrievel operations. It uses an implementation of <strong>Jbpm3Dao</strong>. The default implementation of this class uses a Hibernate <strong>SessionFactory</strong> to retrieve all the data from jBPM 3 tables.</li> </ul> <p>The <strong>ActivitiService</strong> offers operation needed to get the migrated data in the Activiti tables. For example, deploying the converted process definitions is such an operation </p> <p><strong>ProcessConversionService</strong> 是一个包含流E{换和数据索的程定义借口。它使用?<strong>Jbpm3Dao</strong>.的实现。这个类的缺省实C用了Hibernate?strong>SessionFactory</strong>从jBPM 3的数据库表里索所有的数据? </p> <p><strong>ActivitiService</strong> 提供需要从Activiti数据库表q移数据的操作。例如,部v转换之后的流E定义就是如此的操作? </p> <ul> <li>All these dependencies, ProcessConversionService, Jbpm3Dao, Sessionfactory, ActivitiService and ProcessEngine, are interfaces and can be implemented by your own implementation. You can inject them into the ServiceFactory using regular JavaBean setters. When no such custom implementation is set, the ServiceFactory will fall back to creating the default implementation: </li> <li>所有这些依赖, ProcessConversionService, Jbpm3Dao, Sessionfactory, ActivitiService ?ProcessEngine都是接口Qƈ能由你自己实现。采用正常的JavaBean讄器,能将它们注入到ServiceFactory。当没有讄q些实现QServiceFactory后退一步,建立~省的实玎ͼ</li> </ul> <pre>   <span style="font-size: 13px; "><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">public</span><span style="color: #000000; "> ProcessConversionService getProcessConversionService() {</span></span> <div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #008080; "> 2</span> <span style="color: #000000; ">  </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (processConversionService </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.processConversionService </span><span style="color: #000000; ">=</span><span style="color: #000000; "> createDefaultProcessConversionService();<br /> </span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">  } <br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">  </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> processConversionService;<br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 8</span> <span style="color: #0000FF; ">protected</span><span style="color: #000000; "> ProcessConversionService createDefaultProcessConversionService() {<br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">  ProcessConversionServiceImpl service </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> ProcessConversionServiceImpl(getJbpm3Dao());<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">  </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> service;<br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">}</span></div>             </pre><img src ="http://www.aygfsteel.com/lewhwa/aggbug/345975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-03-08 21:40 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/03/08/345975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti User GuideQActiviti用户指南)-Chapter 18. JBPM MigrationQJBPM q移Q(1Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/03/07/345911.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Mon, 07 Mar 2011 15:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/03/07/345911.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/345911.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/03/07/345911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/345911.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/345911.html</trackback:ping><description><![CDATA[<p><strong>Chapter 18. JBPM MigrationQJBPM q移Q?/strong> </p> <p><strong>Table of Contents</strong> </p> <p>目录? </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index.html">Database migration</a> </p> <p>数据q移 </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_1.html">Process conversion</a> </p> <p>程转换 </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_2.html">Extend the migration logic</a> </p> <p>扩展q移逻辑 </p> <p>The jBPM migration is considered <a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_3.html">[EXPERIMENTAL]</a>. </p> <p>jBPMq移仅作<a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_4.html">[EXPERIMENTAL]</a>之用? </p> <p>It is possible to migrate an existing installation of jBPM version 3 to Activiti. The migration includes both process definition conversion (ie. from JPDL 3 to BPMN 2.0) and data migration. </p> <p>一个已安装的jBPM 版本3q移到Activiti是有可能的。迁Ud括流E定义{换(例如从JPDL3到BPMN 2.0Q和数据q移? </p> <p><strong>The migration tool is currently offered as a 'preview' only!</strong> The migration coverage is at this point in time not sufficient to be usable on production process definitions and databases. Also note that the migration is a <strong>'best effort'</strong>, which means that you may need to <a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_5.html">extend the migration logic</a> to cover all your use cases. </p> <p><strong>q移工具目前只作?#8216;预览’之用Q?/strong>当前q移不能覆盖C品的程定义和数据。也要注意迁UL‘最大的努力’Q这意味着你可以需?#8216;扩展q移逻辑’来控制你所有的用例? </p> <p>The migration tool is separately availbale as a zip file from <a >the activiti.org download site</a>. Once you have unzipped this file, you will see following files and folders: </p> <p>q移工具?a >activiti.org下蝲站点</a>以zip文g方式分开下蝲。一旦加压这个文Ӟ文g和文件夹如下所C: </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/clip_image002_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/clip_image002_thumb.jpg" width="407" height="222" /></a> </p> <ul> <li><strong>build.xml</strong>: This ant buildfile contains the targets to execute the process definition conversion and database migration. </li> <li><strong>build.xml</strong>: q个ant构徏文g包含了执行流E定义{换和数据库迁Uȝ目标? </li> <li><strong>activiti.db.properties and jbpm3.db.properties</strong>: these properties files contain the database connection parameters for the jBPM 3 and Activiti database. These properties files must be changed when executing a <a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_6.html">database migration</a>. </li> <li><strong>activiti.db.properties and jbpm3.db.properties</strong>:q个Ҏ文件包含了jBPM和Activiti数据库的数据库连接参数。当执行数据库迁ULQ必L变这些特性文件? </li> <li><strong>processes</strong>: when running a <a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_7.html">process definition conversion</a>, the jBPM 3 process definition files must be placed in this folder. </li> <li><strong>processes</strong>:当运?a href="file:///G:/index.html#processConversion">程定义转换</a>ӞjBPM3程定义文g必须攄到这个文件夹? </li> <li><strong>src</strong>: this folder contains the source code of the migration tool. Read the <a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_8.html">extension</a> section if you want to tailor or extend the migration code to your needs. </li> <li><strong>src</strong>:q个文g包含q移工具的源代码。如果希望裁剪或者扩展迁UM码满你自己的需求,请阅?a href="file:///G:/index.html#extendMigration">扩展</a>部分? </li> <li><strong>lib</strong>: this folder contains all jars required to execute the migration logic. </li> <li><strong>lib</strong>:q个文g夹包含执行迁U逻辑的全部jar包?/li> </ul> <p><a name="databaseMigration"></a><strong>Database migration</strong> </p> <p><strong>数据库迁U?/strong><strong></strong> </p> <p>It is possible to migrate the data in the jBPM 3 database tables to the Activiti database schema. To do this, following properties files must be changed to point at the right database: </p> <p>jBPM3数据库表q移到Activiti数据库schema是有可能的。ؓ了完成这个Q务,必须改变下面的properties文gQ指向正的数据库: </p> <ul> <li><strong>jbpm3.db.properties</strong>: contains the parameters to connect to the jBPM 3 database. Also the Hibernate dialect must be provided. </li> <li><strong>jbpm3.db.properties</strong>:包含了连接jBPM3数据库的参数。也必须提供Hibernate方言? </li> <li><strong>activiti.db.properties</strong>: contains the parameters to connect to database to which the migrated data will be written. This can be the same database schema as the jBPM schema (ie. there are no name-clashes between jBPM and Activiti tables, indexes, foreign keyes, etc). </li> <li><strong>activiti.db.properties</strong>: 包含了迁Ud要写入数据库的连接参数。这个可能是和jBPM相同数据库schemaQ例如,在jBPM和Activiti数据库表名,索引名,外键名等{没有冲H).</li> </ul> <p>The database migration will use the data in the jBPM 3 tables to: </p> <p>数据q移用jBPM3数据库表的数据来做: </p> <ul> <li>Convert the process definition to the BPMN 2.0 counterpart. This means that the converted process definition will be deployed to the Activiti tables as part of the migration. As a side-effect, it will also produce the BPMN 2.0 XML files, similar to what happens when executing the<a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_9.html">process conversion</a>. </li> <li>转换程定义为BPMN 2.0对应物。这意味着转换之后的流E定义将作ؓq移的一部分被部|到Activiti的数据库表。作为副作用Q它也生BPMN 2.0 XML文gQ这和当执行程转换时所发生的事怼? </li> <li>Migrate runtime and history data of the processes to the Activiti tables. <strong>In this release, this is not yet implemented!</strong> </li> <li>q移程的运行时和历史数据到Activiti数据库表?strong>本次发布Q这没有实现Q?/strong></li> </ul> <p>The data is retrieved from the jBPM 3 tables using Hibernate queries and the Hibernate mappings of jBPM itself. </p> <p>使用Hibernate查询和jBPM自n的Hibernate? </p> <p>,可以从jBPM 3数据库表里检索到q些数据? </p> <p><a name="processConversion"></a><strong>Process conversion</strong> </p> <p><strong>程转换</strong><strong></strong> </p> <p>It is possible to only convert the process definitions xml from JPDL to BPMN 2.0 that can be executed on the Activiti engine. To do this, place the jBPM 3 processes inside the processes folder. There can be any number of (nested) subfolders, the tool will scan every (sub)folder inside processes to discover processdefinition.xml files (file name must be processdefinition.xml!). </p> <p>只将JPDL的流E定义xml转换在Activiti引擎执行的BPMN 2.0是有可能的。ؓ了完成这个Q务,请将jBPM 3攄到process 文g夏V可以有M数量Q内|)子文件夹Q工具将扫描process每个Q子Q文件夹Q来发现processdefinition.xml文gQ文件名必须是processfinition.xml!Q? </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/migration.processes.location_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="migration.processes.location" border="0" alt="migration.processes.location" src="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/migration.processes.location_thumb.png" width="593" height="154" /></a> </p> <p>The discovered processes will be parsed and deployed to an in-memory databse, such that the logic of reverse engineering the process definition from the jBPM deployment tables contained in <a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/index_10.html">the database migration</a> is used for both cases. </p> <p>被发现的程被解析q|到一个内存数据库Q以便对包含在数据库q移的jBPM部v数据库表的流E定义进行反向工E,以ؓ解析和部|之用? </p> <p>Once the jBPM 3 processes are placed in the processes folder, execute the convert.processes target in the root of the unzipped migration tool folder: </p> <p>一旦jBPM 3程被放|到process文g夹,那么执行在解压之后的q移工具文gҎ目录下的convert.processes目标? </p> <p>ant convert.processes </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/migration.ant.convert.processes_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="migration.ant.convert.processes" border="0" alt="migration.ant.convert.processes" src="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/migration.ant.convert.processes_thumb.png" width="469" height="66" /></a> </p> <p>During conversion, you will see plenty logging passing by describing where and how the process conversion is being executed. At the end of the conversion, you will see following logging appear: </p> <p>在{换过E中Q通过描述程转换执行是何地和何时转换的方式,可以观察到大量的日志。在转换的末,观察到下列日志出现Q? </p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/migration.process.conversion.completed_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="migration.process.conversion.completed" border="0" alt="migration.process.conversion.completed" src="http://www.aygfsteel.com/images/blogjava_net/lewhwa/Windows-Live-Writer/4fd8a2bbdc9e_131C8/migration.process.conversion.completed_thumb.png" width="700" height="136" /></a> </p> <p>As shown in the logging, the resulting BPMN 2.0 processes can be find in the converted-process-xxxx folder, where the xxxx is the timestamp of the conversion. </p> <p>正如日志所C,BPMN 2.0程的结果可以在converted-process-xxxx文g多w扑ֈQ这里xxxx是{换的旉戟? </p> <p>In this release, only limited support for start, end, wait state and task-nodes is implemented. In the future, this coverage will expand. </p> <p>在本ơ发布里Q只实现了对开始,l束Q等待和d节点的有限支持。在来Q这个覆盖范围将要扩充? </p><img src ="http://www.aygfsteel.com/lewhwa/aggbug/345911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-03-07 23:23 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/03/07/345911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]架构师的素质http://www.aygfsteel.com/lewhwa/archive/2011/03/07/345910.html|\L@BlogJava|\L@BlogJavaMon, 07 Mar 2011 15:18:00 GMThttp://www.aygfsteel.com/lewhwa/archive/2011/03/07/345910.htmlhttp://www.aygfsteel.com/lewhwa/comments/345910.htmlhttp://www.aygfsteel.com/lewhwa/archive/2011/03/07/345910.html#Feedback2http://www.aygfsteel.com/lewhwa/comments/commentRss/345910.htmlhttp://www.aygfsteel.com/lewhwa/services/trackbacks/345910.html阅读全文

|\L@BlogJava 2011-03-07 23:18 发表评论
]]>
Grails 1.3.7 Release Noteshttp://www.aygfsteel.com/lewhwa/archive/2011/02/18/344589.html|\L@BlogJava|\L@BlogJavaThu, 17 Feb 2011 16:00:00 GMThttp://www.aygfsteel.com/lewhwa/archive/2011/02/18/344589.htmlhttp://www.aygfsteel.com/lewhwa/comments/344589.htmlhttp://www.aygfsteel.com/lewhwa/archive/2011/02/18/344589.html#Feedback1http://www.aygfsteel.com/lewhwa/comments/commentRss/344589.htmlhttp://www.aygfsteel.com/lewhwa/services/trackbacks/344589.htmlGrails 1.3.7 Release Notes

Grails is a dynamic web application framework built on Java and Groovy, leveraging best of breed APIs from the Java EE sphere including Spring, Hibernate and SiteMesh. Grails brings to Java and Groovy developers the joys of convention-based rapid development while allowing them to leverage their existing knowledge and capitalize on the proven and performant APIs Java developers have been using for years.

New Features & Improvements

Updated Groovy

Grails 1.3.7 now bundles Groovy 1.7.8.

Masking Request Parameters From Stacktrace Logs

When Grails logs a stacktrace, the log message may include the names and values of all of the request parameters for the current request. To mask out the values of secure request parameters, specify the parameter names in the grails.exceptionresolver.params.excludeconfig property:

grails.exceptionresolver.params.exclude = ['password', 'creditCard']

Request parameter logging may be turned off altogether by setting thegrails.exceptionresolver.logRequestParameters config property to false . The default value is true when the application is running in DEVELOPMENT mode and false for all other modes.

grails.exceptionresolver.logRequestParameters = false


|\L@BlogJava 2011-02-18 00:00 发表评论
]]>
Activiti User GuideQActiviti用户指南)-Chapter 17. Activiti KickStarthttp://www.aygfsteel.com/lewhwa/archive/2011/01/10/342729.html|\L@BlogJava|\L@BlogJavaMon, 10 Jan 2011 12:58:00 GMThttp://www.aygfsteel.com/lewhwa/archive/2011/01/10/342729.htmlhttp://www.aygfsteel.com/lewhwa/comments/342729.htmlhttp://www.aygfsteel.com/lewhwa/archive/2011/01/10/342729.html#Feedback1http://www.aygfsteel.com/lewhwa/comments/commentRss/342729.htmlhttp://www.aygfsteel.com/lewhwa/services/trackbacks/342729.htmlChapter 17. Activiti KickStart

Table of Contents

OverviewQ概qͼ

Changing the databaseQ变更数据库Q?

OverviewQ概qͼ

Activiti KickStart is a webbased tool to quickly create 'adhoc' business processes using a subset of constructs available to the Activiti engine. KickStart provides a simple UI that doesn't require to learn BPMN or any modeling environment, as it works with concepts that are familiar to every business user. However, the processes that are created using KickStart, are fully BPMN 2.0 compliant and can be used as a starting point for more complex BPM endeavours.

Activiti KickStart的是一个基于Web的工P用Activiti引擎可用的构ӞconstructsQ的子集提供l快速创?#8220;卛_QadhocQ?#8221;的业务流E。Kickstart提供了不必学习BPMN或者Q何徏模环境的单UIQ因为它树立了每个业务用户都熟悉的概c但是,通过KickStart创徏的的程Q是和BPMN 2.0兼容Qƈ可作为更为复杂BPM努力的v炏V?

KickStart integrates perfectly with the Activiti engine. As such, processes created with KickStart are immediataly usable in Activiti Explorer and are visible in Probe.

KickStart能和Activiti引擎完美集成。因此,采用KickStart创徏的流E在Activiti Explorer立即可用Qƈ在Probe里面可见?

KickStart serves many business cases, but the following three are probably the most common:

KickStart服务许多商业案例Q但以下三个可能是最常见Q?

  • Simple business processes: some processes are just simple by nature, and every company has them. Think about an expense process, a holiday leave process, a hiring process, etc... These kind of processes are probably already being done using paper or e-mail. KickStart allows to model these processes quickly and change them whenever it is needed. As such, KickStart really lowers the threshold to automate these business processes.
  • 单的业务程Q一些流E天然简单,q且每个公司都有。考虑CҎE,请假程Q雇佣流E,{等…q些程用书面或者e-mail的方式已l完成。Kickstartq行快速对q些程建模Q每当需要时改变它们。因此,Kickstart真正地降低了门槛Qƈ让这些业务流E自动化?
  • Prototyping: before diving into complex BPMN 2.0 modeling and thinking about the corner cases of the process, it is often wise to get all people involved aligned and work out a prototype that shows the vision of what needs to be done. KickStart allows to do exatcly that: create a business process prototype on the fly, to get your ideas visible for everyone.
  • 原型Q在ȝ复杂的BPMN 2.0建模和考虑程的偏例之前,它往往是明智的Q让所有参与的人^{,制定一个原型来展示所要完成的愿景。KickStart的允许恰恰如此:创徏一个业务流E的原型Q让大家看到你的x?
  • Adhoc work: in some cases, coordination is required between different people or groups in a company. You know how it normally goes: sending an email here, doing a telephone there ... which often ends up in a tar pit of nobody knowing what or when something needs to be done. However, a business process management platform such as Activiti is an excellent way of distributing and follow-up everything, as it is intended to track exactly such things. KickStart allows you to create processes for adhoc work in a matter of minutes, and distribute and coordinate tasks between people easily.
  • 卛_工作Q在一些情况,在一个公叔RQ不同的人员或组之间的协作是必要的。您知道正常时如何运作的Q在q里发送邮Ӟ在那里打电话…q经常终止于没有人知道需要完成什么或者何时完成这L焦a坑。但是,诸如Activitiq样的业务流E管理^台是解决分发和后l事情的卓越解决之道Q因为它的目的是准确跟踪q些事情。Kickstart允许您在数分钟之内创建即席工作的程Qƈ在h们之间分发和协调d?/li>

Following screenshots show the capabilities of Activiti KickStart. Take for example the next picture. It shows how an expense process is created in a matter of a few minutes.

下列屏幕截图展示了Activiti KickStart的能力。下图作为示例。它展示如何在几分钟之内创徏一个付ҎE?

clip_image002

After clicking the save button, the process is immediately usable in Activiti Explorer:

在点?#8220;保存”按钮之后Q这个流E立卛_Activiti Explorer可用?

clip_image004

KickStart also allows to define forms for every task:

KickStart也允ؓ每个d定义表单Q?

clip_image006

Which are obviously directly usable in Activiti Explorer:

q些明显直接在Activiti Explorer可用Q?

clip_image008

At any time during process creation, it is possible to view the corresponding BPMN 2.0 diagram of the business process:

在流E徏立的L旉Q它可以查看相应的BPMN2.0业务程图?

clip_image010

Whenever it is required, the processes defined with KickStart can be opened up and modified:

每当它是必需Q与KickStart的定义的程可被打开和修改:

clip_image012

Processes created with KickStart are fully compliant with the BPMN 2.0 XML, which means that the process can be imported into any BPMN 2.0 editor:

用KickStart的创建的程是完全符合BPMN2.0的XMLQ这意味着该流E可以由M兼容的BPMN2.0~辑器输入:

clip_image014

Changing the databaseQ变更数据库Q?/strong>

Activiti KickStart is currently not yet using the REST API, but uses the service API by including the Activiti engine as a library. While Explorer, Probe and Cycle use the same mechanism for changing the database (see here), the same does not yet apply for KickStart.

Activiti KickStart当前q没有用REST APIQ而是通过包括了Activiti引擎作ؓcd使用服务API。虽然ExplorerQProbe和Cycle使用相同的机制改变数据(参见q里Q,但这不适于KickStart?

To change the database that KickStart uses in the demo setup, generate a new activiti.cfg.jar, and place it in the apps/apache-tomcat-6.x/webapps/activiti-kickstart/WEB-INF/lib folder.

Z改变演示安装里KickStart使用的数据库Q生一个新的activiti.cfg.jar,q将它放|到apps/apache-tomcat-6.x/webapps/activiti-kickstart/WEB-INF/lib文g夏V?



|\L@BlogJava 2011-01-10 20:58 发表评论
]]>
Activiti in ActionQ实战ActivitiQ?W一?BPMN 2.0: what&rsquo;s in it for developers?Q?1Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/01/08/342571.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Sat, 08 Jan 2011 03:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/01/08/342571.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/342571.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/01/08/342571.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/342571.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/342571.html</trackback:ping><description><![CDATA[     摘要: 随着W合BPMN 2.0标准的BPMS程引擎Activiti 5.0正式版推出,由Tijs Rademakers ?Ron Van Liempd~写的‘实战Activiti’书c昨天在“Manning Early Access Program”现w。目前第一章释出,可以先睹为快。呵呵,真棒Q本是W一章之Q?1Q?nbsp; <a href='http://www.aygfsteel.com/lewhwa/archive/2011/01/08/342571.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lewhwa/aggbug/342571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-01-08 11:49 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/01/08/342571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti in ActionQ实战ActivitiQ?W一?BPMN 2.0: what&rsquo;s in it for developers?Q?0Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/01/06/342454.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Thu, 06 Jan 2011 13:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/01/06/342454.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/342454.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/01/06/342454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/342454.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/342454.html</trackback:ping><description><![CDATA[     摘要: 随着W合BPMN 2.0标准的BPMS程引擎Activiti 5.0正式版推出,由Tijs Rademakers ?Ron Van Liempd~写的‘实战Activiti’书c昨天在“Manning Early Access Program”现w。目前第一章释出,可以先睹为快。呵呵,真棒Q本是W一章之Q?0Q?nbsp; <a href='http://www.aygfsteel.com/lewhwa/archive/2011/01/06/342454.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lewhwa/aggbug/342454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-01-06 21:26 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/01/06/342454.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti in ActionQ实战ActivitiQ?W一?BPMN 2.0: what&rsquo;s in it for developers?Q?Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/01/05/342376.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Wed, 05 Jan 2011 13:01:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/01/05/342376.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/342376.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/01/05/342376.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/342376.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/342376.html</trackback:ping><description><![CDATA[     摘要: 随着W合BPMN 2.0标准的BPMS程引擎Activiti 5.0正式版推出,由Tijs Rademakers ?Ron Van Liempd~写的‘实战Activiti’书c昨天在“Manning Early Access Program”现w。目前第一章释出,可以先睹为快。呵呵,真棒Q本是W一章之Q?Q?nbsp; <a href='http://www.aygfsteel.com/lewhwa/archive/2011/01/05/342376.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lewhwa/aggbug/342376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-01-05 21:01 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/01/05/342376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti in ActionQ实战ActivitiQ?W一?BPMN 2.0: what&rsquo;s in it for developers?Q?Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342322.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Tue, 04 Jan 2011 15:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342322.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/342322.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342322.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/342322.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/342322.html</trackback:ping><description><![CDATA[     摘要: 随着W合BPMN 2.0标准的BPMS程引擎Activiti 5.0正式版推出,由Tijs Rademakers ?Ron Van Liempd~写的‘实战Activiti’书c昨天在“Manning Early Access Program”现w。目前第一章释出,可以先睹为快。呵呵,真棒Q本是W一章之Q?Q?nbsp; <a href='http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342322.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lewhwa/aggbug/342322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-01-04 23:12 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti in ActionQ实战ActivitiQ?W一?BPMN 2.0: what&rsquo;s in it for developers?Q?Q?/title><link>http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342304.html</link><dc:creator>|\L@BlogJava</dc:creator><author>|\L@BlogJava</author><pubDate>Tue, 04 Jan 2011 12:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342304.html</guid><wfw:comment>http://www.aygfsteel.com/lewhwa/comments/342304.html</wfw:comment><comments>http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lewhwa/comments/commentRss/342304.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lewhwa/services/trackbacks/342304.html</trackback:ping><description><![CDATA[     摘要: 随着W合BPMN 2.0标准的BPMS程引擎Activiti 5.0正式版推出,由Tijs Rademakers ?Ron Van Liempd~写的‘实战Activiti’书c昨天在“Manning Early Access Program”现w。目前第一章释出,可以先睹为快。呵呵,真棒Q本是W一章之Q?Q?nbsp; <a href='http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342304.html'>阅读全文</a><img src ="http://www.aygfsteel.com/lewhwa/aggbug/342304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lewhwa/" target="_blank">|\L@BlogJava</a> 2011-01-04 20:43 <a href="http://www.aygfsteel.com/lewhwa/archive/2011/01/04/342304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">⳵</a>| <a href="http://" target="_blank">ʼ</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ȷɽ</a>| <a href="http://" target="_blank">³ƶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͻ</a>| <a href="http://" target="_blank">崨</a>| <a href="http://" target="_blank">ʲ</a>| <a href="http://" target="_blank">ͨɽ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">ɣ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ij</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ﶫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">뽭</a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>