2016-03-19 5 views

ответ

0

Не уверен, что это возможно с использованием рабочих процессов, поскольку, на мой взгляд, нет возможности проверить общее количество предметов в ваш список. Рабочие процессы запускаются при добавлении элементов, и вы можете иметь только свойства текущего элемента. Если вы не работаете с вновь созданным списком и используете ItemID. Это всегда увеличивало бы ID с подсчетом общих элементов, но всякий раз, когда вы удаляете элемент, ваш счет ошибочен, поэтому не используйте его.

Я бы создал решение для фермы, которое обрабатывает событие ontemadded вашего списка. Затем вы можете легко получить объект списка из SPItemEventProperties, приходящего с приемником событий. Тогда что-то вроде этого (жаль, что я не есть мой Dev среде здесь на данный момент):

SPQuery query = SPQuery.CreateAllItemsQuery(); 
List mylist = properties.List; 

SPListItemCollection items = mylist.getItems(query); 

int totalCount = items.Count; 

if(totalCount < 16){ 
//SEND EMAIL LOGIC 
} 

Отправка электронной почты может только быть сделано через C#.

Бонус: Если вы хотите повторно использовать эту логику, вы всегда можете создать пользовательское действие/условие для рабочих процессов SharePoint.

+0

Большое спасибо за вашу помощь. К сожалению, у меня нет доступа к ферме для моей компании SharePoint.Я просто создаю предупреждение для всякий раз, когда элемент будет удален из списка. Я также добавлю количество элементов списка, используя итоговые значения в меню редактирования. Таким образом, когда оповещение отправляется по электронной почте, тот, кто получает письмо, может просто щелкнуть ссылку на список и посмотреть общее количество. Еще раз спасибо. – user2163407

0

Вы можете инициировать отправку электронной почты с помощью планировщика заданий (с определенными интервалами) на вашем сервере (или на любом другом сервере, если вы используете клиентский OM). Другой вариант - использовать приемник событий: в событии с деталями подсчитывать общие элементы и отправлять электронную почту через C#. Ваш вопрос довольно короткий, поэтому добавив еще несколько деталей, было бы легче дать вам полный ответ

+0

У меня есть базовый список SP из 20 элементов, поскольку элементы удаляются из списка, мне понадобится автоматическое письмо, которое будет отправлено мне, когда останется 15 предметов. Надеюсь, это поможет немного. Если мне нужно создать рабочий процесс, знаете ли вы какие-либо пошаговые руководства, которые могут показать мне, как это сделать? – user2163407

0

Прохладный код, но есть простой и более полный из коробки способ сделать это.

Чтобы получить общее количество предметов:

Создание одной строки текстового поля в список А называется ListA_ID. Создайте одну позицию и установите для этого поля значение по вашему выбору.

Добавить столбец поиска в ListB, называемый ListA_ID_lookup (для всех элементов, созданных в этом списке, должно быть установлено одно и то же значение, созданное в списке A).

Создать новый столбец подстановки в lišta называется «Общее число значений в списке B»

Установите поиск, чтобы получить информацию из: Список Б В этой колонке: ListA_ID_lookup (Count Related)

В count в списке A будет сообщать об общем количестве элементов, соответствующих столбцу поиска.

Затем вы можете создать циклический рабочий процесс в некотором роде, который отправляет электронное письмо с обновлениями по выбранному вами интервалу. Когда элементы списка из B обновляются, я бы создал рабочий процесс для обновления поля в списке A, который инициировал бы рабочий процесс для отправки по электронной почте из списка A. Если «Общее количество значений в списке B» меньше 20, действие электронной почты и т. Д. и т. д.

Существует несколько способов сделать эту электронную почту.

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