ワークフローモデルの作成 creating-workflow-models

CAUTION
クラシック UI の使用については、 AEM 6.3 ドキュメント 参照用。

ワークフローモデルを作成して、ユーザーがワークフローを開始したときに実行される一連のステップを定義します。ワークフローを一時的なものにするか、複数のリソースを使用するかなど、モデルのプロパティを定義することもできます。

ユーザーがワークフローを開始すると、インスタンスが開始されます。これは、変更内容を同期したときに作成される、対応するランタイムモデルです。

新しいワークフローの作成 creating-a-new-workflow

新しいワークフローモデルを初めて作成する場合、次のものが含まれます。

  • フロー開始 ​ステップと​ フロー終了 ​ステップ。
    これらのステップは、ワークフローの始まりと終わりを表します。これらのステップは必須で、編集または削除できません。
  • 手順 1」という名前のサンプルの​ 参加者 ​ステップ。
    このステップは、作業項目をワークフロー開始者に割り当てるように設定されています。このステップを編集または削除し、必要に応じてステップを追加します。

エディターを使用してワークフローを作成するには:

  1. ツールワークフローモデル ​の順にクリックするか、https://localhost:4502/aem/workflow などから​ ワークフローモデル ​コンソールを開きます。
  2. 作成」を選択してから、「モデルを作成」を選択します。
  3. ワークフローモデルを追加 ​ダイアログが表示されます。「タイトル」と「名前」(オプション)を入力してから、「完了」を選択します。
  4. 新しいモデルが​ ワークフローモデル ​コンソールに表示されます。
  5. 新しいワークフローを選択し、「編集」をクリックすると、ワークフローが設定のために開かれます
    wf-01
NOTE
(CRX パッケージを使用して)プログラムによってモデルを作成する場合は、次の場所にサブフォルダーを作成することもできます。
/var/workflow/models
例:/var/workflow/models/prototypes
このフォルダーは、そのフォルダー内のモデルへのアクセスを管理するために使用できます。

ワークフローの編集 editing-a-workflow

既存のワークフローモデルを、次の目的で編集できます。

デフォルトおよびレガシー(初期設定)のワークフローを編集する場合は、変更を加える前に、セーフコピーを作成する追加の手順が必要になります。

ワークフローの更新が完了したら、同期 ​を使用して​ ランタイムモデルを生成 ​する必要があります。詳しくは、ワークフローを同期を参照してください。

ワークフローを同期 - ランタイムモデルを生成 sync-your-workflow-generate-a-runtime-model

同期」(エディターツールバーの右側)を使用すると、ランタイムモデルが生成されます。ランタイムモデルは、ユーザーがワークフローを開始したときに実際に使用されるモデルです。変更内容を​ 同期 ​しない場合は、その変更内容は実行時には反映されません。

ワークフローに変更を加える場合は、「同期」を使用してランタイムモデルを生成する必要があります。個々のダイアログ(ステップなど)に独自の保存オプションがある場合でも同様です。

変更内容がランタイム(保存済み)モデルと同期されると、「同期済み」に表示が変わります。

一部のステップには、必須のフィールドや組み込みの検証が含まれています。これらの条件が満たされない場合、 同期 モデル。 例えば次のように、参加者 ​ステップで参加者が定義されていない場合などです。

wf-21

デフォルトまたはレガシーのワークフローの初回編集時 editing-a-default-or-legacy-workflow-for-the-first-time

デフォルトまたはレガシーのモデルを編集用に開くと、次の状態になっています。

  • ステップブラウザーを利用できません(左側)。

  • ツールバーで「編集」操作を利用できます(右側)。

  • 次の理由から、最初はモデルとそのプロパティが読み取り専用モードで開かれます。

    • デフォルトのワークフローは、 /libs
    • レガシーワークフローは、 /etc
      選択 編集 は次のようになります。
  • ワークフローが /conf にコピーされます。

  • ステップブラウザーを利用できるようになります。

  • 変更を加えられるようになります。

NOTE
詳しくは、ワークフローモデルの場所を参照してください。

