Уведомления Sharepoint не работают, когда в элементе несколько человек - PullRequest
0 голосов
/ 15 апреля 2010

Мы используем Sharepoint Services 3.0 в качестве инструмента отслеживания проекта. У нас есть настроенный список, содержащий вашу основную информацию (описание и т. Д.), А также столбец «назначенное лицо» типа «Персона» или «Группа», который мы используем для связи элементов списка с отдельными лицами. Этот столбец поддерживает несколько вариантов выбора.

Мы хотели бы настроить оповещения таким образом, чтобы каждый человек получал оповещение по электронной почте, только если он назначен элементу списка. Подход, который мы выбрали, состоит в том, чтобы настроить представление в этом списке с фильтрацией, чтобы показать элементы списка, для которых назначенное лицо равно [Me], а затем создать в этом списке оповещение, которое настроено на отправку электронного письма, когда кто-то изменяет элементы, которые появляются в представлении.

Это хорошо работает, когда в столбце назначенных лиц есть только один человек. Он не работает, если в столбце назначенных лиц более одного человека.

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

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Попробуйте этот информационный сайт, http://www.sharepointalert.info у него есть хорошее руководство по устранению неисправностей.

0 голосов
/ 15 апреля 2010

Причина, по которой это работает для одного человека, но не для нескольких людей, заключается в том, что чек специально предназначен для конкретного человека. Сравнение, которое вы просматриваете, заключается в том, равен ли Assigned значению [Me], а не в том случае, если Assigned имеет [Me] в качестве одного из объектов.

Вместо использования фильтра списка is equal to используйте фильтр списка contains. Это должно сработать.

РЕДАКТИРОВАТЬ В ОТВЕТ НА КОММЕНТАРИИ

Для доступа к объектной модели вам необходимо использовать Visual Studio. Я не знаю, как сделать это с помощью SharePoint Designer, но, возможно, есть какая-то сумасшедшая возможность просмотра таблицы, которую вы можете сделать. Во всяком случае ... на ваши реальные потребности ...

Следующий пример кода иллюстрирует очень простой метод для достижения вашей цели.

using (SPSite site = new SPSite("yourwebsiteurlhere")) 
{
    using (SPWeb web = site.OpenWeb())
    {
        SPList list = web.Lists["titleoflist"];
        SPView view = list.Views["filteredviewname"];
        view.Query = "<Where><Contains><FieldRef Name=\"assignfield\"/><Value Type=\"Integer\"><UserID Type=\"Integer\" /></Value></Contains></Where>";
        view.Update();
    }
}

Замените «yourwebsiteurlhere» на URL веб-сайта, «titleoflist» на название вашего списка, о котором идет речь, «Filterviewname» - на имя представления, а «assignfield» - на внутреннее имя, которое вы использовали для поля назначения. Если вы создали его через стандартный пользовательский интерфейс SharePoint, это должно быть имя поля без пробелов.

Что касается того, где запускать код, вы могли бы поместить подобные вещи в одноразовый рабочий процесс. Иногда я делаю это, чтобы убедиться, что у меня есть необходимые привилегии. Надеюсь, это поможет!

Если вы не можете / не можете использовать Visual Studio, вам, вероятно, придется искать решение стороннего производителя.

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