Столбец сайта поиска не сохраняет / хранит метаданные для документов Office 2007? - PullRequest
0 голосов
/ 27 апреля 2010

У меня проблема в нескольких серверных средах.

У нас есть список в корне семейства сайтов. В поле «Заголовок» этого списка есть столбец сайта, созданный в виде многозначного поиска. Этот столбец сайта используется в библиотеках документов на дочерних сайтах как обязательное поле. Когда мы загружаем что-либо, кроме документа Office 2007, пользователю предоставляется экран заполнения метаданных документа (EditForm.aspx? Mode = Upload), пользователь заполняет соответствующие данные (включая выбор значений для этого поиска). ) и нажимает кнопку «проверить» - документ регистрируется, как и ожидалось, с заполненным значением поля поиска.

С документом Office 2007 это не удается. Выбранные пользователем значения для поля поиска никогда не попадают на сервер - ошибки не выдаются, но поле не сохраняется вместе с документом. У нас есть прослушиватель событий в этих библиотеках документов, и если мы проверяем входящий SPListItem в методе прослушивателя событий до запуска одной строки нашего кода, мы видим, что значение поля поиска равно нулю.

Пахнет для меня как ошибка SharePoint - но прежде чем я позвоню в Microsoft, кто-нибудь видел это и обходил?

Редактировать: единственная запись, которую я вижу в журналах трассировки SP, относящихся к проблеме:

CMS/Publishing/8ztg/Medium/Got List Item Version, but item was null

1 Ответ

1 голос
/ 28 мая 2010

Завел необходимость открыть тикет с Microsoft для этого и нашел ошибку в документации MSDN для загрузки.

Чтобы получить многоэлементный поиск, мы установили атрибут «Mult» в нашем поле поиска CAML на «true» в XML, который мы передали SPFieldCollection.AddFieldAsXml . Однако, несмотря на то, что API не выдаст ошибок и, похоже, будет работать в пользовательском интерфейсе, это противоречит принципам работы документов Office 2007 и 2010 и их интеграции с SharePoint.

Официальный, поддерживаемый способ добавления поля множественного выбора - использовать тип поля LookupMulti в поле CAML . Выполнение этого и установка атрибута «Mult» в значение «true» дает искомый результат.

Документация MSDN для "Mult" до сих пор не была обновлена ​​для документации по SP 2007 и может быть безопасно проигнорирована, поскольку она полностью неверна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...