wf-22

モデルへのステップの追加 adding-a-step-to-a-model

実行するアクティビティを表す手順をモデルに追加します。各手順は特定のアクティビティを実行します。 標準の AEM インスタンスには、いくつかのステップコンポーネントが用意されています。

モデルを編集する際は、ステップブラウザー ​の様々なグループに利用可能なステップが表示されます。例:

wf-10

NOTE
AEM と共にインストールされる主なステップコンポーネントについては、ワークフローステップのリファレンスを参照してください。

ワークフローモデルにステップを追加するには:

  1. 編集する既存のワークフローモデルを開きます。ワークフローモデル ​コンソールで、必要なモデルを選択し、編集 ​をクリックします。

  2. サイドパネルを切り替え(上部ツールバーの左端)を使用してステップブラウザーを開きます。ここでは、以下のことができます。

    • フィルター ​を使用して特定のステップのみを表示する。
    • ドロップダウンセレクターを使用して、選択を特定のステップのグループに限定します。
    • 「説明を表示アイコン」 wf-stepinfo-icon を選択して、適切な手順の詳細を確認する。

    wf-02

  3. 対象のステップをドラッグしてモデル内の目的の場所に移動します。

    例えば、参加者ステップ ​などです。

    フローに追加したら、ステップを設定できます。

    wf-03

  4. 必要に応じてステップを追加したり、変更を加えたりします。

    実行時には、ステップがモデル内に配置されている順序で実行されます。いったん追加したステップコンポーネントを、モデル内の別の場所にドラッグすることもできます。

    ページエディターと同様に、ステップのコピー、切り取り、貼り付け、グループ分け、削除を行うこともできます。

    分割ステップは、ツールバーオプション wf-collapseexpand-toolbar-icon を利用して折りたたんだり展開したりできます。

  5. 同期(エディターツールバー)をクリックして変更内容を確認し、ランタイムモデルを生成します。

    詳しくは、ワークフローを同期を参照してください。

ワークフローステップの設定 configuring-a-workflow-step

ステップのプロパティ ​ダイアログを使用して、ワークフローステップの動作を​ 設定 ​およびカスタマイズできます。

  1. ステップに対応する​ ステップのプロパティ ​ダイアログを開くには、次のどちらかを実行します。

    • ワークフローモデルのステップをクリックし、「 」を選択します。 設定 を選択します。

    • ステップをダブルクリックします。

    note note
    NOTE
    AEM と共にインストールされる主なステップコンポーネントについては、ワークフローステップのリファレンスを参照してください。
  2. 必要に応じて​ ステップのプロパティ ​を設定します。利用できるプロパティはステップのタイプによって異なります。複数のタブが表示されることもあります。例えば、新しいワークフローで Step 1 として表示されるデフォルトの​ 参加者ステップ ​では、次のようになります。

    wf-11

  3. チェックマークをクリックして、アップデート内容を確認します。

  4. 同期(エディターツールバー)をクリックして変更内容を確認し、ランタイムモデルを生成します。

    詳しくは、ワークフローを同期を参照してください。

一時的ワークフローの作成 creating-a-transient-workflow

次の項目を作成できます。 一時的 モデルを作成する場合、または既存のモデルを編集する場合のワークフローモデル:

  1. 編集するワークフローモデルを開きます。

  2. ツールバーから「ワークフローモデルのプロパティ」を選択します。

  3. ダイアログで、を有効にします。 一時的なワークフロー (必要に応じて非アクティブ化):

    wf-07

  4. 保存して閉じる」をクリックし、同期(エディターツールバー)をクリックして変更内容を確認し、ランタイムモデルを生成します。

    詳しくは、ワークフローを同期を参照してください。

NOTE
ワークフローを一時的モードで実行した場合は、AEM にはワークフロー履歴が保存されません。したがって、そのワークフローに関連する情報は、タイムラインに表示されません。

タッチ UI でワークフローモデルを使用可能にする classic2touchui

