<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0

    1.com.opensymphony.workflow.Workflow 工作流的用戶接口。

    ?????? 主要定義了用戶對工作流的操作方法和用戶獲得工作流信息的方法。如doAction(long id, int actionId, Map inputs)方法可以執行工作流的Action并產生transaction;用戶調用getAvailableActions(long id, Map inputs)可以獲得知道工作流實例中符合條件的可以執行的Action。

    2.com.opensymphony.workflow.WorkflowContext 工作流的Context接口。

    ????? 只有兩個方法,其中getCaller()獲得調用者,setRollbackOnly()可以回滾Action造成的transaction。

    ????? setRollbackOnly()方法非常重要,可以在此方法中實現工作流數據與業務數據的事務處理。由于工作流引擎將流程數據與業務數據分離開管理,所以工作流數據與業務數據之間的事務處理往往比較困難,甚至有很多商業的工作流引擎都沒有解決這個問題,造成軟件上的漏洞。可惜在BasicWorkflowContext中并沒有實現回滾時的事務處理,但實現起來應該不會很困難,在以后會單獨考慮。

    3.com.opensymphony.workflow.spi.WorkflowEntry 工作流實例的接口。

    ???? 定義了獲得工作流實例信息的方法。

    4.com.opensymphony.workflow.config.Configuration 工作流配置接口。

    ????? 獲得osworkflw的配置信息和流程的定義信息, osworkflow中的例子就是使用此接口的默認實現。如果想讓osworkflw與自己的系統更好的整合,這個接口需要自己實現。

    5.com.opensymphony.workflow.loader.AbstractWorkflowFactory 流程定義的解析器。

    ????? osworkflow中提供了此抽象類的3種實現,最常用的是XMLWorkflowFactory,可以對編寫的工作流定義xml文件進行解析。

    6.com.opensymphony.workflow.spi.WorkflowStore 工作流存儲接口。

    ??????實現此接口可以實現用多種途徑保存工作流信息,jdbc,hibernate,ejb,memory.........

    AbstractWorkflow類是workflow接口的最基本的實現。

    1.public int[] getAvailableActions(long id, Map inputs)方法:

    返回當前可以執行的Ation。

    • 得到工作流流程實例。
    • 得到工作流實例的定義。
    • 得到工作流實例的PropertySet。
    • 得到工作流的當前Step。
    • 產生TransientVars。
    • 得到Global Actions。
    • 判斷可以執行的Global Action增加到可執行Action列表中。
    • 獲得當前Steps中的可執行Action并添加到可執行Action列表中。
    • 返回可執行Actions。

    2. public void setConfiguration(Configuration configuration)方法:

    設置工作流配置方法。

    3.public Configuration getConfiguration()方法:

    返回工作流配置方法,如果沒有獲得配置信息,初始化配置信息。

    4.public List getCurrentSteps(long id):

    獲得工作流當前所在步驟。

    5.public int getEntryState(long id):

    獲得工作流的狀態。

    6.public List getHistorySteps(long id)

    獲得工作流的歷史步驟。

    7. public Properties getPersistenceProperties()

    獲得設置的持久化參數。

    8.public PropertySet getPropertySet(long id)

    得到工作流的PropertySet,調用store中的方法。

    9.public List getSecurityPermissions(long id)

    得到工作流當前Step的permissions。

    10.public WorkflowDescriptor getWorkflowDescriptor(String workflowName)

    得到工作流的定義。

    11.public String getWorkflowName(long id)

    根據工作流實例返回工作流定義名。

    12. public String[] getWorkflowNames()

    返回系統中配置的所有工作流的名字。

    13.public boolean canInitialize(String workflowName, int initialAction),public boolean canInitialize(String workflowName, int initialAction, Map inputs),private boolean canInitialize(String workflowName, int initialAction, Map transientVars, PropertySet ps) throws WorkflowException

    判斷指定的工作流初始化Action是不是可以執行。

    14.public boolean canModifyEntryState(long id, int newState)

    判斷工作流是不是可以轉換到指定狀態。

    • 不可以轉換到CREATED狀態。
    • CREATED,SUSPENDED可以轉換到ACTIVATED狀態。
    • ACTIVATED可以轉換到SUSPENDED狀態。
    • CREATED,ACTIVATED,SUSPENDED?可以轉換到KILLED狀態。

    15.public void changeEntryState(long id, int newState) throws WorkflowException

    轉換工作流狀態。

    16.public void doAction(long id, int actionId, Map inputs) throws WorkflowException

    執行Action。

    • 獲得工作流store,和流程實例entry。
    • 判斷是不是活動的工作流,不是就返回。
    • 獲得工作流的定義。
    • 獲得工作流當前所再Steps。
    • 獲得工作流PropertySet。
    • 生成transientVars。
    • 從GlobalActions中和當前Steps的普通Actions中判斷執行的Action是否試可執行的。
    • 完成Action的Transition。

    17.public void executeTriggerFunction(long id, int triggerId) throws WorkflowException

    調用工作流的Trigger Function

    18.public long initialize(String workflowName, int initialAction, Map inputs) throws InvalidRoleException, InvalidInputException, WorkflowException

    初始化一個新的流程實例。返回流程實例id。

    19.public List query(WorkflowQuery query),public List query(WorkflowExpressionQuery query)

    查詢流程實例。

    20.public boolean removeWorkflowDescriptor(String workflowName) throws FactoryException

    刪除已經配置的工作流定義。

    21.public boolean saveWorkflowDescriptor(String workflowName, WorkflowDescriptor descriptor, boolean replace) throws FactoryException

    保存工作流定義。

    22.protected List getAvailableActionsForStep(WorkflowDescriptor wf, Step step, Map transientVars, PropertySet ps) throws WorkflowException

    獲得指定步驟的可用Actions。

    23.protected int[] getAvailableAutoActions(long id, Map inputs)

    返回可執行的AutoActions。

    24.protected List getAvailableAutoActionsForStep(WorkflowDescriptor wf, Step step, Map transientVars, PropertySet ps) throws WorkflowException

    返回指定Step中可執行的AutoActions。

    25.protected WorkflowStore getPersistence() throws StoreException

    返回配置的store。

    26.protected void checkImplicitFinish(long id) throws WorkflowException

    判斷工作流是不是還有可執行的Action,如果沒有,完成此工作流實例。

    27.protected void completeEntry(long id, Collection currentSteps) throws StoreException

    結束工作流實例,就是把改變流程實例的狀態并把當前的Steps都放入到歷史表中。?

    28.protected boolean passesCondition(ConditionDescriptor conditionDesc, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException

    29.protected boolean passesCondition(ConditionDescriptor conditionDesc, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException,protected boolean passesConditions(String conditionType, List conditions, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException

    判斷條件是不是符合。

    30.protected void populateTransientMap(WorkflowEntry entry, Map transientVars, List registers, Integer actionId, Collection currentSteps) throws WorkflowException

    產生臨時變量transientVars,包含context,entry,store,descriptor,actionId,currentSteps,以及定義的register和用戶的輸入變量。

    31.protected void verifyInputs(WorkflowEntry entry, List validators, Map transientVars, PropertySet ps) throws WorkflowException

    驗證用戶的輸入。

    32.private boolean isActionAvailable(ActionDescriptor action, Map transientVars, PropertySet ps, int stepId) throws WorkflowException

    判斷Action是否可用。

    33.private Step getCurrentStep(WorkflowDescriptor wfDesc, int actionId, List currentSteps, Map transientVars, PropertySet ps) throws WorkflowException

    獲得Action所在Step。

    34.private boolean canInitialize(String workflowName, int initialAction, Map transientVars, PropertySet ps) throws WorkflowException

    判斷工作流是不是可以實例化。

    35.private Step createNewCurrentStep(ResultDescriptor theResult, WorkflowEntry entry, WorkflowStore store, int actionId, Step currentStep, long[] previousIds, Map transientVars, PropertySet ps) throws WorkflowException

    產生新的當前Step。

    • 從resulte中獲得nextStep,如果為-1,nextStep為當前Step。
    • 獲得定義中的owner,oldStatus,status。
    • 完成當前Step,并且將當前Step保存到歷史庫中。
    • 生成新的Step。

    36.private void executeFunction(FunctionDescriptor function, Map transientVars, PropertySet ps) throws WorkflowException

    執行Function。

    37.private boolean transitionWorkflow(WorkflowEntry entry, List currentSteps, WorkflowStore store, WorkflowDescriptor wf, ActionDescriptor action, Map transientVars, Map inputs, PropertySet ps) throws WorkflowException

    完成工作流的transation。

    DefaultConfiguration是Configuration接口的默認實現,用于初始化系統的基本配置信息。
    1.public WorkflowDescriptor getWorkflow(String name) throws FactoryException
    根據工作流的定義名獲得工作流的定義。
    2.public WorkflowStore getWorkflowStore() throws StoreException
    獲得配置的持久化類Store。
    3.public void load(URL url) throws FactoryException
    裝載配置信息。
    • 得到配置文件流,并解析。
    • 獲得持久化信息,包括持久化類的路徑和持久化類初始化參數。
    • 獲得工作流信息解析類路徑,并初始化。

    4. public WorkflowStore getWorkflowStore() throws StoreException

    獲得工作流初始化類。

    XMLWorkflowFactory用于解析工作流定義xml文件,獲得工作流信息。
    1.public WorkflowDescriptor getWorkflow(String name) throws FactoryException
    根據工作流定義名獲得工作流定義。
    2.public String[] getWorkflowNames()
    得到所有已經定義的工作流名稱。
    3.public void initDone() throws FactoryException
    初始化workflows.xml文件中列出的工作流定義文件信息。

    轉自于ch(耐心)
    posted on 2006-04-11 16:03 有貓相伴的日子 閱讀(1583) 評論(1)  編輯  收藏 所屬分類: workflow

    評論:
    # re: osworkflow代碼分析 2008-11-22 07:50 | 慕娉婷
    頂一下。  回復  更多評論
      
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 老司机午夜在线视频免费| 中文字幕精品三区无码亚洲| 美女黄频免费网站| 性感美女视频在线观看免费精品 | 国产免费av片在线播放| 色噜噜亚洲男人的天堂| a毛片基地免费全部视频| 亚洲伊人久久精品| 毛片基地免费观看| 精品久久久久亚洲| 亚洲日本一区二区一本一道 | 91亚洲精品第一综合不卡播放| 日韩免费在线视频| 亚洲精品免费在线| 2021免费日韩视频网| 亚洲综合无码一区二区痴汉| 午夜两性色视频免费网站| 午夜亚洲国产精品福利| 在线观看亚洲精品福利片| 精品视频一区二区三区免费| 亚洲精品乱码久久久久久下载| 97在线观免费视频观看| 亚洲av中文无码字幕色不卡| 亚洲第一页综合图片自拍| 两个人日本WWW免费版| 亚洲国产精品人久久| 免费a级毛片无码a∨蜜芽试看| 亚洲AV无码一区二区一二区| 亚洲人成影院在线无码观看| 13小箩利洗澡无码视频网站免费 | 国产精品亚洲аv无码播放| 在线观看免费黄网站| 亚洲成人网在线观看| 日韩免费观看视频| 国产精品福利在线观看免费不卡| 亚洲不卡av不卡一区二区| 在线观看免费人成视频色| 午夜不卡AV免费| 亚洲视频一区在线观看| 国产高清免费的视频| 午夜精品射精入后重之免费观看 |