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

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

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

    本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
    隨筆-230  評論-230  文章-8  trackbacks-0

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

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

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

    ????? 只有兩個方法,其中g(shù)etCaller()獲得調(diào)用者,setRollbackOnly()可以回滾Action造成的transaction。

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

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

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

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

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

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

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

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

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

    AbstractWorkflow類是workflow接口的最基本的實現(xiàn)。

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

    返回當(dāng)前可以執(zhí)行的Ation。

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

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

    設(shè)置工作流配置方法。

    3.public Configuration getConfiguration()方法:

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

    4.public List getCurrentSteps(long id):

    獲得工作流當(dāng)前所在步驟。

    5.public int getEntryState(long id):

    獲得工作流的狀態(tài)。

    6.public List getHistorySteps(long id)

    獲得工作流的歷史步驟。

    7. public Properties getPersistenceProperties()

    獲得設(shè)置的持久化參數(shù)。

    8.public PropertySet getPropertySet(long id)

    得到工作流的PropertySet,調(diào)用store中的方法。

    9.public List getSecurityPermissions(long id)

    得到工作流當(dāng)前Step的permissions。

    10.public WorkflowDescriptor getWorkflowDescriptor(String workflowName)

    得到工作流的定義。

    11.public String getWorkflowName(long id)

    根據(jù)工作流實例返回工作流定義名。

    12. public String[] getWorkflowNames()

    返回系統(tǒng)中配置的所有工作流的名字。

    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是不是可以執(zhí)行。

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

    判斷工作流是不是可以轉(zhuǎn)換到指定狀態(tài)。

    • 不可以轉(zhuǎn)換到CREATED狀態(tài)。
    • CREATED,SUSPENDED可以轉(zhuǎn)換到ACTIVATED狀態(tài)。
    • ACTIVATED可以轉(zhuǎn)換到SUSPENDED狀態(tài)。
    • CREATED,ACTIVATED,SUSPENDED?可以轉(zhuǎn)換到KILLED狀態(tài)。

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

    轉(zhuǎn)換工作流狀態(tài)。

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

    執(zhí)行Action。

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

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

    調(diào)用工作流的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

    刪除已經(jīng)配置的工作流定義。

    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)

    返回可執(zhí)行的AutoActions。

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

    返回指定Step中可執(zhí)行的AutoActions。

    25.protected WorkflowStore getPersistence() throws StoreException

    返回配置的store。

    26.protected void checkImplicitFinish(long id) throws WorkflowException

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

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

    結(jié)束工作流實例,就是把改變流程實例的狀態(tài)并把當(dāng)前的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

    產(chǎn)生臨時變量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

    產(chǎn)生新的當(dāng)前Step。

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

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

    執(zhí)行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接口的默認(rèn)實現(xiàn),用于初始化系統(tǒng)的基本配置信息。
    1.public WorkflowDescriptor getWorkflow(String name) throws FactoryException
    根據(jù)工作流的定義名獲得工作流的定義。
    2.public WorkflowStore getWorkflowStore() throws StoreException
    獲得配置的持久化類Store。
    3.public void load(URL url) throws FactoryException
    裝載配置信息。
    • 得到配置文件流,并解析。
    • 獲得持久化信息,包括持久化類的路徑和持久化類初始化參數(shù)。
    • 獲得工作流信息解析類路徑,并初始化。

    4. public WorkflowStore getWorkflowStore() throws StoreException

    獲得工作流初始化類。

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

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

    評論:
    # re: osworkflow代碼分析 2008-11-22 07:50 | 慕娉婷
    頂一下。  回復(fù)  更多評論
      
    本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
    主站蜘蛛池模板: 久久久久免费看黄a级试看| 国内精品一级毛片免费看| 日本高清色本免费现在观看| 国产亚洲男人的天堂在线观看 | 亚洲色无码专区一区| 在线观看91精品国产不卡免费| 一个人看www免费高清字幕| 国产AV无码专区亚洲AV男同| 国产成人精品免费视频网页大全 | 亚洲成人免费网站| 无码人妻久久一区二区三区免费| 亚洲精品午夜视频| 亚洲国产精品无码久久青草| 久久综合国产乱子伦精品免费| 亚洲妇女无套内射精| 亚洲精品无码高潮喷水在线| 好男人www免费高清视频在线 | 女人张腿给男人桶视频免费版| 人体大胆做受免费视频| 亚洲最大黄色网址| 亚洲电影日韩精品| av免费不卡国产观看| 一级毛片免费一级直接观看| 亚洲av永久综合在线观看尤物| 亚洲性久久久影院| 无人在线观看免费高清视频| 国产性生大片免费观看性| 日韩亚洲不卡在线视频中文字幕在线观看 | 亚洲首页在线观看| 亚洲精品国自产拍在线观看| 免费精品国产日韩热久久| 国产做国产爱免费视频| 狠狠色伊人亚洲综合网站色| 国产亚洲AV无码AV男人的天堂 | 亚洲视频一区网站| 亚洲精品麻豆av| 毛片免费观看的视频在线| 污污网站18禁在线永久免费观看| 成人免费观看男女羞羞视频| 亚洲综合激情五月丁香六月| 亚洲天堂中文字幕|