Общий рабочий процесс-вопрос / рабочий процесс компонентов ez - PullRequest
2 голосов
/ 27 июня 2010

Я искал движок рабочего процесса, написанный на php, и обнаружил, что классы рабочих процессов компонентов ez (http://ezcomponents.org/docs/api/latest/introduction_Workflow.html).) После работы с примерами у меня возникли две общие проблемы с пониманием (общих) функций рабочего процесса:

1.) Если я определил общий рабочий процесс (например, для публикации статьи после рецензирования) - каждая опубликованная статья фактически запускает новый «экземпляр» моего общего рабочего процесса публикации.Это правильно?Или как мне справиться с этим, когда один и тот же рабочий процесс используется для множества различных статей / наборов данных?

2.) Как базовое приложение должно работать с компонентом рабочего потока?Если в процессе публикации электронное письмо необходимо отправить человеку, который должен просмотреть статью, - где размещен код для отправки этого электронного письма?Это правильный подход для отправки электронной почты непосредственно в рабочем процессе, например, в методе execute в WorkflowServiceObject?Или отправка электронного письма только что помещена в код приложения (после сохранения статьи или установки состояния статьи) и состояние рабочего процесса должно быть установлено на следующий узел / уровень после отправки электронного письма?

Спасибо за ответ (и извините за мой плохой английский; -))!

Тимо

1 Ответ

1 голос
/ 18 октября 2012

Я также новичок в рабочем процессе eZc, но я думаю, что могу помочь, по крайней мере, я тоже желаю.

  1. Сначала в рабочем процессе компонентов eZ ясно, что вам нужно сохранить определение рабочего процесса в базе данных, используя ezcWorkflowDatabaseDefinitionStorage класс, для каждой статьи вы должны начать выполнение вашего рабочего процесса с помощью ezcWorkflowDatabaseExecution , поскольку вы сказали, что вам нужно запустить экземпляр для каждой статьи.Но как отслеживать каждый случай, когда у вас много статей?У вас есть сущность, над которой работает рабочий процесс, здесь ваша сущность - это ваша статья, поэтому вам нужно связать свою статью с вашим экземпляром рабочего процесса, например, ваша статья может иметь идентификатор вашего экземпляра рабочего процесса.
  2. Когда вымы хотим сделать что-то вроде отправки электронной почты или ... вам нужно использовать WorkflowServiceObject , а затем, когда каждый из нас хочет что-то сделать в одном узле рабочего процесса, мы используем ezcWorkflowNodeAction и присваиваем ему ezcWorkflowServiceObject основанный класс.

Еще одна вещь, я знаю, была примером в вашем вопросе, но позвольте мне сказать, что не очень хорошая идея отправлять электронную почту с помощью пользователя, обслуживающегоВ этом случае лучше поместить электронную почту в очередь и создать задание cron для отправки электронной почты из очереди в запланированном процессе.

...