Пошаговое руководство. Создание рабочего процесса с формами сопоставления и запуска
В этом пошаговом руководстве показано, как создать базовый последовательный рабочий процесс, который включает использование форм сопоставления и запуска. Это формы ASPX, позволяющие добавлять параметры в рабочий процесс, когда он сначала связан администратором SharePoint (формой связи), а также при запуске рабочего процесса пользователем (формой запуска).
В этом пошаговом руководстве описывается сценарий, в котором пользователь хочет создать рабочий процесс утверждения для отчетов о расходах, которые имеют следующие требования:
Если рабочий процесс связан со списком, администратор запрашивает форму связи, в которой они вводят ограничение в долларах для отчетов о расходах.
Сотрудники отправляют отчеты о расходах в список общих документов, запускают рабочий процесс, а затем вводят общую сумму расходов в форме запуска рабочего процесса.
Если общий отчет о расходах сотрудника превышает предопределенное ограничение администратора, задача создается для руководителя сотрудника, чтобы утвердить отчет о расходах. Однако если общий объем отчета о расходах сотрудника меньше или равен ограничению расходов, то автоматически утвержденное сообщение записывается в список журнала рабочего процесса.
В этом пошаговом руководстве рассматриваются следующие задачи:
Создание проекта последовательного рабочего процесса определения списка SharePoint в Visual Studio.
Создание расписания рабочего процесса.
Обработка событий действий рабочего процесса.
Создание связей рабочих процессов и форм запуска.
Связывание рабочего процесса.
Запуск рабочего процесса вручную.
Примечание.
Хотя в этом пошаговом руководстве используется последовательный проект рабочего процесса, процесс совпадает с рабочими процессами компьютера состояния.
Кроме того, компьютер может отображать различные имена или расположения для некоторых элементов пользовательского интерфейса Visual Studio в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.
Необходимые компоненты
Для выполнения этого пошагового руководства требуются следующие компоненты:
Поддерживаемые редакции Microsoft Windows и SharePoint.
Visual Studio.
Создание последовательного проекта рабочего процесса SharePoint
Сначала создайте последовательный проект рабочего процесса в Visual Studio. Последовательный рабочий процесс — это ряд шагов, выполняемых в порядке до завершения последнего действия. В этой процедуре вы создадите последовательный рабочий процесс, который применяется к списку общих документов в SharePoint. Мастер рабочего процесса позволяет связать рабочий процесс с сайтом или определением списка и определить, когда будет запущен рабочий процесс.
Создание последовательного проекта рабочего процесса SharePoint
В строке меню выберите "Файл>нового проекта">, чтобы отобразить диалоговое окно "Новый проект".
Разверните узел SharePoint в Visual C# или Visual Basic, а затем выберите узел 2010.
В области шаблонов выберите шаблон проекта Проекта SharePoint 2010.
В поле "Имя" введите ExpenseReport и нажмите кнопку "ОК".
Откроется мастер настройки SharePoint.
На странице "Указание сайта и уровня безопасности для отладки" нажмите кнопку "Развернуть как решение фермы", а затем нажмите кнопку "Готово", чтобы принять уровень доверия и сайт по умолчанию.
Этот шаг также задает уровень доверия для решения в качестве решения фермы, который является единственным доступным вариантом для проектов рабочих процессов.
В области Обозреватель решенийвыберите узел проекта.
В строке меню выберите Проект>Добавить новый элемент.
В разделе Visual C# или Visual Basic разверните узел SharePoint и выберите узел 2010.
В области шаблонов выберите шаблон последовательного рабочего процесса (только для фермы) и нажмите кнопку "Добавить".
Откроется мастер настройки SharePoint.
На странице "Указание имени рабочего процесса для отладки" примите имя по умолчанию (ExpenseReport — Workflow1). Сохраните значение типа шаблона рабочего процесса по умолчанию (рабочий процесс списка). Нажмите кнопку Далее.
В visual Studio для автоматического связывания рабочего процесса в сеансе отладки снимите флажок, который автоматически связывает шаблон рабочего процесса, если он проверка.
Этот шаг позволяет вручную связать рабочий процесс со списком общих документов позже, где отображается форма сопоставления.
Нажмите кнопку Готово .
Добавление формы связи в рабочий процесс
Затем создайте . Форма сопоставления ASPX, которая отображается, когда администратор SharePoint сначала связывает рабочий процесс с документом отчета о расходах.
Добавление формы связи в рабочий процесс
Выберите узел Workflow1 в Обозреватель решений.
В строке меню выберите "Добавить новый элемент проекта>", чтобы отобразить диалоговое окно "Добавить новый элемент".
В представлении дерева диалогового окна разверните visual C# или Visual Basic (в зависимости от языка проекта), разверните узел SharePoint и выберите узел 2010.
В списке шаблонов выберите шаблон формы сопоставления рабочих процессов.
В текстовом поле "Имя" введите ExpenseReportAssocForm.aspx.
Нажмите кнопку "Добавить", чтобы добавить форму в проект.
Проектирование и кодирование формы связи
В этой процедуре вы вводите функциональные возможности в форму сопоставления, добавляя элементы управления и код в него.
Проектирование и код формы связи
В форме связи (ExpenseReportAssocForm.aspx) найдите
asp:Content
элемент, имеющийID="Main"
.Непосредственно после первой строки в этом элементе содержимого добавьте следующий код, чтобы создать метку и текстовое поле, которое запрашивает ограничение утверждения расходов (AutoApproveLimit):
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" runat="server" /> <br /><br />
Разверните файл ExpenseReportAssocForm.aspx в Обозреватель решений, чтобы отобразить зависимые файлы.
Примечание.
Если проект находится в Visual Basic, необходимо выбрать кнопку "Просмотреть все файлы ", чтобы выполнить этот шаг.
Откройте контекстное меню для файла ExpenseReportAssocForm.aspx и выберите "Вид кода".
Замените метод следующим:
GetAssociationData
Добавление формы запуска в рабочий процесс
Затем создайте форму запуска, которая отображается при запуске рабочего процесса в отчетах о расходах.
Создание формы запуска
Выберите узел Workflow1 в Обозреватель решений.
В строке меню выберите "Добавить новый элемент проекта>" диалоговое окно "Добавить новый элемент".
В представлении дерева диалогового окна разверните visual C# или Visual Basic (в зависимости от языка проекта), разверните узел SharePoint и выберите узел 2010.
В списке шаблонов выберите шаблон формы запуска рабочего процесса.
В текстовом поле "Имя" введите ExpenseReportInitForm.aspx.
Нажмите кнопку "Добавить", чтобы добавить форму в проект.
Проектирование и написание кода формы запуска
Затем введите функциональные возможности в форму запуска путем добавления элементов управления и кода в него.
Код формы запуска
В форме запуска (ExpenseReportInitForm.aspx) найдите
asp:Content
элемент, содержащийID="Main"
.Непосредственно после первой строки в этом элементе содержимого добавьте следующий код, чтобы создать метку и текстовое поле, отображающее ограничение утверждения расходов (AutoApproveLimit), введенное в форме ассоциации, и другую метку и текстовое поле, чтобы запросить общую сумму расходов (ExpenseTotal):
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" ReadOnly="true" runat="server" /> <br /><br /> <asp:Label ID="lblExpenseTotal" Text="Expense Total:" runat="server" /> <asp:TextBox ID="ExpenseTotal" runat="server" /> <br /><br />
Разверните файл ExpenseReportInitForm.aspx в Обозреватель решений, чтобы отобразить зависимые файлы.
Откройте контекстное меню для файла ExpenseReportInitForm.aspx и выберите "Просмотреть код".
Замените метод следующим примером
Page_Load
:Замените метод следующим примером
GetInitiationData
:
Настройка рабочего процесса
Затем настройте рабочий процесс. Позже вы свяжите две формы с рабочим процессом.
Настройка рабочего процесса
Отображение рабочего процесса в конструкторе рабочих процессов путем открытия Workflow1 в проекте.
На панели элементов разверните узел рабочего процесса Windows версии 3.0 и найдите действие IfElse.
Добавьте это действие в рабочий процесс, выполнив одно из следующих действий:
Откройте контекстное меню для действия IfElse , выберите "Копировать", откройте контекстное меню для строки в действии onWorkflowActivated1 в конструкторе рабочих процессов и нажмите кнопку "Вставить".
Перетащите действие IfElse из панели элементов и подключите его к строке под действием onWorkflowActiviated1 в конструкторе рабочих процессов.
На панели элементов разверните узел рабочего процесса SharePoint и найдите действие CreateTask .
Добавьте это действие в рабочий процесс, выполнив одно из следующих действий:
Откройте контекстное меню для действия CreateTask , выберите "Копировать", откройте контекстное меню для одного из двух областей "Удалить действия здесь " в конструкторе рабочих процессов IfElseActivity1 и нажмите кнопку "Вставить".
Перетащите действие CreateTask из панели элементов в одну из двух областей drop Here в IfElseActivity1.
В окне свойств введите значение свойства taskToken для свойства CorrelationToken.
Разверните свойство CorrelationToken, выбрав знак плюса () рядом с ним.
Выберите стрелку раскрывающегося списка в под свойстве OwnerActivityName и задайте значение Workflow1.
Выберите свойство TaskId и нажмите кнопку с многоточием (), чтобы отобразить диалоговое окно "Свойство привязки".
Выберите вкладку "Привязка к новому элементу", нажмите кнопку "Создать поле" и нажмите кнопку "ОК".
Выберите свойство TaskProperties и нажмите кнопку с многоточием () для отображения диалогового окна "Свойство привязки".
Выберите вкладку "Привязка к новому элементу", нажмите кнопку "Создать поле" и нажмите кнопку "ОК".
На панели элементов разверните узел рабочего процесса SharePoint и найдите действие LogToHistoryListActivity.
Добавьте это действие в рабочий процесс, выполнив одно из следующих действий:
Откройте контекстное меню для действия LogToHistoryListActivity , выберите "Копировать", откройте контекстное меню для другой области "Удалить действия здесь " в конструкторе рабочих процессов IfElseActivity1 и нажмите кнопку "Вставить".
Перетащите действие LogToHistoryListActivity из панели элементов и удалите его в другую область "Удалить здесь" в разделе IfElseActivity1.
Добавление кода в рабочий процесс
Затем добавьте код в рабочий процесс, чтобы предоставить ему функциональные возможности.
Добавление кода в рабочий процесс
Откройте контекстное меню для действия createTask1 в конструкторе рабочих процессов и выберите команду "Просмотреть код".
Добавьте следующий метод :
private void createTask1_MethodInvoking(object sender, EventArgs e) { createTask1_TaskId1 = Guid.NewGuid(); createTask1_TaskProperties1.AssignedTo = "somedomain\\someuser"; createTask1_TaskProperties1.Description = "Please approve the expense report"; createTask1_TaskProperties1.Title = "Expense Report Approval Needed"; }
Примечание.
В коде замените
somedomain\\someuser
доменом и именем пользователя, для которого будет создана задача, например "Office\\JoeSch
". Для тестирования проще всего использовать учетную запись, с помощью которых вы разрабатываете.Под методом
MethodInvoking
добавьте следующий пример:В конструкторе рабочих процессов выберите действие ifElseBranchActivity1 .
В окне "Свойства" выберите стрелку раскрывающегося списка свойства Условия, а затем задайте значение условия кода.
Разверните свойство Condition, выбрав знак плюса () рядом с ним, а затем задайте для него значение проверка ApprovalNeeded.
В конструкторе рабочих процессов откройте контекстное меню для действия logToHistoryListActivity1 , а затем выберите "Создать обработчики ", чтобы создать пустой метод для
MethodInvoking
события.Замените
MethodInvoking
код следующим образом:Выберите клавишу F5 для отладки программы.
Это компилирует приложение, упаковает его, развертывает его, активирует его функции, перезапускает пул приложений IIS, а затем запускает браузер в расположении, указанном в свойстве URL-адреса сайта.
Связывание рабочего процесса со списком документов
Затем откройте форму сопоставления рабочего процесса, связав рабочий процесс со списком SharedDocuments на сайте SharePoint.
Связывание рабочего процесса
Выберите ссылку "Общие документы" на панели QuickLaunch.
Выберите ссылку "Библиотека" на вкладке "Средства библиотеки", а затем нажмите кнопку "Библиотека Параметры ленте".
В разделе "Разрешения и управление" выберите ссылку "Рабочий процесс" Параметры и выберите ссылку "Добавить рабочий процесс" на странице "Рабочие процессы".
В верхнем списке на странице параметров рабочего процесса выберите шаблон ExpenseReport — Workflow1 .
В следующем поле введите ExpenseReportWorkflow и нажмите кнопку "Далее ".
Это связывает рабочий процесс со списком общих документов и отображает форму сопоставления рабочего процесса.
В текстовом поле "Ограничение автоматического утверждения" введите 1200 и нажмите кнопку "Связать рабочий процесс ".
Запуск рабочего процесса
Затем свяжите рабочий процесс с одним из документов в списке общих документов , чтобы отобразить форму запуска рабочего процесса.
Запуск рабочего процесса
На странице SharePoint нажмите кнопку "Главная ".
Выберите ссылку "Общие документы" на панели QuickLaunch, чтобы отобразить список общих документов .
Выберите ссылку "Документы" на вкладке "Инструменты библиотеки" в верхней части страницы, а затем нажмите кнопку "Отправить документ" на ленте, чтобы отправить новый документ в список общих документов.
В диалоговом окне "Отправить документ" нажмите кнопку "Обзор", выберите любой файл документа, нажмите кнопку "Открыть", а затем нажмите кнопку "ОК".
Параметры документа можно изменить в этом диалоговом окне, но оставить их значениями по умолчанию, нажав кнопку "Сохранить ".
Выберите отправленный документ, щелкните появиющуюся стрелку раскрывающегося списка и выберите элемент Workflows .
Выберите изображение рядом с ExpenseReportWorkflow.
Откроется форма запуска рабочего процесса. (Обратите внимание, что значение, отображаемое в элементе Поле "Автоматическое ограничение утверждения " доступно только для чтения, так как оно было введено в форме связи.)
В текстовом поле "Итог расходов" введите 1600 и нажмите кнопку "Пуск рабочего процесса ".
Откроется список общих документов еще раз. Новый столбец с именем ExpenseReportWorkflow со значением Completed добавляется в элемент, который только что начал рабочий процесс.
Щелкните стрелку раскрывающегося списка рядом с отправленным документом и выберите элемент Workflows , чтобы отобразить страницу состояния рабочего процесса. Выберите значение "Завершено" в разделе "Завершенные рабочие процессы". Задача указана в разделе "Задачи ".
Выберите название задачи, чтобы отобразить сведения о ней.
Вернитесь к списку SharedDocuments и перезапустите рабочий процесс, используя один и тот же документ или другой.
Введите сумму на странице запуска, которая меньше или равна сумме, введенной на странице сопоставления (1200).
Когда это происходит, вместо задачи создается запись в списке журнала. Запись отображается в разделе журнала рабочих процессов страницы состояния рабочего процесса. Обратите внимание на сообщение в столбце "Результат " события журнала. Он содержит текст, введенный в
logToHistoryListActivity1.MethodInvoking
событие, включающее сумму, которая была утверждена автоматически.