手順
各ステップは個別のタスクを実行します。ワークフローステップには、様々なタイプがあります。
- 参加者(ユーザー/グループ):このステップでは、作業項目が生成されて、ユーザーまたはグループに割り当てられます。ユーザーは作業項目を完了して、ワークフローを進める必要があります。
- プロセス(スクリプト、Java™ メソッド呼び出し):このステップは自動的に実行されます。ECMA スクリプトまたは Java™ クラスでステップが実装されます。特別なワークフローイベントをリッスンしビジネスロジックに従ってタスクを実行するように、サービスを開発できます。
- コンテナ(サブワークフロー):このタイプのステップは別のワークフローモデルを開始します。
- OR 分岐/結合:ロジックを使用して、ワークフローで次に実行するステップを決定します。
- AND 分岐/結合:複数のステップを同時に実行できます。
すべてのステップは、Autoadvance
アラートと Timeout
アラート(スクリプトに対応)という共通のプロパティを共有します。
トランジション
WorkflowTransition
は、WorkflowModel
の 2 つの WorkflowNodes
間のトランジションを表します。
- これは、2 つの連続したステップ間のリンクを定義します。
- ルールを適用することができます。
WorkItem
WorkItem
は、WorkflowModel
の Workflow
インスタンスを通じて渡される単位です。WorkItem には、インスタンスが作用する WorkflowData
と、基になるワークフローステップを記述する WorkflowNode
への参照が含まれます。
- タスクを識別するために使用され、それぞれのインボックスに入れられます。
- ワークフローインスタンスは、同時に 1 つまたは複数の
WorkItems
を持つことができます(ワークフローモデルによって異なります)。 WorkItem
はワークフローインスタンスを参照します。- リポジトリでは、
WorkItem
はワークフローインスタンスの下に格納されます。
ペイロード
ワークフローに沿って進める必要があるリソースを参照します。
ペイロードを実装する際は、リソースをリポジトリ内で(パス、UUID、URL を使用して)参照するか、シリアル化された Java™ オブジェクトで参照します。リポジトリ内のリソースは柔軟に参照でき、Sling を使用すると生産的です。例えば、参照先のノードをフォームとしてレンダリングできます。
ライフサイクル
新しいワークフローの開始時に(各ワークフローモデルを選択し、ペイロードを定義すると)作成され、終了ノードが処理されると終了します。
ワークフローインスタンスでは、次のアクションが可能です。
- 終了
- 休止
- 再開
- やり直し
完了したインスタンスと強制終了されたインスタンスはアーカイブされます。
インボックス
各ユーザーアカウントは、固有のワークフローインボックスを持ち、そこから割り当てられた WorkItems
にアクセスできます。
WorkItems
は、ユーザーアカウントに直接割り当てられるか、ユーザーが属するグループに割り当てられます。
ワークフローのタイプ
ワークフローモデルコンソールに示されているように、ワークフローには次のような様々なタイプがあります。
-
デフォルト
標準の AEM インスタンスに含まれるデフォルトのワークフローです。
-
カスタムワークフロー(インジケーターはコンソールに表示されません)
これらのワークフローは、新規作成されたか標準のワークフローから作成されており、カスタマイズを適用してオーバーレイされています。
-
レガシー
AEM の旧バージョンで作成されたワークフローです。これらのワークフローは、アップグレード中に保持することも、以前のバージョンからワークフローパッケージとして書き出した後で新しいバージョンに読み込むこともできます。
一時的ワークフロー
標準ワークフローは、実行中にランタイム(履歴)情報を保存します。このような履歴を保持したくない場合は、ワークフローモデルを「一時的」なものとして定義することができます。このワークフローは、情報の保持に要する時間とリソースを節約するため、パフォーマンスの調整に使用されます。
一時的ワークフローは、次のワークフローに使用できます。
- 頻繁に実行される。
- ワークフローの履歴が必要ない。
一時的ワークフローは、アセットを大量に読み込むための機能です。このような場合、アセット情報は重要ですが、ワークフローのランタイムの履歴は重要ではありません。
- 外部の手順がないと処理できないペイロードタイプ(ビデオなど)である場合。 このような場合、ステータスを確認するためにランタイム履歴が必要になります。
- ワークフローが AND 分岐 に入っている場合。このような場合、ステータスを確認するためにランタイム履歴が必要になります。
- 一時的ワークフローが参加者ステップに入ると、実行時にモードが非一時的なワークフローに変更されます。タスクが別のユーザーに渡されるので、履歴を保持する必要があります。
goto
ポイントで続行するためです。これにより、ワークフローを一時的にする目的が損なわれ、ログファイルにエラーが生成されます。