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

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

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

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

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

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

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

person Greg Hurlman    schedule 27.04.2010    source источник


Ответы (1)


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

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

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

В документации MSDN для Mult по-прежнему не обновлялась для документации SP 2007, и ее можно смело игнорировать, поскольку она полностью неверна.

person Greg Hurlman    schedule 28.05.2010