Недавно добавленные поля InfoPath отсутствуют в библиотеке форм? - PullRequest
2 голосов
/ 16 июня 2011

У меня есть форма InfoPath, установленная в качестве основного типа содержимого библиотеки форм, которая работает нормально.Форма представляет собой управляемый шаблон, загруженный / активированный через Central Admin, и содержит несколько продвигаемых полей.

Теперь я добавил еще одно поле в форму в InfoPath (и добавил для него элемент управления в форме,для наглядности) и установите это поле для продвижения в библиотеку (подтверждается как Tools -> Form Options -> Property Promotion, так и списком при публикации), а также опубликовало и загрузило форму (используя Central Admin).

Когда я открываю формув SharePoint (путем создания нового элемента в библиотеке форм или открытия существующего элемента в этой библиотеке) я вижу элемент управления для моего нового поля и могу хранить данные в этом поле.Однако поле НЕ продвигается, поскольку я не вижу его ни в одном из следующих элементов:

  • страница свойств элемента (Просмотр / редактирование)
  • страница создания / изменения представления
  • список столбцов на странице настроек библиотеки форм
  • список столбцов типа содержимого для формы на странице настроек библиотеки форм

У меня естьперепробовал все, что я могу придумать, чтобы продвинуть это поле, за исключением удаления всей библиотеки и начала заново.Кто-нибудь еще сталкивался с этой проблемой?Как я могу продвинуть новое поле в существующую библиотеку?

Ответы [ 3 ]

2 голосов
/ 24 сентября 2015

Достаточно было просто отключить, а затем снова включить функцию.Это также не казалось разрушительным.Возможно, это будет зависеть от того, что у вас есть, в моем случае это форма InfoPath и ничего больше.

2 голосов
/ 17 июня 2011

Ну, я как бы ответил на свой вопрос ...

В конечном итоге я закончил:

  1. Удалил всю библиотеку форм
  2. Создал новую копию / версию библиотеки форм и добавил к ней тип контента формы из галереи типов контента сайта

Это ничего не исправило.Не делайте этого.

Мой следующий шаг был, вероятно, чрезмерным, но я:

  1. Удалил всю библиотеку форм
  2. Удалил тип содержимого формы изГалерея типов контента сайта
  3. Полное удаление формы из формы InfoPath
  4. Публикация формы (без поля) и загрузка ее в Central Admin
  5. Повторное добавление поля в InfoPathи опубликовал, снова продвигая поле так же, как и раньше, и загрузил его через Central Admin
  6. Попытка добавить тип содержимого формы в новую копию / версию библиотеки форм (тип содержимого был недоступен)
  7. Деактивировал и повторно активировал функцию для формы в настройках семейства сайтов
  8. Добавил тип контента формы в новую библиотеку форм

И ЭТО сработало!

Моя теория состоит в том, что деактивация и повторная активация функции для формы InfoPath заставит обновленные поля обновляться, и до тех пор, пока вы не сделаете это.Тип контента по-прежнему будет использовать старые поля (так, чтобы то, что вы делаете на уровне библиотеки форм, ничего не значило).Но это все равно будет очень разрушительной операцией, если вы работаете с производственными данными, и я надеюсь, что есть еще более простой и "безопасный" способ обновления расширенных свойств / полей / столбцов формы InfoPath, опубликованной в SharePoint.

Но, вероятно, нет.

0 голосов
/ 23 марта 2016

Я решил (использовал обходной путь) эту проблему с помощью PowerShell.
Вам необходимо знать:
1) Идентификатор поля в типе содержимого
2) XPath к полю в форме InfoPath

Далее Вы должны использовать этот скрипт PowerShell:

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$web = Get-SPWeb "https://intranet.company.com"
$contentTypeName = "Content Type Name"
$ct = $web.ContentTypes[$contentTypeName]

# Content Type Fields
# Field
$fieldId = "1209bb86-645b-4e56-aea2-265a325a98af"
$fieldLinks = $ct.FieldLinks | Where-Object {$_.Id -eq $fieldId}
$fieldLinks.ReadOnly = $true
$fieldLinks.XPath = "/my:Fields/my:FieldGroup/my:Field"

$ct.Update($true)
...