2

有没有办法批量删除出版物而不是从内容管理器中删除它们?我需要清理掉大约 75 家现在过剩的酒吧。

4

4 回答 4

5

虽然可以直接操作数据库,但删除出版物的唯一受支持的方法是通过内容管理器或 API(尽管快速查看文档,我认为只能通过旧的 TOM API,而不是 TOM.Net)。

正如 Nuno 所建议的那样,对于 75 种出版物,通过内容管理器完成这项工作可能比编写/测试/调试使用 API 完成相同工作的工具要容易得多。

请记住,您只能删除出版物,只要:

  • 出版物中没有任何内容被发布。
  • 出版物在蓝图中没有任何子出版物。
  • 您是系统管理员。
于 2012-09-12T16:14:09.957 回答
3

最简单的方法是使用我想说的核心服务 API,例如,按照tridion-practiceclient.Delete("tcm:0-xyz-1");中的描述调用创建核心服务客户端。

但是,您很可能会收到一个Item is in use.错误,您最好可以在 UI 中手动解决该错误。使用该方法也可以在调用 Delete 之前取消发布整个发布作为准备client.UnPublish()(有关所需参数的详细信息,请参阅 API 文档)。

于 2012-09-12T17:54:00.013 回答
1

很大程度上取决于您需要摆脱哪些出版物。从脚本中删除出版物很容易。(我最喜欢的方法是使用 Windows Powershell),但您需要先删除蓝图子级,然后再尝试删除它们的父级。如果出版物具有蓝图子项,则不能将其删除。

所以先搞清楚蓝图关系,再做删除。尽管如此,对于 75 份出版物,您可能会在测试脚本之前手工完成。当然,如果您需要通过您的 DTAP 街道准确地传输相同的更改,则可以使用脚本。

于 2012-09-12T19:52:47.057 回答
0

这是一个耗时的过程,我去年删除了 50 多个,其中数千个已发布项目在这些出版物中。

仅供参考,有一种更快的方法可以使用电动工具将所有项目设置为未发布,但同样会在代理数据库中留下许多条目。

因此,建议对此进行计划并从内容管理器、tom API 或核心服务中进行适当的取消发布和删除。

于 2012-09-12T19:25:09.837 回答