Я работаю над сценарием Powershell для переноса данных из существующей базы данных SQL Server в списки Sharepoint 2010. Некоторые из записей в существующей базе данных создали и изменили даты, которые клиент хотел бы переносить в Sharepoint.Настройка созданных и измененных дат для элементов списка Sharepoint 2010
Сценарий миграции использует метод UpdateListItems в веб-службе списков Sharepoint, чтобы загружать партии CAML для создания новых элементов. Я обновил свой CAML, чтобы установить столбец «Создано», однако значение кажется проигнорированным и просто установлено на текущую дату.
Возможно ли установить эти даты вручную либо через веб-службы, либо через метод ProcessBatchData на объекте SPWeb? Я видел примеры онлайн, которые подразумевают, что это можно сделать для отдельных элементов, отключив обновление системы и изменив параметры управления версиями. Однако работа с отдельными элементами не является вариантом, так как у нас есть около 800 000 элементов списка для импорта.
Я не думаю, что это возможно с помощью веб-служб SharePoint. Единственный вариант, похоже, является объектной моделью сервера. – int32
Использование API не является проблемой - я бы предпочел не переписывать, но это не огромная сделка. Добавление элементов списка отдельно не является вариантом, поскольку процесс занимает слишком много времени. Если бы был некоторый способ разрешить его временно на всем сайте, я мог бы, вероятно, использовать SPWeb.ProcessBatchData и предоставить ему свой XML. – Jason
О, это то, что вы имели в виду «индивидуально», теперь я понял ;-) Каждый метод, который вы могли бы использовать для добавления этого множества элементов, будет медленным, но я не понимаю, почему вы не можете добавить их по отдельности, получение тайм-аута? Вы также можете рассмотреть возможность разделения ваших данных в разных списках, потому что даже если 800 000 элементов даже не закрывают лимит списков, это будет настолько удивительно медленным, что вы, возможно, захотите вытащить ваши волосы ;-) – int32