php工作流多人審批開源源碼的簡單介紹

本文目錄一覽:

osworkflow怎麼實現多用戶審批

Osworkflow是完全用java語言編寫的開放源代碼的工作流引擎,具有顯著的靈活性及完全面向有技術背景的用戶的特點。用戶可以根據自身的需求利用這款開源軟件設計簡單或是複雜的工作流。通過使用,用戶就可以把工作中心放在業務和規則的定義上,而不需通過硬編碼的方式實現一個Petri網或是一個有窮自動機。用戶可以以最小的代價把osworkflow整合到自己的程序中來。Osworkflow幾乎提供了所有用戶可能在實際流程定義中需要用到的工作流構成元素,如:環節(step)、條件(conditions)、循環(loops)、分支(spilts)、合併(joins)、角色(roles)等等。

首先,在osworkflow中需要了解得最重要的概念是環節,每個工作流包含了多個環節,可以把環節想象成工作流中每一個重要的活動。每個環節可以有一些諸如“已完成”、“正在處理”、“已添加至處理隊列”、“未處理”等的狀態,設計工作流的人可以根據需要自己定義狀態。

在每個環節,動作被用戶指定為自動或手動地執行。每個動作執行後,都有一個結果(result)。結果決定了工作流的流轉方向:可以停留在同一環節,跳轉到另一環節,跳轉到一個分支,或者彙集到一個合併等。

最後兩個概念涉及用戶對業務流程的並發執行,分支把工作流分解為兩個並行的環節,合併則在用戶滿足一定條件後,把兩個並行的環節合併成一個。

動作的執行代表了業務流程的執行,每個動作都有一組預處理功能(pre-functions)和一組後處理功能(post-functions)。其作用正如讀者想象的那樣,一個在動作觸發之前執行,一個在動作觸發之後執行。一個簡單的例子是:可以在預處理功能中檢驗申請表格數據的正確性,而後在後處理貢功能中把經檢驗的數據保存至數據庫。

動作的執行結果可以是有條件的(conditional)或無條件的(unconditional)。對於有條件的結果,引擎將首先檢查是否條件被滿足,然後再交給工作流來處理。如果條件不滿足的話,引擎將進一步判斷下一個有條件結果是否得到滿足,以此類推,直到系統最終執行到無條件結果進行處理。

如果所有的條件結果都沒有得到滿足會如何呢?事實上,每個動作都強制要求具有唯一一個無條件結果。與此對應的,可以有多個有條件的結果。

業務規則常常在最終結果中帶有條件判斷,比如,“如果申請來自於一個老客戶,則流轉到環節1”或者“如果當前系統的用戶的角色是經理的話,直接流轉道最後一個環節”。

最後一個重要的概念是步驟狀態(process state),在osworkflow中,當前步驟狀態是所有當前環節狀態的集合。讀者可能會認為工作流在運行過程中只能有一個狀態,但現實的情況是:因為對分支和合併的支持,引擎能夠做到對環節的並發控制,因此工作流的當前狀態就可能出現:“等待風險分析及已核查財務歷史”的情況。

激活動作的用戶被順理成章地稱為觸發者(caller),每個環節都有一個所有者(owner),以代表在當前環節中負責執行動作的角色或用戶。

當用戶在環節中運轉流程的時候,已完成的環節被保存至歷史表中(history),用戶當前所處的環節成為當前環節(current steps)。

最後,在osworkflow中並不存在其他工作流引擎中所包含的工作項(workitem)的概念。這是因為osworkflow是“十分底層”的工作流實現,怎樣實現或定義工作項完全交由用戶來決定。筆者認為工作項的概念太過抽象,用業務數據來稱呼它或許更為貼切一些。

Osworkflow 的文檔中介紹了更多的構造元素,如寄存器(Registers),共用方法(common functions)等,但建議在建立好第一個工作流以後再去研究它們。它們是osworkflow基本元素外的高級特性,而我們前面所認識的元素則是 osworkflow的根本所在。

網上流傳的一下PHP開源系統的源代碼,我照抄他們的代碼會不會有法律問題

不會有問題,既然是網上流傳的,肯定是公共的。都流傳那麼長時間。如果有法律責任,早就追究的

基於thinkphp的開源項目(或者網站源碼)有哪些?

基於thinkphp的開源項目有thinksns,onethink,等

建議到在github上註冊一個賬戶,可以查看其開源的源碼

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/206780.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-08 14:17
下一篇 2024-12-08 14:17

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • SDN開源組織中ONOS起步最早

    ONOS是一個開源軟件定義網絡(SDN)操作系統,由ON.Lab創建並一直在開發。該平台旨在通過使用網絡虛擬化技術使工程師能夠快速靈活地創建和管理網絡服務。 一、ONOS的優勢 在…

    編程 2025-04-29
  • GitHub好玩的開源項目

    本文旨在介紹GitHub上一些好玩的開源項目,並提供代碼示例供讀者參考和學習。 一、Emoji列表 GitHub上有一份完整的Emoji列表,它支持各種平台和設備,方便用戶在Git…

    編程 2025-04-28
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • 雲盤開源系統哪個好?

    本文將會介紹幾種目前主流的雲盤開源系統,從不同方面對它們做出分析比較,以此來確定哪個雲盤開源系統是最適合您的。 一、Seafile Seafile是一款非常出色的雲盤開源系統,它的…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28

發表回復

登錄後才能評論