ワークフローインスタンスの管理 administering-workflow-instances

ワークフローコンソールには、ワークフローインスタンスを管理し、それらが想定どおりに実行されていることを確認するための複数のツールが用意されています。

NOTE
JMX コンソールを使用すると、追加のワークフローメンテナンス操作を行うことができます。

ワークフローの管理用に、次の各種コンソールが用意されています。グローバルナビゲーションを使用して​ ツール ​パネルを開き、その後「ワークフロー」を選択します。

  • モデル:ワークフローの定義を管理します
  • インスタンス:実行中のワークフローインスタンスを表示および管理します
  • ランチャー:ワークフローの起動方法を管理します
  • アーカイブ:正常に完了したワークフローの履歴を表示します
  • 失敗:エラーで終了したワークフローの履歴を表示します
  • 自動割り当て:テンプレートへの自動割り当てワークフローを設定します

ワークフローインスタンスのステータスの監視 monitoring-the-status-of-workflow-instances

  1. ナビゲーションを使用して、ツールワークフロー ​を選択します。

  2. 選択 インスタンス 現在進行中のワークフローインスタンスのリストを表示できます。

    wf-96

ワークフローインスタンスの休止、再開および終了 suspending-resuming-and-terminating-a-workflow-instance

  1. ナビゲーションを使用して、ツールワークフロー ​を選択します。

  2. 選択 インスタンス 現在進行中のワークフローインスタンスのリストを表示できます。

    wf-96-1

  3. 特定の項目を選択してから、適宜「終了」、「休止」、または「再開」を使用します。この際、確認または詳細(あるいはその両方)を求められます。

    wf-97-1

アーカイブされたワークフローの表示 viewing-archived-workflows

  1. ナビゲーションを使用して、ツールワークフロー ​を選択します。

  2. 選択 アーカイブ 正常に完了したワークフローインスタンスのリストを表示できます。

    wf-98

    note note
    NOTE
    中止ステータスはユーザーアクションの結果として発生するので、正常終了と見なされます。例えば、次のような場合が当てはまります。
    • 終了」アクションが使用された場合
    • ワークフローの対象となるページが(強制的に)削除されると、ワークフローは終了します
  3. 特定の項目を選択し、「履歴を開く」で詳細を確認します。

    wf-99

ワークフローインスタンスのエラーの修正 fixing-workflow-instance-failures

ワークフローが失敗した場合、AEM の​ エラー ​コンソールを使用してエラーの原因を調べ、特定された原因に応じて適切なアクションを取ることができます。

  • エラーの詳細
    ウィンドウが開き、エラーメッセージステップエラースタック ​が表示されます。

  • 履歴を開く ​ワークフローの履歴の詳細を表示します。

  • ステップを再試行 — スクリプトステップコンポーネントインスタンスを再実行します。 発生したエラーの原因を修正した後に「ステップを再試行」コマンドを使用します。例えば、プロセスステップが実行するスクリプトのバグを修正した後にステップを再試行します。

  • 終了 — エラーが原因で解決できない問題がワークフローに発生した場合にワークフローを終了します。 例は、環境条件(リポジトリー内の情報がワークフローインスタンスで無効になったなど)にワークフローが依存している可能性がある場合です。

  • 終了して再試行 — に類似 終了 ただし、新しいワークフローインスタンスは、元のペイロード、タイトルおよび説明を使用して開始されます。

エラーを調査し、その後ワークフローを再開または停止するには、次のステップに従います。

  1. ナビゲーションを使用して、ツールワークフロー ​を選択します。

  2. 選択 失敗 そのため、正常に完了しなかったワークフローインスタンスのリストを表示できます。

  3. 特定の項目を選択し、その後適切なアクションを選択します。

    wf-47

ワークフローインスタンスの定期的なパージ regular-purging-of-workflow-instances

