現在表示中:

ワークフローを開始したときに実行される一連のステップを定義するには、ワークフローモデルを作成します。ワークフローを開始すると、その時点のワークフローモデルをコピーしたインスタンスが起動されます。

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

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

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

新しいワークフローの作成 - タッチ操作向け UI

  1. ワークフローモデルコンソールを開きます。次に例を示します。

    http://localhost:4502/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models

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

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

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

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

新しいワークフローの作成 - クラシック UI

  1. ワークフローコンソールを開きます。(http://localhost:4502/libs/cq/workflow/content/console.html
  2. 「モデル」タブで、「新規」をクリックします。新しいワークフロー ダイアログが開きます。
  3. ワークフローのタイトルを入力して、「OK」をクリックします。
  4. 新しいモデルが「モデル」タブに表示されます。
  5. モデルを選択し、「編集」をクリックすると、モデルが設定用に開かれます。

既存ワークフローの編集

既存ワークフローを編集する方法は、ワークフローの作成とほとんど変わりません(「作成」または「新規」を選択した後の手順は同じです)。この場合も、実際の手順は使用する UI によって異なります。

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

新しいモデルを作成するときに、または既存のモデルに手を加えて、ランタイム情報を保持しない一時的ワークフローモデルを作成することができます。

  1. 使用する UI に応じて、ワークフローモデルを作成または編集します。

  2. サイドキックの「ページ」タブを選択し、「ページプロパティ...」を選択すると、ダイアログが開きます。

  3. ダイアログで、一時的ワークフローをアクティベート(または必要に応じてアクティベートを解除)します。

  4. OK」をクリックしてこの設定を保存し、「すべて保存」をクリックしてワークフローモデルに対する更新を保存します。

モデルにステップを追加

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

モデルを編集するときには、ワークフローのサイドキックの「コンポーネント」タブに、使用可能なステップがグループ別に分類されて表示されます。

注意:

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

ワークフローモデルへのステップの追加手順

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

  2. 必要なワークフローステップコンポーネントをサイドキックからモデルにドラッグします。コンポーネント上のチェックマークアイコンは、ドロップ可能な位置を示します。

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

ワークフローステップの編集

ステップのプロパティダイアログを使用すると、ステップコンポーネントを編集し、動作を設定およびカスタマイズできます。

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

    • ワークフローモデル内のステップをダブルクリックし、「編集」をクリックします。
    • ステップをダブルクリックします。

    注意:

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

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

  3. OK」をクリックして、ステップに対する更新を保存します。

  4. モデルパネルの左上隅に表示される「保存」をクリックして、ワークフローモデルに対する更新を保存します。

    警告:

    個々のステップに対する更新を保存しても、「保存」をクリックしなければ、更新はワークフローモデルに反映されません。

ワークフローのデバッグとテスト

ログファイルにデバッグメッセージを記録するように AEM を設定できます。

  1. Web コンソールの設定マネージャーを開きます。次に例を示します。

    http://localhost:4502/system/console/configMgr

  2. 注意:

    詳しくは、 ログ機能を参照してください。

  3. 作成が終了したら、「ログレベル」を「情報」に戻します。

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

  1. コンソールからワークフローモデルを開始します。
  2. ペイロードを定義して、「OK」をクリックします。
  3. ワークフローが進行するように、必要なアクションを実行します。
  4. ワークフローの動作中にログファイルを監視します。

注意:

ワークフローのデバッグ時に、ペイロード作成時のタイプと異なる各種ペイロードタイプを使用してワークフローをテストすることをお勧めします。例えば、アセットを処理するワークフローの場合、ページをペイロードとして設定して、ワークフローでエラーがスローされないことを確認します。

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

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

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

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

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

  3. ページに表示された「フォームの最初」コンポーネントを編集します。

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

  5. OK」をクリックして、新しいフォームの設定を確定します。

例:シンプルなワークフローの作成

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

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

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

    • フロー開始
    • 手順 1
    • フロー終了
  2. 手順 1 のプロパティダイアログを開くには、次のどちらかを実行します。

    • 手順 1」を右クリックし、「編集」をクリックします。
    • 手順 1」をダブルクリックします。
  3. 共通」タブで、「タイトル」と「説明」の両方に「コンテンツを検証」と入力します。

  4. ユーザー/グループ」タブを開きます。「ユーザー/グループ」フィールドで「管理者admin)」を選択します。

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

    ワークフローモデルの概要に戻ります。ここで、「手順 1」が「コンテンツを検証」という名前に変更されます。

  6. OR 分割をワークフローにドラッグして、「コンテンツを検証」と「フロー終了」の間に配置します。

  7. OR 分割を編集用に開きます。

  8. 次の設定をおこないます。

    • 共通:「2 ブランチ」を選択します。
    • ブランチ 1:「デフォルトのルート」を選択します。
    • ブランチ 2:「デフォルトのルート」を選択しません。
  9. OK」をクリックして、OR 分割に対する更新を保存します。

  10. 参加者ステップを左側のブランチにドラッグし、プロパティを開き、次の値を指定して、「OK」をクリックします。

    • タイトル公開をキャンセル
    • ユーザー/グループ管理者admin
  11. プロセスステップを右側のブランチにドラッグし、プロパティを開き、次の値を指定して、「OK」をクリックします。

    • タイトルページを公開
    • プロセス:「ページをアクティベート」を選択します。このプロセスは、選択されているページをパブリッシュインスタンスに公開します。
  12. 保存」(モデルパネルの左上隅)をクリックして、ワークフローモデルに対するすべての更新を保存します。

    警告:

    個々のステップに対する更新を保存しても、「保存」をクリックしなければ、ワークフローモデルに対する更新は保持されません。

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

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

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

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

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

    /apps/myapp/workflow/scripts

    注意:

    スクリプトには、ブール値を返す関数 check() を含める必要があります。

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

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

    • 」を true に設定して、「デフォルトのルート」として定義します。
    • ルール」として、そのスクリプトへのパスを設定します。例:
      /apps/myapp/workflow/scripts/myscript1.ecma

    注意:

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

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

    • ルール」として、もう 1 つのスクリプトへのパスを設定します。例:
      /apps/myapp/workflow/scripts/myscript2.ecma
  5. 各ブランチ内の個々のステップのプロパティを設定します。「ユーザー/グループ」が設定されていることを確認します。

  6. 保存」をクリックして、ワークフローモデルに対する変更を保持します。

    警告:

    個々のステップに対する更新を保存しても、「保存」をクリックしなければ、ワークフローモデルに対する更新は保持されません。

