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

注意

クラシック UI の使用方法については、AEM 6.3 のドキュメントを参照してください。

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

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

新しいワークフローの作成

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

  • ステップ​フロー開始​と​フロー終了

    これらのステップは、ワークフローの始まりと終わりを表します。これらのステップは必須で、編集または削除できません。

  • 参加者​ステップ​ステップ1​の例です。

    このステップは、作業項目をワークフロー開始者に割り当てるように設定されています。このステップを編集または削除し、必要に応じてステップを追加します。

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

  1. ワークフローモデル​コンソールを開きます。ツールワークフローモデル、例えば次のようにして

    http://localhost:4502/aem/workflow

  2. 作成」を選択してから、「モデルを作成」を選択します。

  3. 追加ワークフローモデル​ダイアログボックスが表示されます。 「タイトル」と「名前」(オプション)を入力してから、「完了」を選択します。

  4. 新しいモデルが​ワークフローモデル​コンソールに表示されます。

  5. 新しいワークフローを選択し、「編集​」をクリックすると、ワークフローが設定のために開かれます

    wf-01

メモ

(CRX パッケージを使用して)プログラムによってモデルを作成する場合は、次の場所にサブフォルダーを作成することもできます。

/var/workflow/models

例:/var/workflow/models/prototypes

このフォルダーは、そのフォルダー内のモデルへのアクセス権を管理するために利用できます。

ワークフローの編集

既存のワークフローモデルを編集して、次のことができます。

デフォルトまたはレガシー(標準搭載)ワークフローの編集には、変更前にセーフコピーが作成されるようにするための追加の手順があります。

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

ワークフローの同期 - ランタイムモデルの生成

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

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

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

ステップによっては必須のフィールドや組み込みの検証が含まれている場合があります。こうした条件を満たしていない場合は、モデルの​同期​をおこなうと、エラーが表示されます。例えば次のように、参加者​ステップで参加者が定義されていない場合などです。

wf-21

デフォルトまたはレガシーのワークフローの初回編集時

デフォルトまたはレガシーのモデルを開いて編集する際は、次の点に注意してください。

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

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

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

    • デフォルトのワークフローは/libsにあります
    • 従来のワークフローは/etcにあります

編集」をクリックすると、次のようになります。

  • ワークフローのコピーを/confに取り込む
  • ステップ​ブラウザを使用可能にする
  • 変更を加えられるようになります。
メモ

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

wf-22

モデルにステップを追加

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

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

wf-10

メモ

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

モデルにステップを追加するには:

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

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

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

    wf-02

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

    参加者ステップ​などです。

    フローに追加したら、手順を設定できます。

    wf-03

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

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

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

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

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

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

ワークフローステップの設定

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

  1. ステップのプロパティ​ダイアログボックスを開くには、次のいずれかの手順を実行します。

    • ワークフローモデルの手順をタップし、コンポーネントツールバーから「設定」を選択します。
    • ステップをダブルクリックします。
    メモ

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

  2. 必要に応じて​ステップのプロパティ​を設定します。利用できるプロパティはステップのタイプによって異なります。複数のタブが表示されることもあります。例えば、デフォルトの​参加者ステップ​は、新しいワークフローにStep 1として存在します。

    wf-11

  3. チェックマークをクリックして、変更内容を確認します。

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

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

一時的ワークフローの作成

新しいモデルを作成するときに、または既存のモデルに手を加えて、一時的ワークフローモデルを作成することができます。

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

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

  3. ダイアログボックスで、一時的なワークフロー​をアクティブにします(または必要に応じて非アクティブにします)。

    wf-07

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

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

メモ

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

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

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

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

  2. ツール/一般/タグ​の順に移動します。 「ワークフロー」を選択します。

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

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

  5. 編集」を選択し、ワークフローモデルのプロパティ​を開きます。 「基本」タブに移動します。

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

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

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

マルチリソースのサポートのためのワークフローの設定

新しいモデルを作成するときに、または既存のモデルに手を加えて、マルチリソースのサポートのためのワークフローモデルを設定できます。

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

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

  3. ダイアログボックスで、Multi Resource Support​をアクティブにします(または必要に応じて非アクティブにします)。

    wf-08

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

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

ワークフローステージの設定(ワークフローの進行状況を表示)

ワークフローステージは、タスクを処理するときにワークフローの進行状況を確認するのに役立ちます。

注意

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

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

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

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

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

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

    次に例を示します。

    wf-08-1

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

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

    wf-09

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

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

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

パッケージのワークフローモデルのエクスポート

  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. パッケージのツールバーの「ダウンロード」を選択します。

ワークフローを使用したフォーム送信処理

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

フォームを使用するためのワークフローの設定手順

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

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

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

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

    wf-12

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

ワークフローのテスト

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

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

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

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

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

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

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

例:公開のリクエストを承認/拒否する(単純な)ワークフローの作成

次の例では、ワークフローを作成する可能性を示すために、Publish Exampleワークフローのバリエーションを作成します。

  1. 新しいワークフローモデルを作成します。

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

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

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

  4. プロパティダイアログボックスを開くには、次のいずれかを行います。

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

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

    • 電子メールでユーザーに通知します」を有効にします。
    • ユーザー/グループ​フィールドにAdministrator (admin)を選択します。
  7. チェックマークをクリックして、変更内容を確認します。

    ワークフローモデルの概要に戻ります。ここで、参加者の手順はValidate Contentに変更されます。

  8. または分割​をワークフローにドラッグし、Validate Contentと​フロー終了​の間に配置します。

  9. OR 分割​を設定用に開きます。

  10. 設定:

    • 共通:分岐 2を選択
    • ブランチ 1:「デフォルトのルート」を選択します。
    • ブランチ 2:「デフォルトのルート」を選択しません。
  11. OR 分割​の変更内容を確定します。

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

    • タイトル: Reject Publish Request
    • ユーザー / グループprojects-administrators など
    • 電子メールでユーザーに通知:ユーザーに電子メールで通知する場合にアクティブ化します。
  13. プロセスステップ​を右側のブランチにドラッグし、プロパティを開き、次の値を指定してから変更内容を確定します。

    • タイトル: Publish Page as Requested
    • プロセス:を選択 Activate Pageします。このプロセスは、選択されているページをパブリッシュインスタンスに公開します。
  14. 同期」(エディターのツールバー)をクリックし、ランタイムモデルを生成します。

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

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

    wf-13

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

    chlimage_1-182

例:OR 分割用のルールの定義

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

ORルールを定義するには:

  1. 2 つのスクリプトを作成して、リポジトリ内の次の場所などに保存します。

    /apps/myapp/workflow/scripts

    メモ

    スクリプトには、ブール値を返す関数check()が必要です。

  2. ワークフローを編集し、OR 分割​をモデルに追加します。

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

    • Value​をtrueに設定して、これを​Default Route​として定義します。

    • Rule​のように、パスをスクリプトに設定します。 次に例を示します。

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

    メモ

    必要に応じて、分岐の順序を切り替えることができます。

  4. OR 分割​の​ブランチ 2 のプロパティを編集します。

    • Rule​のように、パスを他のスクリプトに設定します。 次に例を示します。

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

  5. 各ブランチ内の個々のステップのプロパティを設定します。User/Group​が設定されていることを確認します。

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

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

関数 Check()

メモ

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;
     }
}

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

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

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

このページ

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now