получить список listItem.fieldValues ​​Клиентская объектная модель Sharepoint 2010 - PullRequest
0 голосов
/ 29 сентября 2011

Я создаю инструмент экспорта Sharepoint 2010 по причинам резервного копирования (немного похоже на файловый менеджер из Metavis).

При загрузке файла на локальный диск мне нужно создать резервную копию метаданных, связанных с документом,Который я буду хранить в csv-файле.Мой первый подход состоял в том, чтобы перебрать все значения listItem.field, но на самом деле это не работает, потому что некоторые значения полей являются сложными типами, что излишне усложнит файл резервной копии.Некоторые значения даже имеют окончание строки, например «MetaInfo».Кроме того, не все значения необходимы для восстановления содержимого, когда это может быть необходимо.

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

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

Итак, мой вопрос: кто-нибудь знает список всех ключей значений полей?Или есть лучший подход к моей проблеме?

Спасибо

Обновление : Ну, так как я перебирал коллекцию FieldValues ​​любым способом.Было легко сделать дамп всех значений в CSV.Одного запуска было достаточно, чтобы получить все значения.Теперь все, что мне нужно написать, это XML-файл для конфигурации.Это оставляет вопрос: есть ли лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Отфильтруйте поля списка, написав следующий код используя Систему; используя Microsoft.SharePoint.Client;

    clientContext.Load(
         listItems,
         items => items
             .Include(
                 item => item["Title"],
                 item => item["Category"],
                 item => item["Estimate"]));

Источник: http://msdn.microsoft.com/en-us/library/ee857094.aspx#SP2010ClientOM_Creating_Windows_Console_Application

Вы можете создать представление со всеми полями, получить представление, используя объектную модель sharepoint, и получить имя его столбца из коллекции и отфильтровать их согласно вашему требованию.

0 голосов
/ 14 декабря 2011

Я закончил заявку. Как я уже писал в своем обновлении, я составил список всех значений fieldValue, экспортировав их в файл CSV. После этого я сделал конфигурационный файл с логическим значением «Backup». Это позволяет контролировать, какие значения должны использоваться при создании резервной копии.

Оглядываясь назад, я думаю, что файл конфигурации не нужен. Значения, используемые при резервном копировании, являются настолько важной частью всей работы программы, что файл конфигурации дает администратору или обычному будущему разработчику впечатление, что простая перенастройка удовлетворит все потребности.

Теперь я вижу, что если программа нуждается в изменении из-за новых требований, код должен быть изменен в любом случае. Поэтому, даже если установка значения «True» изменит выход. Некоторый другой код должен быть написан также. Если бы я написал это снова, я бы использовал константы. Это делает все это менее динамичным, но все же выполняет потребности программы.

(Кстати, было бы неплохо начать список всех имен из стандартных fieldValues. Я бы опубликовал его здесь, но у меня больше нет доступа к файлу, потому что я недавно поменял работу.)

...