• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    數據對象與狀態控制邏輯分離系統和方法技術方案

    技術編號:8532526 閱讀:223 留言:0更新日期:2013-04-04 15:21
    本發明專利技術提供了一種數據對象與狀態控制邏輯分離系統,包括:關聯單元,將數據對象與狀態管理器中的狀態數據通過綁定進行關聯,狀態數據包括狀態類型以及對應于狀態類型的控制邏輯;狀態管理器,在將針對數據對象執行活動時,根據與活動的當前狀態對應的控制邏輯,判斷活動是否允許被執行,以及在接收到執行單元的通知時,將數據對象的原狀態切換至目標狀態,在狀態管理器切換數據對象的狀態后,更新數據對象的狀態屬性;執行單元,在判斷出活動允許被執行時,執行活動,并在活動被執行結束后,向狀態管理器發送通知。本發明專利技術還提供了一種數據對象與狀態控制邏輯分離方法。通過本發明專利技術可實現數據對應于狀態控制邏輯的分離,提高設計和運行的靈活性。

    【技術實現步驟摘要】

    本專利技術涉及計算機
    ,具體而言,涉及一種數據對象與狀態控制邏輯分離系統和一種數據對象與狀態控制邏輯分離方法。
    技術介紹
    在數據處理流程和功能快速變化且持續改進的情況下,用戶期待在保持數據對象不變的情況下,支持更豐富的更靈活的控制邏輯實現,目前通用的實現方法有以下共同的特性1.使用枚舉類型描述狀態元數據;2.在設計態定義數據對象所引用的狀態數據;3.通過設計態定義每種狀態的控制邏輯代碼,控制針對數據對象的活動操作是否可執行;4.通過狀態機等手段定義針對數據對象的活動觸發的數據對象的狀態變更;5.數據對象元數據和狀態控制邏輯代碼,以及狀態機在編譯時進行關聯,數據對象元數據和狀態控制邏輯代碼,以及狀態機一般需要確定明確的對應關系。從上述特點中可以看出,相關技術雖然在一定程度上實現了數據對象和業務邏輯的分離,提高了開發效率和用戶體驗。但由于依賴代碼實現控制邏輯,這些技術仍存在以下一些不足1.數據對象和控制邏輯編程的并行開展存在限制。因為數據對象及其活動的控制邏輯依賴狀態的代碼在數據對象的活動開發時需要硬代碼在活動內部寫好,導致數據對象的活動的邏輯代碼和狀態元素緊密耦合,編寫數據對象業務邏輯代碼時,必須明確狀態的控制規則,從而編寫邏輯代碼;而狀態控制邏輯的更改,通常也需要同步修改代碼文件來實現,不能很好地達到支持數據對象的控制邏輯與狀態控制邏輯分離,并行實現,不產生相互影響的目的。2.在企業管理軟件中,經常會有根據不同用戶定義不同的狀態,狀態控制邏輯和轉換邏輯,現有技術在運行期間,不能很好地支持狀態控制邏輯的擴展。因此,需要一種新的數據對象與狀態控制邏輯分離技術,不需要修改數據對象及其活動的邏輯代碼,就可實現數據對象和活動與控制邏輯相分離的目的。
    技術實現思路
    本專利技術正是基于上述問題,提出了一種新的數據對象與狀態控制邏輯分離技術,不需要修改數據對象及其活動的邏輯代碼,就可實現數據對象和活動與控制邏輯相分離的目的。有鑒于此,根據本專利技術的一個方面,提供了一種數據對象與狀態控制邏輯分離系統,包括關聯單元,將所述數據對象與狀態管理器中的狀態數據通過綁定進行關聯,所述狀態數據包括狀態類型以及對應于所述狀態類型的控制邏輯,由狀態管理器管理所述狀態數據;所述狀態管理器,在將針對所述數據對象執行活動時,讀取所述數據對象的當前狀態,根據與所述當前狀態對應的控制邏輯,判斷所述活動是否允許被執行,以及在接收到來自執行單元的通知時,基于所述狀態數據將所述數據對象的原狀態切換至目標狀態,在所述狀態管理器切換所述數據對象的狀態后,將所述目標狀態的值傳送至所述數據對象,以更新所述數據對象的狀態屬性;所述執行單元,在判斷出所述活動允許被執行時,執行所述活動,并在所述活動被執行結束后,向所述狀態管理器發送通知。通過數據綁定為數據對象和狀態數據之間提供數據同步的交互途徑。在數據對象元數據中指定綁定源和綁定路徑,元數據被加載并創建為數據對象后,控件可根據綁定上下文自動獲取綁定的數據,并在更改時同步更新綁定源。在上述技術方案中,優選的,所述執行單元還用于在將執行所述活動時,獲取所述數據對象的實例,并發出以所述實例作為參數的事件,以及在所述活動被執行結束后,發出活動完成事件;所述狀態管理器還用于監聽所述事件,并調用狀態校驗方法判斷所述活動是否允許被執行,以及監聽所述活動完成事件,調用狀態轉換方法執行狀態轉換過程。在上述技術方案中,優選的,所述狀態管理器還用于按照與所述活動對應的插件規范,將與所述數據對象對應的狀態控制邏輯處理成一個插件,并將所述插件注冊至所述活動的插件列表中,所述插件包括校驗插件和狀態切換插件;所述執行單元在將執行所述活動時,獲取所述數據對應的實例,調用所述校驗插件對所述活動進行校驗,在校驗通過時,執行所述活動,在所述活動執行結束時,調用所述狀態切換插件,執行狀態切換。在上述技術方案中,優選的,所述執行單元還用于在所述活動內部編寫狀態校驗方法和狀態切換方法的代碼,在針對所述數據對象執行所述活動時,調用所述狀態管理器的狀態校驗方法,在校驗通過時,執行所述活動,以及在所述活動執行結束時,調用所述狀態管理器的狀態切換方法,執行狀態切換。因此,通過上述技術方案,在實現狀態管理器的基礎上,數據處理通過事件處理或插件機制或服務調用,將數據對象和狀態管理器建立邏輯關聯。在執行活動時,自動獲取數據對象的當前狀態值,執行前通知狀態管理器校驗活動是否可執行,活動執行完成后通知狀態管理器切換當前狀態,狀態管理器切換當前狀態后,綁定機制通知數據對象狀態已更改,并自動傳送最新狀態值,然后刷新數據對象的狀態屬性。在上述任一技術方案中,優選的,所述狀態管理還用于在接收到更新請求時,根據所述更新請求擴展、修改和/或新建所管理的狀態數據。狀態管理器中的狀態集合、狀態控制項集合和狀態轉換控制項集合支持根據實際需要在運行時動態擴展和修改或新建,以支持實際流程對于狀態的靈活配置。根據本專利技術的另一方面,還提供了一種數據對象與狀態控制邏輯分離方法,包括步驟802,將所述數據對象與狀態數據通過綁定進行關聯,所述狀態數據包括狀態類型以及對應于所述狀態類型的控制邏輯,由狀態管理器管理所述狀態數據;步驟804,在將針對所述數據對象執行活動時,所述狀態管理器管理讀取所述數據對象的當前狀態,根據與所述當前狀態對應的控制邏輯,判斷所述活動是否允許被執行;步驟806,在判斷出所述活動允許被執行時,執行所述活動,并在所述活動被執行結束后,通知所述狀態管理器基于所述狀態數據將所述數據對象的原狀態切換至目標狀態;步驟808,在所述狀態管理器切換所述數據對象的狀態后,將所述目標狀態的值傳送至所述數據對象,以更新所述數據對象的狀態屬性。通過數據綁定為數據對象和狀態數據之間提供數據同步的交互途徑。在數據對象元數據中指定綁定源和綁定路徑,元數據被加載并創建為數據對象后,控件可根據綁定上下文自動獲取綁定的數據,并在更改時同步更新綁定源。在上述技術方案中,優選的,所述步驟804具體包括在將執行所述活動時,獲取所述數據對象的實例,并發出以所述實例作為參數的事件,所述狀態管理器監聽所述事件,并調用狀態校驗方法判斷所述活動是否允許被執行;所述步驟806具體包括在所述活動被執行結束后,發出活動完成事件,所述狀態管理器監聽所述活動完成事件,調用狀態轉換方法執行狀態轉換過程。在上述技術方案中,優選的,所述步驟804具體包括所述狀態管理器按照與所述活動對應的插件規范,將與所述數據對象對應的狀態控制邏輯處理成一個插件,并將所述插件注冊至所述活動的插件列表中,所述插件包括校驗插件和狀態切換插件,在將執行所述活動時,獲取所述數據對應的實例,調用所述校驗插件,在校驗通過時,執行所述活動;所述步驟806具體包括在所述活動執行結束時,調用所述狀態切換插件,執行狀態切換。在上述技術方案中,優選的,所述步驟804具體包括在所述活動內部編寫狀態校驗方法和狀態切換方法的代碼,在針對所述數據對象執行所述活動時,調用所述狀態管理器的狀態校驗方法,在校驗通過時,執行所述活動;所述步驟808具體包括在所述活動執行結束時,調用所述狀態管理器的狀態切換方法,執行狀態切換。因此,通過上述技術方案,在實現狀態管理器的基礎上,數據處理通過事件處理或本文檔來自技高網
    ...

    【技術保護點】
    一種數據對象與狀態控制邏輯分離系統,其特征在于,包括:關聯單元,將所述數據對象與狀態管理器中的狀態數據通過綁定進行關聯,所述狀態數據包括狀態類型以及對應于所述狀態類型的控制邏輯,由狀態管理器管理所述狀態數據;所述狀態管理器,在將針對所述數據對象執行活動時,讀取所述數據對象的當前狀態,根據與所述當前狀態對應的控制邏輯,判斷所述活動是否允許被執行,以及在接收到來自執行單元的通知時,基于所述狀態數據將所述數據對象的原狀態切換至目標狀態,在所述狀態管理器切換所述數據對象的狀態后,將所述目標狀態的值傳送至所述數據對象,以更新所述數據對象的狀態屬性;所述執行單元,在判斷出所述活動允許被執行時,執行所述活動,并在所述活動被執行結束后,向所述狀態管理器發送通知。

    【技術特征摘要】
    1.一種數據對象與狀態控制邏輯分離系統,其特征在于,包括 關聯單元,將所述數據對象與狀態管理器中的狀態數據通過綁定進行關聯,所述狀態數據包括狀態類型以及對應于所述狀態類型的控制邏輯,由狀態管理器管理所述狀態數據; 所述狀態管理器,在將針對所述數據對象執行活動時,讀取所述數據對象的當前狀態,根據與所述當前狀態對應的控制邏輯,判斷所述活動是否允許被執行,以及在接收到來自執行單元的通知時,基于所述狀態數據將所述數據對象的原狀態切換至目標狀態,在所述狀態管理器切換所述數據對象的狀態后,將所述目標狀態的值傳送至所述數據對象,以更新所述數據對象的狀態屬性; 所述執行單元,在判斷出所述活動允許被執行時,執行所述活動,并在所述活動被執行結束后,向所述狀態管理器發送通知。2.根據權利要求1所述的數據對象與狀態控制邏輯分離系統,其特征在于,所述執行單元還用于在將執行所述活動時,獲取所述數據對象的實例,并發出以所述實例作為參數的事件,以及在所述活動被執行結束后,發出活動完成事件; 所述狀態管理器還用于監聽所述事件,并調用狀態校驗方法判斷所述活動是否允許被執行,以及監聽所述活動完成事件,調用狀態轉換方法執行狀態轉換過程。3.根據權利要求1所述的數據對象與狀態控制邏輯分離系統,其特征在于,所述狀態管理器還用于按照與所述活動對應的插件規范,將與所述數據對象對應的狀態控制邏輯處理成一個插件,并將所述插件注冊至所述活動的插件列表中,所述插件包括校驗插件和狀態切換插件; 所述執行單元在將執行所述活動時,獲取所述數據對應的實例,調用所述校驗插件對所述活動進行校驗,在校驗通過時,執行所述活動,在所述活動執行結束時,調用所述狀態切換插件,執行狀態切換。4.根據權利要求1所述的數據對象與狀態控制邏輯分離系統,其特征在于,所述執行單元還用于在所述活動內部編寫狀態校驗方法和狀態切換方法的代碼,在針對所述數據對象執行所述活動時,調用所述狀態管理器的狀態校驗方法,在校驗通過時,執行所述活動,以及在所述活動執行結束時,調用所述狀態管理器的狀態切換方法,執行狀態切換。5.根據權利要求1至4中任一項所述的數據對象與狀態控制邏輯分離系統,其特征在于,所述狀態管理還用于在接收到更新請求時,根據所述更新請求擴展、修改和/或新建所管理的狀態數據。6.一種數據對象...

    【專利技術屬性】
    技術研發人員:喬洪昌羅濤,
    申請(專利權)人:用友軟件股份有限公司,
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 精品无码久久久久国产| 亚洲中文字幕无码专区| 无码人妻精品一区二区三区久久| 国产成人A人亚洲精品无码| 亚洲中文无码av永久| 亚洲av无码不卡私人影院| 久久久久亚洲精品无码网址| 精品无码成人片一区二区98 | 国产精品va无码一区二区| 无码中文av有码中文a| 亚洲av中文无码乱人伦在线咪咕 | 亚洲精品~无码抽插| 亚洲AV无码一区二区三区电影| 国产精品无码a∨精品| 亚洲AV永久无码精品一区二区国产| 精品无码一区二区三区爱欲 | 无码少妇一区二区浪潮av| 精品无码一区二区三区亚洲桃色| 自慰无码一区二区三区| 亚洲AV无码一区二区三区鸳鸯影院 | 亚洲av无码专区在线观看下载| 亚洲AV无码一区东京热久久| 亚洲Av无码乱码在线观看性色| 少妇无码AV无码专区线| 亚洲中文字幕无码久久2020 | 亚洲欧洲av综合色无码| 久久久久久亚洲av成人无码国产 | 无码精品一区二区三区| 亚洲av无码电影网| 日韩精品无码久久久久久| 精品无人区无码乱码毛片国产| 久久人午夜亚洲精品无码区| 无码丰满熟妇一区二区| 国产午夜无码福利在线看网站| 综合无码一区二区三区四区五区| 亚洲中文无码mv| 永久免费av无码网站大全| 天堂一区人妻无码| 亚洲免费日韩无码系列| 丰满熟妇人妻Av无码区| 久久久久久久亚洲Av无码|