ワークフローインスタンスの数を最小限に抑えるとワークフローエンジンのパフォーマンスが向上します。このため、完了したまたは実行中のワークフローインスタンスをリポジトリーから定期的に削除できます。

有効期間とステータスに応じてワークフローインスタンスをパージするように Adobe Granite のワークフローのパージ設定 ​を設定します。また、すべてのモデルまたは特定のモデルのワークフローインスタンスをパージすることもできます。

また、様々な条件を満たすワークフローインスタンスをパージするために、サービスの設定を複数作成することもできます。例えば、特定のワークフローモデルが予想より長い時間実行されている場合に、そのインスタンスをパージする設定を作成します。 さらに、リポジトリーのサイズを最小限に抑えるために、特定の日数が経過した後に完了したワークフローをすべてパージするもう 1 つの設定を作成します。

サービスを設定するには、web コンソールを使用するか、リポジトリに OSGi 設定を追加することができます。次の表では、どちらの方法でも必要になるプロパティについて説明しています。

NOTE
リポジトリーに設定を追加する場合のサービス PID は次のとおりです。
com.adobe.granite.workflow.purge.Scheduler
このサービスはファクトリサービスなので、sling:OsgiConfig ノードの名前には次のような ID サフィックスが必要です。
com.adobe.granite.workflow.purge.Scheduler-myidentifier
プロパティ名(web コンソール)
OSGi のプロパティ名
説明
ジョブ名
scheduledpurge.name
スケジュール設定されたパージのわかりやすい名前。
ワークフローのステータス
scheduledpurge.workflowStatus

パージするワークフローインスタンスのステータス。次の値を指定できます。

  • 完了:完了したワークフローインスタンスがパージされます。
  • 実行中:実行中のワークフローインスタンスがパージされます。
パージするモデル
scheduledpurge.modelIds

パージするワークフローモデルの ID。この ID は model ノードのパスです(例:
/var/workflow/models/dam/update_asset
)。

複数のモデルを指定するには、web コンソールの「 +」ボタンをクリックします。

すべてのワークフローモデルのインスタンスをパージする値を指定しないでください。

Workflow Age
scheduledpurge.daysold
パージするワークフローインスタンスの経過日数。

インボックスの最大サイズの設定 setting-the-maximum-size-of-the-inbox

インボックスの最大サイズは、Web コンソールを使用して Adobe Granite Workflow Service を設定する、またはリポジトリに OSGi 設定を追加することで設定できます。次の表では、どちらの方法でも設定するプロパティについて説明しています。

NOTE
リポジトリーに設定を追加する場合のサービス PID は次のとおりです。
com.adobe.granite.workflow.core.WorkflowSessionFactory
プロパティ名(web コンソール)
OSGi のプロパティ名
最大院ボックスクエリサイズ
granite.workflow.inboxQuerySize

顧客が所有するデータストアに対するワークフロー変数の使用 using-workflow-variables-customer-datastore

ワークフローで処理されたデータは、アドビ提供のストレージ(JCR)に保存されます。このデータは、本来、機密性が高い可能性があります。ユーザー定義のメタデータ/データをすべて、アドビ提供のストレージではなく、ユーザー管理のストレージに保存することができます。以下の節では、これらの変数を外部ストレージ用に設定する方法について説明します。

メタデータの外部ストレージを使用するようにモデルの設定 set-model-for-external-storage

ワークフローモデルのレベルでは、モデル(およびそのランタイムインスタンス)にメタデータの外部ストレージが含まれていることを示すフラグが用意されています。外部ストレージ用にマークされたモデルのワークフローインスタンスに対して、ワークフロー変数は JCR に保持されません。

userMetadataPersistenceEnabled プロパティがワークフローモデルの jcr:content ノードに格納されます。このフラグは、ワークフローメタデータに cq:userMetaDataCustomPersistenceEnabled として保持されます。

以下の図は、ワークフローにフラグを設定する方法を示しています。

workflow-externalize-config

外部ストレージ内のメタデータの 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;
}
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2