AEM/CQ:具有表格输出的一次性 JCR-SQL / SQL2 / XPath 查询的 UI?

问题描述 投票:0回答:3

我正在 AEM 安装中进行一些使用研究。我想找到一个组件的所有实例,并查看它们对于某个配置选项有什么价值。所以基本上,我想从所有具有

title
myOption
的节点中选择
sling:resourceType
myComponent
属性。

我相信 JCR-SQL2 查询将是:

SELECT [title], [myProperty] FROM [nt:base]
where [sling:resourceType] like 'path/to/my/component'

我的问题是,我找不到运行此查询的 UI。

  • CRX:DE 查询工具(CRX:DE > 工具 > 查询)接受 XPath 或 SQL2,但仅显示匹配节点的路径。 当然,我可以单击每个节点来缩放到该节点,但这很乏味。我想要一个带有标题和属性值的表格输出。

  • 查询生成器调试器 (

    /libs/cq/search/content/querydebug.html
    ) 使用自己的基于 URL 的查询语法,并且仅输出 JSON。我根据 URL 参数重新创建了查询...

    property=sling:resourceType
    property.value=path/to/my/component
    p.hits=selective
    p.properties=title myProperty
    p.limit=-1
    

    ...但我仍然不想编写代码来解析 JSON 并显示表格。

  • 我知道我可以编写一个类/组件来显示它,但同样,这是一个一次性查询,我只是在挖掘。我不希望仅仅为了发送和显示此查询而编写 Java、JS 或 JSP。

所以我的问题是...

是否有另一个查询 UI 隐藏在 CQ 中的某处,可以让我放入指定列的一次性 JCR-SQL / SQL2 / XPath 查询,并获得表格输出,就像使用 SQL 提示或工具一样?

我愿意使用查询生成器咒语来生成打印精美的 JSON,这样我至少可以查看 JSON 结果。

aem jcr-sql2
3个回答
2
投票

您可以使用批量编辑器

/etc/importers/bulkeditor.html
。非常符合您的要求

只需将根路径设置为

/content
取消选中内容模式,查询参数使用
"sling:resourceType":path/to/my/component
。将自定义属性设置为
title,myOption
。它在表格中显示结果。

了解更多:http://docs.adobe.com/docs/en/cq/5-6/administering/bulk_editor.html

批量编辑器仅适用于简单查询,对于复杂查询,您可以尝试以下操作:http://adobe-consulting-services.github.io/acs-aem-tools/features/query-editor.html .


1
投票

考虑使用 Groovy Console。您可以轻松编写一个简短的脚本来生成所需的输出:

def QUERY = "SELECT [jcr:lastModified], [jcr:title] FROM [nt:base] WHERE [sling:resourceType] = 'foundation/components/title'"

session.workspace.queryManager.createQuery(QUERY, "JCR-SQL2").execute().rows.each { r ->
    println r.values.collect { it.string }.join('\t')
}

脚本可以简单地粘贴到文本区域,无需编译或上传任何内容到服务器。


0
投票

您可以使用 Adobe 的 ACS Reports 附加组件(属于 ACS Commons 捆绑包的一部分)通过漂亮的 UI 生成器生成列出您需要的所有属性的报告。您提供 JCR-SQL2 查询,然后选择具有您需要的任何属性的列。

参见:

© www.soinside.com 2019 - 2024. All rights reserved.