2015-11-19 1 views
0

Я использую список SharePoint, который был перенесен с старого сервера Windows 2003 на существующий сервер 2008 года. Этот список используется для отслеживания проблем, поднятых пользователями в отношении другого приложения, - список заданий, которые нужно выполнить, если хотите.Сброс SharePoint Calculated Field при редактировании элемента

В старом списке было поле Id. Когда список был воссоздан в новом районе назначенный номер ID отличается, например

Old ID New ID 
--------- --------- 
5   204 
6   2 
7   3 
8   159 
9   4 

Это назначение действительно кажется довольно случайным.

Чтобы отменить это, был создан расчетный столбец, поэтому идентификаторы, поднятые до миграции, используют старый идентификационный номер, а новые вызовы, поднятые после миграции, используют расчетное значение. Расчет

=IF(ISBLANK([ID (Old)]),ID+8,IF([ID (Old)]<=348,[ID (Old)],ID+8)) 

Это сравнивает ID (Old) к пустым, и если да, то это новый вызов и должен иметь по умолчанию идентификационный номер в плюс 8 (я думаю, что было в общей сложности 8 прозвучавшим развития, затем удаляли).

В противном случае, если старый идентификационный номер меньше 348 (номер вызова при переносе), используйте старый идентификационный номер.

Если ни одно из условий выполняется, просто установить идентификатор нового идентификационного номера плюс 8.

Это прекрасно работает при создании новых вызовов.

Проблема возникает, когда я редактирую вызов. Например, если я установил ETA для нового значения и сохранил вызов, вычисляемый идентификатор - всегда сбрасывается до 8.

Я могу исправить это, войдя в Настройки списка -> Открытие расчетного столбца -> и нажмите ОК. Это повторяет вычисление, и все правильно пронумеровано.

Для информации - из-за среды, в которой это развертывается, я вообще не могу использовать SharePoint Designer.

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

ответ

1

Поле идентификатора ведет себя немного странно с вычисленными столбцами. Вычисленная формула столбца найдет идентификатор элемента и решит его правильно, когда элементы будут созданы или когда формула будет изменена, но, как вы обнаружили, когда элемент изменен, формула не может найти значение идентификатора. (Я предполагаю, что это связано с тем, что поле ID не включено в список значений столбцов, отправляемых в базу данных при обновлении, возможно, потому, что поле идентификатора никогда не должно меняться.)

Один из способов: используйте рабочий процесс (или пользовательский обработчик событий, если у вас слишком много времени на руках), чтобы скопировать поле идентификатора в другой столбец, например номер или одну строку текстового столбца, всякий раз, когда создается элемент. Затем вы можете использовать этот новый столбец в своей формуле вместо использования столбца ID.

Чтобы люди не обновляли колонку с идентификационным номером, вы можете скрыть ее от форм. Для этого сначала включите управление типами содержимого для списка, затем отредактируйте тип содержимого «Элемент», найдите новый столбец «фиктивный идентификатор» и измените его на «Скрытый» (вместо «Требуется» или «Необязательно»).

 Смежные вопросы

  • Нет связанных вопросов^_^