如何使用 SQL 在 Alfresco 中获取文档的名称?
How to get the name of a document in Alfresco with SQL?
如何从 Alfresco 数据库 (PostgreSQL) 中检索文档的名称?我正在尝试获取给定用户创建的文档列表,例如管理员,从开始日期开始,例如2015-05-03:
SELECT child.child_node_name, node.audit_created
FROM alf_child_assoc child, alf_node node, alf_node_properties prop, alf_qname qname
WHERE child.child_node_id = node.id
AND node.id = prop.node_id
AND prop.qname_id = qname.id
AND qname.local_name = 'content'
AND node.audit_creator = 'admin'
AND node.audit_created > '2015-05-03'
ORDER BY node.audit_created
如何获取实际文档而不是所有内容项?
因为现在它还显示完整的节点引用,而我只想要 文档的人类可读名称 。有什么建议吗?
顺便说一下,我正在处理后端(存储库),而不是共享。我正在使用 Alfresco 5.0.1。
我 运行 这个 SQL 脚本找到这个 属性
的等效 qname id
select * from alf_qname where local_name='name';
我有 2 行 ID 分别为 21 和 29,但发现有趣的是 29。
SELECT * FROM alf_node_properties where qname_id = '29';
您将获得任何节点的名称,而不仅仅是文件。
您可以找到有用的查询http://streetturtle.ninja/2015/05/01/usefule-alfresco-queries/
希望对您有所帮助
祝你好运,
山姆
在 Alfresco 中,文档的名称是 属性 类型的 cm:name
/ http://www.alfresco.org/model/content/1.0:name
所以,首先,找到那个 qname 的 ID。它可能在不同的 Alfresco 安装之间有所不同,这取决于安装过程中添加东西的顺序,但对于 Alfresco 存储库来说它是不变的。查询是:
=> select * from alf_qname where ns_id IN
(select ns.id from alf_namespace as ns
where ns.uri='http://www.alfresco.org/model/content/1.0')
and local_name='name';
id | version | ns_id | local_name
----+---------+-------+------------
29 | 0 | 6 | name
(1 row)
现在,使用此处的 ID 按名称搜索文档:
select uuid, string_value AS name from alf_node
inner join alf_node_properties on (id=node_id)
where qname_id = 29;
这将为您提供所有节点 UUID(noderef 的主要部分)及其名称。
根据需要添加更多节点过滤器!
已更新
所以这是 SQL 你需要使用的,这个用于 cm:content
类型:
select nd.audit_creator as creator,
np.string_value as document_name,
nd.audit_created as created_on
from alf_node as nd, alf_node_properties as np,
alf_namespace ns, alf_qname qn, alf_qname qn1
where nd.id=np.node_id
and qn.ns_id = ns.id
and nd.type_qname_id = qn.id
and ns.uri = 'http://www.alfresco.org/model/content/1.0'
and qn.local_name = 'content'
and qn1.ns_id = ns.id
and np.qname_id = qn1.id
and qn1.local_name = 'name'
and nd.audit_created > '2015-05-06 14:59:00';
它将 return 人类可读的文档名称、创建者的用户名和创建此文档的日期。
如果您有一些自定义类型的文档,假设 ep:content
和命名空间 http://www.mycomp.com/model/epersonnel/1.0
此查询将完成工作:
select nd.audit_creator as creator,
np.string_value as document_name,
nd.audit_created as created_on
from alf_node as nd, alf_node_properties as np,
alf_namespace ns, alf_namespace ns1, alf_qname qn, alf_qname qn1
where nd.id=np.node_id
and qn.ns_id = ns.id
and nd.type_qname_id = qn.id
and ns.uri = 'http://www.mycomp.com/model/epersonnel/1.0'
and qn.local_name = 'content'
and ns1.uri = 'http://www.alfresco.org/model/content/1.0'
and np.qname_id = qn1.id
and qn1.ns_id = ns1.id
and qn1.local_name = 'name'
and nd.audit_created > '2015-05-06 14:59:00';
基于我创建此查询的其他答案:
SELECT string_value AS document_name, audit_created AS creation_date
FROM alf_node node
INNER JOIN alf_node_properties ON (id=node_id)
INNER JOIN alf_qname ON (qname_id=alf_qname.id)
WHERE ns_id IN
(SELECT ns.id FROM alf_namespace AS ns
WHERE ns.uri='http://www.alfresco.org/model/content/1.0')
AND local_name='name'
AND audit_creator = 'admin'
AND audit_created > '2015-05-06'
ORDER BY audit_created;
这样你就不必知道 qname_id.
谢谢 Sam、Gagravarr 和 streetturtle。
如何从 Alfresco 数据库 (PostgreSQL) 中检索文档的名称?我正在尝试获取给定用户创建的文档列表,例如管理员,从开始日期开始,例如2015-05-03:
SELECT child.child_node_name, node.audit_created
FROM alf_child_assoc child, alf_node node, alf_node_properties prop, alf_qname qname
WHERE child.child_node_id = node.id
AND node.id = prop.node_id
AND prop.qname_id = qname.id
AND qname.local_name = 'content'
AND node.audit_creator = 'admin'
AND node.audit_created > '2015-05-03'
ORDER BY node.audit_created
如何获取实际文档而不是所有内容项? 因为现在它还显示完整的节点引用,而我只想要 文档的人类可读名称 。有什么建议吗?
顺便说一下,我正在处理后端(存储库),而不是共享。我正在使用 Alfresco 5.0.1。
我 运行 这个 SQL 脚本找到这个 属性
的等效 qname idselect * from alf_qname where local_name='name';
我有 2 行 ID 分别为 21 和 29,但发现有趣的是 29。
SELECT * FROM alf_node_properties where qname_id = '29';
您将获得任何节点的名称,而不仅仅是文件。
您可以找到有用的查询http://streetturtle.ninja/2015/05/01/usefule-alfresco-queries/
希望对您有所帮助
祝你好运, 山姆
在 Alfresco 中,文档的名称是 属性 类型的 cm:name
/ http://www.alfresco.org/model/content/1.0:name
所以,首先,找到那个 qname 的 ID。它可能在不同的 Alfresco 安装之间有所不同,这取决于安装过程中添加东西的顺序,但对于 Alfresco 存储库来说它是不变的。查询是:
=> select * from alf_qname where ns_id IN
(select ns.id from alf_namespace as ns
where ns.uri='http://www.alfresco.org/model/content/1.0')
and local_name='name';
id | version | ns_id | local_name
----+---------+-------+------------
29 | 0 | 6 | name
(1 row)
现在,使用此处的 ID 按名称搜索文档:
select uuid, string_value AS name from alf_node
inner join alf_node_properties on (id=node_id)
where qname_id = 29;
这将为您提供所有节点 UUID(noderef 的主要部分)及其名称。
根据需要添加更多节点过滤器!
已更新
所以这是 SQL 你需要使用的,这个用于 cm:content
类型:
select nd.audit_creator as creator,
np.string_value as document_name,
nd.audit_created as created_on
from alf_node as nd, alf_node_properties as np,
alf_namespace ns, alf_qname qn, alf_qname qn1
where nd.id=np.node_id
and qn.ns_id = ns.id
and nd.type_qname_id = qn.id
and ns.uri = 'http://www.alfresco.org/model/content/1.0'
and qn.local_name = 'content'
and qn1.ns_id = ns.id
and np.qname_id = qn1.id
and qn1.local_name = 'name'
and nd.audit_created > '2015-05-06 14:59:00';
它将 return 人类可读的文档名称、创建者的用户名和创建此文档的日期。
如果您有一些自定义类型的文档,假设 ep:content
和命名空间 http://www.mycomp.com/model/epersonnel/1.0
此查询将完成工作:
select nd.audit_creator as creator,
np.string_value as document_name,
nd.audit_created as created_on
from alf_node as nd, alf_node_properties as np,
alf_namespace ns, alf_namespace ns1, alf_qname qn, alf_qname qn1
where nd.id=np.node_id
and qn.ns_id = ns.id
and nd.type_qname_id = qn.id
and ns.uri = 'http://www.mycomp.com/model/epersonnel/1.0'
and qn.local_name = 'content'
and ns1.uri = 'http://www.alfresco.org/model/content/1.0'
and np.qname_id = qn1.id
and qn1.ns_id = ns1.id
and qn1.local_name = 'name'
and nd.audit_created > '2015-05-06 14:59:00';
基于我创建此查询的其他答案:
SELECT string_value AS document_name, audit_created AS creation_date
FROM alf_node node
INNER JOIN alf_node_properties ON (id=node_id)
INNER JOIN alf_qname ON (qname_id=alf_qname.id)
WHERE ns_id IN
(SELECT ns.id FROM alf_namespace AS ns
WHERE ns.uri='http://www.alfresco.org/model/content/1.0')
AND local_name='name'
AND audit_creator = 'admin'
AND audit_created > '2015-05-06'
ORDER BY audit_created;
这样你就不必知道 qname_id.
谢谢 Sam、Gagravarr 和 streetturtle。