クラシック UI に表示されるワークフローモデルがタッチ UI の​ タイムライン ​レールの選択ポップアップメニューに表示されない場合は、設定に従ってワークフローモデルを使用可能にします。以下の手順は、アクティベーションのリクエスト ​と呼ばれるワークフローモデルの使用を説明します。

  1. 該当するモデルがタッチ対応 UI で使用できないことを確認します。/assets.html/content/dam パスを使用してアセットにアクセスします。アセットを選択します。左側のレールで​ タイムライン ​を開きます。ワークフローを開始 ​をクリックして、アクティベーションのリクエスト モデルがポップアップリストに存在しないことを確認します。

  2. ツール/一般/タグ付け ​と移動します。ワークフロー ​を選択します。

  3. 作成/タグを作成」を選択します。タイトル ​を DAM に、名前 ​を dam に、それぞれ設定します。送信 ​を選択します。
    ワークフローモデルでタグを作成する

  4. ツール/ワークフロー/モデル ​に移動します。アクティベーションのリクエスト ​を選択し、次に​ 編集 ​を選択してください。

  5. 編集 ​を選択し、ページ情報 ​メニューを開き、そこから​ プロパティを開く ​を選択してから、基本 ​タブ(まだ開いていない場合)に移動してください。

  6. Workflow : DAM を​ タグ ​フィールドに追加します。チェック(チェックマーク)で選択を確認します。

  7. 保存して閉じる ​でタグの追加を確認します。
    モデルのページプロパティの編集

  8. 同期 ​でプロセスを完了します。タッチ操作対応 UI でワークフローを使用できるようになりました。

マルチリソースのサポートのためのワークフローの設定 configuring-a-workflow-for-multi-resource-support

次のワークフローモデルを設定できます。 マルチリソースのサポート モデルを作成する場合、または既存のモデルを編集する場合:

  1. 編集するワークフローモデルを開きます。

  2. ツールバーから「ワークフローモデルのプロパティ」を選択します。

  3. ダイアログで、を有効にします。 マルチリソースのサポート (必要に応じて非アクティブ化):

    wf-08

  4. 変更内容を「保存して閉じる」で確認し、「同期」(エディターツールバー)でランタイムモデルを生成します。

    詳しくは、ワークフローを同期を参照してください。

(ワークフローの進行状況を表示する)ワークフローステージの設定 configuring-workflow-stages-that-show-workflow-progress

ワークフローステージは、タスクを処理する際のワークフローの進行状況を視覚化するのに役立ちます。

CAUTION
ワークフローステージが​ ページのプロパティ ​で定義されていても、いずれのワークフローステップでも使用されない場合は、(現在のワークフローステップに関係なく)進行状況バーに進行状況は表示されません。

使用可能なステージは、ワークフローモデルで定義されます。既存のワークフローモデルを更新すると、ステージの定義を含めることができます。ワークフローモデルに対して任意の数のステージを定義できます。

ワークフローの​ ステージ ​を定義するには:

  1. 編集するワークフローモデルを開きます。

  2. ツールバーから「ワークフローモデルのプロパティ」を選択します。「ステージ」タブを開きます。

  3. 必要な​ ステージ ​を追加(および配置)します。ワークフローモデルに対して任意の数のステージを定義できます。

    例:

    wf-08-1

  4. 保存して閉じる」をクリックしてプロパティを保存します。

  5. ワークフローモデルの各ステップにステージを割り当てます。例:

    wf-09

    1 つのステージを複数のステップに割り当てることができます。例:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
    ステップ ステージ
    手順 1 作成
    手順 2 作成
    手順 3 レビュー
    手順 4 承認
    手順 5 承認
    手順 6 完了
  6. 同期」(エディターツールバー)をクリックして変更内容を確定し、ランタイムモデルを生成します。

    詳しくは、ワークフローを同期を参照してください。

パッケージのワークフローモデルの書き出し exporting-a-workflow-model-in-a-package

