У меня на портале есть справочник сотрудников, в котором есть поля "Название", "Фамилия", "Имя", "Отчество" и "Инициалы". Проверив справочник, я понял, что поле "Инициалы" в справочнике почти не заполнено, а руками заполнять более 200 элементов, на мой взгляд, долго и не разумно. Для решения этой задачи решил прибегнуть к PowerShell.
Приступим!
Для начала обратимся к списку:
$web = get-spweb http://server/site $list = $web.Lists['Подразделения и сотрудники']
Далее запустим цикл и пробежимся по
всем элементам, у которых заполнены поля «Имя» и «Отчество»
$items = $List.Items foreach ($item in $items) { if (($item['Имя'] -ne $Null) -and ($item['Отчество'] -ne $Null)) {
Формируем значение для подстановки
в поле «Инициалы». Для этого берем первые
буквы из полей элемента «Имя» и «Отчетсво».
$string1 = $item['Имя'].substring(0,1) $string2 = $item['Отчество'].substring(0,1) $string = $string1+'.'+$string2+"." write-host $string #выводим получившееся значение
$item['Title'] = $stringTitle $item['Инициалы'] = $string $item.Update() } } $web.Dispose()
Т.к. мне еще нужно было обновить
поле «Название» в котором должно иметь значение поля «Фамилия» и «Инициалы»
Вот полный скрипт:
$web = get-spweb http://server/site $list = $web.Lists['Подразделения и сотрудники'] $items = $List.Items foreach ($item in $items) { if (($item['Имя'] -ne $Null) -and ($item['Отчество'] -ne $Null)) { write-host $item['Title'] #формирование Инициалов $string1 = $item['Имя'].substring(0,1) $string2 = $item['Отчество'].substring(0,1) $string = $string1+'.'+$string2+"." write-host $string #формирование Названия $stringTitle = $item['Фамилия']+' '+$string write-host $stringTitle # обновление элемента $item['Title'] = $stringTitle $item['Инициалы'] = $string $item.Update() } } $web.Dispose()
Надеюсь данная статья будет Вам полезна.
Комментариев нет:
Отправить комментарий