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

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

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

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

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

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

  2. インスタンス」を選択して現在実行中のワークフローインスタンスのリストを表示します。

  3. 上部パネルの右隅で、ワークフローインスタンスに​ 実行中のワークフローステータス詳細 ​が表示されます。

  4. 実行中のワークフロー:実行中のワークフローの数とステータスを表示します。例えば、以下の画像で表示されているのは、AEMインスタンスの​ 実行中のワークフロー ​の数と​ ステータス ​です。

    • ステータス:正常
      status-healthy

    • ステータス:正常でない
      status-unhealthy

  5. ワークフローインスタンスの​ ステータスの詳細 ​では、「詳細」をクリックすると、実行中のワークフローインスタンス完了したワークフローインスタンス中止されたワークフローインスタンス失敗したワークフローインスタンス ​などの数が表示されます。例えば、以下の画像では、ステータスの詳細 ​が表示されています。

    • ステータスの詳細:正常
      status-details-healthy

    • ステータスの詳細:正常でない
      status-details-healthy

    note note
    NOTE
    ワークフローインスタンスを正常な状態に維持するには、ワークフローインスタンスの定期的なパージまたはワークフローのベストプラクティスに記載されているベストプラクティスに従います。

ワークフローインスタンスの検索 search-workflow-instances

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

  2. インスタンス」を選択して現在進行中のワークフローインスタンスのリストを表示します。上部のパネルの左隅で、「フィルター」を選択します。または、alt+1 キーを押します。次のダイアログが開きます。

    wf-99-1

  3. フィルターダイアログで、ワークフローの検索条件を選択します。次の入力に基づいて検索できます。

    • ペイロードパス:特定のパスの選択
    • ワークフローモデル:ワークフローモデルの選択
    • 担当者:ワークフローの担当者の選択
    • タイプ:タスク、ワークフロー項目、またはワークフローの失敗
    • タスクステータス:アクティブ、完了または終了
    • 役割:所有者および担当者、所有者のみ、担当者のみ
    • 開始日:指定した日付の前または後の開始日
    • 終了日:指定した日付の前または後の終了日
    • 期日:指定した日付の前または後の期日
    • 更新日:指定した日付の前または後の更新日

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

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

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

    wf-96-1

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

    wf-97-1

    note note
    NOTE
    ワークフローを終了または中止するには、ユーザーの操作を待機中の状態(参加者ステップなど)である必要があります。現在ジョブを実行中のワークフロー(実行中のアクティブなスレッド)を中止しようとすると、予期した結果が得られない場合があります。

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

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

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

    archived-instances

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

    wf-99

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

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

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

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

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

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

  • 終了して再試行 ​は、元のペイロード、タイトルおよび説明を使用して新しいワークフローインスタンスが開始される点を除き、終了 ​と同様です。

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

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

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

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

workflow-failure

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

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

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

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

サービスを設定するには、OSGi 設定ファイルを設定します。「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 はモデルノードのパスです(例:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
)。すべてのワークフローモデルのインスタンスをパージする場合は、値を指定しません。

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

ワークフロー経過日数
scheduledpurge.daysold
パージするワークフローインスタンスの有効期間(日数)。

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

インボックスの最大サイズは、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
fbcff2a9-b6fe-4574-b04a-21e75df764ab