パッケージのワークフローモデルを書き出す方法は次のとおりです。

  1. を使用してパッケージを作成します。 パッケージマネージャー:

    1. ツールデプロイメントパッケージ ​に移動してパッケージマネージャーにアクセスします。

    2. パッケージを作成」をクリックします。

    3. パッケージ名 ​と、その他の必要な情報を指定します。

    4. OK」をクリックします。

  2. 新しいパッケージのツールバーの「編集」をクリックします。

  3. フィルター」タブを開きます。

  4. フィルターを追加」を選択し、ワークフローモデルの​ 設計 ​のパスを指定します。

    /conf/global/settings/workflow/models/<*your-model-name*>

    完了」をクリックします。

  5. フィルターを追加」を選択し、ランタイムワークフローモデルのパスを指定します​

    /var/workflow/models/<*your-model-name*>

    完了」をクリックします。

  6. モデルで使用されるカスタムスクリプトのフィルターを追加します。

  7. 保存」をクリックしてフィルターの定義を確定します。

  8. パッケージ定義のツールバーの「ビルド」を選択します。

  9. パッケージのツールバーの「ダウンロード」を選択します。

ワークフローを使用したフォーム送信処理 using-workflows-to-process-form-submissions

フォームを特定のワークフローで処理するように設定できます。ユーザーがフォームを送信すると、フォームの送信データをペイロードとして持つ新しいワークフローインスタンスが作成されます。

フォームを使用するためのワークフローを設定するには:

  1. ページを作成し、編集用に開きます。

  2. フォーム ​コンポーネントをページに追加します。

  3. ページに表示された​ フォーム開始 ​コンポーネントを​ 設定 ​します。

  4. ワークフローを開始」で、使用可能なワークフローの中から目的のワークフローを選択します。

    wf-12

  5. チェックマークをクリックして、新しいフォーム設定を確認します。

ワークフローのテスト testing-workflows

ワークフローをテストする際には、開発済みのペイロードとは異なるタイプを含む、様々なペイロードタイプを使用することをお勧めします。例えば、ワークフローでアセットを処理する場合は、ページをペイロードとして設定し、ワークフローでエラーが発生しないことを確認します。

例えば、新しいワークフローを次のようにテストします。

  1. コンソールからワークフローモデルを開始します。

  2. ペイロード ​を定義して確定します。

  3. ワークフローが進行するように、必要に応じてアクションを実行します。

  4. ワークフローの実行中にログファイルを監視します。

ログファイルに​ デバッグ ​メッセージを表示するように AEM を設定することもできます。詳しくは、ログを参照してください。開発が完了したら、ログレベル ​を​ 情報 ​に戻します。

examples

例:公開のリクエストを承認/拒否する(単純な)ワークフローの作成 example-creating-a-simple-workflow-to-accept-or-reject-a-request-for-publication

