【问题标题】:Tridion - Move component to another folderTridion - 将组件移动到另一个文件夹
【发布时间】:2013-03-02 18:48:24
【问题描述】:

我想将一个组件从一个文件夹移动到另一个已创建的文件夹。

while (textReader.Read())
{
    textReader.MoveToElement();
    Component comp = tdse.GetComponent(textReader.GetAttribute("ID"), constant_Publication, true, -1);
}

我尝试寻找comp.Move,但它没有退出。 另外,我看到comp.Info.Path 有路径,但是如果我尝试修改它,我会遇到以下错误:

无法将错误 7 属性或索引器“Tridion.ContentManager.Interop.TDS._Info.Path”分配给 -- 它是只读的。

如何移动组件?

【问题讨论】:

标签: tridion tridion2009


【解决方案1】:

看起来您使用的是 TOM 而不是 TOM.NET

您需要对要将新项目放入的文件夹执行粘贴操作

类似

objFolder.PasteItem(comp, 1, false)

第一个参数是你要粘贴的项目,第二个参数是一个枚举器(EnumTDSCutCopyAction - 1 是剪切(移动),0 是复制)来表示是否要复制和粘贴剪切和粘贴,最后一个是你是否要断言一个唯一的名字。

在 TOM.NET 中有一个RepositoryLocalObject.Move() 方法。

【讨论】:

    【解决方案2】:

    您的 GetObject() 方法调用似乎缺少一些参数。模板手册说明如下:

    Public Function GetObject( ByVal URI As String, ByVal mode As TDSDefines.EnumOpenMode, Optional ByVal contextPublication As Variant = TDSDefines.URINULL, Optional ByVal filter As TDSDefines.XMLReadFilter = XMLReadNull ) As Object
    

    但是,您传入的第二个参数似乎是发布 ID,而不是 EnumOpenMode。将“OpenModeEditWithFallback”作为函数的第二个参数传递给函数以使组件处于写入模式,之后您应该可以在其上使用 Move 函数。

    另外,请考虑在我们的新 Tridion 方面发布更多 Tridion 问题http://tridion.stackexchange.com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多