Маршрутизация рабочего процесса электронные письма для групп на основе значений списка

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/40520

Вопрос

Я разработал рабочий процесс состояния, который работает хорошо работает. Хотя это работает, пользователи жалуются на бомбардировку с помощью электронных писем задач рабочего процесса, которые не имеют ничего общего с их командами. В рамках DOC Lib я выполняю рабочий процесс, есть столбец, на котором работает каждая команда. Есть ли способ получить информацию из этого поля и маршрута в правильную группу. Это будет динамически, поэтому значение столбца может измениться. Столбец - это раскрывающееся поле (, которое вы не можете получить информацию от ... Как минимум, я думаю, ), но я создал рассчитанное поле для получения информации из раскрывающейся положения, чтобы это будет в статической колонне. Кроме того, я создал внешний список с 3 столбцами, чтобы попытаться прочитать из системы: группу, систему и утверждение.

IE Если пользователь выбирает «компьютер» из раскрывающегося списка «Система», каждый в группе одобрения «Мой APP) должен получить электронную почту Наличие строки «компьютер» в полевых и групповом имени, то то же самое идет для других вариантов с правильными группами.

Менее, чем оптимальный способ с огромными заявлениями, если они уверены, что я уверен, что возможно ... пытаясь сделать его немного более динамичным, а не так жестко.

if (Listitem = system
createTask_taskProperties.AssignedTo = "IT Group A"
{
e.Result = true;
}
else
{
if (Listitem = system 2......
.

Обновление

Я могу вернуть список, и теперь я могу получить элементы на основе идентификатора элемента, как так

SPListItem item = list.GetItemById(26);
.

Мне нужно найти способ получить все значения для столбца / поля, когда рабочий процесс срабатывает, поэтому я могу пройти эту информацию для переменной. Как только это будет сделано, я должен быть в состоянии вызвать эту переменную в моем запросе CAML, чтобы определить, где нужно маршрутизировать каждую задачу элемента. Я думал, что получил GUID от столбца, но это был только GUID для сама списка, используя этот код

SPListItem item2 = list.GetItemByUniqueId[new Guid("de417a82-f221-46bd-8003-034ea45de155")];
.

Это было полезно?

Решение

Your query returns an SPListItem, however you need an SPGroup to retrieve the distribution list email.

To get to the SPGroup object that actually represents the Group itself rather than the name of the Group like you are returning from the List, you need to pull it from an SPWeb (which will be a little trickier since a workflow does not run in the context of a page; I'll leave this to you to figure out).

SPListItem item = list.GetItemById(26); // <-- This is your code here
string strGroupName = item["ColumnWithGroupName"].ToString();

// Get your SPWeb object from which to pull the group here
using (SPWeb webYourWeb = ...)
{
    // (Use SiteGroups or Groups here depending on where you want to pull the group from)
    SPGroup group = webYourWeb.SiteGroups[strGroupName];
    string strGroupEmail = group.DistributionGroupEmail;

    // Send your email
}

That's how you get the email address of a group from the group name (which you got from an SPListItem)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top