gpt4 book ai didi

Tridion 核心服务更新错误 - 续

转载 作者:行者123 更新时间:2023-12-02 11:22:29 27 4
gpt4 key购买 nike

在我们正在进行的重构练习中,我们必须更改选定网站的页面模板。大多数页面都被本地化并通过下面的代码更新了他们的页面模板,但对于一些我们得到以下错误:

“名称、文件名对于以下类型的项目必须是唯一的:其结构组及其蓝图上下文中的页面。来源或冲突来源 tcm:121:3456-64”。

我检查了当前正在处理的页面和错误中提到的页面,它们都有唯一的名称和文件名。任何想法可能导致问题?

附言我能够通过发布到我的问题的优秀建议来解决早期的错误。这次期待类似的回应。

try
{
pData = client.Read(page.Attribute("ID").Value, null) as PageData;
//Localize Page
if (!(bool)pData.BluePrintInfo.IsLocalized)
{
client.Localize(pData.Id, new ReadOptions());
if (dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString()))
{
pData.IsPageTemplateInherited = false;
pData.PageTemplate.IdRef = dTemplateIDs[pData.PageTemplate.IdRef];
client.Update(pData, new ReadOptions());
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error Inner " + ex.Message);
}

最佳答案

您的代码中有一些错误,不确定它们是否在调用异常,但无论如何都值得修复。首先,您并没有真正阅读该页面作为您的ReadOptionsnull当你阅读它时。其次,您应该从 Localize 获取您的页面方法,然后更新页面的本地化版本。像这样:

try
{
// You need read options here
pData = (PageData) client.Read(page.Attribute("ID").Value, new ReadOptions());
//Localize Page
if (!(bool)pData.BluePrintInfo.IsLocalized)
{
// Get localized page here
pData = (PageData) client.Localize(pData.Id, new ReadOptions());
if (dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString()))
{
pData.IsPageTemplateInherited = false;
pData.PageTemplate.IdRef = dTemplateIDs[pData.PageTemplate.IdRef];
// You do not need read options here
client.Update(pData, null);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error Inner " + ex.Message);
}

最后,如果这一切都无济于事,您也可以发布堆栈跟踪吗?

关于Tridion 核心服务更新错误 - 续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14508212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com