AEM開発者ブログ by YAMATO

アドビ社のデリバリーパートナー大和株式会社のAEM開発者ブログです。

ACS AEM Commons - Report Builder カスタムレポート編

こんにちは、大和の長森と申します。 今回はACS Commonsのカスタムレポートについて紹介します。 前回の記事ではACS Commonsのデフォルトレポートについて紹介しているので、ACS Commonsとは?デフォルトレポートとは?を知りたい方は是非こちらも覗いてみてください。

カスタムレポート

カスタムレポートでは、表示したい情報を自由に設定することができます。 それでは、実際にレポートを作成してみましょう。

今回は「Asset Report」として「指定されたパス配下にあるアセット情報を選択した表示順で表示するレポート」を作成します。

クエリーパラメータ 結果で表示する項目
・Path,
・Order(Title(A-Z,Z-A), Last Modified Date(Newest, Oldest))
・Path,
・Name,
・Last Modified Date,
・Replication Status,
・Asset Instance(別のレポート呼び出し),
・Asset Manager,
・Editor(CRXDE)

①Configuration

検索クエリーの本文を書きます。必ず設定する必要があります。 設定方法はJCRクエリーを記述する方法とリソースパスを指定する方法の2つがあります。

また、Page Sizeも設定できます。Page sizeは1回の問い合わせで取得する件数です。 (レポート実行時に「All Result」にチェックを入れた場合、Page sizeの件数に関わらず全件表示します。)

今回の例では以下のように設定します。

Configuration Query Query Language Page Size
JCR Query Report Configuration SELECT asset.* FROM [dam:Asset] AS asset WHERE ISDESCENDANTNODE(asset, '{{path}}') ORDER BY {{order}} JCR SQL2 10

*Queryで使用されている「{{ }}」で囲んだものがパラメータとして扱われ、②Search Parameterで定義する必要があります。

設定後の状態

②Search Parameter

検索クエリーでパラメータ(「{{ }}」で囲んだもの)の値の設定方法を定義します。入力必須制限も各項目で設定可能です。 設定方法は以下3つがあります。

1.ACS Commons Report Builder Basic Parameter

テキスト、数値、日付のパラメータを設定することが可能です。 各フィールドには以下を設定します。

  • Label - レポート実行画面での表示名
  • Name – 引数の名前。Report Configuration queryの「{{ }}」で定義されている名前と同じ値を指定します。
  • Required – 必須の有無
  • Field – 引数の型。(Number Field, Text Field, Data Pickerより選択可能)
2. ACS Commons Report Builder Select Parameter

値をドロップダウンから選択する形式のパラメータを定義できます。選択肢は手動で設定します。 各フィールドには以下を設定します。

  • Label - レポート実行画面での表示名
  • Name – 引数の名前。Report Configuration queryの「{{ }}」で定義されている名前と同じ値を指定します。
  • Options – 選択肢。Textには表示名、Valueには引数として設定したいパラメータの値を指定します。
3.ACS Commons Report Builder Select Parameter Dynamically by Query

クエリーの結果に基づいてパラメータ値の選択肢を動的に生成することが可能です。 各フィールドには以下を設定します。

  • Label - レポート実行画面での表示名
  • Name – 引数の名前。Report Configuration queryの「{{ }}」で定義されている名前と同じ値を指定します。
  • Dropdown Query Language – 選択肢の値を取得するクエリーの言語の種類(JCR-SQL2, XPath, QueryBuilder, List, JCR-SQLより選択可能)
  • Dropdown Query – 選択肢として表示したい値を取得するクエリー
  • Allowed Property Names – 選択肢として表示する値が格納されているプロパティ名(省略した場合は全てのプロパティからの値を列挙)

今回の例では以下のように設定します。

Name Label パラメータの種類 選択肢 (Select Parameter選択時)
path Path Report Builder Basic Parameter -
order Order Report Builder Select Parameter Title(A-Z), Title(Z-A), Last Modified Date(Newest) , Last Modified Date(Oldest)

③Result Columns

結果で表示したい項目を設定します。 設定できる項目のタイプは以下8つです。 情報だけでなく、各ページへのリンクも設定可能です。

1.Containing Page Column

出力された結果のリソースが使用されているページを表示します(検索されたリソースがページに配置されたコンポーネントだとしたら、それが配置されているページ)。

2.Date Column

日付型のプロパティの値を表示したい時に使用します。(指定するプロパティは日付型でなければいけません。) データフォーマットは、SimpleDateFormatの形で指定してください。

3.Editor Column

