2010-06-27 151 views
2

我找了一個用php編寫的工作流引擎,找到了ez組件工作流程類(http://ezcomponents.org/docs/api/latest/introduction_Workflow.html)。在處理完例子之後,我對理解(一般)工作流程功能有兩個一般問題:一般工作流程 - 問題/ ez組件工作流程

1.)如果我定義了一個通用工作流程(例如,在審閱後發佈文章) - 每個發佈文章實際上啓動了我的通用發佈工作流程的新「實例」。這是正確的嗎?或者,當同一個工作流程用於許多不同的文章/數據集時,我該如何處理?

2.)基礎應用程序如何與工作流程組件配合使用?如果在發佈過程中,電子郵件必須發送給必須查看文章的人員 - 發送此電子郵件的代碼放在哪裏?在工作流中直接發送電子郵件是否正確,例如在WorkflowServiceObject的execute-method中?還是發送剛剛放在應用程序代碼中的電子郵件(在保存文章或設置文章的狀態之後)以及發送電子郵件之後工作流的狀態必須設置爲下一個節點/級別?

感謝您的一些答案(對不起,我的英語不好;-))!

蒂莫

回答

1

我也有新的工作流程EZC但是我想我可以幫助,至少我想也是。

  1. 在的eZ組件的工作流程首先很顯然,你需要使用ezcWorkflowDatabaseDefinitionStorage類來保存您的工作流定義到數據庫中,你必須ezcWorkflowDatabaseExecution,開始您的工作流程執行的每一篇文章,你說你有爲每篇文章啓動一個實例。但是當你有很多文章時如何跟蹤每一個實例? 您有一個工作流正在處理的實體,這裏您的實體是您的文章,因此您需要將文章鏈接到您的工作流實例,例如您的文章可以包含您的工作流實例的標識。
  2. 當過你想要做的事如發送電子郵件或者......你需要使用WorkflowServiceObject那麼當每次我們想要做的東西在工作流程的一個節點,我們使用ezcWorkflowNodeAction,並給它一個基於ezcWorkflowServiceObject類。

還有一件事,我知道是你的問題中的一個例子,但讓我說,在用戶服務過程中發送電子郵件並不是一個好主意,最好是將電子郵件放在隊列中並有一個cron作業來按預定進程從隊列中發送電子郵件。