関数 Check()

注意:

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

次のサンプルスクリプトは、ノードが /content/geometrixx/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/geometrixx/en") >= 0) {
	     	return true;
	     } else {
	     	return false;
	     }	
     } else {
     	return false;
     }
}

例:フォームとワークフローを使用したデータの収集

AEM では、ワークフローとフォームを関連付けることができます。このプロパティを使用すると、訪問者が複数のフォームに基づいて情報を入力するプロセス(オンライン登録プロセスなど)を構築できます。

この節では、「Product of the Day」の 2 つの特性を表示する 2 ステップのプロセスを作成します。最初のステップでは、作成者は 1 番目のフォームに入力し、製品の名前を定義します。2 番目のステップでは、作成者は 2 番目のフォームに入力し、製品の設計者を指定します。結果は、Product of the Day ページに表示されます。

Product of the Day ページの作成

Product of the Day ページの作成手順

  1. サイトコンソール(タッチ操作向け UI の場合)または Web サイトコンソール(クラシック UI の場合)で、Geometrixx Outdoors サイト、英語、器具(/content/geometrixx-outdoors/en/equipment)に移動します。

  2. 次のプロパティを持つ新しいページを作成します。

    • テンプレート:サイドバーなしのコンテンツページ
    • タイトル:Product of the Day
  3. 新しいページを編集用に開きます。このページには、2 列のセクションがあります。各列には、テキストのない単一のテキストコンポーネントが含まれます。このコンポーネントに次のテキストを追加します。

    • 左側の列:名前:
    • 右側の列:デザイン担当者:
  4. 各列の既存の段落の下にテキストコンポーネントを追加します。

段落ノード名の取得

CRXDE Lite を使用して、Product of the Day ページに追加した段落に関連付けられている(リポジトリ内の)ノード名を探します。

  1. Web ブラウザーで CRXDE Lite を開きます。例:http://localhost:4502/crx/de

  2. ノードツリーで、ノードを展開します。

    /content/geometrixx-outdoors/en/equipment/product-of-the-day/jcr:content/par

    par ノードの下の colctrl ノードは、Product of the Day ページ上の列を表し、col_break ノードは列の終わりを表します。左側の列は 1 つ目の colctrl ノードで、右側の列は 2 つ目の colctrl ノードです。

  3. 1 つ目の colctrl ノードの後の 2 つ目のテキストノード名に注意してください。2 つ目のテキストノードは、左側の列に追加した空のテキストコンポーネントを表します。

  4. 2 つ目の colctrl ノードの後の 2 つ目のテキストノード名に注意してください。2 つ目のテキストノードは、右側の列に追加した空のテキストコンポーネントを表します。

次の図では、text_1958199362text が、このテキストノードにあたります。通常、ノード名は、テキストプレフィックスの text_<id> の後にそれぞれ異なる識別特性が続く形式になります。

最初のフォーム(form1)の作成

