Я работаю над экспортом данных из Sitecore из основной базы данных.Он получает данные из элементов определенного типа и помещает их в пользовательский XML.Я могу сгенерировать нужный мне XML, но теперь клиент попросил вместо того, чтобы возвращать данные из самой последней версии, возвращать данные из версии, которая была бы опубликована, если бы сайт был опубликован во время экспорта.
Характер сайта заключается в том, что он должен публиковаться на регулярной, но нечастой основе (я полагаю, один раз в год), но данные будут поддерживаться постоянно, и все, что утверждено в Sitecore, необходимо добавлять в другую систему.так что, к сожалению, экспорт из веб-базы данных невозможен.Я надеюсь подключиться к любому механизму, который использует Sitecore, чтобы решить, какая версия отправляется в веб-базу данных, когда / если публикация происходит без фактической публикации.
Я рассмотрел Item.Publishing.GetValidVersion
, IsValid
и IsPublishable
но не удалось их использовать.Я прочитал документы Sitecore для этих методов, но в описании просто сказано «Получает верную версию».и я не уверен, что значит «действительный».
Вот моя последняя попытка:
foreach (Sitecore.Data.ID courseId in courseIds)
{
Sitecore.Data.Items.Item course = master.GetItem(courseId);
string initialVersion = course.Version.ToString();
if (course != null & course.Parent.Name != "Narrative-Courses")
{
course = course.Publishing.GetValidVersion(DateTime.Now, true, true);
string finalVersion = course.Version.ToString();
if (initialVersion != finalVersion)
{
log(course.Name + ": " + initialVersion + ", " + finalVersion);
}
if (course != null)
{
//add xml for this item
...
Мой журнал пуст, и мой XML содержит версию с наибольшим числом каждого элемента, независимо от состояния рабочего процесса.Когда элемент имеет версию 1 в утвержденном состоянии и версию 2 в состоянии черновика, я получаю только версию 2. в XML.
Я неправильно понимаю, для чего предназначены эти методы, или просто неправильно их использую?