AEM には、ワークフローモデルを作成し、ワークフローステップを開発し、プログラムによってワークフローとやり取りするためのツールやリソースが用意されています。
ワークフローにより、AEM 環境でリソースを管理し、コンテンツを公開するプロセスを自動化できます。ワークフローは一連のステップで構成され、ステップごとに個別のタスクが実行されます。ロジックとランタイムデータを使用して、いつプロセスを続行できるかを判断し、実行可能な複数のステップのうち 1 つを次のステップとして選択できます。
例えば、Web ページを作成および公開するビジネスプロセスには、様々な参加者による承認やサインオフのタスクが伴います。AEM ワークフローを使用してこれらのプロセスをモデル化し、特定のコンテンツに適用できます。
重要な要素については以降で説明しますが、詳しい説明は次のページを参照してください。
参考情報:
WorkflowModel
は、ワークフローの定義(モデル)を表します。WorkflowNodes
とWorkflowTransitions
で作られます。 トランジションはノードを接続し、フローを定義します。 モデルには常に開始ノードと終了ノードがあります。
ワークフローモデルはバージョン管理されます。ワークフローのインスタンスを実行すると、ワークフローのランタイムモデルが使用(および保持)されます(ワークフローが開始されたときに利用可能になります)。
ランタイムモデルは、ワークフローモデルのエディターで同期が実行されたときに作成されます。
発生するワークフローモデル、または生成されたランタイムモデルに対する編集(**の後)は、そのインスタンスに適用されません。
実行されるステップは、ランタイムモデルで定義されたものとなります。ランタイムモデルは、ワークフローモデルのエディターで同期が実行されたときに生成されます。
その時点より後にワークフローモデルが変更されても(同期を実行しない限り)、ランタイムインスタンスにその変更が反映されることはありません。変更後に作成されたランタイムモデルのみに、その変更が反映されます。例外は、基になる ECMA スクリプトです。このスクリプトは一度だけ実行されるので、スクリプトに対する変更が取り込まれます。
各ステップは個別のタスクを実行します。ワークフローステップには、様々な種類があります。
すべての手順で、次の共通のプロパティを共有します。Autoadvance
とTimeout
の警告(スクリプト可能)。
WorkflowTransition
は、WorkflowModel
の2つのWorkflowNodes
の間のトランジションを表します。
WorkItem
は、WorkflowModel
のWorkflow
インスタンスを通して渡される単位です。 インスタンスの動作対象となるWorkflowData
と、基になるワークフロー手順を説明するWorkflowNode
への参照が含まれます。
WorkItems
を同時に持つことができます。WorkItem
はワークフローインスタンスを参照します。WorkItem
はワークフローインスタンスの下に保存されます。ワークフローに沿って前に移動する必要があるリソースを参照します。
ペイロードの実装は、リポジトリ内のリソースを(パス、UUID、URL またはシリアル化された Java オブジェクトによって)参照します。リポジトリ内のリソースの参照は、柔軟性に富み、Sling を併用すると生産性が向上します。例えば、参照されたノードをフォームとしてレンダリングできます。
(対応するワークフローモデルを選択し、ペイロードを定義して)新しいワークフローを起動したときに作成され、終了ノードが処理されたときに終了します。
ワークフローインスタンスでは、次の操作を実行できます。
完了または強制終了したインスタンスはアーカイブされます。
各ユーザーアカウントには、割り当てられたWorkItems
にアクセスできる独自のワークフローインボックスがあります。
WorkItems
は、ユーザーアカウントに直接割り当てられるか、またはユーザーが属するグループに割り当てられます。
ワークフローモデルコンソールを見てわかるように、ワークフローには次のように様々なタイプがあります。
デフォルト
標準AEMインスタンスには、標準搭載されたワークフローが含まれています。
カスタムワークフロー(コンソールにインジケーターは表示されません)
これらは、新規に作成したワークフロー、またはカスタマイズがオーバーレイされた標準搭載のワークフローから作成されたです。
レガシー
AEMの以前のバージョンで作成されたワークフロー。 アップグレード時に保持したり、以前のバージョンからワークフローパッケージとしてエクスポートしてから、新しいバージョンにインポートしたりできます。
標準ワークフローは、実行中にランタイム(履歴)情報を保存します。このような履歴を保持したくない場合は、ワークフローモデルを「一時的」なものとして定義することができます。このモデルは、情報の保持に使用される時間やリソースが節約または回避されるので、パフォーマンスチューニングに使用されます。
一時的ワークフローは、次のようなワークフローに使用できます。
一時的ワークフローは、アセットを大量に読み込むときのための機能です。このような場合、アセット情報は重要ですが、ワークフローのランタイム履歴は重要ではありません。
詳しくは、一時的ワークフローの作成を参照してください。
ワークフローモデルに「一時的」というフラグを設定しても、次のようなシナリオでは引き続きランタイム情報が保持されます。
一時的ワークフロー内では、ステップに移動を使用しないでください。
これは、Goto StepがSlingジョブを作成してgoto
ポイントでワークフローを続行するためのものです。 これにより、ワークフローを一時的にする目的が損なわれ、ログファイルにエラーが生成されます。
一時的ワークフローで判断をおこなうには、OR 分割を使用できます。
一時的ワークフローがアセットのパフォーマンスに与える影響について詳しくは、アセットのベストプラクティスを参照してください。
ワークフローモデルに対してMulti Resource Supportをアクティブにすると、複数のリソースを選択した場合でも、単一のワークフローインスタンスが開始されます。これらはパッケージとして添付されます。
ワークフローモデルのマルチリソースのサポートをアクティベートせずに複数のリソースを選択した場合、各リソースに対して個別のワークフローインスタンスが起動します。
詳しくは、マルチリソースのサポートのためのワークフローの設定を参照してください。
ワークフローステージは、タスクを処理するときにワークフローの進行状況を確認するのに役立ちます。ワークフローステージを使用すると、ワークフローがどの処理段階にあるのかについて概要を示すことができます。ユーザーは、ワークフローを実行すると、(個々のステップとは対照的に)ステージで表される進行状況を確認できます。
個々のステップ名は具体的で技術的な名前にすることができるので、ステージ名を定義して、ワークフローの進行状況の概念的な表示を提供できます。
例えば、6 つのステップと 4 つのステージがあるワークフローの場合は次のようになります。
(ワークフローの進行状況を表示する)ワークフローステージを設定し、ワークフローの各ステップに適切なステージを割り当てることができます。
ステップ名 | ステージ(ステップに割り当て) |
---|---|
手順 1 | 作成 |
ステップ 2 | 作成 |
ステップ 3 | レビュー |
ステップ 4 | 承認 |
ステップ 5 | 完了 |
ステップ 6 | 完了 |
ワークフローが実行されると、ユーザーは進行状況を(ステップ名ではなく)ステージ名に照らして確認できます。ワークフローの進行状況は、インボックスに一覧表示されている作業項目](/docs/experience-manager-64/sites-authoring/workflows-participating.html?lang=ja#opening-a-workflow-item-to-view-details-and-take-actions)のタスクの詳細ウィンドウの「[WORKFLOW INFO」タブに表示されます。
一般的には、ワークフローは AEM でのフォーム送信の処理に使用されます。これは、標準のAEMインスタンスで使用できるコアコンポーネントフォームコンポーネント、またはAEM Formsソリューションで使用できます。
新しいフォームの作成時に、フォームの送信を簡単にワークフローモデルに関連付けることができます。これにより、例えばコンテンツをリポジトリの特定の場所に格納したり、ユーザーにフォームの送信とその内容について通知したりすることができます。
ワークフローは、翻訳プロセスの重要な要素でもあります。