Show Menu
トピック×

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

クラシック UI の使用方法については、 AEM 6.3 のドキュメント を参照してください。
ワークフローを開始したときに実行される一連のステップを定義するには、 ワークフローモデル を作成します。ワークフローを一時的にするか、複数のリソースを使用するかなど、モデルのプロパティを定義することもできます。
ユーザーがワークフローを開始すると、インスタンスが開始されます。これは対応するランタイムモデルです。変更内容を 同期 すると作成されます。

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

初めて作成する新しいワークフローモデルには、次のものが含まれています。
  • The steps, Flow Start and Flow End . これらのステップは、ワークフローの始まりと終わりを表します。これらの手順は必須で、編集または削除はできません。
  • An example Participant step named Step 1 . このステップは、作業項目をワークフロー開始者に割り当てるように設定されています。このステップを編集または削除し、必要に応じてステップを追加します。
エディターを使用して新しいワークフローを作成するには:
  1. Open the Workflow Models console; via Tools , Workflow , Models or, for example: https://localhost:4502/aem/workflow
  2. 作成 」を選択してから、「 モデルを作成 」を選択します。
  3. ワークフローモデルを追加 ​ダイアログが表示されます。「 タイトル 」と「 名前 」(オプション)を入力してから、「 完了 」を選択します。
  4. The new model is listed in the Workflow Models console.
  5. 新しいワークフローを選択し、 「編集​
(CRX パッケージを使用して)プログラムによってモデルを作成する場合は、次の場所にサブフォルダーを作成することもできます。
/var/workflow/models
例: /var/workflow/models/prototypes
このフォルダーは、 そのフォルダー内のモデルへのアクセス権を管理 するために利用できます。

ワークフローの編集

既存のワークフローモデルを編集して、次のことができます。
デフォルトおよびレガシー​ を編集する場合は、変更を加える前に、 セーフコピー を作成する追加の手順が必要になります。
ワークフローの変更を完了するには、「 同期 」を使用して、 ランタイムモデルを生成 ​する必要があります。詳しくは、 ワークフローの同期 を参照してください。

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

同期 」(エディターのツールバーの右側)をクリックすると、 ランタイムモデル が生成されます。ランタイムモデルは、ユーザーがワークフローを開始したときに実際に使用されるモデルです。変更内容を​ 同期 ​しない場合は、その変更内容は実行時には反映されません。
ワークフローに変更を加えた場合は、「 同期 」をクリックしてランタイムモデルを生成する必要があります。個々のダイアログ(ステップなど)に保存オプションがある場合でも同様です。
変更内容がランタイム(保存済み)モデルと同期されると、「 同期済み 」に表示が変わります。
ステップによっては必須のフィールドや組み込みの検証が含まれている場合があります。こうした条件を満たしていない場合は、モデルの​ 同期 ​をおこなうと、エラーが表示されます。例えば次のように、 参加者 ​ステップで参加者が定義されていない場合などです。

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

デフォルトまたはレガシーのモデル を開いて編集する際は、次の点に注意してください。
  • ステップブラウザーを利用できません(左側)。
  • ツールバーで「 編集 」操作を利用できます(右側)。
  • 次の理由から、最初はモデルとそのプロパティが読み取り専用モードで開かれます。
    • Default workflows are located in /libs
    • 従来のワークフローは「編集の選択」 /etc にあ ります 。次の操作を行います。
  • take a copy of the workflow into /conf
  • ステップブラウザーを利用できるようになります。
  • 変更を加えられるようになります。
詳しくは、 ワークフローモデルの場所 を参照してください。

モデルにステップを追加

実行するアクティビティを表すために、ステップをモデルに追加する必要があります。各ステップは固有のアクティビティを実行します。標準の AEM インスタンスには、いくつかのステップコンポーネントが用意されています。
モデルを編集する際は、 ステップブラウザー ​の様々なグループに利用可能なステップが表示されます。次に例を示します。
AEM と共にインストールされる主なステップコンポーネントについては、 ワークフローステップのリファレンス を参照してください。
ワークフローモデルへのステップの追加手順
  1. 編集する既存のワークフローモデルを開きます。From the Workflows Model console, select the required model, then Edit .
  2. サイドパネルを切り替え (上部ツールバーの左端)を使用してステップブラウザーを開きます。ここでは、以下のことができます。
    • フィルター ​を使用して特定のステップのみを表示する。
    • ドロップダウンセレクターを使用して、選択対象を特定のステップのグループに限定する。
    • Select the Show Description icon to show more details about the appropriate step.
  3. 対象のステップをドラッグしてモデル内の目的の場所に移動します。
    参加者ステップ ​などです。
    フローに追加した ステップは設定を変更 できます。
  4. 必要に応じてステップを追加したり、変更を加えたりします。
    実行時には、ステップがモデル内に配置されている順序で実行されます。いったん追加したステップコンポーネントを、モデル内の別の場所にドラッグすることもできます。
    ページエディター と同様に、ステップのコピー、切り取り、貼り付け、グループ分け、削除をおこなうこともできます。
    Split steps can also be collapsed/expanded using the toolbar option:
  5. 同期 」(エディターツールバー)をクリックして変更内容を確定し、ランタイムモデルを生成します。
    詳しくは、 ワークフローの同期 を参照してください。

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

