Обновление поля «внешний тип контента» в SPList с помощью PowerShell - PullRequest
1 голос
/ 06 декабря 2011

У меня есть простая библиотека документов, которая ссылается на внешний тип контента (поиск), который называется «События». Вот мой PS-скрипт, который проходит по списку:

$spListItems = $spList.GetItems($spQuery)
foreach ($item in $spListItems)
{
      $item["Title"] = "New Title" 
      $item["Events"] ="Event Name"
      $item.Update()      
} 

Итак ... колонка «Заголовок» обновляется нормально, но я не могу понять, что мне нужно сделать, чтобы корректно обновить колонку «События», поскольку это тип контента ext. Как ни странно, это даже не вызывает ошибку, но столбец пуст в режиме редактирования. Есть идеи как с этим бороться? Thx.

Ответы [ 3 ]

1 голос
/ 06 декабря 2011

Внешний тип контента представляет данные из внешней системы. Не все внешние типы контента доступны для записи (обновление, удаление, создание) - это зависит от того, как они были определены. Что представляет этот КТ? Вы проверили, как оно определено на уровне BCS (бизнес-сервисов)?

В качестве примера прочитайте о том, как настроить внешний тип контента для представления таблицы SQL. Он показывает, что способность «обратной записи» во внешнюю систему является явным шагом в проектировании внешних ТТ.

Как создать внешний тип контента на основе таблицы SQL Server

http://msdn.microsoft.com/en-us/library/ee557243.aspx

UDPATE

На самом деле, снова читая ваш вопрос, вы на самом деле не пытаетесь обновить внешние данные, вы просто пытаетесь изменить значение selected в поиске. Ну, это немного по-другому. Поиски состоят из фактического значения и отображаемой строки. Значение, которое необходимо установить, не является отображаемой строкой, а является значением в форме:

ID;#VALUE

, где ID - внешний ключ в списке поиска, обычно это число, а VALUE - это отображаемое значение, например, «Имя события» В вашем случае вы бы хотели что-то вроде:

$item["Events"] = "45;#Event Name"

Вы должны проверить формат, сначала прочитав текущее значение.

Надеюсь, это поможет.

0 голосов
/ 27 февраля 2013

Для моего сценария я смог установить видимый столбец Внешние данные BCS с помощью простого $ Powershell $ item ["BCSCol"] = "NewValue", но мне также пришлось установить скрытое поле, чтобы изменение было видимым.Интересно, что значение не должно быть чем-то конкретным, так как кажется, что SP будет проверять текстовое значение, установленное через $ item ["BCSCol"] после изменения скрытого значения.

Не уверен, что этот подход поддерживается, но он работает.

Вот ссылка, которая помогла введите описание ссылки здесь

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

После некоторого поиска души, похоже, мне просто пришлось обновить столбец ["Events2_ID"], который я нашел, просматривая $ splist.Fields Затем мне нужно было просто обновить это поле значением ["BDC Identity"] из моего внешнего списка. Решено!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...