一般工作流程 - 问题/ ez组件工作流程

时间:2010-06-27 08:41:54

标签: php workflow zeta-components

我找了一个用php编写的工作流引擎,找到了ez组件工作流类(http://ezcomponents.org/docs/api/latest/introduction_Workflow.html)。在使用这些示例后,我对(通用)工作流功能的理解存在两个常见问题:

1。)如果我已经定义了一般工作流程(例如,在审核后发布文章) - 每篇发布的文章实际上都启动了我的一般发布工作流程的新“实例”。这是正确的吗?或者,如果将相同的工作流用于许多不同的文章/数据集,我该如何处理?

2.。)基础应用程序如何与工作流程组件一起使用?如果在发布过程中,电子邮件必须发送给必须审阅该文章的人 - 其中是否有用于发送此电子邮件的代码?是直接在工作流中发送电子邮件的正确方法,例如在WorkflowServiceObject的execute-method中?或者发送电子邮件只是放在应用程序代码中(保存文章或设置文章的状态之后),工作流的状态是否必须在发送电子邮件后设置为下一个节点/级别?

感谢您的回答(抱歉我的英文不好; - ))!

蒂莫

1 个答案:

答案 0 :(得分:1)

我也是eZc工作流程的新手,但我想我可以提供帮助,至少我也希望如此。

  1. 首先,在eZ Components工作流程中,您需要使用 ezcWorkflowDatabaseDefinitionStorage 类将工作流程定义保存到数据库,对于您必须通过 ezcWorkflowDatabaseExecution ,正如你所说,你必须为每篇文章启动一个实例。但是当你有很多文章时如何跟踪每个实例? 您有一个工作流正在处理的实体,此处您的实体是您的文章,因此您需要将文章链接到工作流实例,例如您的文章可以包含工作流实例的ID。
  2. 当您想要发送电子邮件或......时,您需要使用 WorkflowServiceObject ,然后当我们想要在工作流的一个节点中执行某些操作时,我们使用 ezcWorkflowNodeAction 并为其提供 ezcWorkflowServiceObject 类。
  3. 另外一件事,我知道这是你问的一个例子,但是让我说,在用户服务流程中发送电子邮件并不是一个好主意,最好将电子邮件放在队列中并拥有一个cron job从预定进程中的队列发送电子邮件。