鏈変簡鍓嶉潰鐨?/span> HelloWorld 鍚庡彴嫻佺▼錛屾垜浠氨瑕佸紑濮嬪鎴風紼嬪簭浜嗐傛濡傚墠闈㈡彁鍒扮殑錛屾湰鏂囦笉鍐?/span> JSP 錛岃屾敼閲囩敤 JUnit 鐨勫艦寮忥紝杈撳嚭鍒欑敤 System.out.println 銆備婦涓鍙嶄笁錛岀煡閬撳湪鏂規硶涓緭鍏ュ強鐢?/span> println 杈撳嚭錛屽湪 JSP 鍜?/span> SWING 絳?/span> GUI 鐣岄潰榪樹笉鏄竴鏍峰槢銆?/span>
榪欎釜 JUnit 瀹㈡埛绔紝鎴戜滑灝卞熺敤鍒涘緩欏圭洰鏃惰嚜鍔ㄧ敓鎴愮殑 SimpleProcessTest.java 浜嗭紝鏀瑰啓鍚庡涓嬶細
package com.sample;
import junit.framework.TestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
public class SimpleProcessTest extends TestCase {
聽聽聽 private JbpmConfiguration config = JbpmConfiguration.getInstance();
聽聽聽 private JbpmContext ctx = config.createJbpmContext();
聽聽聽 // helloworld 瀵瑰簲浜?/span> jbpm_processdefinition 琛ㄧ殑 name 瀛楁鍊鹼紝涔熷嵆 processdefinition.xml 鐨?/span> name
聽聽聽 // 榪欎釜鍊煎緱鍙栨瘮杈冭楁椂錛屽疄闄呴」鐩噷鏈濂藉拰鈥滄暟鎹簱鐨?/span> JDBC 榪炴帴鈥濅竴鏍鳳紝璁╁畠鍏變韓錛屼笉瑕侀綣佹墦寮鍏抽棴銆?/span>
聽聽聽 private ProcessDefinition processDefinition = ctx.getGraphSession().findLatestProcessDefinition("helloworld");
聽聽聽 public void testNewRequest() {
聽聽聽聽聽聽聽 long id = newRequest();
聽聽聽聽聽聽聽 System.out.println("id=" + id);
聽聽聽聽聽聽聽 checkNewRequest(id);
聽聽聽聽聽聽聽 confirmRequest(id);
聽聽聽聽聽聽聽 checkconfirmRequest(id);
聽聽聽聽聽聽聽 ctx.close();// 鍏抽棴 jbpm 瀹瑰櫒
聽聽聽 }
聽聽聽 /**
聽聽聽 聽 * 鍒涘緩涓涓鍋囧崟
聽聽聽 聽 *
聽聽聽 聽 * @return
聽聽聽 聽 */
聽聽聽 private long newRequest() {
聽聽聽聽聽聽聽 // 鍒涘緩涓涓柊嫻佺▼
聽聽聽聽聽聽聽 ProcessInstance pi = processDefinition.createProcessInstance();
聽聽聽聽聽聽聽 // 鍙栧緱嫻佺▼鐨勬暟鎹幆澧?/span>
聽聽聽聽聽聽聽 ContextInstance ci = pi.getContextInstance();
聽聽聽聽聽聽聽 // 鍒涘緩涓寮犺鍋囧崟
聽聽聽聽聽聽聽 ci.setVariable("name", "
聽聽聽聽聽聽聽 ci.setVariable("day", 2);
聽聽聽聽聽聽聽 assertEquals(null, ci.getVariable("note"));
聽聽聽聽聽聽聽 // 璇峰亣鐢寵緇撴潫錛岃漿鍒頒笅涓涓祦紼嬬粨鐐?/span>
聽聽聽聽聽聽聽 pi.signal();
聽聽聽聽聽聽聽 return pi.getId();
聽聽聽 }
聽聽聽 /**
聽聽聽 聽 * 媯鏌ヨ鍋囧崟鐨勬暟鎹?/span>
聽聽聽 聽 *
聽聽聽 聽 * @param id
聽聽聽 聽 */
聽聽聽 private void checkNewRequest(long id) {
聽聽聽聽聽聽聽 // 浠庢暟鎹簱鎻愬彇鍘熸祦紼?/span>
聽聽聽聽聽聽聽 ProcessInstance pi = ctx.loadProcessInstance(id);
聽聽聽聽聽聽聽 // 鍙栧緱嫻佺▼鐨勬暟鎹幆澧?/span>
聽聽聽聽聽聽聽 ContextInstance ci = pi.getContextInstance();
聽聽聽聽聽聽聽 // 鍒涘緩涓寮犺鍋囧崟
聽聽聽聽聽聽聽
assertEquals("
聽聽聽聽聽聽聽 assertEquals(Integer.valueOf(2), ci.getVariable("day"));
聽聽聽聽聽聽聽 assertEquals(" 鎴戣璇峰亣 " , ci.getVariable("note"));
聽聽聽聽聽聽聽 // 褰撳墠鏄粨鐐逛負 confirm
聽聽聽聽聽聽聽 assertEquals(pi.getRootToken().getNode().getName(), "confirm");
聽聽聽聽聽聽聽 // 嫻佺▼榪樻病緇撴潫
聽聽聽聽聽聽聽 assertFalse(pi.hasEnded());
聽聽聽 }
聽聽聽 /**
聽聽聽
聽
*
瀹℃壒
聽聽聽 聽 *
聽聽聽 聽 * @param id
聽聽聽 聽 */
聽聽聽 private void confirmRequest(long id) {
聽聽聽聽聽聽聽 ProcessInstance pi = ctx.loadProcessInstance(id);
聽聽聽聽聽聽聽 ContextInstance ci = pi.getContextInstance();
聽聽聽聽聽聽聽 // 涓嶉氳繃
聽聽聽聽聽聽聽 ci.setVariable("note", " 涓嶅噯璇峰亣錛岀戶緇姞鐝?/span> " );
聽聽聽聽聽聽聽 // 瀹℃壒緇撴潫錛屽埌涓嬩竴涓祦紼嬬粨鐐?/span>
聽聽聽聽聽聽聽 pi.signal();
聽聽聽 }
聽聽聽 private void checkConfirmRequest(long id) {
聽聽聽聽聽聽聽 ProcessInstance pi = ctx.loadProcessInstance(id);
聽聽聽聽聽聽聽 ContextInstance ci = pi.getContextInstance();
聽聽聽聽聽聽聽 // ConfirmAction 綾誨湪 signal 鍚庢墽琛岋紝鎵浠ヨ鐩栦簡緇忕悊鐨勫鎵規剰瑙?/span>
聽聽聽聽聽聽聽 assertEquals(" 鍑嗗亣 " , ci.getVariable("note"));
聽聽聽聽聽聽聽 // 褰撳墠鏄粨鐐逛負 end
聽聽聽聽聽聽聽 assertEquals(pi.getRootToken().getNode().getName(), "end");
聽聽聽聽聽聽聽 // 嫻佺▼緇撴潫浜?/span>
聽聽聽聽聽聽聽 assertTrue(pi.hasEnded());
聽聽聽 }
}
jBPM 闇瑕佹暟鎹簱鏀寔錛?/span> jBPM 浼氭妸鑷繁鐨勪竴涓垵濮嬪寲鏁版嵁瀛樺偍鍒版暟鎹簱錛屽悓鏃跺伐浣滄祦鐨勬暟鎹篃鏄瓨鍌ㄥ埌鏁版嵁搴撲腑鐨勩?/span> jBPM 浣跨敤 Hibernate 鏉ュ仛涓鴻嚜宸辯殑瀛樺偍灞傦紝鍥犳鍙鏄?/span> Hibernate 鏀寔鐨勬暟鎹簱錛?/span> jBPM 涔熷氨鏀寔銆?/span>
鏈枃鍏堜互 MySQL 涓轟緥錛岀劧鍚庡啀浠?/span> Oracle 涓轟緥錛屾潵璋堣皥 jBPM 鐨勬暟鎹簱鍒濆鍖栨搷浣溿?/span>
娉細鍦ㄤ笂闈㈢殑 JBoss 鑷甫鐨勭ず渚嬩腑錛屽茍娌℃湁璁劇疆鏁版嵁搴擄紝閭f槸鍥犱負 jBPM 榛樿浣跨敤鐨勬槸鍐呭瓨鏁版嵁搴?/span> hsqldb 銆?/span>
1 銆侀鍏堝畨瑁?/span> MySQL 銆?/span>
MySQL 鐨勫畨瑁呮瘮杈冪畝鍗曪紝緗戜笂涔熸湁寰堝鏂囩珷錛屾湰鏂囦笉鍐嶈禈榪般傛湰鎸囧崡鎵鐢?/span> MySQL 鐗堟湰涓?/span> MySQL 4.1 錛?/span> for windows 錛夈傚啀鎵句竴涓?/span> MySQL 瀹㈡埛绔紝鐩殑鏄柟渚挎煡鐪嬫暟鎹簱涓殑鏁版嵁錛屾湰鏂囨帹鑽愪嬌鐢?/span> MySQL 緗戠珯涓婂厤璐規彁渚涚殑鈥?/span> MySQL Query Brower 鈥濓紝褰撶劧浣犵敤鍏朵粬鐨勫鎴風涔熻錛屾瘮濡?/span> MySQL-Front 銆?/span>
2 銆佸緩搴?/span>
MySQL 涓垱寤轟竴涓簱錛屽簱鍚嶏細 jbpm
3 銆佺敓鎴愬緩琛ㄧ殑 SQL 璇彞騫跺緩琛?/span>
灝?/span>
jbpm-starters-kit-
D:\jbpm-starters-kit-
D:\jbpm-starters-kit-
鍦?/span>
DOS
紿椾笅錛岃繘鍏?/span>
D:\jbpm-starters-kit-
ant mysql.scripts
鎵ц鎴愬姛鍚庯紝鍦?/span>
D:\jbpm-starters-kit-
鍏堝畨瑁呭ソ Oracle 鏈嶅姟鍣ㄣ傛垜浠叕鍙告湁鐜板瓨鐨?/span> Oracle 鏈嶅姟鍣紝涔熸彁渚涚粰浜嗘垜涓涓睘浜庢垜鑷繁鐨勭敤鎴峰悕錛屼竴鐧誨綍灝卞彲浠ヤ換鎰忓湪鎴戠殑搴撲箣涓嬪垱寤鴻〃浜嗐傛墍浠ヨ繖涓姝ュ氨鐪佷簡錛屾病鏈夌殑鑷釜鍏堣濂藉惂銆?/span>
璁塊棶 Oracle 鎺ㄨ崘鐢ㄢ?/span> PLSQL Developer 鈥濄備笉榪囪榪炴帴 Oracle 榪樿鍦ㄦ湰鏈轟笂瑁呬笂 Oracle 鑷繁鐨勫鎴風紼嬪簭錛岄噷闈㈡彁渚涗簡 JDBC 鍖呭拰涓浜涢厤緗傝榪炴帴鏈嶅姟鍣ㄨ繕寰楅厤緗竴涓嬶紝鎴戜竴鑸兘鏄笉鐢?/span> GUI 鑰岀洿鎺ユ敼 tnsnames.ora 鏂囦歡錛屽湪鎴戠殑鐢佃剳閲屾鏂囦歡鐨勭洰褰曞湴鍧鏄細 D:\oracle\ora92\network\ADMIN\tnsnames.ora 錛屽唴瀹瑰涓?/span> ( 涓ら潰鏈変袱涓厤緗簡 ) 錛?/span>
# TNSNAMES.ORA Network Configuration File: E:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
WXXRDB_192.168.3.2 =
聽 (DESCRIPTION =
聽聽聽 (ADDRESS_LIST =
聽聽聽聽聽 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.2)(PORT = 1521))
聽聽聽 )
聽聽聽 (CONNECT_DATA =
聽聽聽聽聽 (SID = wxxrDB)
聽聽聽聽聽 (SERVER = DEDICATED)
聽聽聽 )
聽 )
WXXRDB_192.168.4.2 =
聽 (DESCRIPTION =
聽聽聽 (ADDRESS_LIST =
聽聽聽聽聽 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.2)(PORT = 1521))
聽聽聽 )
聽聽聽 (CONNECT_DATA =
聽聽聽聽聽 (SID = wxxrDB)
聽聽聽聽聽 (SERVER = DEDICATED)
聽聽聽 )
聽 )
鍓嶉潰閮芥槸 Oracle 鐨勪竴浜涚煡璇嗭紝涓嶄細鐨?/span> Google 涓涓嬪惂銆傛渶鍚庨厤緗ソ鍚庯紝鐢?/span> PLSQL Developer 杈撳叆浣犵殑鐢ㄦ埛鍚嶅拰瀵嗙爜鑱旀帴鍒?/span> Oracle 錛屽氨綆?/span> OK 浜嗐?/span>
鍙傝冧笂闈?/span> MySQL 鐨勬楠わ紝鍩烘湰涓鏍鳳細
錛?錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽 灝?/span> jbpm 鏀瑰悕涓?/span> jbpm.3
錛?錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽 鍐嶆墽琛?/span> ant oracle.scripts
錛?錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽
鐢?/span>
jbpm-db\build\oracle\scripts
鐩綍鐨?/span>
oracle.create.sql
鑴氭湰錛屽湪
Oracle
涓敓鎴?/span>
jBPM
鐨勬墍鏈夎〃銆傚湪鈥?/span>
PLSQL Developer
鈥濅腑鍙互鏂板緩涓涓?/span>
Command Windows
紿楀彛鐒跺悗杈撳叆鍛戒護錛?/span>
@D:\jbpm-starters-kit-
浣滆呯畝浠?br />闄堝垰錛屽箍瑗挎鏋椾漢錛岃憲浣滄湁銆奅clipse浠庡叆闂ㄥ埌綺鵑氥?br />鎮ㄥ彲浠ラ氳繃鍏跺崥瀹簡瑙f洿澶氫俊鎭拰鏂囩珷錛?/font>http://www.ChenGang.com.cn
宸ヤ綔嫻佽櫧鐒惰繕鍦ㄤ笉鎴愮啛鐨勫彂灞曢樁孌碉紝鐢氳嚦榪樻病鏈変竴涓叕璁ょ殑瑙勮寖鏍囧噯銆備絾鍏跺簲鐢ㄥ嵈宸茬粡鍦ㄥ揩閫熷睍寮錛岃繖璇存槑甯傚満瀵瑰伐浣滄祦妗嗘灦鐨勯渶姹傛槸鎬ヨ揩鑰屽法澶х殑銆?/span>
鎴戜滑鍏徃鐨勫悗鍙扮煭淇$鐞嗙郴緇熸秹鍙婄煭淇$紪鍙戙侀瀵煎眰灞傚鏍哥瓑鎿嶄綔錛岃繖鏄竴涓瘮杈冨吀鍨嬬殑宸ヤ綔嫻佺郴緇熴傝繃鍘繪垜浠敤鐨勫伐浣滄祦寮曟搸鏄?/span> shark 錛岀劧鍚庡湪浣跨敤鍚庡彂鐜板叾榪囦簬搴炲ぇ錛屽悗鍙版暟鎹簱鎿嶄綔棰戠箒鑰屾湭榪涜浼樺寲錛岀洿鎺ュ鑷寸殑鍚庢灉灝辨槸鍓嶅彴鎿嶄綔緙撴參銆備簬鏄粡鐮旂┒鍐沖畾錛屽皢宸ヤ綔嫻佸紩鎿庣敱 shark 鎹㈡垚 jBPM 銆?/span>
jBPM 涔嬪墠鏄竴涓紑婧愯蔣浠訛紝鍚庡姞鍏?/span> JBoss 緇勭粐銆傛濂芥垜浠叕鍙鎬篃鏄敤 JBoss 鐨勩備笉榪?/span> jBPM 騫舵病鏈夌粦瀹氬湪 JBOSS 涓婏紝 Tomcat 絳変篃鍙互浣跨敤瀹冦?/span>
jBPM 鐨勬澶勫湪涓嶆柇鍙戝睍涓紝鍋氫負寮婧愯蔣浠剁殑鐗圭偣錛屽叾璁捐鍙樺寲寰寰寰堝ぇ銆傛墍浠ヤ竴浜涜繃鍘葷殑璧勬枡鍙兘宸茬粡涓嶉傜敤浜嗐備簬鏄綔鑰呮牴鎹嚜宸辯殑浣跨敤緇忛獙錛岄噸鏂版暣鐞嗗嚭榪欎喚鏂囨。錛屼互澶囧涔犲弬鑰冦?/span>
娉細鏈枃浣跨敤鐨?/span> jBPM 鐗堟湰涓?/span> 3.1.1
鎵鏈?/span> JAVA 寮鍙戠涓涓渶瑕佸畨瑁呯殑錛屾病浠涔堝ソ璇寸殑銆傝寰楁妸緋葷粺鍙橀噺 JAVA_HOME 璁句笂銆?/span>
Ant 鏄嬌鐢?/span> jBPM 蹇呴』鐨勪竴涓伐鍏楓?/span> jBPM 涓殑寰堝鎿嶄綔閮借鐢ㄥ埌 Ant 銆?/span>
瀹夎鏂規硶錛?/span>
錛?/span> 1 錛夊厛涓嬭澆錛?/span> http://archive.apache.org/dist/ant/binaries/ 錛岄変竴涓錛?/span> apache-ant-1.6.5-bin.zip 銆?/span>
錛?/span> 2 錛夎В鍘嬪埌 D:\ant 錛堝綋鐒跺叾浠栫洰褰曚篃鍙互錛夈?/span>
錛?/span> 3 錛夎緗涓嬬郴緇熷彉閲忥細 ANT_HOME=d:\ant 銆?/span>
錛?/span> 4 錛夋妸 %ANT_HOME%\bin 鍔犲叆鍒扮郴緇熷彉閲?/span> PATH 涓?/span>
Eclipse 涓嶆槸寮鍙?/span> jBPM 蹇呴』鐨勫伐鍏鳳紝浣嗗畠鏄 jBPM 寮鍙戝緢鏈夊府鍔╃殑宸ュ叿錛岀壒鍒槸 jBPM 鎻愪緵浜嗕竴涓?/span> Eclipse 鎻掍歡鐢ㄦ潵杈呭姪寮鍙?/span> jBPM 銆傚叧浜?/span> Eclipse 鐨勫畨瑁呬笉璧樿堪浜嗭紝鏈枃鐢ㄧ殑鐗堟湰鏄細 Eclipse3.2
聽
jBPM 鐨勪笅杞藉湴鍧錛?/span> http://www.jboss.com/products/jbpm/downloads 銆
l聽聽聽聽聽聽聽聽聽聽 JBoss jBPM 鏄?/span> jBPM 鐨勮蔣浠跺寘
l聽聽聽聽聽聽聽聽聽聽 JBoss jBPM Starters Kit 銆鏄竴涓患鍚堝寘錛屽畠鍖呮嫭浜?/span> jBPM 杞歡鍖呫佸紑鍙戞彃浠躲佷竴涓厤緗ソ浜嗙殑鍩轟簬 JBoss 鐨?/span> jBPM 紺轟緥銆佷竴浜涙暟鎹簱閰嶇疆鏂囦歡紺轟緥銆?/span>
l聽聽聽聽聽聽聽聽聽聽 JBoss jBPM Process Designer Plugin 銆鏄緟鍔╁紑鍙?/span> jBPM 鐨?/span> Eclipse 鎻掍歡銆?/span>
l聽聽聽聽聽聽聽聽聽聽 JBoss jBPM BPEL Extension jBPM 鍏充簬 BPEL 鐨勬墿灞曞寘
鏈寚鍗楅夋嫨涓嬭澆錛?/span> JBoss jBPM Starters Kit 銆備笅杞藉悗瑙e帇鍒?/span> D:\jbpm-starters-kit-3.1 錛岀洰褰曚笅鍚湁浜斾釜瀛愮洰褰曪細
l聽聽聽聽聽聽聽聽聽聽 jbpm 銆 jBPM 鐨勮蔣浠跺寘
l聽聽聽聽聽聽聽聽聽聽 jbpm-bpel 鍙惈鏈変竴涓綉欏?/span>
l聽聽聽聽聽聽聽聽聽聽 jbpm-db 鍚勭鏁版嵁搴?/span> hibernate 閰嶇疆鏂囦歡紺轟緥錛屾湁浜涜繕鍖呭惈浜嗙浉搴旂殑 jdbc 椹卞姩紼嬪簭銆?/span>
l聽聽聽聽聽聽聽聽聽聽 jbpm-designer 銆杈呭姪寮鍙?/span> jBPM 鐨?/span> Eclipse 鎻掍歡錛屽叿浣撳湪 jbpm-gpd-feature 瀛愮洰褰曚腑
l聽聽聽聽聽聽聽聽聽聽 jbpm-server 銆涓涓凡緇忛厤緗ソ浜嗙殑鍩轟簬 JBoss 鐨?/span> jBPM 紺轟緥 .
聽
鍓嶉潰鎴戜滑璇翠簡錛屽湪 JBoss jBPM Starters Kit 鐨?/span> jbpm-server 鐩綍鏄竴涓凡緇忛厤緗ソ鐨勪簡 jBPM 紺轟緥錛岄偅涔堣鎴戜滑鏉ユ劅瑙変竴涓?/span> jBPM 鍋氬嚭鐨勪笢瑗垮惂銆?/span>
聽
鍙屽嚮 jbpm-server 鐩綍涓嬬殑 start.bat 鏂囦歡錛屽惎鍔?/span> JBoss 鏈嶅姟銆傝繖鏃朵細鎵撳紑涓涓?/span> DOS 紿楀彛錛屽惎鍔ㄥ畬鎴愬悗錛屾棩蹇椾細涓嶆柇杈撳嚭錛屽叾涓渶鍚庝竴鍙ユ槸鈥?/span> 13:55:39,937 DEBUG [StaticNotifier] going to wait for (CMD_EXECUTOR, java.lang.Object@1df59bd) 鈥濓紝榪欒〃紺?/span> jBPM 鍦ㄥ紑濮嬪伐浣滀簡錛屽畠涓嶆柇榪涜杞銆?/span>
鎵撳紑緗戦〉錛?/span> http://localhost:8080/jbpm/ 銆寰楀埌濡備笅鐢婚潰
聽
榪欐槸涓涓凡緇忕敤 jBPM 寮鍙戝ソ鐨勭敤鎴峰畾鍗曟祦紼嬶紝鍏鋒湁涓嬪崟銆佸鏍搞佷及浠風瓑嫻佺▼銆傚畠鎵鐢ㄧ殑鏁版嵁搴撴槸涓涓唴緗殑鏁版嵁搴撱?/span>
浠?/span> cookie monster 鐢ㄦ埛鐧誨綍錛岄夋嫨鈥?/span> create new web sale order 鈥濆彲浠ュ垱寤轟竴涓畾鍗曘傚涓嬪浘鎵紺猴紝鍦ㄥ浘宸﹁竟鏄~鍐欑殑瀹氬崟鎯呭喌錛屽彸杈逛竴鏁翠釜瀹氳揣嫻佺▼鐨勭ず鎰忓浘錛岀孩鑹叉琛ㄧず嫻佺▼榪涜鍒板摢涓姝ヤ簡銆傚~鍐欏ソ瀹氬崟濂斤紝閫夋嫨鈥?/span> Save and Close Task 鈥濓紝瀹屾垚瀹氬崟鎻愪氦銆?/span>
聽
閫夋嫨鍙充笂瑙掔殑鈥?/span> Login as another user 鈥濅互鍙﹀涓涓敤鎴峰悕 ernie 鐧誨綍銆傝繖鏃跺彲浠ョ湅鍒?/span> ernie 鐢ㄦ埛鐨勪換鍔″垪琛ㄤ腑澶氫簡涓欏廣?/span>
聽
鐐硅繘鍘誨悗錛屾樉紺哄涓嬬敾闈€傝繖涓ず渚嬪涓枃鐨勬敮鎸佷笉濂斤紝鍏ㄩ兘鏄劇ず鎴愪簡 unicode 鐮佷簡銆備笉綆¤繖浠涔堝錛屽弽姝g煡閬撴槸榪欎箞鍥炰簨灝辮浜嗐傚湪 comment 欏瑰~鍐欐剰瑙侊紝閫?/span> OK 鎸夐挳錛岃繘鍏ュ埌涓嬩竴姝ャ傚鏋滈夋嫨 more info needed 鎸夐挳錛屽垯鎵撳洖緇?/span> cookie monster 鐢ㄦ埛淇敼瀹氬崟銆?/span>
聽
涓嬮潰鐨勬祦紼嬶紝榪欓噷灝變笉鍐嶈禈榪頒簡銆傚湪榪欎釜寰堟爣鍑嗙殑宸ヤ綔嫻佺ず渚嬩腑錛屾垜浠熀鏈彲浠ョ湅鍒?/span> jBPM 鐨勫簲鐢ㄨ寖鍥磋繕鏄瘮杈冨箍鐨勩傝屼笖浠庤繖涓ず渚嬶紝鎴戜滑鏄湅涓嶅嚭鏈?/span> jBPM 鐨勶紝涔熷氨鏄 jBPM 鍦ㄥ悗鍙拌搗鐫浣滅敤銆?/span>
浠庤繖涓緥瀛愶紝榪樼湅涓嶅嚭 jBPM 鐨勪紭鍔褲備笉榪囷紝濡傛灉鍦ㄤ竴涓祦紼嬩笉紜畾錛岀粡甯擱渶瑕佸彉鍔ㄧ殑欏圭洰涓紝 jBPM 鐨勫ソ澶勫皢浼氭樉鐒跺嚭鏉ャ傚簲鐢?/span> jBPM 鍚庯紝鏀瑰彉嫻佺▼鍙渶鏀瑰彉嫻佺▼鎻忚堪鏂囦歡錛岃繖灝嗗湪鍚庨潰鐨勫唴瀹規彁鍒般?/span>
榪欐槸涓涓凡鍋氬ソ鐨勭ず渚嬶紝鎺ヤ笅鏉ユ垜浠皢浠塊犺繖涓疄渚嬫潵寮鍙戜竴涓鍋囨祦紼嬨?br />
浣滆呯畝浠?/strong>
闄堝垰錛屽箍瑗挎鏋椾漢錛岃憲浣滄湁銆奅clipse浠庡叆闂ㄥ埌綺鵑氥?br />鎮ㄥ彲浠ラ氳繃鍏跺崥瀹簡瑙f洿澶氫俊鎭拰鏂囩珷錛?a >http://www.chenGang.com.cn