ワークフローインスタンスの管理 administering-workflow-instances
ワークフローコンソールには、ワークフローインスタンスを管理し、それらが想定どおりに実行されていることを確認するための複数のツールが用意されています。
ワークフローの管理用に、次の各種コンソールが用意されています。グローバルナビゲーションを使用して ツール パネルを開き、その後「ワークフロー」を選択します。
- モデル:ワークフローの定義を管理します
- インスタンス:実行中のワークフローインスタンスを表示および管理します
- ランチャー:ワークフローの起動方法を管理します
- アーカイブ:正常に完了したワークフローの履歴を表示します
- 失敗:エラーで終了したワークフローの履歴を表示します
- 自動割り当て:テンプレートへの自動割り当てワークフローを設定します
ワークフローインスタンスのステータスの監視 monitoring-the-status-of-workflow-instances
-
ナビゲーションを使用して、ツール/ワークフロー を選択します。
-
「インスタンス」を選択して、現在進行中のワークフローインスタンスのリストを表示します。
ワークフローインスタンスの休止、再開および終了 suspending-resuming-and-terminating-a-workflow-instance
-
ナビゲーションを使用して、ツール/ワークフロー を選択します。
-
「インスタンス」を選択して、現在進行中のワークフローインスタンスのリストを表示します。
-
特定の項目を選択してから、適宜「終了」、「休止」、または「再開」を使用します。この際、確認または詳細(あるいはその両方)を求められます。
アーカイブされたワークフローの表示 viewing-archived-workflows
-
ナビゲーションを使用して、ツール/ワークフロー を選択します。
-
「アーカイブ」を選択して、正常に完了したワークフローインスタンスのリストを表示します。
note note NOTE 中止ステータスはユーザーアクションの結果として発生するので、正常終了と見なされます。例えば、次のような場合が当てはまります。 - 「終了」アクションが使用された場合
- ワークフローの対象となるページが(強制的に)削除されたことによって、ワークフローが終了した場合
-
特定の項目を選択し、「履歴を開く」で詳細を確認します。
ワークフローインスタンスのエラーの修正 fixing-workflow-instance-failures
ワークフローが失敗した場合、AEM の エラー コンソールを使用してエラーの原因を調べ、特定された原因に応じて適切なアクションを取ることができます。
-
エラーの詳細
ウィンドウが開き、エラーメッセージ、ステップ、エラースタック が表示されます。 -
履歴を開く
ワークフローの履歴の詳細を表示します。 -
ステップを再試行 - スクリプトステップコンポーネントのインスタンスをもう一度実行します。発生したエラーの原因を修正した後に「ステップを再試行」コマンドを使用します。例えば、プロセスステップが実行するスクリプトのバグを修正した後にステップを再試行します。
-
終了 - エラーにより解決できない問題がワークフローに発生した場合は、ワークフローを終了します。例えば、環境条件(リポジトリ内の情報がワークフローインスタンスで無効になったなど)にワークフローが依存している可能性がある場合などです。
-
終了して再試行 - 元のペイロード、タイトルおよび説明を使用して新しいワークフローインスタンスが開始される点を除き、終了 と同様です。
エラーを調査し、その後ワークフローを再開または停止するには、次のステップに従います。
-
ナビゲーションを使用して、ツール/ワークフロー を選択します。
-
「エラー」を選択して、正常に完了しなかったワークフローインスタンスのリストを表示します。
-
特定の項目を選択し、その後適切なアクションを選択します。
ワークフローインスタンスの定期的なパージ regular-purging-of-workflow-instances
ワークフローインスタンスの数を最小限に抑えるとワークフローエンジンのパフォーマンスが向上します。このため、完了したまたは実行中のワークフローインスタンスをリポジトリーから定期的に削除できます。
有効期間とステータスに応じてワークフローインスタンスをパージするように Adobe Granite のワークフローのパージ設定 を設定します。また、すべてのモデルまたは特定のモデルのワークフローインスタンスをパージすることもできます。
また、様々な条件を満たすワークフローインスタンスをパージするために、サービスの設定を複数作成することもできます。例えば、予想よりも実行時間が長い特定のワークフローモデルのインスタンスをパージする設定を作成します。さらに、リポジトリのサイズを最小限に抑えるために、特定の日数が経過した後に完了したワークフローをすべてパージするもう 1 つの設定を作成します。
サービスを設定するには、web コンソールを使用するか、リポジトリに OSGi 設定を追加することができます。次の表では、どちらの方法でも必要になるプロパティについて説明しています。
com.adobe.granite.workflow.purge.Scheduler
sling:OsgiConfig
ノードの名前には次のような ID サフィックスが必要です。com.adobe.granite.workflow.purge.Scheduler-myidentifier
インボックスの最大サイズの設定 setting-the-maximum-size-of-the-inbox
インボックスの最大サイズは、Web コンソールを使用して Adobe Granite Workflow Service を設定する、またはリポジトリに OSGi 設定を追加することで設定できます。次の表では、どちらの方法でも設定するプロパティについて説明しています。
com.adobe.granite.workflow.core.WorkflowSessionFactory
。顧客所有のデータストアに対するワークフロー変数の使用 using-workflow-variables-customer-datastore
ワークフローで処理されたデータは、アドビ提供のストレージ(JCR)に保存されます。このデータは、本来、機密性が高い可能性があります。ユーザー定義のメタデータ/データをすべて、アドビ提供のストレージではなく、ユーザー管理のストレージに保存することができます。以下の節では、これらの変数を外部ストレージ用に設定する方法について説明します。
メタデータの外部ストレージを使用するようにモデルの設定 set-model-for-external-storage
ワークフローモデルのレベルでは、モデル(およびそのランタイムインスタンス)にメタデータの外部ストレージが含まれていることを示すフラグが用意されています。外部ストレージ用にマークされたモデルのワークフローインスタンスに対するワークフロー変数は JCR に保持されません。
userMetadataPersistenceEnabled プロパティがワークフローモデルの jcr:content ノードに格納されます。このフラグは、ワークフローメタデータに cq:userMetaDataCustomPersistenceEnabled として保持されます。
以下の図は、ワークフローにフラグを設定する方法を示しています。
外部ストレージ内のメタデータの API apis-for-metadata-external-storage
変数を外部に保存するには、ワークフローで公開している API を実装します。
UserMetaDataPersistenceContext
次のサンプルは、API の使用方法を示しています。
@ProviderType
public interface UserMetaDataPersistenceContext {
/**
* Gets the workflow for persistence
* @return workflow
*/
Workflow getWorkflow();
/**
* Gets the workflow id for persistence
* @return workflowId
*/
String getWorkflowId();
/**
* Gets the user metadata persistence id
* @return userDataId
*/
String getUserDataId();
}
UserMetaDataPersistenceProvider
/**
* This provider can be implemented to store the user defined workflow-data metadata in a custom storage location
*/
@ConsumerType
public interface UserMetaDataPersistenceProvider {
/**
* Retrieves the metadata using a unique identifier
* @param userMetaDataPersistenceContext
* @param metaDataMap of user defined workflow data metaData
* @throws WorkflowException
*/
void get(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;
/**
* Stores the given metadata to the custom storage location
* @param userMetaDataPersistenceContext
* @param metaDataMap metadata map
* @return the unique identifier that can be used to retrieve metadata. If null is returned, then workflowId is used.
* @throws WorkflowException
*/
String put(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;
}