ステップのプロパティ ​ダイアログを使用して、ワークフローステップの動作を​ 設定 ​およびカスタマイズできます。
  1. ステップに対応する​ ステップのプロパティ ​ダイアログを開くには、次のどちらかを実行します。
    • Click/tap the* *step in the workflow model and select Configure from the component toolbar.
    • ステップをダブルクリックします。
    AEM と共にインストールされる主なステップコンポーネントについては、 ワークフローステップのリファレンス を参照してください。
  2. 必要に応じて​ ステップのプロパティ ​を設定します。利用できるプロパティはステップのタイプによって異なります。複数のタブが表示されることもあります。For example, the default Participant Step , present in a new workflow as Step 1 :
  3. チェックマークをクリックして、変更内容を確認します。
  4. 同期 」(エディターツールバー)をクリックして変更内容を確定し、ランタイムモデルを生成します。
    詳しくは、 ワークフローの同期 を参照してください。

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

新しいモデルを作成するときに、または既存のモデルに手を加えて、 一時的 ワークフローモデルを作成することができます。
  1. 編集 するワークフローモデルを開きます。
  2. ツールバーから「 ワークフローモデルのプロパティ 」を選択します。
  3. In the dialog activate Transient Workflow (or deactivate if required):
  4. 保存して閉じる 」をクリックし、「 同期 」(エディターツールバー)をクリックして変更内容を確定し、ランタイムモデルを生成します。
    詳しくは、 ワークフローの同期 を参照してください。
ワークフローを 一時的 モードでした場合は、AEM にはワークフロー履歴が保存されません。したがって、そのワークフローに関連する情報は、 タイムライン に表示されません。 タイムライン

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

If a workflow model is present in Classic UI, but missing in the selection popup menu in the Timeline rail of Touch UI, then follow the configuration to make it available. 次の手順は、「Request for Activation」と呼ばれるワークフローモデルの使 用方法を示します
  1. 該当するモデルがタッチ対応 UI で使用できないことを確認します。Access an asset using /assets.html/content/dam path. アセットを選択します。左レールの「 タイムライン 」を開きます。「ワー クフローを開始 」をクリックし、 Activation Request for Activationモデルがポップアップリストに表示されないことを確認します。
  2. ツール/一 般/タグに移動します 。 「 ワークフロー 」を選択します。
  3. Select Create > Create Tag . Set Title as DAM and Name as dam . 「 送信 」を選択します。
  4. Navigate to Tools > Workflow > Models . 「アクテ ィベーションのリクエスト 」を選択し、「編集」を 選択します
  5. 「編集 」を選択し 、ページ情報メニューを開き、「プロパ ティを開く 」を選択して「基本」タブに移動します(まだ開いてい ない場合)。
  6. 「タグ」フ Workflow : DAM ィー ルドに追加 。 チェックマークを付けて選択を確定します。
  7. 「保存して閉じる」でタグの追加を 確認します
  8. 同期を使用してプロセスを完 了します 。 タッチ対応UIでワークフローを使用できるようになりました。

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

新しいモデルを作成するときに、または既存のモデルに手を加えて、 マルチリソースのサポート のためのワークフローモデルを設定できます。
  1. 編集 するワークフローモデルを開きます。
  2. ツールバーから「 ワークフローモデルのプロパティ 」を選択します。
  3. In the dialog activate Multi Resource Support (or deactivate if required):
  4. 保存して閉じる 」をクリックし、「 同期 」(エディターツールバー)をクリックして変更内容を確定し、ランタイムモデルを生成します。
    詳しくは、 ワークフローの同期 を参照してください。

Configuring Workflow Stages (that show Workflow Progress)

ワークフローステージ は、タスクを処理するときにワークフローの進行状況を確認するのに役立ちます。
ワークフローステージが​ ページのプロパティ ​で定義されていても、いずれのワークフローステップでも使用されない場合は、(現在のワークフローステップに関係なく)進行状況バーに進行状況は表示されません。
使用可能なステージは、ワークフローモデルで定義されます。既存のワークフローモデルを更新すると、ステージの定義を含めることができます。ワークフローモデルに対して任意の数のステージを定義できます。
ワークフローの​ ステージ ​を定義するには:
  1. 編集するワークフローモデルを開きます。
  2. ツールバーから「 ワークフローモデルのプロパティ 」を選択します。「 ステージ 」タブを開きます。
  3. 必要な​ ステージ ​を追加(および配置)します。ワークフローモデルに対して任意の数のステージを定義できます。
    次に例を示します。
  4. 保存して閉じる 」をクリックしてプロパティを保存します。
  5. ワークフローモデルの各ステップにステージを割り当てます。次に例を示します。
    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. Use Start Workflow to select the desired workflow from those available:
  5. チェックマークをクリックして、新しいフォーム設定を確認します。

ワークフローのテスト

ワークフローのテスト時には、開発時のタイプと異なるものも含め、様々なペイロードタイプを使用してワークフローをテストすることをお勧めします。例えば、アセットを処理するワークフローの場合、ページをペイロードとして設定して、ワークフローでエラーがスローされないことを確認します。
例えば、新しいワークフローを次のようにテストします。
  1. コンソールからワークフロー ・モデルを起動します。
  2. ペイロード ​を定義して確定します。
  3. ワークフローが進行するように、必要なアクションを実行します。
  4. ワークフローの動作中にログファイルを監視します。
ログファイルに​ デバッグ ​メッセージを記録するように AEM を設定することもできます。See Logging for further information and when the development is finished, set the Log Level back to Info .

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

To illustrate some of the possibilities for creating a workflow, the following example creates a variation of the Publish Example workflow.
  1. 新しいワークフローには、次のステップが含まれます。
    • フロー開始
    • Step 1
    • フロー終了
  2. Step 1 を削除します(この例には不適切なステップタイプです)。
    • Click on the step and select Delete from the component toolbar. アクションを確定します。
  3. From the Workflow selection of the steps browser, drag a Participant Step onto the workflow and position it between Flow Start and Flow End .
  4. 次のいずれかの方法でプロパティダイアログを開きます。
    • Click on the participant step and select Configure from the component toolbar.
    • 参加者ステップをダブルクリックします。
  5. 共通 」タブで、「 Validate Content タイトル​ 」と「 ​説明​ 」の両方に と入力します。
  6. ユーザー / グループ 」タブを開きます。
    • 電子メールでユーザーに通知します 」を有効にします。
    • Select Administrator ( admin ) for the User/Group field.
  7. チェックマークをクリックして、変更内容を確認します。
    You will be returned to the overview of the workflow model, here the participant step will have been renamed to Validate Content .
  8. Drag an Or Split onto the workflow and position it between Validate Content and Flow End .
  9. OR 分割 ​を設定用に開きます。
  10. 次の設定をおこないます。
    • 共通 :分割名を指定します。
    • ブランチ 1 :「 デフォルトのルート 」を選択します。
    • ブランチ 2 :「 デフォルトのルート 」を選択しません。
  11. OR 分割 ​の変更内容を確定します。
  12. 参加者ステップ ​を左側のブランチにドラッグし、プロパティを開き、次の値を指定してから変更内容を確定します。
    • タイトル : Reject Publish Request
    • ユーザー / グループ projects-administrators など
    • 電子メールでユーザーに通知 :ユーザーに電子メールで通知する場合は、をアクティブにします。
  13. プロセスステップ ​を右側のブランチにドラッグし、プロパティを開き、次の値を指定してから変更内容を確定します。
    • タイトル : Publish Page as Requested
    • プロセス :を選択しま Activate Page す。 このプロセスは、選択されているページをパブリッシュインスタンスに公開します。
  14. 同期 」(エディターのツールバー)をクリックし、ランタイムモデルを生成します。
    詳しくは、 ワークフローの同期 を参照してください。
    新しいワークフローモデルは次のようになります。
  15. このワークフローをページに適用します。その結果、ユーザーが「 コンテンツを検証 」ステップの「 完了 」に移動すると、「 リクエストに応じてページを公開 」と「 公開リクエストを拒否 」のどちらを実行するかを選択できます。

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

OR 分割 ​ステップを使用すると、ワークフローに条件分岐の処理パスを導入できます。
OR ルールを定義するには、次の手順に従います。
  1. 2 つのスクリプトを作成して、リポジトリ内の次の場所などに保存します。
    /apps/myapp/workflow/scripts
    The scripts must have a function that returns a boolean.
  2. ワークフローを編集し、 OR 分割 ​をモデルに追加します。
  3. OR 分割 ​の​ ブランチ 1 のプロパティを編集します。
    • Define this as the Default Route by setting the Value to true .
    • As Rule , set the path to the script. 次に例を示します。
      /apps/myapp/workflow/scripts/myscript1.ecma
    必要に応じて、分岐の順序を切り替えることができます。
  4. OR 分割 ​の​ ブランチ 2 のプロパティを編集します。
    • As Rule , set the path to the other script. 次に例を示します。
      /apps/myapp/workflow/scripts/myscript2.ecma
  5. 各ブランチ内の個々のステップのプロパティを設定します。Make sure the User/Group is set.
  6. 同期 」(エディターのツールバー)をクリックして、ランタイムモデルに対する変更を保持します。
    詳しくは、 ワークフローの同期 を参照してください。

関数 Check()

ECMAScript の使用 を参照してください。
The following sample script returns true if the node is a JCR_PATH located under /content/we-retail/us/en :
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;
     }
}

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

標準提供のワークフローは、いずれもカスタマイズすることができます。動作をカスタマイズするには、適切なワークフローの詳細をオーバーレイします。
例えば、 アクティベーションをリクエスト ​をカスタマイズするとします。このワークフローは、 サイト ​内でページを公開するために使用され、コンテンツ作成者が適切なレプリケーション権限を持っていない場合に自動的に実行されます。See Customizing Page Authoring - Customizing the Request for Activation Workflow for further details.