jBPM-jPDLѧϰ±Ê¼Ç - Á÷³ÌÉè¼ÆÓë¿ØÖÆ- jBPM3.1.4 ÏÂÔر¾ÎÄ

53. } 54. /**

55. * ÌîдÌá½»ÉêÇëµ¥ 56. * @param money 57. */

58. protected void submitApplication(int money){ 59. System.out.println(\ation()==\

60. TaskInstance ti = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next() ;

61. System.out.println(\

62. ContextInstance ci = ti.getContextInstance(); 63. ci.setVariable(\64. ti.end(); 65. } 66. /**

67. * ²¿Ãž­ÀíÉóÅú 68. * @param pass 69. */

70. @SuppressWarnings(\

71. protected void approveByManager(boolean pass){ 72. System.out.println(\ager()==\

73. Iterator it = pi.getTaskMgmtInstance().getTaskInstances().iterator();

74. for( ;it.hasNext(); ){

75. TaskInstance ti = it.next();

76. if(ti.getActorId().equals(\77. List transitions = ti.getToken().getNode().getLeavingTransitions();

78. for(Transition t : transitions){

79. System.out.println(\Name());

80. }

81. assertEquals(\));

82. if(pass){

83. ti.end(\²¿Ãž­ÀíÉóÅúͨ¹ý\84. }else{

85. ti.end(\²¿Ãž­Àí²µ»Ø\86. }

87. return; 88. }

89. } 90. } 91. 92. /**

93. * ×ܾ­ÀíÉóÅú 94. * @param pass 95. */

96. @SuppressWarnings(\

97. protected void approveByPresident(boolean pass){

98. System.out.println(\President()==\99.

100. Iterator it = pi.getTaskMgmtInstance().getTaskInstances().iterator(); 101.

102. for( ;it.hasNext(); ){ 103.

104. TaskInstance ti = it.next(); 105.

106. if(ti.getActorId().equals(\

107. List transitions = ti.getToken().getNode().getLeavingTransitions();

108. for(Transition t : transitions){ 109. System.out.println(\\

110. }

111. assertEquals(\());

112. if(pass){

113. ti.end(\×ܾ­ÀíÉóÅúͨ¹ý\114. }else{

115. ti.end(\×ܾ­Àí²µ»Ø\116. }

117. return; 118. } 119. } 120. } 121. /**

122. * ´òÓ¡ÈÎÎñ¼Ç¼ 123. */

124. @SuppressWarnings(\

125. protected void checkTasks(){

126. System.out.println(\sks()==\

127. Collection coll = pi.getTaskMgmtInstance().getTaskInstances();

128. System.out.println(\

129. for(TaskInstance ti : coll){

130. System.out.println(\

131. System.out.println(\\

132. System.out.println(\oString() +\133. }

134. System.out.println(\135. }

¸Ã°¸ÀýÊÇÔÚûÓÐÊý¾Ý¿âÖ§³ÖµÄÇé¿öÏ£¬¶Ô±¨ÏúÁ÷³Ì½øÐÐÔËÐвâÊÔ£¬²âÊÔÂß¼­ÈçÏ£º

1. ¼ÓÔØÁ÷³Ì¶¨Òå Java´úÂë

1. ProcessDefinition.parseXmlResource(\.xml\´úÂë˵Ã÷£º

ÔÚûÓÐÊý¾Ý¿â´æ´¢µÄÇé¿öÏ£¬Á÷³Ì¶¨Òåͨ¹ýProcessDefinitionÀàÖ±½Ó´Óprocessdefinition.xmlÎļþÖнâÎö¼ÓÔØ¡£

2. ʵÀý»¯Á÷³Ì¶ÔÏó Java´úÂë

1. //Éú³ÉʵÀý

2. pi = pdf.createProcessInstance();

3. assertNotNull(\4. //ÉèÖÃÁ÷³Ì·¢ÆðÈË

5. pi.getContextInstance().createVariable(\6. //´¥·¢Á÷³ÌתÏò 7. pi.signal();

´úÂë˵Ã÷£º

ÔÚ»ñµÃÁ÷³Ì¶¨ÒåµÄʵÀýºó£¬¿ÉÒÔÓÃËüÉú³ÉÁ÷³ÌʵÀý£¬Ê¹ÓÃÈçϵÄÓï¾ä£º pi = pdf.createProcessInstance();

Á÷³ÌʵÀýÓµÓÐ×Ô¼ºµÄContextInstance»·¾³±äÁ¿¶ÔÏó¡£Ëüʵ¼ÊÉÏÊÇÒ»¸öHashMap£¬ÒÔkey-value·½Ê½¼Ç¼ÁËÁ÷³ÌµÄÉÏÏÂÎıäÁ¿Öµ£¬´úÂëÖеÄ

pi.getContextInstance().createVariable(\¾ÍÊÇÏò»·¾³±äÁ¿ÖÐÌí¼ÓÒ»¸ökeyΪinitiatorµÄ¶ÔÏó¡£

ÿ¸öÁ÷³ÌʵÀý¶¼ÓµÓÐ×Ô¼ºTokenÁîÅƶÔÏó£¬Ö÷Á÷³ÌÓÐ×Ô¼ºµÄRootToken£¬×ÓÁ÷³ÌÒ²ÓµÓÐ×Ô¼ºµÄ×ÓToken¡£¸¸Á÷³ÌµÄTokenºÍ×ÓÁ÷³ÌµÄTokenÏ໥¹ØÁª£¬ÐγÉTokenÊ÷¡£

Token¶ÔÏó±íʾÁ÷³ÌÔËÐеĵ±Ç°Î»Öã¨ÔËÐе½Äĸö½ÚµãÁË£©¡£Í¨¹ý¶ÔToken¶ÔÏóµÄsignal()·½·¨µ÷Ó㬿ÉÒÔʹÁ÷³ÌÏòÏÂÔËÐС£´úÂëÖеÄpi.signal();ʵ¼ÊÉÏÊǼä½Óµ÷ÓÃÁËpi.getRootToken().signal();ËüʹµÃн¨µÄÁ÷³Ì¼ÌÐøÏòϸö½Úµã£¨¼´½è¿îÉêÇëµ¥Ìîд£©½ø·¢¡£

3. Ô±¹¤·¢Æð½è¿îÉêÇë Java´úÂë

1. /**

2. * ÌîдÌá½»ÉêÇëµ¥ 3. * @param money 4. */

5. protected void submitApplication(int money){

6. System.out.println(\cation()==\7.

8. TaskInstance ti = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next()

9. System.out.println(\10. ContextInstance ci = ti.getContextInstance(); 11. ci.setVariable(\12. ti.end();

´úÂë˵Ã÷£º

ÔÚ½è¿îÁ÷³Ì·¢Æðºó£¬Á÷³Ì½øÈëÁËÉêÇëµ¥Ìîд½×¶Î¡£Õâ¸ö½×¶ÎÊǸöÈ˹¤µÄÈÎÎñ£¬ÐèÒªÓû§µÄ½éÈë¡£Òò´Ë£¬¶ÔÓÚÒª½è¿îµÄÓû§¶øÑÔ£¬Ê×ÏÈÊÇ»ñÈ¡ÌîдÉêÇëµ¥µÄÈÎÎñʵÀý£º

TaskInstance ti =

(TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next()

ÔÚÕâ¸ö²âÊÔÀàÖУ¬ÓÉÓÚûÓÐÊý¾Ý¿â¡£¶ÔÁ÷³ÌʵÀýµÄÒýÓÃÊÇÒÀ¿¿ÁËÀàµÄÈ«¾Ö±êÁ¿pi¡£ÕâÀïͨ¹ýpi»ñÈ¡È«²¿µÄÈÎÎñÁÐ±í¡£Êµ¼ÊÉÏÓÐÇÒ½öÓÐÒ»¸öÈÎÎñ£¬¾ÍÊÇÎÒÃǸոշ¢ÆðµÄÉêÇëµ¥ÌîдÈÎÎñ¡£

½ÓÏÂÀ´£¬ÎÒÃÇ»ñÈ¡Á÷³ÌµÄÉÏÏÂÎıäÁ¿£¬½«ÉêÇë½è¿îµÄÊý¶î¼Ç¼ÔÚÉÏÏÂÎıäÁ¿ÖÐContextInstance ci = ti.getContextInstance(); ci.setVariable(\

×îºó£¬ÎÒÃÇÒª½áÊøµ±Ç°ÈÎÎñ£¬¸æËßÁ÷³Ì¼ÌÐøÏÂÐУ¬µ÷ÓÃti.end()£»Õâ¸ö·½·¨µÄ

±¾ÖÊÒÀÈ»Êǵ÷ÓÃÁËtoken.signal()£¬ËüÑ¡ÔñÁËÒ»¸öĬÈϵÄtransition½øÐÐתÏò¡£ÕâÀïҪ˵Ã÷µÄÊÇsignal·½·¨Óжà̬µÄʵÏÖsignal(Transition transition)£¬ÊÇ¿ÉÒÔÖ¸¶¨¾ßÌåתÏò²ÎÊýµÄ¡£

4. ²¿ÃÅÁìµ¼ÉóÅúÉêÇë Java´úÂë

1. /**

2. * ²¿Ãž­ÀíÉóÅú 3. * @param pass 4. */

5. @SuppressWarnings(\

6. protected void approveByManager(boolean pass){ 7. System.out.println(\ager()==\

8. Iterator it = pi.getTaskMgmtInstance().getTaskInstances().iterator();

9. for( ;it.hasNext(); ){

10. TaskInstance ti = it.next();

11. if(ti.getActorId().equals(\12. List transitions = ti.getToken().getNode().getLeavingTransitions();

13. for(Transition t : transitions){

14. System.out.println(\Name());

15. }

16. assertEquals(\));

17. if(pass){

18. ti.end(\²¿Ãž­ÀíÉóÅúͨ¹ý\19. }else{

20. ti.end(\²¿Ãž­Àí²µ»Ø\21. }

22. return; 23. } 24. } 25.}

´úÂë˵Ã÷£º

ÕâÀÁ÷³Ì½øÈëÁ˲¿Ãž­ÀíÉóÅú½×¶Î¡£ÓÉÓÚûÓÐÊý¾Ý¿âÖ§³Ö£¬ÎÒÃÇÖ»ÄܲÉÈ¡±éÀúÈÎÎñÁÐ±í£¬²¢±È¶ÔίÅÉÕßIDµÄ·½Ê½À´È·¶¨Î¯Åɸø²¿Ãž­ÀíµÄÈÎÎñʵÀý¡££¨ÔÚºóÃæµÄ»ùÓÚÊý¾Ý¿âµÄ±ê×¼°¸ÀýÖУ¬ÎÒÃǻῴµ½Èç¹û¸ù¾ÝÓû§µÄIDÀ´»ñÈ¡·ÖÅä¸øÖ¸¶¨Óû§µÄÈÎÎñ£©

ti.getActorId().equals(\±È¶ÔÈÎÎñµÄίÅÉÈË¡£