我可以在Sitecore中使用哪些策略来归档项目,然后再通过代码进行恢复?

我可以在Sitecore中使用哪些策略来归档项目,然后再通过代码进行恢复?,sitecore,sitecore7,archiving,Sitecore,Sitecore7,Archiving,我们正在构建一个Sitecore站点,该站点将从外部数据库中提取一些产品数据。我们将每晚查询外部数据库,并根据需要在Sitecore中添加、更新或存档/删除/删除产品内容项。我们的数据模板中有一些字段将直接从外部数据库填充(对于内容作者来说是只读的),还有一些字段将自己填充。在我们的自定义字段中将包含外部数据库中项目的SKU。随着时间的推移,产品可能会从外部数据库中消失。在这种情况下,我们希望Sitecore以某种方式从我们的产品列表中删除此项,但不要完全删除它。这样做的原因是,已删除的产品可能

我们正在构建一个Sitecore站点,该站点将从外部数据库中提取一些产品数据。我们将每晚查询外部数据库,并根据需要在Sitecore中添加、更新或存档/删除/删除产品内容项。我们的数据模板中有一些字段将直接从外部数据库填充(对于内容作者来说是只读的),还有一些字段将自己填充。在我们的自定义字段中将包含外部数据库中项目的SKU。随着时间的推移,产品可能会从外部数据库中消失。在这种情况下,我们希望Sitecore以某种方式从我们的产品列表中删除此项,但不要完全删除它。这样做的原因是,已删除的产品可能会在将来重新出现,我们不希望丢失添加到项目上其他自定义字段的所有数据。我可以想出许多不同的方法:

  • 使用Sitecore的归档/回收功能。当我们发现Sitecore中有一个产品项不再出现在外部数据库中时,我们可以将其存档。这很有效。但是,如果该项目再次出现在外部数据库中,我似乎无法找到一种方法来恢复该项目。当一个项目被存档时,我没有任何访问任何自定义字段的权限(从我在线阅读的内容)。因此,当我在外部数据库中遇到一个不在Sitecore中的SKU时,我无法确定是否有一个存档项目包含该SKU

  • 在每个产品内容项上使用自定义状态字段。我可以将每个产品内容项设置为“活动”或“非活动”。这样可以很容易地重新激活在外部数据库中重新出现的项目。然而,我担心搜索和发布之类的事情。在我看来,主数据库中所有产品的文件夹中都有一些不活动的内容项,这似乎很混乱。这可能会让内容作者感到困惑,我担心他们会进入web数据库,等等。似乎我必须进行大量自定义编码,以确保这些产品不会出现在任何页面上,等等

  • 当一个产品从外部数据库中显示时,我可以将这些内容项移动到Sitecore中的不同位置。当它们再次出现时,我可以把它们移回去。这也让人感觉混乱


  • 我只是想知道是否有更好的解决办法,我错过了。提前感谢您的帮助。

    只是想一想,如果您只是取消发布从外部数据库中删除的项目,并将创作数据库中的项目设置为不可发布,直到它们再次出现,该怎么办。在这种情况下,您还可以让一个任务运行在给定时间段内未发布和未重新发布的归档项目

    最好的解决方案实际上取决于项目出现/消失的数量和频率,以及将这些项目保留在创作数据库中与删除它们相比的成本效益

    我会选择选项2“在每个产品上设置状态字段“活动”或“非活动”,因为它更清晰,并将数据保存在一个地方

    另外要做的事情(正如Vasily所建议的)是将产品上的“Publishable”复选框设置为“False”,这样产品将从web数据库中消失,因此在搜索方法中没有额外的过滤器

    您可以实现自定义内容编辑器警告,以通知内容编辑器当前产品处于“非活动”状态:


    希望这有帮助

    感谢您的输入,它确实有帮助。我喜欢这种方法以及自定义编辑器警告。我想我会尝试实现它,看看它是如何工作的。