AEM開発者ブログ by YAMATO

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

AEMのUIだけを使用してSQL2 SELECT文を取得する方法

AEM Developerの皆様、こんにちは。大和株式会社の熊井です。

今回はAEMの中でたまに使用ケースがあるが、1から書くには慣れが必要なSQL2 SELECT文についてUIだけを使用して取得する方法を解説します。手順は至極簡単で、2ステップで取得できます。

大きな流れ

【1】Query Builder Debuggerを使用してXPATHを取得する
【2】Explain Queryを使用してXPATHをSQL2に変換する

【1】Query Builder Debuggerを使用してXPATHを取得する

まずはQuery Builder Debuggerを使用して、XPATHを取得します。
Query Builder Debuggerの使用方法については 下記をご参照ください

  1. https://experienceleague.adobe.com/docs/experience-manager-65/developing/platform/query-builder/querybuilder-api.html?lang=ja
  2. https://experienceleague.adobe.com/docs/experience-manager-65/developing/platform/query-builder/querybuilder-predicate-reference.html?lang=ja

例えば、

path=/content/we-retail
1_property=sling:resourceType
1_property.value=weretail/components/content/title
orderby=path
p.limit=-1

と書けば
・/content/we-retail配下で
・weretailのtitleコンポーネントを使用しているページを
・pathの昇順で並べ
・全件表示する
ということになります。

画面を見てみると
のようになり、①を入力して②をクリックすると③と④が得られます。

ここで今回注目したいのが③。ここでXPATHが取得できます。

【2】Explain Queryを使用してXPATHをSQL2に変換する

次は手順1で取得したXPATHをSQL2に変換します。
まずはQuery PerformanceのExplain Queryに移動します。 LanguageをXPATHにし、Queryに取得したXPATHを入れ、Explainをクリックすると、、、
赤枠内にSQL2のSELECT文が表示されます。

使いどころ

以前の記事でご紹介したACS AEM CommonsのRepotr BuilderでQuery Report Configurationを使用したカスタムレポートを作成する際、ACS AEM Commonsのバージョンが5.4.0以前のものである場合はクエリの書き方として選択できるものがJCR SQL2、JCR-JQOM、JCR SQL (Deprecated)、XPath (Deprecated)の4つになっています。非推奨のものを除くとJCR SQL2、JCR-JQOMの2つに限られるため、こちらの手法をとることで簡単にSQL2によるクエリをかけたカスタムレポートを作成することが出来ます。

終わりに

以上、2ステップでSQL2のSELECT文を取得することが出来ました。 AEMの中でクエリによる検索を行いたい場合、Query Builderが使用でき、それでレスポンスも満足がいく場合はその手法が一番簡単ですが、手段の一つとして持っておくと役立つ時が来るかもしれません。