最初のフォーム(form1)の作成手順

  1. サイトコンソール(タッチ操作向け UI の場合)または Web サイトコンソール(クラシック UI の場合)で、Geometrixx Outdoors サイト、英語、器具(/content/geometrixx-outdoors/en/equipment)に移動します。

  2. 次のプロパティを持つ新しいページを作成します。

    • テンプレート:サイドバーなしのコンテンツページ
    • タイトルform1

    注意:

    フォームページの場所は重要ではありません。

  3. form1 ページを開き、2 列コンポーネントを削除します。

  4. フォームコンポーネントを(既存のテキストコンポーネントの下の)ページに追加します。

  5. フォーム開始コンポーネントを編集し、(「詳細」タブの)次のプロパティを設定して、フォームをワークフローにリンクします。

    • アクションタイプ:ワークフロー制御リソースを編集
    • フォーム識別子:form1

    OK」をクリックします。

  6. テキストフィールドコンポーネントをフォームコンポーネントのフォームの最初バーとフォームの終わりバーの間に追加します。

  7. テキストフィールドコンポーネントを編集して、次のプロパティ値を指定します。

    • エレメント名./jcr:content/par/text_****/text
    • タイトル:製品名:

    注意:

    text_<id> は、Product of the Day ページ上の空の段落を表すノード名です。前述の例では、このノード名は text_1958199362 です。

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

    注意:

    フォームの送信時、このフィールド内の値が <payload-path>/jcr:content/par/text_0/text ノードに保存されます。

  9. ワークフロー送信ボタンコンポーネントをテキストフィールドコンポーネントのすぐ下に追加します。このコンポーネントは、フォームの送信ボタンを提供します。

2 番目のフォーム(form2)の作成

2 番目のフォーム(form2)の作成手順

  1. サイトコンソール(タッチ操作向け UI の場合)または Web サイトコンソール(クラシック UI の場合)で、Geometrixx Outdoors サイト、英語、器具(/content/geometrixx-outdoors/en/equipment)に移動します。

  2. 次のプロパティを持つ新しいページを作成します。

    • テンプレート:サイドバーなしのコンテンツページ
    • タイトルform2

    注意:

    フォームページの場所は重要ではありません。

  3. form2 ページを開き、2 列コンポーネントを削除します。

  4. フォームコンポーネントを(既存のテキストコンポーネントの下の)ページに追加します。

  5. フォーム開始コンポーネントを編集して、次のプロパティを設定します。

    • 「フォーム」タブ:
      • ありがとうページ{payload}.html
    • 「詳細」タブ:
      • アクションタイプワークフロー制御リソースを編集
      • フォーム識別子:form2

    OK」をクリックします。

  6. テキストフィールドコンポーネントをフォームコンポーネントのフォームの最初バーとフォームの終わりバーの間に追加します。

  7. テキストフィールドコンポーネントを編集して、次のプロパティ値を指定します。

    • エレメント名./jcr:content/par/text/text
    • タイトル:開発者名:

    注意:

    text_<id> は、Product of the Day ページ上の空の段落を表すノード名です。前述の例では、このノード名は text です。

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

    注意:

    フォームの送信時、このフィールド内の値が <payload-path>/jcr:content/par/text_2/text ノードに保存されます。

  9. ワークフロー送信ボタンコンポーネントをテキストフィールドコンポーネントのすぐ下に追加します。このコンポーネントは、フォームの送信ボタンを提供します。

ワークフローの作成

ワークフローの作成手順

  1. Product of the Day」というタイトルの新しいワークフローを作成し、編集用に開きます

  2. 手順 1 を削除します。

  3. フォーム参加者ステップコンポーネントをワークフローにドラッグします。次のプロパティ値を指定します。

    • タイトル:手順 1
    • ユーザー/グループ:管理者(admin)
    • フォームのパス: /content/geometrixx-outdoors/en/equipment/form1
  4. 手順 1 の後にフォーム参加者ステップコンポーネントを追加し、次のプロパティ値を指定します。

    • タイトル:手順 2
    • ユーザー/グループ:管理者(admin)
    • フォームのパス:/content/geometrixx-outdoors/en/equipment/form2
  5. 保存」(モデルパネルの左上隅)をクリックして、ワークフローモデルに対する更新を保存します。

    警告:

    個々のステップに対する更新を保存しても、「保存」をクリックしなければ、ワークフローモデルに対する更新は保持されません。

ワークフローを Product of the Day ページに適用

  1. Product of the Day ページを編集用に開きます。前の手順からページがずっと開かれていた場合は、再読み込みしてください。

  2. 通知のインボックスを開きます。

  3. ペイロードリンク(この場合は /content/geometrixx-outdoors/en/equipment/product-of-the-day)をクリックします。

    フォームが開きます。

  4. 製品名」フィールドに「Abidjan Water 赤」と入力し、「次へ」をクリックします。form2 ページが開きます。

  5. 開発者名」フィールドに「Abidjan」と入力し、「完了」をクリックします。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー