ワークフローの設定とカスタマイズ id181AI0OJ0RO
ワークフローを使用すると、Adobe Experience Manager \(AEM\)アクティビティを自動化できます。 ワークフローは、特定の順序で実行される一連のステップで構成されます。 各ステップで実行するアクティビティを定義できます。 例えば、トピックレビューの作成時に、グループ内のすべてのレビュー担当者にメール通知を送信できます。 または、出力生成タスクが完了したときにパブリッシャーに通知を送信します。
AEMのワークフローについて詳しくは、以下を参照してください。
- ワークフローインスタンスの管理
- ワークフローの適用と参加: プロジェクトワークフローの操作
- ワークフローの管理
- ワークフローの適用と参加: ワークフローの操作
- ワークフローモデルの作成とワークフロー機能の拡張: ワークフローの開発と拡張
- 重要なサーバーリソースを使用するワークフローのパフォーマンスを改善しています:同時ワークフロー処理
このトピックでは、AEM Guidesに付属するデフォルトのワークフローで行える様々なカスタマイズについて説明します。
レビューワークフローをカスタマイズ id176NE0C00HS
あらゆる企業のコンテンツオーサリングチームは、ビジネス要件に対応するために特定の方法で作業しています。 一部の組織では専用のエディターを導入していますが、別の組織では自動化されたエディトリアルレビューシステムを導入している場合もあります。 例えば、一般的なオーサリングと公開のワークフローでは、作成者がコンテンツのオーサリングを行うたびに、レビュー担当者に自動的に送信され、レビューが完了すると、最終的な出力を生成するためにパブリッシャーに送信されます。 AEMでは、コンテンツとアセットに対して行ったアクティビティを、プロセスの形で組み合わせ、AEM ワークフローにマッピングできます。 AEMのワークフローについて詳しくは、AEM ドキュメントの ワークフローの管理を参照してください。
AEM Guidesでは、デフォルトのレビューワークフローをカスタマイズできます。 次の4つのカスタムレビュー関連プロセスを、他のオーサリングワークフローまたは公開ワークフローで使用できます。
-
レビューを作成:このプロセスは、レビュータスクの作成に必要なメタデータを準備します。 例えば、レビュー担当者へのレビュー権限の割り当て、レビュー中のトピックのステータスの設定、レビュータイムラインの設定などを行います。 4つのプロセスのうち、カスタムワークフローに含める必要がある必須プロセスはこれだけです。 ワークフローで、他の3つのプロセスを含めるか除外するかを選択できます。
-
レビュータスクの割り当て:このプロセスはレビュータスクを作成し、開始者とレビューアーにタスク通知を送信します。
-
レビュー電子メールを送信:このプロセスでは、レビュー電子メールを開始者とレビュー担当者に送信します。
-
レビューを終了するジョブをスケジュール:このプロセスにより、期限に達したときにレビュープロセスが完了します。
カスタムレビューワークフローを作成する場合、最初のタスクは、レビューを作成プロセスで必要なメタデータを設定することです。 これを行うには、ECMA スクリプトを作成します。 メタデータを割り当てるECMA スクリプトのサンプルを、以下のトピックとマップの両方に示します。
トピック の
var workflowdata=workItem.getWorkflowData();
workflowdata.getMetaDataMap().put("initiator","admin");
workflowdata.getMetaDataMap().put("operation","AEM_REVIEW");
workflowdata.getMetaDataMap().put("orgTopics","/content/dam/xml-solution/review.xml");
workflowdata.getMetaDataMap().put("payloadJson","{\"base\":\"/content/dam/xml-solution\",\"asset\":[\"/content/dam/xml-solution/review.xml\"],\"referrer\":\""}");
workflowdata.getMetaDataMap().put("deadline","2017-06-27T13:19:00.000+05:30");
workflowdata.getMetaDataMap().put("title","Review through custom workflow");
workflowdata.getMetaDataMap().put("description","Initiate this review process using the AEM workflow");
workflowdata.getMetaDataMap().put("assignee","user-one", "user-two");
workflowdata.getMetaDataMap().put("status","1");
workflowdata.getMetaDataMap().put("projectPath","/content/projects/review");
workflowdata.getMetaDataMap().put("startTime", System.currentTimeMillis());
workflowdata.getMetaDataMap().put("reviewType", "AEM");
workflowdata.getMetaDataMap().put("versionJson", "[{\"path\":\"GUID-ca6ae229-889a-4d98-a1c6-60b08a820bb3.dita\",\"review\":true,\"version\":\"1.0\",\"reviewers\":[\"projects-samplereviewproject-owner\"]}]");
workflowdata.getMetaDataMap().put("isDitamap","false");
workflowdata.getMetaDataMap().put("reviewVersion","3.0");
マップの場合
var workflowdata = workItem.getWorkflowData();
workflowdata.getMetaDataMap().put("initiator", "admin");
workflowdata.getMetaDataMap().put("operation", "AEM_REVIEW");
workflowdata.getMetaDataMap().put("orgTopics", "GUID-ae42f13c-7201-4453-9a3a-c87675a5868e.dita|GUID-28a6517b-1b62-4d3a-b7dc-0e823225b6a5.dita|GUID-dd699e10-118d-4f1b-bf19-7f1973092227.dita|");
var payloadJson = "{\"referrer\":\"\",\"rootMap\":\"GUID-17feb385-acf3-4113-b838-77b11fd6988d.ditamap\",\"asset\":[\"GUID-17feb385-acf3-4113-b838-77b11fd6988d.ditamap\"],\"base\":\"/content/dam\"}";
workflowdata.getMetaDataMap().put("payloadJson", payloadJson);
workflowdata.getMetaDataMap().put("deadline", "2047-06-27T13:19:00.000+05:30");
workflowdata.getMetaDataMap().put("title", "Review task via workflow with map");
workflowdata.getMetaDataMap().put("description", "Review task via workflow with map Description");
workflowdata.getMetaDataMap().put("assignee", "user-one");
workflowdata.getMetaDataMap().put("status", "1");
workflowdata.getMetaDataMap().put("projectPath", "/content/projects/review_project_via_workflow");
workflowdata.getMetaDataMap().put("startTime", new Date().getTime());
var versionJson = "[{\"path\":\"GUID-ae42f13c-7201-4453-9a3a-c87675a5868e.dita\",\"version\":\"1.0\",\"review\":true,\"reviewers\":[\"starling-regression-user\"]},{\"path\":\"GUID-28a6517b-1b62-4d3a-b7dc-0e823225b6a5.dita\",\"version\":\"1.0\",\"review\":true,\"reviewers\":[\"starling-regression-user\"]},{\"path\":\"GUID-dd699e10-118d-4f1b-bf19-7f1973092227.dita\",\"version\":\"1.0\",\"review\":true,\"reviewers\":[\"starling-regression-user\"]}]";
workflowdata.getMetaDataMap().put("versionJson", versionJson);
workflowdata.getMetaDataMap().put("notifyViaEmail", "true");
workflowdata.getMetaDataMap().put("allowAllReviewers", "false");
workflowdata.getMetaDataMap().put("isDitamap", "true");
workflowdata.getMetaDataMap().put("ditamap", "GUID-17feb385-acf3-4113-b838-77b11fd6988d.ditamap");
var ditamapHierarchy = "[{\"path\":\"GUID-17feb385-acf3-4113-b838-77b11fd6988d.ditamap\",\"items\":[{\"path\":\"GUID-db5787bb-5467-4dc3-b3e5-cfde562ee745.ditamap\",\"items\":[{\"path\":\"GUID-ae42f13c-7201-4453-9a3a-c87675a5868e.dita\",\"items\":[],\"title\":\"\"},{\"path\":\"GUID-28a6517b-1b62-4d3a-b7dc-0e823225b6a5.dita\",\"items\":[],\"title\":\"\"}],\"title\":\"\"},{\"path\":\"GUID-dd699e10-118d-4f1b-bf19-7f1973092227.dita\",\"items\":[],\"title\":\"\"}]}]";
workflowdata.getMetaDataMap().put("ditamapHierarchy", ditamapHierarchy);
workflowdata.getMetaDataMap().put("reviewVersion","3.0");
これらのスクリプトは/etc/workflows/scripts ノードで作成できます。 次の表に、前述のECMA スクリプトの両方で割り当てられるプロパティを示します。
initiatoroperationAEM_REVIEWに設定された静的な値。orgTopicspayloadJsonbase:レビュー用に送信されたトピックを含む親フォルダーのパス。-
asset:レビュー用に送信されたトピックのパス。-
referrer:空白のままにします。deadlineyyyy-MM-dd'T'HH:mm:ss.SSSXXX形式で指定してください。titledescriptionassigneestatusstartTimeSystem.currentTimeMillis()関数を使用します。projectPathreviewTypeversionJsonisDitamapditamapHierarchyditamapallowAllReviewersnotifyViaEmailスクリプトを作成したら、ワークフローで「レビューを作成」プロセスを呼び出す前にスクリプトを呼び出します。 その後、要件に応じて、他のレビューワークフロープロセスを呼び出すことができます。
パージ設定からレビューワークフローを削除する
ワークフローエンジンのパフォーマンスを向上させるために、完成したワークフローインスタンスをAEM リポジトリから定期的にパージできます。 デフォルトのAEM設定を使用している場合、完了したすべてのワークフローインスタンスは、特定の時間が経過した後にクリーンアップされます。 これにより、すべてのレビューワークフローがAEM リポジトリからパージされます。
自動消去の設定からレビューワークフローモデル \(information\)を削除することで、レビューワークフローの自動消去を防止できます。 Adobe Granite Workflow Purge Configurationを使用して、レビューワークフローモデルを自動パージ リストから削除する必要があります。
Adobe Granite Workflow Purge Configurationで、安全にパージできるワークフローを1つ以上一覧表示してください。 例えば、AEM Guidesで作成された次のいずれかのワークフローを使用できます。
- /etc/workflow/models/publishditamap/jcr:content/model
- /etc/workflow/models/post-dita-project-creation-tasks/ jcr:content/model
Adobe Granite Workflow Purge Configurationにワークフローを追加すると、AEMが設定にリストされているワークフローのみをパージするようになります。 これにより、AEMがレビューワークフロー情報をパージしないようにします。
Adobe Granite Workflow Purge Configurationの設定について詳しくは、AEM ドキュメントの Workflow Instancesの管理 を参照してください。
メールとAEM通知のカスタマイズ
AEM Guidesの多くのワークフローでは、メール通知を使用しています。 例えば、レビュータスクを開始すると、メール通知がレビュー担当者に送信されます。 ただし、電子メール通知が送信されるようにするには、AEMでこの機能を有効にする必要があります。 AEMでメール通知を有効にするには、AEM ドキュメントの記事 メールの送信を参照してください。
AEM Guidesには、レビューワークフローで使用される電子メールとAEM通知のセットが含まれており、カスタマイズできます。 これらの通知をカスタマイズするには、次の手順を実行します。
-
パッケージマネージャーを使用して
/libs/fmdita/mail/reviewフォルダーをダウンロードします。note note NOTE libsノードで使用できる既定の構成ファイルのカスタマイズを行わないでください。libsノードでappsノードのオーバーレイを作成し、appsノードでのみ必要なファイルを更新する必要があります。 -
reviewフォルダーには、次のサブフォルダーが含まれています。aem-notificationCSSemail-notification
これらのサブフォルダーの詳細な説明を以下に示します。
table 0-row-2 1-row-2 2-row-2 3-row-2 サブフォルダーのレビュー 説明 aem-notificationカスタマイズ可能な様々なAEM通知タイプが含まれています。 closedcontent-updatedfeedback-addressedfeedback-providedrequestedreviewer-removedtag-mention
これらのサブフォルダー内には、primary.vmおよびsecondary.vm個のファイルが配置されており、それぞれAEM通知のタイトルと説明をカスタマイズできます。CSSメール通知のスタイル設定をカスタマイズするための email-notification.cssファイルが含まれています。email-notificationカスタマイズ可能な様々なメール通知タイプが含まれます。 closedcontent-updatedfeedback-addressedfeedback-providedrequestedreviewer-removedtag-mention
これらのサブフォルダー内には、primary.vmおよびsecondary.vm個のファイルが配置されており、それぞれメール通知の件名と本文をカスタマイズできます。
各通知タイプの定義は次のとおりです。
closed:レビュータスクが閉じられたときのトリガー。content-updated:作成者またはイニシエータがコンテンツを更新するとトリガーが発生します。feedback-addressed:作成者またはイニシエータがコメントに対応し、レビュー担当者に再審査を依頼する際のトリガー。- レビューアーが、レビュータスクの作成者または開始者にタスクレベルのコメントを提供することで、タスクを完了とマークすると、
feedback-provided件のトリガーが発生します。 requested:作成者または開始者がレビュータスクを作成する際のトリガー。reviewer-removed:レビュー担当者がレビュータスクから割り当て解除されたときのトリガー。tag-mention: レビューコメントでユーザーがメンションまたはタグ付けされたときのトリガー。
電子メールまたはAEM通知をカスタマイズする際は、primary.vmおよびsecondary.vm ファイルで使用されている次の事前定義済み変数セットのみを使用するようにしてください。
projectPathreviewTitleprojectNamecommentatorcommentExcerpttaskLinkauthorNamedueDatereviewerNameuserrecipient出力後の生成ワークフローのカスタマイズ id17A6GI004Y4
AEM Guidesでは、出力後の生成ワークフローを柔軟に指定できます。 AEM Guidesを使用して生成された出力に対して、いくつかの後処理タスクを実行できます。 例えば、生成されたAEM サイト出力にCQ タグを適用したり、PDF出力に特定のプロパティを設定したり、出力が生成されたら、一連のユーザーにメールを送信したりできます。
出力後の生成ワークフローとして使用する新しいワークフローモデルを作成できます。 出力後の生成ワークフローがトリガーされると、出力生成ワークフローはワークフローメタデータマップを通じてコンテキスト情報を共有します。この情報を使用して、生成された出力に対する処理を実行できます。 次の表に、メタデータとして共有されるコンテキスト情報を示します。
outputNamegeneratedPathoutputTypeoutputTitleoutputHistoryPathisSuccesslogPathgeneratedTimeinitiator出力生成メタデータを使用するには、ECMA スクリプトまたはOSGi バンドルを作成します。 メタデータを使用するECMA スクリプトのサンプルを以下に示します。
/etc/workflows/scripts ノードで作成できます。var session = workflowSession.getSession(); // Obtain session object to read/write the repository.
var payload = workItem.getWorkflowData().getPayload().toString(); // Get the workflow payload (the ditamap file on which the generation was triggered)
var metadata = workItem.getWorkflowData().getMetaDataMap(); // Get the workflow metadata object
var generatedPath = metadata.get("generatedPath"); // supplied by AEM Guides
var username = metadata.get("initiator"); // supplied by AEM Guides
var successful = metadata.get("isSuccess"); // supplied by AEM Guides
var title = metadata.get("outputTitle"); // supplied by AEM Guides
var subject = "Output Generation Finished";
var message = "Generation of output " + title + " just finished " +
(successful ? "successfully. " : "unsuccessfully. ");
message += "It was triggered by " + username;
if (successful) {
message += "<br/><br/>The path to the generated output is " +
generatedPath;
}
/*
MailerAPI.sendMail("dl-docs-authors", subject, message);
*/
スクリプトを作成したら、ワークフローでカスタムスクリプトを呼び出します。 そして、要件に応じて、他のワークフロープロセスを呼び出すことができます。 カスタムワークフローをデザインしたら、ポストジェネレーションの最終版をワークフロープロセスの最後のステップとして呼び出します。 生成後の最終処理手順では、出力生成プロセスの完了時に、出力生成タスクのステータスが 完了 に更新されます。 カスタムの出力後生成ワークフローを作成した後、任意の出力生成プリセットを使用して設定できます。 必要なプリセットの「生成後ワークフローを実行」プロパティで、必要なワークフローを選択します。 設定された出力プリセットを使用して出力生成タスクを実行すると、タスクのステータス \(出力タブの\)が 後処理 に変わります。
アセットの更新ワークフローのカスタマイズ(オンプレミスのみ)
デフォルトでは、AEM Asset \(XMLまたは非XML\)を作成または更新するたびに、DAM アセットの更新 ワークフロートリガーが実行されます。 例えば、トピックを作成または更新すると、DAM アセットの更新 ワークフローが実行されます。 DAM アセットの更新 ワークフローは、Assetsから関連メタデータを抽出しようとします。 標準装備の アセット更新ワークフロー には、DITA ファイルから関連するメタデータを抽出する手順はなく、DAM アセット更新 ワークフローは、実行時に多くのログを生成します。 追加のログを避ける場合は、すべてのXML ファイルを処理からスキップするようにワークフローを設定できます。
次の手順を実行して、DAM アセットの更新 ワークフローをカスタマイズします。
-
ワークフローランチャー ページを開きます。
ワークフローランチャーページにアクセスするためのデフォルトのURLは次のとおりです。
code language-http http://<server name>:<port>/libs/cq/workflow/admin/console/content/launchers.html -
ワークフローランチャーのリストから、DAM アセットの更新 ワークフローのプロパティを開きます。
-
次の式を使用して条件を追加します。
code language-json jcr:content/metadata/dc:format!=application/xml -
「保存して閉じる」をクリックします。
後処理XML ワークフローの設定(オンプレミスのみ)
AEM Guidesでは、AEMでDITA コンテンツを操作するための多数のワークフローを作成します。 例えば、DITA コンテンツのアップロードや既存のコンテンツの更新時に実行されるワークフローがあります。 これらのワークフローはDITA ドキュメントを解析し、メタデータの設定、新しいDITA マップへのデフォルト出力プリセットの追加、その他の関連タスクなど、様々なタスクを実行します。
次のプロパティは、AEM Guidesでの後処理ワークフローの実行方法を制御します。
com.adobe.fmdita.postprocess.PostProcessObservationcom.adobe.fmdita.config.ConfigManagerデフォルト値は1です。