ワークフロー作成の可能性をいくつか示すために、ここでは、Publish Example ワークフローのバリエーションを作成します。

  1. ワークフローモデルの作成.

    新しいワークフローには、次のステップが含まれます。

    • フロー開始
    • Step 1
    • フロー終了
  2. Step 1 を削除します(この例には不適切なステップタイプです)。

    • ステップをクリックし、コンポーネントツールバーの「削除」を選択します。アクションを確認します。
  3. ステップブラウザーの​ ワークフロー ​選択欄から、参加者ステップ ​をワークフローにドラッグして、「フロー開始」と「フロー終了」の間に配置します。

  4. 次のいずれかの方法でプロパティダイアログを開きます。

    • 参加者ステップをクリックし、コンポーネントツールバーの「設定」を選択します。
    • 参加者ステップをダブルクリックします。
  5. 共通」タブで、「タイトル」と「説明」の両方に Validate Content と入力します。

  6. ユーザー/グループ」タブを開きます。

    • メールでユーザーに通知する」を有効にします。
    • ユーザー/グループ」フィールドで「Administratoradmin)」を選択します。
    note note
    NOTE
    メールを送信するには、メールサービスとユーザーアカウントの詳細を設定する必要があります
  7. チェックマークをクリックして、変更内容を確認します。

    ワークフローモデルの概要に戻ります。ここで、参加者ステップが Validate Content という名前に変更されます。

  8. OR 分岐 ​をワークフローにドラッグして、「Validate Content」と「フロー終了」の間に配置します。

  9. OR 分岐 ​を開いて設定します。

  10. 設定:

    • 共通:分岐名を指定します。

    • ブランチ 1デフォルトのルート ​を選択します。

    • ブランチ 2デフォルトのルート ​が選択されていないことを確認します。

  11. OR 分岐 ​の更新内容を確定します。

  12. 参加者ステップ ​を左側のブランチにドラッグし、プロパティを開き、次の値を指定してから変更内容を確認します。

    • タイトルReject Publish Request

    • ユーザー/グループprojects-administrators など

    • メールでユーザーに通知する:有効にすると、ユーザーにメールで通知が届きます。

  13. プロセスステップ ​を右側のブランチにドラッグし、プロパティを開き、次の値を指定してから変更内容を確認します。

    • タイトルPublish Page as Requested

    • プロセスActivate Page を選択します。このプロセスは、選択されているページをパブリッシャーインスタンスに公開します。

  14. 同期」(エディターのツールバー)をクリックし、ランタイムモデルを生成します。

    詳しくは、ワークフローを同期を参照してください。

    新しいワークフローモデルは次のようになります。

    wf-13

  15. このワークフローをページに適用します。その結果、ユーザーが「コンテンツを検証」ステップの「完了」に移動すると、「リクエストに応じてページを公開」と「公開リクエストを拒否」のどちらを実行するかを選択できます。

    chlimage_1-72

例:ECMA スクリプトを使用した OR 分岐のルールの定義 defineruleecmascript

OR 分岐 ​ステップを使用すると、ワークフローに条件分岐の処理パスを導入できます。

OR ルールを定義するには、次の手順に従います。

  1. 2 つのスクリプトを作成し、リポジトリに保存します。次に例を示します。

    /apps/myapp/workflow/scripts

    note note
    NOTE
    スクリプトには、ブール値を返す関数 check() を含める必要があります。
  2. ワークフローを編集し、OR 分岐 ​をモデルに追加します。

  3. OR 分岐 ​の​ ブランチ 1 のプロパティを編集します。

    • 」を true に設定して、これを「デフォルトのルート」として定義します。

    • ルール」として、そのスクリプトへのパスを設定します。例:

      /apps/myapp/workflow/scripts/myscript1.ecma

    note note
    NOTE
    必要に応じて、分岐の順序を切り替えることができます。
  4. OR 分割 ​の​ ブランチ 2 のプロパティを編集します。

    • ルール」として、もう 1 つのスクリプトへのパスを設定します。例:

      /apps/myapp/workflow/scripts/myscript2.ecma

  5. 各ブランチ内の個々のステップのプロパティを設定します。「ユーザー/グループ」が設定されていることを確認します。

  6. 同期」(エディターのツールバー)をクリックして、ランタイムモデルに対する変更を保持します。

    詳しくは、ワークフローを同期を参照してください。

関数 Check() function-check

NOTE
ECMAScript の使用を参照してください。

次のサンプルスクリプトは、ノードが /content/we-retail/us/en の下に位置する JCR_PATH の場合、true を返します。

function check() {
    if (workflowData.getPayloadType() == "JCR_PATH") {
      var path = workflowData.getPayload().toString();
      var node = jcrSession.getItem(path);

      if (node.getPath().indexOf("/content/we-retail/us/en") >= 0) {
       return true;
      } else {
       return false;
      }
     } else {
      return false;
     }
}

例:アクティベーション用にカスタマイズされたリクエスト example-customized-request-for-activation

標準提供のワークフローは、いずれもカスタマイズすることができます。動作をカスタマイズするには、適切なワークフローの詳細をオーバーレイします。

例えば、アクティベーションをリクエスト ​をカスタマイズするとします。このワークフローは、Sites 内でページを公開するために使用され、コンテンツ作成者が適切なレプリケーション権限を持っていない場合に自動的に実行されます。詳しくは、ページオーサリングのカスタマイズ - アクティベーションをリクエストワークフローのカスタマイズを参照してください。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2