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の使用方法については 下記をご参照ください
- https://experienceleague.adobe.com/docs/experience-manager-65/developing/platform/query-builder/querybuilder-api.html?lang=ja
- 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が使用でき、それでレスポンスも満足がいく場合はその手法が一番簡単ですが、手段の一つとして持っておくと役立つ時が来るかもしれません。