程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 流程變量與任務變量的實際比較

流程變量與任務變量的實際比較

編輯:關於JAVA
 

在Process State中的流程變量的access屬性分為三種屬性值:write,read以及read、write,

<variable access="read" name="master"></variable>

<variable access="write" name="slave"></variable>

<variable access="read,write" name="variable"></variable>

<variable access=" read,write " name="mapping"

mapped-name =”mapped d”></variable>

流程變量master的access屬性為read ,表示將從父流程實例上下文裡讀取變量master的值,以變量名master寫到子流程實例當中。

流程變量slave的access屬性為write,表示子流程實例開始時,不從父流程實例裡讀取任何變量到子流程,但在子流程實例結束的時候,會將子流程實例上下文裡名為slave的流程變量以流量變量名slave回寫到父流程實例上下文當中.

流程變量variable的access屬性為read,write,表示不但要從父流程實例上下文中讀取流程變量variable,將其復制到子流程實例當中,而且在子流程結束的時候,子流程實例將變量以變量名為variable回寫到父流程實例當中。

流程變量mapping的access屬性為read,write,但還有一個mapped-name屬性為mapped d,表示從父流程實例上下文第讀取變量名為mapping的流程變量的值,並將其名為mapping寫到子流程實例上下文當中,但子流程實例結束的時候,子流程實例會將變量mapping以名稱mapped d形式回寫到父流程實例上下文當中。

 

在任務控制器中定義的任務變量

<task name="chengyi">

<controller>

<variable name="v1" access="read" mapped-name ="test

v1"></variable>

<variable name="v2" access="write" mapped-name="test

v2"></variable>

<variable name="v3" access="read,write" mapped-name="test

v3"></variable>

<variable name="v4" access="read,write,required"

mapped-name="teset v4"></variable>

</controller>

</task>

任務變量v1的access屬性為read,表示該變量只會在任務實例初始化時將流程上下文裡的key為v1的流程變量值取出,放到這裡的Controller的變量v1當中,不需要回寫到流程上下文了。

任務變量v2的access屬性為write,表示v2所屬的任務實例在初始化的時候不會到流程上下文中查找變量名為v2的流程變量的值,所以當該任務實例初始化後,及時流程上下文中有key為v2的流程變量,該Controller中的v2的值也為null,但因為access為write,所以在任務實例完成後需要將客戶端的值回寫到流程上下文中,因為沒有定義mapped-name屬性,所以回寫時以name為v2作為流程變量的key值。

任務變量v3的access屬性為read,write,表示在它對應的任務實例初始化時,到該任務實例所對應的流程實例上下文當中查找key值為v3的流程變量,並將找到的變量值寫入變量v3當中。同時,在完成任務時需要向流程變量裡回寫key為v3的流程變量,因為定義了mapped-name的值為test v3,所以在回寫到流程上下文時,用的key值不是v3,而是test

v3。

任務變量v4與v3相同,只是在流程變量回寫時,如果沒有將v4回寫到流程上下文,會有一個IllegalArgumentException異常拋出,提示將v4的值必須回寫到流程上下文中。

 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved