Как получить идентификатор элемента Tridion после создания с помощью Core Service - PullRequest
4 голосов
/ 07 марта 2012

Я создаю новый элемент с помощью основной службы в этой записи . Однако URI вновь созданного элемента - это tcm: 0-0-0 вместо фактического URI TCM. свойство Title является правильным (и не New Component), но путь WebDav возвращает «New Component», в то время как.

Как лучше всего получить URI моего недавно созданного элемента?

client.Create(newComponent, null);
string newItemUri = newComponent.Id; // returns tcm:0-0-0
string webDavUrl = newComponent.LocationInfo.WebDavUrl;  // returns New%20Component
string title = newComponent.Title;  // correct

Ответы [ 2 ]

4 голосов
/ 07 марта 2012

Вторым параметром метода Create являются ReadOptions. Они используются, чтобы указать, как элемент будет прочитан обратно. В вашем примере он имеет значение null, то есть вы не будете читать его обратно. Что вы должны сделать, это установить ReadOptions и назначить чтение элемента обратно, например:

newComponent = (ComponentData) client.Create(newComponent, new ReadOptions());
4 голосов
/ 07 марта 2012

Проверьте код Райана на http://blog.building -blocks.com / uploading-images-using-core-service-in-sdl-tridion-2011 .Он использует client.Save, чтобы получить сохраненный компонент, из которого он может получить доступ к идентификатору.

...