﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Junky's IT Notebook-随笔分类-Work Flow</title><link>http://www.blogjava.net/junky/category/11523.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 22:09:02 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 22:09:02 GMT</pubDate><ttl>60</ttl><item><title>Work Flow 学习笔记(二)</title><link>http://www.blogjava.net/junky/archive/2006/05/25/48177.html</link><dc:creator>junky</dc:creator><author>junky</author><pubDate>Thu, 25 May 2006 12:25:00 GMT</pubDate><guid>http://www.blogjava.net/junky/archive/2006/05/25/48177.html</guid><wfw:comment>http://www.blogjava.net/junky/comments/48177.html</wfw:comment><comments>http://www.blogjava.net/junky/archive/2006/05/25/48177.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/junky/comments/commentRss/48177.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/junky/services/trackbacks/48177.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: WfExecutionObject																																				WfExecutionObject 																是一个抽象类																		,																它定义了一些的共有的属性和方法																		;						...&nbsp;&nbsp;<a href='http://www.blogjava.net/junky/archive/2006/05/25/48177.html'>阅读全文</a><img src ="http://www.blogjava.net/junky/aggbug/48177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/junky/" target="_blank">junky</a> 2006-05-25 20:25 <a href="http://www.blogjava.net/junky/archive/2006/05/25/48177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Work Flow 学习笔记</title><link>http://www.blogjava.net/junky/archive/2006/05/25/48176.html</link><dc:creator>junky</dc:creator><author>junky</author><pubDate>Thu, 25 May 2006 12:23:00 GMT</pubDate><guid>http://www.blogjava.net/junky/archive/2006/05/25/48176.html</guid><wfw:comment>http://www.blogjava.net/junky/comments/48176.html</wfw:comment><comments>http://www.blogjava.net/junky/archive/2006/05/25/48176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/junky/comments/commentRss/48176.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/junky/services/trackbacks/48176.html</trackback:ping><description><![CDATA[
		<h1>
				<font color="#000000">
						<font size="2">
								<span lang="EN-US">
										<font face="Times New Roman">
												<span>                </span>
												<span>     </span>Work Flow </font>
								</span>
								<span style="FONT-FAMILY: 宋体">学习笔记</span>
						</font>
				</font>
		</h1>
		<h3>
				<font face="Times New Roman">
						<font size="2">
								<span lang="EN-US">
										<span>
												<font color="#000000">1.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></font>
										</span>
								</span>
								<span lang="EN-US">
										<font color="#000000">WfRequester</font>
								</span>
						</font>
				</font>
		</h3>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<b>
										<span lang="EN-US" style="FONT-FAMILY: Arial">WfRequester </span>
								</b>
								<span lang="EN-US">
										<font face="Times New Roman">is the interface that has a direct concern with the execution and results</font>
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">of a workflow process - it represents the request for some work to be done. Its</font>
						</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">performer, a <i>WfProcess, </i>is expected to handle its request and communicate significant</font>
						</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">status changes; in particular to inform the requester when it has completed performing</font>
						</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">the requested work. A single requester can have many processes associated with it.</font>
						</font>
				</span>
		</p>
		<span lang="EN-US">
				<font color="#000000">
						<font face="Times New Roman" size="2">
								<div> </div>
								<div>   <img style="WIDTH: 468px; HEIGHT: 167px" src="http://tk.files.storage.msn.com/x1pmAkndzHuOfey0rxh3ckUxMenVPTLUBYl4QxZtOfLXf1u74cZImT8P1Y_Qaadn7G9F39il6WNn7844aXH0ei7c1ebdBDdKDLfUptsCxzOcHdje5hAK7rjumnZ_SVEkKH3693sMSNMZMU" /></div>
								<div> </div>
								<div> </div>
						</font>
				</font>
		</span>
		<p align="left">
				<span lang="EN-US">
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
				</span>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span style="FONT-FAMILY: 宋体">说明：</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfRequester</font>
								</span>
								<span style="FONT-FAMILY: 宋体">接口是一个和工作流流程的执行及结果有直接关系的接口；它代表了对一些工作执行的请求；它的一个主要功能是把</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">链接到一个其它应用；其中</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfRequester</font>
								</span>
								<span style="FONT-FAMILY: 宋体">会关联到多个</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcee,</font>
								</span>
								<span style="FONT-FAMILY: 宋体">当</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">发生</span>
								<span lang="EN-US">
										<font face="Times New Roman">complete</font>
								</span>
								<span style="FONT-FAMILY: 宋体">、</span>
								<span lang="EN-US">
										<font face="Times New Roman">terminate</font>
								</span>
								<span style="FONT-FAMILY: 宋体">、</span>
								<span lang="EN-US">
										<font face="Times New Roman">abort </font>
								</span>
								<span style="FONT-FAMILY: 宋体">事件时会通过回调</span>
								<span lang="EN-US">
										<font face="Times New Roman">receiveEvent()</font>
								</span>
								<span style="FONT-FAMILY: 宋体">方法来通知</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfRequest</font>
								</span>
								<span style="FONT-FAMILY: 宋体">；在</span>
								<span lang="EN-US">
										<font face="Times New Roman">receiveEvent(event)</font>
								</span>
								<span style="FONT-FAMILY: 宋体">方法中，参数</span>
								<span lang="EN-US">
										<font face="Times New Roman">event</font>
								</span>
								<span style="FONT-FAMILY: 宋体">是一个</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfEventAudit</font>
								</span>
								<span style="FONT-FAMILY: 宋体">对象，其中</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfEventAudit</font>
								</span>
								<span style="FONT-FAMILY: 宋体">中有一个方法</span>
								<span lang="EN-US">
										<font face="Times New Roman">source(),</font>
								</span>
								<span style="FONT-FAMILY: 宋体">通过这个方法我们可以得知是哪个</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfExecutionObject</font>
								</span>
								<span style="FONT-FAMILY: 宋体">对象触发了事件源；得到了</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfExcutionObject</font>
								</span>
								<span style="FONT-FAMILY: 宋体">即</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">我们也进而</span>
						</font>
				</font>
				<font color="#000000">
						<font size="2">
								<span style="FONT-FAMILY: 宋体">得到了和这个</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">相关联的其它应用；</span>
								<span lang="EN-US">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span style="FONT-FAMILY: 宋体">主要步骤</span>
								<span lang="EN-US">
										<font face="Times New Roman">:</font>
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<font size="2">
						<span lang="EN-US">
								<span>
										<font face="Times New Roman">
												<font color="#000000">(1)<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></font>
										</font>
								</span>
						</span>
						<font color="#000000">
								<span style="FONT-FAMILY: 宋体">自定义一个自己的类或接口，如</span>
								<span lang="EN-US">
										<font face="Times New Roman">GenericRequester,</font>
								</span>
								<span style="FONT-FAMILY: 宋体">这个</span>
								<span lang="EN-US">
										<font face="Times New Roman">GenericRequester</font>
								</span>
								<span style="FONT-FAMILY: 宋体">类代表用户自定义的一个请求者；</span>
								<span lang="EN-US">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<font size="2">
						<span lang="EN-US">
								<span>
										<font face="Times New Roman">
												<font color="#000000">(2)<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></font>
										</font>
								</span>
						</span>
						<font color="#000000">
								<span style="FONT-FAMILY: 宋体">在启动</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">是，把这个请求者和</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">进行绑定注册到</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfRequester</font>
								</span>
								<span style="FONT-FAMILY: 宋体">中；</span>
								<span lang="EN-US">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font face="Times New Roman" color="#000000" size="2"> </font>
				</span>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span style="FONT-FAMILY: 宋体">在</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfReuester</font>
								</span>
								<span style="FONT-FAMILY: 宋体">的</span>
								<span lang="EN-US">
										<font face="Times New Roman">registerProcess()</font>
								</span>
								<span style="FONT-FAMILY: 宋体">就是做这个功能，主要代码如下</span>
								<span lang="EN-US">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">protected Map performers = null;</font>
						</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">public void registerProcess(WfProcess process, Map context, GenericRequester requester){</font>
						</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman">
										<font size="2">
												<span>              <font color="#ff0000"></font></span>
												<font color="#ff0000">performers.put(process, requester);</font>
										</font>
								</font>
						</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font face="Times New Roman" color="#000000" size="2"> </font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman" size="2">}</font>
						</font>
				</span>
		</p>
		<p align="left">
				<font size="2">
						<span lang="EN-US">
								<span>
										<font face="Times New Roman">
												<font color="#000000">(3)<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></font>
										</font>
								</span>
						</span>
						<font color="#000000">
								<span style="FONT-FAMILY: 宋体">当工作流程在执行的过程中发生</span>
								<span lang="EN-US">
										<font face="Times New Roman">complete</font>
								</span>
								<span style="FONT-FAMILY: 宋体">、</span>
								<span lang="EN-US">
										<font face="Times New Roman">terminate</font>
								</span>
								<span style="FONT-FAMILY: 宋体">、</span>
								<span lang="EN-US">
										<font face="Times New Roman">abort </font>
								</span>
								<span style="FONT-FAMILY: 宋体">事件时会回调</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfRequest</font>
								</span>
								<span style="FONT-FAMILY: 宋体">中的</span>
								<span lang="EN-US">
										<font face="Times New Roman">receiveEvent()</font>
								</span>
								<span style="FONT-FAMILY: 宋体">方法：</span>
								<span lang="EN-US">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US">
						<font color="#000000">
								<font face="Times New Roman">
										<font size="2">
												<span>    </span>
												<span> </span>
												<font color="#ff0000">requester.receiveEvent(audit);</font>
										</font>
								</font>
						</font>
				</span>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span lang="EN-US" style="FONT-FAMILY: Arial">
										<span>
												<font face="Arial">(4)</font>
												<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">   </span>
										</span>
								</span>
								<span style="FONT-FAMILY: 宋体">在</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">receiveEvent()</span>
								<span style="FONT-FAMILY: 宋体">中首先根据</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">WfEventAudit</span>
								<span style="FONT-FAMILY: 宋体">的</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">source()</span>
								<span style="FONT-FAMILY: 宋体">获取触发事件的</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">WfProcess</span>
								<span style="FONT-FAMILY: 宋体">对象；</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US" style="FONT-FAMILY: Arial">
						<font color="#000000" size="2">receiveEvent(WfEventAudit event){</font>
				</span>
		</p>
		<p align="left">
				<font size="2">
						<span lang="EN-US" style="FONT-FAMILY: Arial">
								<font face="Arial">
										<font color="#000000">
												<span>        </span>//</font>
								</font>
						</span>
						<font color="#000000">
								<span style="FONT-FAMILY: 宋体">获取事件源</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">process</span>
								<span style="FONT-FAMILY: 宋体">对象</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US" style="FONT-FAMILY: Arial">
						<font color="#ff0000" size="2">WfProcess<span><font face="Arial">  </font></span>process = (WfProcess) event.source();</font>
				</span>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span lang="EN-US" style="FONT-FAMILY: Arial">//</span>
								<span style="FONT-FAMILY: 宋体">根据</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">prcocess</span>
								<span style="FONT-FAMILY: 宋体">对象获取在注册时绑定的自定义请求者</span>
								<span lang="EN-US">
										<font face="Times New Roman">GenericRequester</font>
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US" style="FONT-FAMILY: Arial">
						<font color="#000000" size="2">GenericRequester <span><font face="Arial"> </font></span>req = (GenericRequester) performers.get(process);</font>
				</span>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span lang="EN-US" style="FONT-FAMILY: Arial">//</span>
								<span style="FONT-FAMILY: 宋体">执行自定义请求者的方法</span>
								<span lang="EN-US" style="FONT-FAMILY: Arial">
								</span>
						</font>
				</font>
		</p>
		<p align="left">
				<span lang="EN-US" style="FONT-FAMILY: Arial">
						<font color="#ff0000" size="2">req.receiveResult(process.result());</font>
				</span>
		</p>
		<p align="left">
				<span lang="EN-US" style="FONT-FAMILY: Arial">
						<font color="#000000" size="2">}</font>
				</span>
		</p>
		<p align="left">
				<font color="#000000">
						<font size="2">
								<span style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体">其它：在这里</span>
								<span lang="EN-US">
										<font face="Times New Roman">GenericRequester</font>
								</span>
								<span style="FONT-FAMILY: 宋体">也可是一个</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">或</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfActivity</font>
								</span>
								<span style="FONT-FAMILY: 宋体">对象，这样可以在</span>
								<span lang="EN-US">
										<font face="Times New Roman">WfProcess</font>
								</span>
								<span style="FONT-FAMILY: 宋体">完成操作后又启动另一个子流程或某个活动；</span>
								<span lang="EN-US" style="FONT-SIZE: 14pt; FONT-FAMILY: Arial">
										<font face="Arial">
												<span>   </span>
										</font>
								</span>
						</font>
				</font>
		</p>
<img src ="http://www.blogjava.net/junky/aggbug/48176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/junky/" target="_blank">junky</a> 2006-05-25 20:23 <a href="http://www.blogjava.net/junky/archive/2006/05/25/48176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>