WSS 3.0 Workflow - Как получить данные из объединенных списков - PullRequest
0 голосов
/ 01 сентября 2009

У меня проблемы с WSS 3.0 Workflow с использованием объединенных списков. Вот описание:

Я создаю простое приложение для запроса на работу / бронирование. Это только для внутреннего использования отделом, так что сотрудники могут забронировать ежегодный отпуск и получить разрешение от своего соответствующего руководителя.

Для этого у меня есть два списка: первый список называется «Персонал» и содержит имя человека, адрес электронной почты и имя менеджера. Имя менеджера заполняется раскрывающимся списком в том же списке.

Второй список называется HolidayRequest и содержит поля для имени (раскрывающийся список на основе списка сотрудников), даты начала и окончания.

Когда в список HolidayRequest делается новая запись, я хочу запустить рабочий процесс, который отправит электронное письмо менеджеру этого человека, чтобы уведомить его об одобрении. У меня проблема с получением имени менеджера и адреса электронной почты в рабочий процесс. Проблема, как я вижу, состоит в том, что эта информация получена через объединенный список:

       HolidayRequest                          Staff
StartDate, EndDate, Name  ----------------->   Name, EmailAddress, Manager
                                                 /\                   |
                                                  |                   |
                                                  +-------------------+  

Так что мне нужно, чтобы рабочий процесс использовал поле Имя из HolidayRequest, чтобы найти запись с тем же именем в списке персонала, а затем получить имя менеджера из этой записи, получить запись персонала менеджера и, таким образом, адрес электронной почты менеджера. Это не совсем ракетостроение, но я просто не могу понять это в рабочем процессе (используя Sharepoint Designer).

Полагаю, первый вопрос заключается в том, является ли рабочий процесс правильным инструментом для этого, а во-вторых, если это так, то есть ли способ добиться того, что мне нужно?

Спасибо за чтение.

1 Ответ

0 голосов
/ 02 сентября 2009

Что ж, получается, что я был на правильном пути (как я думал), но не совсем понял, как Workflow выполняет поиск. Вот ответ:

Предположим, у вас есть два списка "HolidayRequest" и "Staff". В HolidayRequest есть поля для «Имени» (который является поиском в списке сотрудников), StartDate и EndDate. В списке персонала есть «Имя», «Электронная почта» и «Менеджер» (это поиск в списке персонала - ссылка на тот же список, но на другую запись).

Поскольку он включает двойной поиск, необходимо создать переменную рабочего процесса для хранения промежуточного результата. Поэтому я создал Variable: ManagerName для хранения имени менеджера из первого поиска, а затем использовал его в качестве ключа для второго поиска, чтобы извлечь адрес электронной почты для менеджера.

Мой ключ к окончательному анализу поиска рабочего процесса состоял в том, чтобы понять, как оно выполняет объединение, и, честно говоря, я не думаю, что «Определение рабочего процесса» в SPD очень ясно. DWL состоит из двух разделов - один под названием «Подробности поиска», и здесь вы указываете, откуда вы хотите получать данные (список источников и поле в этом списке), а второй раздел называется «Найти элемент списка». (здесь я ошибался) - вы используете это для создания связи между двумя списками. В поле «Поле» указывается поле в списке источников данных (например, «Персонал: Имя» для моего примера), а в поле «Значение» - соответствующее поле из другого списка (« Переменная: ManagerName "в моем примере).

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

Совершенная.

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

...