在Sitecore模板&共享&q;设置为"打包&q;和&q;已安装&q;且使用此字段的项目不知道之后如何清理(&Q;;共享&Q&Q;设置为&Q;打包&Q;和&Q;安装&Q;和使用此字段的项目不知道) [英] How to clean up after Sitecore template "Shared" setting was "packaged" and "installed" and items using this field are unaware

查看:31
本文介绍了在Sitecore模板&共享&q;设置为"打包&q;和&q;已安装&q;且使用此字段的项目不知道之后如何清理(&Q;;共享&Q&Q;设置为&Q;打包&Q;和&Q;安装&Q;和使用此字段的项目不知道)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们在Sitecore环境中面临非常特殊的情况。在我们的Sitecore中,我们有一个项目,让我们称之为"促销"。促销使用的是共享的"结束日期"字段。

在我们的dev实例上,我们"取消共享"该字段。这自然地触发后台进程,该后台进程在非共享模式下将项目更改为使用字段。 类似的流程描述如下:http://sitecoreblog.alexshyba.com/2011/10/changing-field-sharing-settings-in.html 于是,我们将"非共享字段"的更改打包安装到生产"主"数据库上。正如我在安装期间假设的那样,"更新项目"的后台进程尚未触发。它现在的行为方式是,我们的生产主数据库上的"非共享"字段不能保存。单击保存后的价值深渊正在"消失"。我确信它们现在正以某种语言不可知的模式保存。

当然,解决这一问题的简单方法是将其"共享"回去,然后再次"取消共享"。然而,当我们试图在我们环境的副本上做这个实验时,我们注意到所有的价值都丢失了。由于上述模板中的项被大量使用,我们不能真正承受丢失这些值的后果。

有什么想法吗?

推荐答案

因此,我们得出的解决方案是使用Sitecore Rock工具。在将字段更改为"共享"之前,我们导出了包含字段的所有项目。查询或多或少类似于:

SELECT @@ID, @#Start Date#, @#End Date# FROM //*[@@templateid='{993DC54F-6724-46C3-B8D2-3EE13F15366A}']

它在该点为我们提供了正确的值,即使To Items指向SharedFields表。我们只需将Excel中此查询的结果(大约9000行)转换为Sitecore Rock UPDATE查询-

UPDATE SET @#Start Date#='20120531T000000',@#End Date#='20120614T000000' FROM //*    [@@ID='{E3FD9819-3DBD-4FAA-8DEF-FEF2A6272723}'];
在准备好此迁移脚本之后,我们共享了相应的字段,并通过Sitecore Rock应用了9000个更新查询的脚本。我们需要在Live数据库上进行完全相同的操作。一切都很顺利。

我相信对于数据库也可以很容易地完成同样的方法,但是由于非技术原因(安全策略等),这个解决方案对我们更好。不管怎么说,Sitecore Rock岩石太棒了!

这篇关于在Sitecore模板&共享&q;设置为"打包&q;和&q;已安装&q;且使用此字段的项目不知道之后如何清理(&Q;;共享&Q&Q;设置为&Q;打包&Q;和&Q;安装&Q;和使用此字段的项目不知道)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