Добавить-PnPDataRowsToProvisioningTemplate с параметром пустых полей не работает?

#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 и передать его в параметр.