レポート行に歯車マークのボタンが表示され、押下すると各レポート結果のリソースを、指定したEditorで開きます。 Customを選択することで、他のレポートへのリンクを設定することも可能です。 以下6つをEditorとして指定できます。

  • CRX DE - CRXDE Liteに遷移し、選択したパスのNodeを開きます。
  • Assets – 選択したアセットをAssetsマネージャーで表示します。Assetコンソールの表示設定が「列表示」の場合はコンソール画面に遷移し、「カード表示」または「リスト表示」の場合はAsset詳細ページに遷移します。
  • Experience Fragments – 選択したXFをExperience Fragmentコンソールで表示します。
  • Sites – 選択したパスをSitesコンソールで表示します。
  • Tags – 選択したパスをTagコンソールで表示します。
  • Custom – Userが指定したEditorを表示します。ボタンのリンクを生成するために使用されるURLの接頭辞を指定してください。また、他のレポートを指定することもでき、遷移元の結果を引数として渡すことも可能です。
4.Path Column

結果のリソースのパスを表示します。
Include Linkにチェックを入れると、パスにCRXDEのリンクが付与され、クリックするとリソースのノード場所が表示されます。

5.Replication Status Column

結果のリソースの公開状況を表示します(プロパティ「cq:lastReplicationAction」の状態)。

6.Tags Column

結果のリソースのタグプロパティの値を表示します。また、リンクを押下すると対象のタグをAEMのタグマネージャで表示します。 Propertyにて、表示したいタグ型のプロパティを定義してください。(例 : jcr:content/cq:tags)

7.ACS Commons Report Builder Predicted Tags Column

結果のアセットリソースの予測タグリストを表示します。
Propertyでは、表示したいタグ型のプロパティを定義します。(例 : jcr:content/metadata/cq:predictedTags)
また、Show Confidenceにチェックを入れると信頼値も表示されます。
Lower Confidence Thresholdで、表示する予測タグの基準を指定することができ、入力した値よりもタグの信頼値が低い場合は省かれます。(0はフィルターなし)

8.Text Column

結果のリソースのテキスト型の項目値を表示します。 Propertyで表示する項目を指定してください。(例 : jcr:content/cq:name)

今回の例では以下のように設定します。

ラベル コラムの種類
Path Path Column -
Name Text Column Property = jcr:content/cq:name
Last Modified Date Date Column Property = jcr:content/jcr:lastModified, Date Format = yyyy/MM/dd
Replication Status Replication Status Column -
Asset Instance Editor Column Editor Type = Custom, CustomEditor = [ http://localhost:4502/var/acs-commons/reports/asset-instance.html?wcmmode=disabled#path=/content/we-retail#fileReference= ]
Asset Manager Editor Column Editor Type = Assets
Editor Editor Column Editor Type = CRX DE

クエリー結果から別のレポートを呼び出す

今回の例では、Asset Instanceを呼び出すように設定します。
呼び出しURL : [ http://localhost:4502/var/acs-commons/reports/asset-instance.html?wcmmode=disabled#path=/content/we-retail#fileReference= ]
こちらが遷移先レポートの設定内容です。

上記のAsset InstanceレポートのSearch Parameterの「Path」と「FileReference」をURLの引数で渡しています。
Pathには「/content/we-retail」を指定し、we-retail配下にあるページを対象にしています。
FileReferanceにはクリックしたパスを渡し、選択したパスのアセットが使われているページ(FileReferenceに対象パスが含まれているページ)を表示します。

このようにして、歯車ボタンをクリックしただけで、選択したパスに応じた別のレポート結果を表示することができます。 では、実際に例で作成したレポートの表示を見てみましょう。

こちらがレポートを実行した結果の画面 です。

②Search Parameter、③Result Columnで設定した内容はそれぞれの黄枠のように表示されます。

また、青枠の部分はボタンになっていて、各画面に遷移します。
Asset Instance列の歯車をクリックすると、選択したパスが使われているページを表示するレポート(別のレポート)が表示されます。

Asset Manager列の歯車をクリックすると、AEMのアセットマネージャーで選択したアセットを表示します。

Editor列の歯車をクリックすると 、CRXDEに遷移し、選択した結果のノードを表示します。

このように、レポートはただ結果を表示しているだけでなく、その結果からすぐに修正や確認が行えるよう、様々なカスタマイズが可能で、非常に便利です。

(設定方法は、こちらのページにも詳しく記載してありますので、一緒に参考にしてみてください。 https://adobe-consulting-services.github.io/acs-aem-commons/features/report-builder/configuring.html

レポートの作成は一見複雑にも見えますが、設定する内容が分かれば簡単に作成できます。
用途に応じて、確認しやすく、操作しやすいレポートを作成してください!

最後に

レポートビルダーはとても便利な機能で、作業を効率的、かつ正確に行うことを可能にしてくれます!
確認/修正作業が必要な際など、是非活用してはいかがでしょうか。

最後まで読んでいただき、ありがとうございました。