Загрузите документ MS Word в Sharepoint без метаданных

Не могли бы вы посоветовать мне, как лучше всего обрабатывать загрузку в SharePoint (2010) документа MS Word, который уже содержит метаданные, добавленные SharePoint? Я сталкиваюсь с проблемой, когда пользователи получают некоторые документы из библиотеки SharePoint, изменяют их и загружают их как новый файл в ту же библиотеку. У меня есть форма, которая открывается при загрузке документа для заполнения некоторых метаданных, и эти поля в форме предварительно заполняются значениями, ранее установленными в документе SharePoint. Самая большая проблема заключается в том, что даже если пользователь изменяет эти значения, файл все равно сохраняется со старыми, а новый элемент списка создается также с неправильными (старыми) значениями, что, конечно, приводит к конфликтам и ошибкам.

Я думал об очистке значений вручную с помощью приемника событий в методе ItemAdding, просто выполнив:

    public override void ItemAdding(SPItemEventProperties properties)
    {
        properties.AfterProperties["Title"] = String.Empty;
        properties.AfterProperties["Adresat"] = "";
        properties.AfterProperties["Nr_x0020_dziennika"] = "";
        properties.AfterProperties["Budowa"] = "";
        properties.AfterProperties["Osoba_x0020_odpowiedzialna"] = "";
        properties.AfterProperties["Osoba_x0020_do_x0020_wiad"] = "";
        properties.AfterProperties["Komentarz"] = "";
    }

но это похоже на неприятный обходной путь, и он также удаляет более поздние версии документа при их загрузке в рабочий процесс.


person Maciek Gawlik    schedule 16.04.2014    source источник


Ответы (1)


Это неплохое решение вашей проблемы, если оно применимо только к новым документам.

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

А поскольку метаданные для документов Office фактически хранятся внутри документа, вам может потребоваться внести некоторые изменения в это решение, которое фактически удалит их из документа: http://sadomovalex.blogspot.com/2012/12/remove-sharepoint-metadata-from-ms.html

person Cam    schedule 18.04.2014
comment
Спасибо за вклад. В ItemAdding нет ListItem, доступного при загрузке первой версии файла, но мне было достаточно проверить, является ли listitem нулевым. Но я столкнулся с другой проблемой: после очистки AfterProperties некоторые из моих столбцов всегда остаются пустыми, даже если они заполняются в форме во время загрузки. Вы знаете, возможно, причину этого? - person Maciek Gawlik; 15.05.2014
comment
Возможно, это связано с тем, как были удалены метаданные. Вместо того, чтобы удалять его, вы можете попробовать установить его в документе. - person Cam; 16.05.2014
comment
По общему признанию, я не уверен, почему не обновляются метаданные. Другой тест - попробовать использовать ItemAdded вместо ItemAdding и посмотреть, может ли это повлиять на метаданные. - person Cam; 16.05.2014