锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1錛屼竴涓猻tate machine workflow(Fund Request Process work flow)
2錛?浣跨敤Polic鏉ユ帶鍒朵笟鍔¢昏緫
3錛屽疄鐜頒簡xoml鍜宒ll鐨勫垎紱伙紝鍔ㄦ佸姞杞絰oml錛屾彁渚涗竴涓紪杈戝伐鍏鳳紝鍙互edit the workflow on-the-fly
1, 騫舵病鏈変紶璇翠腑鐨勯偅涔堥毦
ASP.net鍜學F鎴戦兘涓嶇啛錛?鏍規嵁涓ゆ湰涔︼紝涓涓猰sdn涓婄殑渚嬪瓙"Web Form Workflow Approvals Stater kit"鍜屽彟涓涓緥瀛怬rders http://www.odetocode.com/Articles/465.aspx鐨勫熀紜涓婃妸prototype鎼炲嚭鏉ヤ簡銆?br>
2錛岀悊瑙f蹇靛緢閲嶈
濡傛灉涓嶇悊瑙F鏄庝箞璋冪敤澶栭儴鍑芥暟錛圕allExternalMethodActivity錛夛紝 鏄庝箞浼燛vent緇橶F錛圚andleExternalEventActivity錛夛紝DependencyProperty鏄庝箞鍥炰簨錛?鍩烘湰涓嶇敤鍐嶆悶浜嗐?br>
3錛屽緢澶氳璁″彲鍋?br>WF鍙疄鐜頒簡workflow鏈鍐呮牳鐨勯儴鍒嗭紝闈炲父鐏墊椿銆?鍚屾牱鐨勫疄鐜板彲浠ラ噰鐢ㄥ畬鍏ㄤ笉鍚岀殑瀹炵幇鏂瑰紡銆?鎬庝箞瀹炵幇workflow definition錛?鎬庝箞璁捐Activities錛?闇瑕佷負Activities娣誨姞閭d簺DependencyProperty錛?榪欎簺DependencyProperty鏄庝箞浜掔浉鍏寵仈鐨勶紝 鎬庝箞鍙湪xoml閲岄潰淇濆瓨workflow definition錛?鎬庝箞瀹炵幇Workflow鍜屼笟鍔℃暟鎹殑浜や簰錛?鎬庝箞瀹炵幇Workflow鍜岀粍緇囩粨鏋勬垨鑰卹ole鐨勫叧鑱旓紝 閮藉彲浠ユ湁瀹屽叏涓嶅悓鐨勮璁°?br>
4錛岃繕鏈夊緢澶氭蹇點傘?br>鍥犱負鏄痯rototype錛?寰堝涓滆タ娌¤冭檻錛?姣斿浜嬪姟transation鎴栬匔ompensate錛?寮傚父澶勭悊絳夈?br>
]]>
铏界劧涓嶅仛宸ヤ綔嫻佺浉鍏崇殑宸ヤ綔浜嗭紝榪樻槸姣旇緝鍏蟲敞銆?br />
]]>
WfMC=Workflow Management Coalition.濂借薄鏈変漢緲昏瘧鎴愬伐浣滄祦綆$悊濮斿憳浼?鏈夌殑縐頒箣涓哄浗闄呭伐浣滄祦綆$悊濮斿憳浼?淇轟笉澶т簡瑙?浣嗗ソ璞″姞鍏ヨCoalition濂借薄鏄騫磋垂鐨?鎵浠ヤ笌鍏惰鏄?濮斿憳浼?,涓嶅縐頒箣涓?鑱斿悎浼?銆?br />鏄惁絎﹀悎WfMC鏍囧噯闇瑕乄fMC紜,騫朵笉鏄皝閮借兘澹扮О鑷繁絎﹀悎WfMC鐨勬爣鍑嗙殑.
浠涔堟槸宸ヤ綔嫻?
宸ヤ綔嫻佺鐞嗗鍛樹細(WfMC)鎶婂伐浣滄祦瀹氫箟涓猴細宸ヤ綔嫻佹槸涓綾昏兘澶熷畬鍏ㄦ垨閮ㄥ垎鑷姩鎵ц鐨勪笟鍔¤繃紼嬨傛牴鎹竴緋誨垪瑙勫垯錛屾枃妗c佷俊鎭佷換鍔¤兘澶熷湪涓嶅悓鐨勬墽琛岃呬箣闂翠紶閫掋佹墽琛屻傚畬鎴愭涓繃紼嬫墍闇瑕佺殑鍙傛暟鏈夛細
榪囩▼涓瘡涓鍗曠嫭姝ラ鐨勫畾涔夛紝姣忎竴姝ラ鐢辮皝璐熻矗錛屾瘡涓椿鍔ㄩ渶瑕佺殑搴旂敤紼嬪簭銆傚畾涔変竴涓伐浣滄祦灝辨槸璇存槑浜嗗鐞嗚繃紼嬫槸浠涔堬細鐢卞摢浜涙椿鍔ㄣ佷換鍔$粍鎴愬嵆嫻佺殑緇撴瀯銆傚浣曞仛錛氭椿鍔ㄩ棿鐨勬墽琛屾潯浠躲佽鍒欙紝鎵浜や簰鐨勪俊鎭嵆鎺у埗嫻佷笌淇℃伅嫻佺殑瀹氫箟錛岃皝鏉ュ仛錛氫漢榪樻槸搴旂敤紼嬪簭鍗寵鑹插畾涔夛紝鍋氬緱鎬庝箞鏍鳳細瀵瑰伐浣滄祦鐨勬墽琛岀姸鎬佸疄鏂界洃鎺с?宸ヤ綔嫻佺鐞嗕笌浜嬪姟鏈嶅姟璁捐鏂規)
WfMC鎻愬嚭浜嗕竴縐嶅伐浣滄祦鐨勫弬鑰冩ā鍨?Workflow Reference Model)錛氱洰鐨勫氨鏄妸宸ヤ綔嫻佸垎鎴?涓ā鍧?騫跺畾涔夎繖5涓ā鍧椾箣闂寸殑鎺ュ彛鐨勮鑼?榪欎箞鍋氱殑鎰忎箟鏄暐鍛?搴旇涓嶅綊鎴戣彍楦熸潵瑙i噴浜?
妯″瀷鍖呭惈5涓ā鍧楋細
1.榪囩▼瀹氫箟(Process Definition)
2.鐗瑰畾鐨勫伐浣滄祦緋葷粺(Workflow Enactment Service),鍏朵腑鍖呭惈涓涓垨澶氫釜宸ヤ綔嫻佸紩鎿?Workflow Engine(s)),鎻愪緵宸ヤ綔嫻丄PI鍜屼氦鎹?Workflow API and Interchange)
3.宸ヤ綔嫻佸鎴風紼嬪簭(Workflow Client Application)
4.嬋鍙戠殑紼嬪簭(Invoked Applications)
5.鍏跺畠宸ヤ綔嫻佺郴緇?Other Workflow Enactment Service)
6.綆$悊鍜岀洃鎺у伐鍏?Aministration & Monitoring Tools)
鍏朵腑鍖呭惈5涓帴鍙?Interface)
1.宸ョ▼瀹氫箟宸ュ叿鎺ュ彛(Process Definition Tools Interface)
宸ヤ綔嫻佺郴緇?Workflow Enactment Service)<=>榪囩▼瀹氫箟(Process Definition)
2.瀹㈡埛绔▼搴忔帴鍙?Workflow Client Application Interface)
宸ヤ綔嫻佺郴緇?Workflow Enactment Service)<=>宸ヤ綔嫻佸鎴風紼嬪簭(Workflow Client Application)
3.嬋鍙戠▼搴忔帴鍙?Invoked Application Interface)
宸ヤ綔嫻佺郴緇?Workflow Enactment Service)<=>嬋鍙戠殑紼嬪簭(Invoked Applications)
4.宸ヤ綔嫻佺郴緇熼棿鍗忓悓鎺ュ彛(Workflow Interoperability Interface)
宸ヤ綔嫻佺郴緇?Workflow Enactment Service)<=>鍏跺畠宸ヤ綔嫻佺郴緇?Other Workflow Enactment Service)
5.綆$悊鍜岀洃鎺ф帴鍙?Administration & Monitoring Tools Interface)
宸ヤ綔嫻佺郴緇?Workflow Enactment Service)<=>綆$悊鍜岀洃鎺у伐鍏?Aministration & Monitoring Tools)
XPDL錛?br />5.嫻佺▼瀹氫箟浜ゆ崲姒傝堪(Overview of Process Definition Interchange)
嫻佺▼瀹氫箟鐨勪綔鐢細
1銆備駭鐢熷拰鎺у埗嫻佺▼瀹炰緥鐨勬ā鐗?br />2銆備豢鐪熷拰棰勬祴
3銆傜洃鎺у拰鍒嗘瀽
4銆傛枃妗o紝鍙鍖栧拰鐭ヨ瘑搴撶鐞??)
鍙兘浼氬寘鍚瓙嫻佺▼鐨勫畾涔?br />涓涓垵濮嬬殑嫻佺▼瀹氫箟鏈灝戣鍖呭惈鍒濆鍖栧拰鎵ц鎵闇瑕佺殑瀵硅薄(objects)鍜屽睘鎬?attributes)銆傛祦紼嬪疄渚嬪皢緇ф壙(inherit)榪欎簺瀵硅薄鍜屽睘鎬с?br />WfMC鏈琛ㄤ腑鍖呭惈媧誨姩(activities), 嫻佸悜(transitions), 宸ヤ綔嫻佺浉鍏蟲暟鎹?workflow relevant data)鍜屽弬涓庤?participants)絳夈?br />聽
5.1嫻佺▼瀹氫箟浜ゆ崲鐨勬柟娉?Approaches to Process Definition Interchange)
榪欓噷浣跨敤XML浣滀負浜ゆ崲鐨勬満鍒躲俋PDL鎻愪緵涓縐嶄氦鎹㈡爣鍑嗭紝浣跨敤瀵煎叆瀵煎嚭(import/export)鐨勬柟娉曚嬌寰椾換鎰忓湪鍐呴儴鐢ㄤ笉鍚屾柟寮忚〃紺烘祦紼嬬殑緋葷粺寰椾互浜掔浉浜ゆ崲嫻佺▼(?)銆?br />鏈夊緢澶氫笉鍚岀殑鏂規硶鍙互鐢ㄦ潵鍦ㄤ笉鍚岀郴緇熼棿浜ゆ崲嫻佺▼銆傚湪榪欎簺鏂規硶涓兘蹇呴』鎶婃祦紼嬭〃紺烘垚涓鑷寸殑鏍煎紡銆?/p>
6.鍏冩ā鍨?Meta-Model)
鍏冩ā鍨嬬敤浠ユ弿榪頒竴涓祦紼嬪畾涔夌殑鏈涓婂眰瀹炰綋(the top-level entities)錛屽疄浣撶殑鍏崇郴鍜屽睘鎬?榪欎簺灞炴ф湁鐨勫彧鏄敤浠ヤ豢鐪熸垨鐩戞帶鐨勭洰鐨勶紝鑰屼笉鏄負浜嗚繍琛?enactment))錛涘畠鍖呭惈浜嗘妸澶氫釜嫻佺▼緇勭粐鎴愭祦紼嬫ā鍨?process models)鍜屽涓祦紼嬪拰嫻佺▼妯″瀷闂寸殑鍏叡瀹氫箟鏁版嵁(common definition data)銆?br />聽
6.1瀹炰綋(Entities)
6.1.1宸ヤ綔嫻佸畾涔?Workflow Process Definition)
鎻愪緵涓婁笅鏂囩幆澧?contextual information)錛屾彁渚涚鐞嗕俊鎭紙濡傚垱寤烘棩鏈燂紝浣滆呯瓑錛夋垨鑰呯敤浜庢墽琛?process execution)鐨勪俊鎭紙濡傚垵濮嬪鹼紝鎵ц浼樺厛綰э紝鏈熼檺錛岄渶瑕侀氱煡鐨勪漢錛屼豢鐪熶俊鎭?simulation information)絳夛級
6.1.2鐜妭錛圵orkflow Process Activity錛?br />涓涓祦紼嬪畾涔変腑鍖呭惈澶氫釜鐜妭錛岀幆鑺傛槸嫻佺▼涓昏緫涓婄嫭绔嬬殑鍗曞厓銆傜幆鑺備唬琛ㄤ嬌鐢ㄥ縐嶈祫婧愬鐞嗙殑宸ヤ綔錛堝弬涓庤呯殑浠誨姟錛夋垨/鍜屽簲鐢ㄧ▼搴忥紙搴旂敤杞歡鐨勮亴鑳斤級銆傚叾瀹冧俊鎭寘鍚槸鍚﹁嚜鍔ㄥ紑濮?緇撴潫錛屽綋鍜屽叾瀹冪幆鑺傚彂鐢熻祫婧愬啿紿佺殑鏃跺欑殑浼樺厛綰с傚嫻佺▼鐩稿叧鏁版嵁(workflow relevant data items)鐨勪嬌鐢ㄤ篃蹇呴』鎸囨槑銆備竴涓幆鑺傜殑鑼冨洿鏄煇涓壒瀹氱殑嫻佺▼銆?br />涓涓幆鑺傚彲鑳芥槸涓涓瓙嫻佺▼(subflow)銆傝繖縐嶆儏鍐典笅瀹冨寘鍚簡涓涓壒瀹氭祦紼嬬殑鎵ц錛岃繖涓祦紼嬪彲鑳藉湪鍚屼竴涓伐浣滄祦鏈嶅姟鍣紙workflow service錛変腑榪愯錛屼篃鍙兘鍦ㄥ叾瀹冨伐浣滄祦鏈嶅姟鍣ㄤ笂榪愯錛堥氳繃嫻佺▼鍗忓悓鎺ュ彛(process interoperability interface)錛夈傚瓙嫻佺▼鍖呭惈瀹冭嚜宸辯殑鐜妭錛屽唴閮ㄦ祦鍚戯紝璧勬簮鍜屽簲鐢ㄧ▼搴忓垎閰?application assignments)錛屽敖綆¤繖浜涘彲鑳芥槸浠庡悓涓涓叕鍏辮祫婧愯屾潵銆傝緭鍏ュ弬鏁板拰杈撳嚭鍙傛暟浣垮緱嫻佺▼鐩稿叧淇℃伅寰椾互琚湪璋冪敤鍜岃璋冪敤嫻佺▼闂翠氦鎹紙濡傛灉蹇呰鍙互鏄繑鍥炲弬鏁幫級銆?br />涓涓幆鑺傚彲鑳芥槸涓涓潡鐜妭(block activity)銆傚潡鐜妭鍖呭惈涓涓幆鑺傜粍(activity set,)錛屾垨涓鍫嗙幆鑺傚拰嫻佸悜錛屼竴涓幆鑺傜粍涓殑鐜妭鍜屾祦鍚戝叡鐢ㄥ唴嫻佺▼(containing process)鐨勫悕瀛楃┖闂淬?br />鏈鍚庯紝涓涓┖鐜妭錛坉ummy activity錛変笉鎵ц浠諱綍鎿嶄綔錛堝洜姝ゆ病鏈夌浉鍏寵祫婧愬拰鐩稿叧applications錛夛紝浠呯敤鏉ュ湪鍏ユ祦鍚?incoming transitions)鍜?鎴栧嚭嫻佸悜(outgoing transitions)闂磋繘琛屾祦杞?routing).
6.1.3嫻佸悜淇℃伅.(Transition Information)
鐜妭涔嬮棿鐢辨祦紼嬫帶鍒舵潯浠剁浉鍏寵仈(嫻佽漿鏉′歡(transition information).)).姣忎釜嫻佸悜鍖呭惈涓変釜鍩烘湰灞炴?婧愮幆鑺?鐩殑鐜妭鍜屾祦鍚戞潯浠?浠庝竴涓幆鑺傚埌鍙︿竴涓幆鑺傜殑嫻佸悜鍙兘鏄湁鏉′歡鐨?涔熷彲鑳芥槸涓嶉渶瑕佹潯浠剁殑.涓涓祦紼嬮噷闈㈢殑澶氫釜嫻佸悜鍙兘浜х敓涓茶鐨?sequential)鎴栧茍琛岀殑(parallel)鐜妭.鍒嗗弶(split)鎴栬呭悎騫?join)鐨勭浉鍏充俊鎭湪瀵瑰簲鐨勭幆鑺備箣涓?split as a form of 鈥減ost activity鈥?processing in the from-activity, join as a form of 鈥減re-activity鈥?processing in the to- activity.This approach allows the workflow control processing associated with process instance thread splitting and synchronization to be managed as part of the associated activity, and retains transitions as simple route assignment functions.{寮濮嬫槒浜唥涓涓祦鍚戝睘浜庡寘鍚畠鍜屽畠鐨勭浉鍏崇幆鑺傜殑嫻佺▼.
鍏跺畠鏇村鏉傜殑嫻佸悜,涓嶈兘鐢ㄧ畝鍗曠殑鍑芥暟鏉ヨ〃杈劇殑,浣跨敤絀虹幆鑺傛潵瀹炵幇.緇撳悎浣跨敤鍩烘湰鐨勬祦鍚戝拰絀虹幆鑺?浠諱綍澶嶆潅鐨勬祦杞粨鏋勯兘鍙互琚疄鐜?鍥犱負涓氬唴宸茬粡鏈夊ソ鍑犵嫻佸悜鎺у埗鐨勯斿緞,鍦╔PDL涓篃鏈夌浉搴旂殑鍑犵被,鍦ㄦ湰鏂囩◢鍚庢弿榪?
6.1.4嫻佺▼鍙備笌鑰呭0鏄?Workflow Participant Declaration)
嫻佺▼鍙備笌鑰呭0鏄庢弿榪板湪嫻佺▼瀹氫箟涓悇涓幆鑺傜殑鍙備笌鑰?performer).The particular resources, which can be assigned to perform a specific activity, are specified as an attribute of the
activity, participant assignment, which links the activity to the set of resources (within the workflow participant
declaration) which may be allocated to it.{鐜妭鍙備笌鑰呮槸鐜妭鐨勪竴涓睘鎬?..鏄忎簡}.嫻佺▼鍙備笌鑰呬笉涓瀹氭槸鍗曠嫭鐨勪釜浜?涔熷彲浠ユ槸涓緇勬湁鐩稿簲璧勬牸鎴栬矗浠葷殑浜?鎴栬呮満鍣ㄧ殑鑷姩鎿嶄綔.鍏冩ā鍨嬪寘鍚簡涓浜涚畝鍗曠殑璧勬簮綾誨瀷,榪欎簺綾誨瀷鍙兘鍦ㄦ祦紼嬪弬涓庤呭0鏄庝腑琚畾涔?
6.1.5璧勬簮搴?Resource Repository)(?)
璧勬簮搴撹鏄庡弬涓庤呭彲鑳芥槸浜哄憳,紼嬪簭,鎴栬呮満鍣?鍦ㄦ洿澶嶆潅鐨勬儏鍐典笅,鍙備笌鑰呭0鏄庡彲鑳芥槸涓涓祫婧愬簱,瀹冨彲鑳芥槸鍙備笌浜哄憳鐨勪竴涓粍緇囨満鏋勬ā鍨?Organizational Model).榪欎喚鏂囨。騫舵病鏈夊畾涔夋垨瑕佹眰涓涓祫婧愬簱.
6.1.6宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄?Workflow Application Declaration)
宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄庢弿榪頒簡琚伐浣滄祦鏈嶅姟鍣ㄨ皟鐢ㄧ殑,鐢ㄤ互鏀寔鍚勪釜鐜妭鐨勫鐞嗙殑IT搴旂敤紼嬪簭鎴栨帴鍙?榪欎簺紼嬪簭鍜屾帴鍙h瀹氫箟涓虹幆鑺傜殑涓涓睘鎬?榪欎簺搴旂敤紼嬪簭鍙兘鏄涓氬伐鍏?鐗瑰畾閮ㄩ棬鎴栦紒涓氱殑鏈嶅姟,鎴栧湪宸ヤ綔嫻佺鐞嗙郴緇熸鏋朵笅鐨勬湰鍦板簲鐢ㄧ▼搴?宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄庡弽鏄犱簡宸ヤ綔嫻佸紩鎿庡拰{搴旂敤紼嬪簭鎴栨帴鍙鐨勬帴鍙?鍖呭惈闇瑕佷紶閫掔殑鍙傛暟.
6.1.7宸ヤ綔嫻佺浉鍏蟲暟鎹?Workflow Relevant Data)
宸ヤ綔嫻佺浉鍏蟲暟鎹畾涔変簡鍦ㄦ祦紼嬫墽琛岃繃紼嬩腑鍒涘緩鍜屼嬌鐢ㄧ殑鏁版嵁.榪欎簺鏁版嵁鍦ㄥ伐浣滄祦涓鐜妭鎴栬呭簲鐢ㄧ▼搴忎嬌鐢?騫跺彲鑳借鐢ㄤ簬浼犻掓寔涔呯殑淇℃伅鎴栬呯幆鑺傞棿鐨勪腑闂寸粨鏋滄垨/鍜岀敤浜庡垽鏂祦鍚戞祦杞垨鑰呭垎閰嶅弬涓庤呯殑鐨勪腑闂存暟鎹?宸ヤ綔嫻佺浉鍏蟲暟鎹槸鐗規畩鐨勭被鍨?Workflow relevant data is of particular type.),XPDL瀹氫箟浜嗗悇縐嶅熀鏈殑鍜屽鏉傜殑鏁版嵁綾誨瀷,(鍖呭惈鏃ユ湡Date,瀛楃涓瞫tring,絳?.鐜妭,琚皟鐢ㄧ殑搴旂敤紼嬪簭(invoked applications)鍜?鎴栨祦鍚戞潯浠朵細鐢ㄥ埌宸ヤ綔嫻佺浉鍏蟲暟鎹?
6.1.8緋葷粺鍜岀幆澧冩暟鎹?System and Environmental Data)
緋葷粺鍜岀幆澧冩暟鎹敱嫻佺▼綆$悊緋葷粺鍜屾湰鍦扮郴緇熺幆澧冪鐞?浣嗕細琚伐浣滄祦鐜妭鎴栧伐浣滄祦綆$悊緋葷粺鐢ㄤ簬璁$畻鏉′歡琛ㄨ揪寮?濡傚悓宸ヤ綔嫻佺浉鍏蟲暟鎹竴鏍?
6.1.9鏁版嵁綾誨瀷鍜岃〃杈懼紡(Data Types and Expressions)
鍏冩ā鍨?鍜岀浉鍏崇殑XPDL)鍋囪鏈変竴浜涙爣鍑嗘暟鎹被鍨?string,reference,integer,float,date/time絳?,榪欎簺鏁版嵁綾誨瀷琚敤浜庡伐浣滄祦鐩稿叧鏁版嵁,緋葷粺鍜岀幆澧冩暟鎹垨鍙備笌鑰呮暟鎹?participant data).鐢ㄤ簬鏉′歡鍒ゆ柇鐨勮〃杈懼紡灝嗙敱榪欎簺鏁版嵁綾誨瀷緇勬垚.鏁版嵁綾誨瀷鍙互鐢╔ML schema鎴栬呭紩鐢ㄥ閮ㄨ祫婧愪腑瀹氫箟鐨勭被鍨嬫潵鎵╁睍.
聽
聽6.2嫻佺▼鍜屾祦紼嬪寘(Processes and Packages)
浠庝互涓婂唴瀹瑰彲鐭?嫻佺▼妯″瀷鍖呭惈鐨勫緢澶氬疄浣?entities)鐨勮寖鍥磋秴鍑轟簡鍗曚釜嫻佺▼瀹氫箟鐨勮寖鍥?鍙兘澶氫釜嫻佺▼瀹氫箟浼氬紩鐢ㄥ埌鐩稿悓鐨勬祦紼嬪弬涓庤?宸ヤ綔嫻佸簲鐢ㄧ▼搴忓拰宸ヤ綔嫻佺浉鍏蟲暟鎹?鍏冩ā鍨嬮噰鍙栦簡浣跨敤鍏叡嫻佺▼瀹氫箟搴?common process definition repository)鏉ュ寘鍚繖浜涘疄浣撳拰宸ヤ綔嫻佸畾涔?鍦ㄨ繖涓簱鏈韓鐨勮寖鍥村唴,涓轟簡鎻愰珮浼犻佹祦紼嬪畾涔夋暟鎹殑鏁堢巼,寮曞叆浜嗘祦紼嬪寘鐨勬蹇?嫻佺▼鍖呭寘鍚簡涓緇勫伐浣滄暟鎹疄浣?common data entities)鍜岃澶氫笉鍚岀殑嫻佺▼瀹氫箟,閬垮厤浜嗗湪涓嶅悓鐨勬祦紼嬪畾涔変腑閲嶅瀹氫箟榪欎簺宸ヤ綔鏁版嵁瀹炰綋.
嫻佺▼鍖呭寘鍚簡嫻佺▼瀹氫箟瀹炰綋鐨勮澶氬叕鍏卞睘鎬у(浣滆?鐗堟湰,鐘舵佺瓑),鍖呭唴鐨勬瘡涓祦紼嬪畾涔夎嚜鍔ㄧ戶鎵夸簡鎵鏈夎繖浜涘叕鍏卞睘鎬?闄ら潪瀹冧滑鍦ㄦ祦紼嬪畾涔変腑鍒嗗埆琚噸鏂版寚瀹?
聽
鍦ㄥ寘涓殑涓浜涘疄浣撶殑瀹氫箟鏄叏灞鐨?鑳藉琚寘涓殑鎵鏈夋祦紼嬪畾涔?浠ュ強鐩稿叧鐨勭幆鑺傚拰嫻佸悜)寮曠敤,榪欎簺瀹炰綋鏄?
-嫻佺▼鍙備笌鑰呭0鏄?br />-宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄?br />-宸ヤ綔嫻佺浉鍏蟲暟鎹?br />鍙互鍦ㄦ祦紼嬪寘鎴栬呮祦紼嬪寘鍖呭惈鐨勫璞′腑浣跨敤琚紩鐢ㄧ殑澶栭儴嫻佺▼鍖呯殑鏈涓婂眰瀹炰綋(The package reference allows the use within the package or its contained objects of references to top-level entities in the referenced external package:).{鍝?娌℃槒},榪欎簺鏈涓婂眰瀹炰綋鍖呮嫭:
-瀛愭祦紼嬬殑嫻佺▼ID
-嫻佺▼鍙備笌鑰呭0鏄?br />-宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄?br />聽
鍚屼竴涓簱鍦板潃絀洪棿(repository address space)涓殑涓嶅悓嫻佺▼鍖呯殑鍚嶇О鍜屾爣璇嗙殑綆$悊瑙勫畾鐢辨彁渚涘晢鑷繁瀹氫箟.{鐩稿悓搴?浣嗕笉鍚屽寘鐨勫悕瀛楃┖闂寸殑鍒掑垎鏂規硶鐢卞伐浣滄祦鐨勫紑鍙戣呰嚜宸辮璁?濂藉儚鏄繖鎰忔潁.鎺ㄨ崘鐨勬煡鎵炬柟娉曟槸:
-嫻佺▼id:鍏堝湪鍚屼竴涓猰odel涓鎵?鍖呭惈浠諱綍鍦ㄤ笉鍚屾湇鍔″櫒涓婅繍琛岀殑嫻佺▼瀹氫箟鐨勫紩鐢?,鐒跺悗鍦ㄤ換浣曡寮曠敤鐨勫閮╩odel涓煡鎵?br />-嫻佺▼鍙備笌鑰呭0鏄?宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄?:鍏堝湪鍚屼竴涓猰odel涓煡鎵?鍐嶅湪浠諱綍琚紩鐢ㄧ殑澶栭儴model涓煡鎵?
{榪欓噷model鎸囩殑鑼冨洿鍙兘鏄祦紼嬪寘,鏈夌偣鍍廽ava import涓涓悕瀛楃┖闂磋繘鏉?鎬庝箞鎵句竴涓被鍨嬩竴鏍穧
聽
宸ヤ綔嫻佺浉鍏蟲暟鎹殑鍛藉悕鍦ㄥ悓涓涓祦紼嬪寘涓繀欏繪槸鍞竴鐨?鍦ㄥ悓涓涓寘涓?{鍦ㄨ繖浠芥枃妗g殑褰撳墠鐗堟湰},嫻佺▼闂村弬鏁扮殑浼犻掓儻渚嬫槸鍊間紶閫?copy semantics).嫻佺▼璁捐鑰?綆$悊鍛?蹇呴』鍦ㄦ祦紼嬪畾涔?嫻佺▼妯″瀷涓‘淇濆悕縐板拰鏁版嵁綾誨瀷鍦ㄨ皟鐢ㄥ瓙嫻佺▼鏃剁殑涓鑷?鍜屼換浣曞叾瀹冭繙紼嬫祦紼嬪崗璋冨伐浣滄椂鐨勪竴鑷?.
聽6.3嫻佺▼鍏冩ā鍨?Process Meta-Model)
嫻佺▼鍏冩ā鍨嬪畾涔変簡鐢ㄤ簬嫻佺▼瀹氫箟浜ゆ崲鐨勪竴緇勫熀紜鐨勫疄浣?entities)鍜屽睘鎬?attributes)銆傚浜庢瘡涓祦紼嬪畾涔夛紝浠ヤ笅瀹炰綋蹇呴』鍦ㄦ祦紼嬭寖鍥村唴瀹氫箟鎴栦粠嫻佺▼鍖呬腑緇ф壙錛屾垨浠庡叾瀹冨寘涓紩鐢細
-鐜妭(Workflow Process Activity)
-嫻佸悜(Transition Information)
-嫻佺▼鍙備笌鑰?Workflow Participant Specification)
-宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄?Workflow Application Declaration)
-嫻佺▼鐩稿叧鏁版嵁(Workflow Relevant Data)
榪欎簺瀹炰綋鐨勫睘鎬ф弿榪頒簡嫻佺▼鐨勬満鍒訛紝瀹冧滑灝嗗湪鏈枃鍚庨潰琚弿榪般?/p>
6.4嫻佺▼鍖呭厓妯″瀷(Package Meta-Model)
鍦ㄤ竴涓ā鍨嬪畾涔?model definition.)涓紝澶氫釜嫻佺▼瀹氫箟鏄簰鐩稿叧鑱旂殑銆傛祦紼嬪寘鍖呭惈浜嗘祦紼嬪畾涔夊拰鐩稿叧鐨勫疄浣擄紝鑰岃繖浜涘疄浣撹兘琚墍鏈夊寘鍐呯殑嫻佺▼浣跨敤(鎵鏈夎繖浜涘疄浣撳彧瑕佽瀹氫箟涓嬈?銆傛祦紼嬪寘鍏冩ā鍨嬪寘鍚簡浠ヤ笅鐨勫疄浣擄細
-嫻佺▼瀹氫箟(Workflow Process Definition)
-嫻佺▼鍙備笌鑰?Workflow Participant Specification)
-宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄?Workflow Application Declaration)
-嫻佺▼鐩稿叧鏁版嵁(Workflow Relevant Data)
>
嫻佺▼鍖呯殑鍘熸ā鍨嬫寚鍑轟簡鐢ㄤ簬嫻佺▼妯″瀷鐨勪氦鎹㈠拰淇濆瓨鐨勫疄浣撳拰灞炴с傚畠瀹氫箟浜嗗悇縐嶄笉鍚岀殑緇ф壙瑙勫垯錛屾潵鍏寵仈鍗曠嫭鐨勬祦紼嬪畾涔夊拰{嫻佺▼鍙備笌鑰咃紝宸ヤ綔嫻佸簲鐢ㄧ▼搴忓0鏄庡拰宸ヤ綔嫻佺浉鍏蟲暟鎹殑瀹氫箟}錛岃繖浜涘畾涔?嫻佺▼鍙備笌鑰?..鐨勫畾涔?鍙兘鍦ㄥ崟涓祦紼嬪畾涔変腑錛屼篃鍙兘鍦ㄦ祦紼嬪寘涓?br />嫻佺▼鍖呭畾涔夊厑璁告寚瀹氫竴浜涘叕鍏辯殑嫻佺▼瀹氫箟灞炴э紝榪欎簺灞炴ц嚜鍔ㄨ搴旂敤浜庢祦紼嬪寘涓殑姣忎釜嫻佺▼瀹氫箟銆傝繖浜涘睘鎬т篃鍙浣嗕釜嫻佺▼鎵蹇界暐.(濡傛灉榪欎簺灞炴у湪嫻佺▼瀹氫箟灞傝閲嶆柊瀹氫箟錛岄偅鏈湴鐨勫睘鎬у煎皢瑕嗙洊鍏ㄥ眬鐨?
聽
6.4.1嫻佺▼搴?Process Repository)
嫻佺▼瀹氫箟瀵煎叆/瀵煎嚭鎺ュ彛琚敤浜庢搷浣滃伐浣滄祦綆$悊緋葷粺鐨勬祦紼嬪簱銆傚疄鐜扮殑鏂規硶鏄粠榪欎簺嫻佺▼搴撲腑瀵煎叆瀵煎嚭鍖呭惈XPDL鐨勬枃浠躲傝繖涓帴鍙e湪鍗曠嫭鐨勬祦紼嬪拰嫻佺▼鍖呬袱涓瓑綰т笂瀵煎叆瀵煎嚭嫻佺▼瀹氫箟鏁版嵁銆?br />嫻佺▼搴撳拰嫻佺▼鎺у埗鍔熻兘涔嬮棿鐨勬帴鍙g敱鍚勪釜渚涘簲鍟?宸ヤ綔嫻佸疄鐜拌?鑷鍐沖畾錛屼笌鏈爣鍑嗘棤鍏熾備絾鎺ㄨ崘鎶婇潤鎬佺殑嫻佺▼搴?for persistent, ongoing storage of process definition data)鍜屽姩鎬佺殑嫻佺▼搴?for managing changes to the process execution of extant process instances)鍖哄垎寮鏉?姣斿鐢ㄧ増鏈帶鍒?銆?br />WfMC鏍囧噯涓嶅寘鍚祦紼嬪畾涔夊簱鐨勫叿浣撳唴閮ㄥ疄鐜扮粨鏋勩傛祦紼嬪寘鐨勪嬌鐢ㄥ彧鏄負浜嗗湪瀵煎叆瀵煎嚭榪囩▼涓噸鐢ㄦ暟鎹傚湪綆鍗曠殑嫻佺▼搴撶粨鏋勪笅(Where a simple process repository structure is used)銆傚嫻佺▼瀹氫箟灞備笂鐨勬搷浣滐紝琚鍏ョ殑嫻佺▼搴撶殑鍏變韓淇℃伅浼氳澶嶅埗鍒板悇涓崟鐙殑嫻佺▼瀹氫箟涓?騫跺湪瀵煎嚭榪囩▼涓綾諱技鍦伴噸鏂版墦鍖?銆?br />聽
6.4.1.1閲嶆柊瀹氫箟鍜岃寖鍥?Redefinition and Scope)
鍥犱負鏈夐噸鏂板畾涔夊睘鎬у拰鍏冩ā鍨嬪疄浣撳拰瀵瑰閮ㄦ祦紼嬪寘鐨勫紩鐢ㄧ殑鍙兘錛屾墍浠ヨ寖鍥村拰灞傛鐨勮鍒?principles of scope and hierarchy)琚紩鍏ュ埌浜哫PDL(鍜屾祦紼嬪簱)緇撴瀯涓?br />(i)嫻佺▼鐩稿叧鏁版嵁
嫻佺▼鐩稿叧鏁版嵁鐨勮寖鍥磋鐩存帴鐩稿叧鐨勫厓妯″瀷瀹炰綋瀹氫箟騫朵笖涓嶈兘琚祵濂椼傚畠鐨勬爣璇嗙鐨勫彲瑙佹у悓鏍風敱璇ュ疄浣撳畾涔夈倇涓嶇煡閬撴湁娌℃悶閿?.璐硅В}
(ii)灞炴?br />灞炴у拰澶栭儴灞炴х殑鑼冨洿琚洿鎺ョ浉鍏崇殑鍏冩ā鍨嬪疄浣撳畾涔夊茍涓斿彲浠ヨ宓屽錛屼緥濡傚彲浠ュ湪涓嬩竴灞傝閲嶆柊瀹氫箟銆備緥瀛愶細鍚嶅瓧灞炴у湪鍚勪釜瀹炰綋瀹氫箟涓閲嶆柊瀹氫箟銆傚閮ㄥ睘鎬х殑鏍囪瘑絎﹀湪鐗瑰畾瀹炰綋鍜屽瓙瀹炰綋鍙錛岄櫎闈炲湪瀛愬疄浣撲腑閲嶆柊瀹氫箟浜嗚鏍囪瘑絎︺?br />(iii)嫻佺▼鍙備笌鑰呭拰搴旂敤紼嬪簭
嫻佺▼鍙備笌鑰呭拰搴旂敤紼嬪簭鐨勮寖鍥村拰鍙鎬т笌澶栭儴灞炴х浉鍚屻傛墍鏈夎(嫻佺▼鍙備笌鑰呭拰搴旂敤紼嬪簭)浣跨敤鐨勬祦紼嬬浉鍏蟲暟鎹拰澶栭儴灞炴х殑鑼冨洿蹇呴』鍜屼嬌鐢ㄨ呯殑鑼冨洿涓鏍鳳紝鑷沖皯鍦ㄥ悓涓涓祦紼嬪寘鍐呫?br />For a referenced external package entity that needs itself reference to entities and their identifiers defined in its external package clause the mechanism is started with the root in that package. That guarantees that no conflict takes place if the invoking process has an entity with the same id, which the definer of the referenced package cannot be aware of.
澶栭儴嫻佺▼鍖呯殑浣跨敤緇欐祦紼嬭璁¤呭拰綆$悊鑰呬互寰堝ぇ鐨勮嚜鐢便備竴鏄彲浠ュ湪鍒嗗紑鐨勬ā鍨嬩腑鍒嗗埆瀹氫箟緇勭粐鏈烘瀯(鍙備笌鑰呭疄浣?鍜屾祦紼嬪畾涔夈傚彟涓涓槸鍙互娣誨姞涓涓柊鐨勬祦紼嬪畾涔夊叡浜師鏉ョ殑嫻佺▼瀹氫箟鎵鐢ㄧ殑妯″瀷鑰屼笉闇瑕侀噸鏂版彁浜ゆ暣涓幆澧冧俊鎭?br />聽
6.5瀹炰綋棰勮(Elements Overview)
涓嬭〃灞曠ず浜哫PDL涓畾涔夌殑涓昏鍏冪礌(elements)
-絎竴鏍忓寘鍚墍鏈変富瑕佸厓绱犵殑灞炴с傛墍鏈変富瑕佸厓绱犲寘鍚殑灞炴ф湁錛歩d錛宯ame鍙兘鏈塂escription鍜孍xtended Attributes銆?br />-絎簩鏍忔槸鐗規畩鐨勫睘鎬?br />-The third group consists of elements that may contain references to other elements.
-Documentation and Icon elements 錛氳宸ヤ綔嫻佸紩鎿庝嬌鐢ㄧ殑鎻忚堪淇℃伅
-絎簲鏍忓寘鍚簡浠跨湡鍜屼紭鍖栫殑淇℃伅
浠ュ悗鍙兘浼氭坊鍔犲埆鐨勫厓绱犲拰棰勫畾涔夊睘鎬?/p>
| Package | Workflow Process | Activity | Transition | Application | Data Field(Workflow Relevant Data) | Participant |
| -Id -Name -Description -Extended Attributes -XPDL Version -Source Vendor ID -Creation Date -Version -Author -Codepage -Country Key -Publication Status -Conformance Class -Priority Unit |
-Id -Name -Description -Extended Attributes -Creation Date -Version -Author -Codepage -Country Key -Publication Status -Priority -Limit -Valid From Date -Valid To Date |
-Id -Name -Description -Extended Attributes -Automation Mode -Split -Join -Priority -Limit -Start Mode -Finish 聽Mode -Deadline |
-Id -Name -Description -Extended Attributes |
-Id -Name -Description -Extended Attributes |
-Id -Name -Description -Extended Attributes -Data Type |
-Id -Name -Description -Extended Attributes -Participant Type |
| -Responsible -External Package |
-Parameters -Responsible |
-Performer -Tool -Subflow -ActivitySet -Actual Parameter |
-Condition -From -To |
-Parameters | -Initial Value | 聽 |
| -Documentation -Icon |
-Documentation -Icon |
-Documentation -Icon |
聽 | 聽 | 聽 | 聽 |
| -Cost Unit | -Duration Unit -Duration -Waiting Time -Working Time |
-Cost -Duration -Waiting Time -Working Time |
聽 | 聽 | 聽 | 聽 |
6.5.1渚涘簲鍟嗘垨鐢ㄦ埛鎵╁睍(Vendor or User specific Extensions)
灝界鍏冩ā鍨嬪拰XPDL鍖呭惈浜嗗ぇ閮ㄥ垎嫻佺▼瀹氫箟浜ゆ崲榪囩▼涓渶瑕佺殑緇撴瀯銆備絾鍦ㄧ壒瀹氱幆澧冧笅嫻佺▼瀹氫箟鍙兘闇瑕佸寘鍚洿澶氱殑淇℃伅(渚涘簲鍟嗘垨鐢ㄦ埛鐨勭壒瀹氫俊鎭?銆備緵搴斿晢鎴栫敤鎴峰簲灝介噺浣跨敤鏍囧噯鐨勫疄浣撳拰灞炴с備互涓嬪皢鎻忚堪鎵╁睍淇℃伅鐨勬爣鍑嗘柟娉曪紝浣嗚繖瑕佹眰嫻佺▼寮曟搸鎻愪緵鐩稿簲鐨勮繍琛屾椂鏀寔銆?br />聽
6.5.1.1Extended Attributes
鏈涓昏鐨勬柟娉曟槸浣跨敤Extended Attributes銆侲xtended Attributes鐢變緵搴斿晢鎴栫敤鎴峰湪蹇呰鎯呭喌涓嬭嚜琛屽畾涔夛紝鐢ㄤ互琛ㄨ揪棰濆鐨勪俊鎭傞澶栧睘鎬х殑榪愯鏃舵敮鎸佸垎鍒湪涓や釜緋葷粺涓疄鐜幫紝鑰屼笖鍙屾柟瑕佸湪瀵歸澶栧睘鎬х殑瀵煎叆瀵煎嚭涓婅揪鎴愪竴鑷淬?br />聽
6.5.1.2. Extended parameter mapping
鍏充簬瀛愭祦紼嬬殑鍙傛暟浼犻掞紝鐢變緵搴斿晢鑷鍐沖畾錛屽拰WfMC鏃犲叧
鏈鍚?faint...浜哄宸茬粡xpdl2.0浜?
聽
濂藉儚n澶氭蹇典笉涓鏍蜂簡銆?005-10-3鐨勭増鏈紝鐒墮亾鎴戝氨榪欎箞鍊掗湁錛?br />2.0鐨勬祦紼嬪寘(Package)閲岄潰娣誨姞浜唒ools,message flows,associations & artifacts鐨勬蹇點?br />聽
娉抽亾(Swimlanes)?
姹?Pool){鐜妭錛屾祦鍚?Sequence Flow (transitions))} Pool涔嬮棿閫氳繃淇℃伅嫻?Message Flow)鑱旂郴銆傜櫧綆遍粦綆便俠ackground pool鍗抽粯璁ょ殑pool
聽
閫氶亾(Lane)錛岃繘涓姝ュ垎鍓瞤ool,灞炴ц鍏朵腑鐨勭幆鑺傜戶鎵?br />聽
宸╢aint錛屼漢瀹跺凡緇忔湁緲昏瘧濂界殑銆傘?.0鐗堟湰鐨勶紝闄や簡鍑犱釜鐗規畩鍚嶇О鐨勭炕璇戜笉涔犳儻澶栵紝璇昏搗鏉ユ尯嫻佺晠鐨勩?br />浣嗕笉鑳界悊瑙g殑榪樻槸涓嶈兘鐞嗚В錛屽ソ鍍忕炕璇戠殑浜轟篃娌¤瀺浼氳瘡閫氥?br />灝卞綋瀛﹁嫳璇ソ浜?.閮侀椃銆備互鍚庡け涓氫簡鍙互璇曡瘯綺楁祬鐨勭炕璇戙?br />聽
宸ヤ綔嫻佺幇鍦ㄥ拫灝辮繖涔堟祦琛屽憿錛?http://www.cnitblog.com/Files/Raistlin/wfmc-zh.rar