1

我正在使用 Tridion R5.3。我正在尝试删除一个组件,但它显示为已发布。无论我做什么,我都无法将其取消发布。我对数据库运行了以下查询以确定组件的发布位置。

SELECT *
FROM [dbo].[PUBLISH_STATES] WITH (NOLOCK)
WHERE REFERENCE_ID = 268494

我收到了以下信息

  • 编号:45173
  • REFERENCE_ID:268494
  • 项目类型:16
  • PUBLICATION_ID:4
  • 状态:1
  • STATE_CHANGE_DATE : 2006-08-18 12:50:25.597
  • PUBLICATION_TARGET_ID:2
  • TRUSTEE_ID : 43
  • TEMPLATE_REFERENCE_ID:89798
  • 模板项目类型:32

我试图从 ID 为 2 的发布目标中取消发布该组件,但没有成功。

我可以安全地删除数据库中的行吗?

更新

根据 Nuno 的建议,在阅读了另一个问题后,我认为我必须取消发布相关的组件模板。我已经尝试了以下方法,并且Type Mismatch在执行该SetPublishedTo()方法时得到了一个。

TDS.TDSE tdse = new TDS.TDSE();
var componentTemplate = (TDS.ComponentTemplate)tdse.GetObject("tcm:4-89798-32", TDSDefines.EnumOpenMode.OpenModeView);
componentTemplate.SetPublishedTo("tcm:4-268494", "tcm:0-2-65537", false, tdse.User);
4

1 回答 1

0

联系 SDL 支持后,解决方案是在相关组件的表和表中设置STATE字段。0ITEM_STATESPUBLISH_STATES

UPDATE dbo.ITEM_STATES
SET STATE = 0
WHERE ITEM_REFERENCE_ID = 268494

UPDATE dbo.PUBLISH_STATES
SET STATE = 0
WHERE REFERENCE_ID = 268494
于 2012-12-04T09:52:37.967 回答