#sharepoint
#sharepoint
Вопрос:
Я хочу использовать современный сайт команды SPO als в качестве шаблона для аналогичных проектов с предварительно заполненным списком задач (очень похожие проекты).
Я создал шаблон сайта с помощью Save-PnPProvisioningTemplate и попытался добавить строки данных с помощью Add-PnPDataRowsToProvisioningTemplate и параметра empty -fields, но это не работает. Мне нужен точно такой же список задач, как в шаблоне.
Кто-нибудь знает, является ли это ошибкой?
Я уже обсуждал эту конкретную тему прямо здесь: https://docs.microsoft.com/en-us/answers/questions/211447/copy-spo-team-site-with-task-list-contensrow-data.html?childToView=215328#answer-215328 но я хотел проверить здесь, прежде чем опубликовать ошибку на github.
Спасибо
Крис
Ответ №1:
Согласно документации Add-PnPDataRowsToProvisioningTemplate для полей параметров:
Поля для извлечения. Если не указано, все поля будут загружены в возвращаемый объект списка.
Итак, если вы оставите параметр -fields пустым, он загрузит все поля, включая системные поля по умолчанию, такие как Created, Created By , Modified … Эти поля по умолчанию создаются SharePoint и не могут быть добавлены / отредактированы вручную. Я думаю, что это причина, по которой это не сработает.
Итак, вам нужно указать параметр fields, который может быть отредактирован конечными пользователями. Как столбец duedate, Title, startdate
в команде.
Примечание: вам необходимо использовать внутреннее имя столбца для столбца описания в списке задач. Внутреннее имя — Body .
Вы могли бы изменить поле в шаблоне <FieldRef Name="Description" />
на <FieldRef Name="Body" />
. Может быть, это сработало бы для вас
Комментарии:
1. Вы правы насчет документации, но это не работает. Если я оставлю параметр -fields пустым, строки данных не будут добавлены (что, я думаю, является ошибкой) или, как вы опубликовали, потому что они генерируются SharePoint. Хорошо, я понимаю, что мне нужно внутреннее имя, но странно то, что имена добавляются с помощью Save-PnPProvisioningTemplate, а description — единственный, который не использует правильное внутреннее имя, поэтому мне всегда приходится вручную исправлять это имя. У вас есть идея, где я могу получить полный список всех внутренних имен на английском языке?
2. Вы можете использовать команду Get-PnPField -List «Task1», чтобы получить внутренние имена полей.
3. Хорошо, это дает мне полный список с заголовком, внутренним именем и идентификатором. Почему некоторые поля начинаются с подчеркивания, например _ModerationStatus, _EditMenuTableEnd, …? Есть ли простой способ отфильтровать их и использовать внутреннее имя в качестве списка ввода для параметра -Fields? Я предполагаю, что мне нужно отфильтровать вывод с помощью where statment и передать его в параметр.