2

PHPで記述されたワークフローエンジンを探し、ezコンポーネントのワークフロークラス(http://ezcomponents.org/docs/api/latest/introduction_Workflow.html)を見つけました。例を使用した後、(一般的な)ワークフロー機能の理解に関して2つの一般的な問題があります。

1.)一般的なワークフローを定義した場合(たとえば、レビュー後に記事を公開する場合)–投稿された各記事は、実際に私の一般的な公開ワークフローの新しい「インスタンス」を開始します。これは正しいですか?または、同じワークフローが多くの異なる記事/データセットに使用されている場合、どのように処理しますか?

2.)基本アプリケーションはワークフローコンポーネントとどのように連携する必要がありますか?公開プロセスで記事をレビューする必要のある人に電子メールを送信する必要がある場合–この電子メールを送信するためのコードはどこに配置されていますか?ワークフローで直接電子メールを送信するのは正しいアプローチですか?たとえば、WorkflowServiceObjectのexecute-methodでですか?または、アプリケーションコードに配置されたばかりの電子メールの送信(記事を保存した後、または記事の状態を設定した後)で、ワークフローの状態を電子メールの送信後に次のノード/レベルに設定する必要がありますか?

いくつかの答えをありがとう(そして私の悪い英語をお詫びします;-))!

ティモ

4

1 に答える 1

1

私もeZcワークフローの初心者ですが、少なくとも私も助けられると思います。

  1. eZコンポーネントワークフローでは、最初にezcWorkflowDatabaseDefinitionStorageクラスを使用してワークフロー定義をデータベースに保存する必要があることは明らかです。すべての記事に対してインスタンスを開始する必要があると述べたように、すべての記事に対してezcWorkflowDatabaseExecutionによってワークフローの実行を開始する必要があります。しかし、記事がたくさんあるときにすべてのインスタンスを追跡するにはどうすればよいですか?ワークフローが機能しているエンティティがあります。ここではエンティティが記事であるため、記事をワークフローインスタンスにリンクする必要があります。たとえば、記事にワークフローインスタンスのIDを含めることができます。
  2. メールの送信などを行う場合は、WorkflowServiceObjectを使用する必要があります。ワークフローの1つのノードで何かを行う場合は、ezcWorkflowNodeActionを使用て、ezcWorkflowServiceObjectベースのクラスを指定します。

もう1つ、質問のサンプルでしたが、ユーザーサービスプロセスでメールを送信するのは良い考えではありません。メールをキューに入れてcronジョブを実行することをお勧めします。スケジュールされたプロセスでキューから電子メールを送信します。

于 2012-10-18T17:18:50.843 に答える