我需要根据创建时间生成所有Sitecore内容项的报告,并仅包含具有布局的内容。
我尝试过使用Sitecore Powershell,但我的Powershell Jedi技能充其量只是新手,我开始工作的一个脚本需要长时间才能在浏览器窗口中执行,并且它绝对不会导出到CSV,Excel或任何其他格式(稍后将处理)。
我的备份计划是使用TSQL脚本直接查询SQL数据库,到目前为止这是有效的(我的TSQL Jedi技能更强大)。我遇到的问题是确定,纯粹使用TSQL,如何确定Sitecore内容项是否具有布局:是否可以呈现为页面,并排除文件夹和portlet等项目。
以下是我当前TSQL脚本的片段:
WITH ItemsTable
AS (
SELECT CAST('/' + NAME AS NVARCHAR(MAX)) AS ItemPath,
ID,
NAME,
TemplateID,
MasterID,
ParentID,
Created,
Updated
FROM dbo.Items AS base
WHERE (ID = '[REDACTED]')
UNION ALL
SELECT CAST(parent.ItemPath + '/' + child.NAME AS NVARCHAR(MAX)) AS Expr1,
child.ID,
child.NAME,
child.TemplateID,
child.MasterID,
child.ParentID,
child.Created,
child.Updated
FROM ItemsTable AS parent
INNER JOIN dbo.Items AS child
ON child.ParentID = parent.ID
)
SELECT ItemsTable_1.Created,
ItemsTable_1.NAME,
ItemsTable_1.ItemPath,
TemplateItems.NAME AS TemplateName
FROM dbo.Items AS TemplateItems
RIGHT JOIN ItemsTable AS ItemsTable_1
ON TemplateItems.ID = ItemsTable_1.TemplateID
WHERE (ItemsTable_1.Created >= CONVERT(DATETIME, '2016-06-01 00:00:00', 102))
答案 0 :(得分:0)
谢谢大家,但我找到了解决方法。主要问题是导出到Show-ListView选项的CSV,Excel等函数不能在我们的Sitecore实例上运行(需单独处理)。此外,脚本运行缓慢 - 返回的结果数量不是问题;即使返回了一个结果,它也不会导出。
随着我对SiteCore和Powershell的更多了解,我想出了如何在不使用Show-ListView的情况下直接导出到CSV。
这是一个需要生成的高优先级报告,当时TSQL是最便捷的选择。