Demonstra Passo a passo: Criando um fluxo de trabalho com formulários de início e de associação
Esta explicação passo a passo demonstra como criar um fluxo de trabalho seqüencial básico que incorpora o uso de formulários de associação e inicialização. Esses são os formulários ASPX que permitem que os parâmetros a serem adicionados a um fluxo de trabalho, quando o primeiro, ele é associado pelo administrador do SharePoint (o formulário de associação), e quando o fluxo de trabalho é iniciado pelo usuário (o formulário de inicialização).
Esta explicação passo a passo descreve um cenário onde um usuário deseja criar um fluxo de trabalho de aprovação para relatórios de despesas que tem os seguintes requisitos:
Quando o fluxo de trabalho está associado uma lista, o administrador é solicitado com um formulário de associação, onde eles inserem um limite de dólar para relatórios de despesas.
Funcionários carreguem seus relatórios de despesa para a lista de documentos compartilhados, iniciar o fluxo de trabalho e, em seguida, insira a despesa total no formulário de inicialização de fluxo de trabalho.
Se um relatório de despesas do funcionário total exceder o limite predefinido do administrador, uma tarefa é criada para o gerente do funcionário aprovar o relatório de despesas. No entanto, se o total de relatório de despesas do funcionário é menor ou igual ao limite de despesas, uma mensagem de auto-aprovado é escrita à lista de histórico do fluxo de trabalho.
Essa explicação passo a passo ilustra as seguintes tarefas:
Criando um projeto de fluxo de trabalho seqüencial de definição de lista SharePoint no Visual Studio.
Criando uma agenda de fluxo de trabalho.
Manipulação de eventos de atividade de fluxo de trabalho.
Criando formulários de associação e inicialização de fluxo de trabalho.
Associando o fluxo de trabalho.
Iniciar manualmente o fluxo de trabalho.
Observação |
---|
Embora este passo a passo usa um projeto de fluxo de trabalho seqüencial, o processo é o mesmo para o fluxos de trabalho de máquina de estado. Além disso, o seu computador pode mostrar diferentes nomes ou localizações para alguns do Visual Studio elementos de interface do usuário as instruções a seguir. O Visual Studio edição que você tem e as configurações que você usar determinam esses elementos. Para obter mais informações, consulte Trabalhando com configurações. |
Pré-requisitos
Para completar este passo a passo, são necessários os seguintes componentes:
Edições com suporte do Microsoft Windows e SharePoint. Para obter mais informações, consulte Requisitos para o desenvolvimento de soluções do SharePoint.
Visual Studio 2010.
Criando um projeto de fluxo de trabalho seqüencial do SharePoint
Primeiro, crie um projeto de fluxo de trabalho seqüencial em Visual Studio. Um fluxo de trabalho seqüencial é uma série de etapas que executa na ordem até que a última atividade seja concluída. Neste procedimento, você irá criar um fluxo de trabalho seqüencial que se aplica à lista de documentos compartilhados no SharePoint. Assistente do fluxo de trabalho permite que você associe o fluxo de trabalho com o site ou a definição de lista e permite que você determine quando o fluxo de trabalho será iniciado.
Para criar um projeto de fluxo de trabalho seqüencial do SharePoint
Exibição do Novo projeto caixa de diálogo, apontando para novo na arquivo menu e clique Novo projeto.
Expanda o SharePoint o nó em um Visual C# ou Visual Basice, em seguida, clique em 2010.
No modelos de painel, selecione o fluxo de trabalho seqüencial.
No nome digite ExpenseReport e, em seguida, clique em OK.
O O Assistente para personalização do SharePoint aparece.
No o que é o site local que você deseja usar para depuração? página, clique em próximo para aceitar o site padrão.
Essa etapa também define o nível de confiança para a solução como solução do farm, o que é a única opção disponível para projetos de fluxo de trabalho.
No Especifique o nome do fluxo de trabalho para depuração de página, aceite o nome padrão (ExpenseReport - Workflow1). Manter o valor de tipo de modelo de fluxo de trabalho padrão (fluxo de trabalho da lista). Clique em Next.
No você gostaria de Visual Studio para associar automaticamente o fluxo de trabalho em uma sessão de depuração? de página, desmarque a caixa que associa automaticamente o seu modelo de fluxo de trabalho se ela estiver marcada.
Esta etapa permite que você associe manualmente o fluxo de trabalho com a lista de documentos compartilhados no futuro, que exibe o formulário de associação.
Clique em Finish.
A adição de um formulário de associação ao fluxo de trabalho
Em seguida, crie um.Formulário de associação de ASPX que aparece quando o primeiro, o administrador do SharePoint associa o fluxo de trabalho com um documento de relatório de despesas.
Para adicionar um formulário de associação ao fluxo de trabalho
Clique o Workflow1 nó Solution Explorer.
Clique em Add New Item sobre o projeto menu para exibir o Add New Item caixa de diálogo.
Na exibição de árvore da caixa de diálogo, expanda Visual C# ou Visual Basic (dependendo do idioma do projeto), expanda o SharePoint nó e clique 2010.
Na lista de modelos, selecione Formulário de associação de fluxo de trabalho.
No nome caixa de texto, digite ExpenseReportAssocForm.aspx.
Clique o Add o botão para adicionar o formulário ao projeto.
Criação e a codificação do formulário de associação
Neste procedimento, você pode introduzir funcionalidade para o formulário de associação, adicionando controles e código para ele.
Design e código do formulário de associação
No formulário de associação (ExpenseReportAssocForm.aspx), localize o asp:Content elemento que tenha ID="Main".
Diretamente após a primeira linha nesse elemento de conteúdo, adicione o seguinte código para criar um rótulo e um textbox que solicita o limite de aprovação de despesas (AutoApproveLimit):
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" runat="server" /> <br /><br />
Expanda o ExpenseReportAssocForm.aspx de arquivo em Solution Explorer para exibir seus arquivos dependentes.
Observação Se o seu projeto está em Visual Basic, você deve clicar na Exibir todos os arquivos botão para executar esta etapa.
O arquivo ExpenseReportAssocForm.aspx com o botão direito e selecione Exibir código.
Substituir o GetAssociationData método com:
Private Function GetAssociationData() As String ' TODO: Return a string that contains the association data that ' will be passed to the workflow. Typically, this is in XML ' format. Return Me.AutoApproveLimit.Text End Function
private string GetAssociationData() { // TODO: Return a string that contains the association data that // will be passed to the workflow. Typically, this is in XML // format. return this.AutoApproveLimit.Text; }
A adição de um formulário de inicialização para o fluxo de trabalho.
Em seguida, crie o formulário de inicialização que aparece quando os usuários a executar o fluxo de trabalho contra seus relatórios de despesas.
Para criar um formulário de inicialização
Clique o Workflow1 nó Solution Explorer.
Clique em Add New Item sobre o projeto menu para exibir o Add New Item caixa de diálogo.
Na exibição de árvore da caixa de diálogo, expanda Visual C# ou Visual Basic (dependendo do idioma do projeto), expanda o SharePoint nó e clique 2010.
Na lista de modelos, selecione Formulário de inicialização de fluxo de trabalho.
No nome caixa de texto, digite ExpenseReportInitForm.aspx.
Clique o Add o botão para adicionar o formulário ao projeto.
Criação e a codificação do formulário de inicialização
Em seguida, apresente a funcionalidade para o formulário de inicialização, adicionando controles e código para ele.
O código do formulário de inicialização
No formulário de inicialização (ExpenseReportInitForm.aspx), localize o asp:Content elemento que tenha ID="Main".
Diretamente após a primeira linha nesse elemento de conteúdo, adicione o seguinte código para criar um rótulo e um textbox que exibe o limite de aprovação de despesas (AutoApproveLimit) que foi inserido no formulário de associação e outro label e textbox para pedir o total de despesas (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 />
Expanda o ExpenseReportInitForm.aspx de arquivo em Solution Explorer para exibir seus arquivos dependentes.
O arquivo ExpenseReportInitForm.aspx com o botão direito e selecione Exibir código.
Substituir o Page_Load método com o exemplo a seguir:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load InitializeParams() Me.AutoApproveLimit.Text = workflowList.WorkflowAssociations(New Guid(associationGuid)).AssociationData ' Optionally, add code here to pre-populate your form fields. End Sub
protected void Page_Load(object sender, EventArgs e) { InitializeParams(); this.AutoApproveLimit.Text = workflowList.WorkflowAssociations[new Guid(associationGuid)].AssociationData; }
Substituir o GetInitiationData método com o exemplo a seguir:
' This method is called when the user clicks the button to start the workflow. Private Function GetInitiationData() As String Return Me.ExpenseTotal.Text ' TODO: Return a string that contains the initiation data that ' will be passed to the workflow. Typically, this is in XML ' format. Return String.Empty End Function
// This method is called when the user clicks the button to start the workflow. private string GetInitiationData() { // TODO: Return a string that contains the initiation data that // will be passed to the workflow. Typically, this is in XML // format. return this.ExpenseTotal.Text; }
Personalizando o fluxo de trabalho.
Em seguida, personalize o fluxo de trabalho. Posteriormente, você irá associar dois formulários para o fluxo de trabalho.
Para personalizar o fluxo de trabalho.
Exiba o fluxo de trabalho no designer de fluxo de trabalho clicando duas vezes em Workflow1 no projeto.
Na caixa de ferramentas, expanda o v 3.0 do fluxo de trabalho do Windows nó e localize o IfElse atividade.
Adicionar esta atividade ao fluxo de trabalho arrastando-o para o designer e soltá-la apenas na onWorkflowActivated1 a atividade no fluxo de trabalho. Isso cria uma atividade denominada IfElseActivity1 no designer.
Na caixa de ferramentas, expanda o Fluxo de trabalho do SharePoint nó e localize o CreateTask atividade.
Adicionar esta atividade ao fluxo de trabalho arrastando e soltando-o em um dos dois Soltar atividades aqui áreas dentro de IfElseActivity1.
No Propriedades janela, digite um valor de propriedade de taskToken para o CorrelationToken propriedade.
Expanda o CorrelationToken propriedade clicando no sinal de mais () próximo ao proprietário.
Clique na seta suspensa na OwnerActivityName sub propriedade e selecione Workflow1.
Clique o TaskId propriedade e, em seguida, clique nas reticências () o botão para exibir a Vincular propriedade caixa de diálogo.
Clique o ligar para um novo membro guia, selecione Criar o campoe, em seguida, clique em OK.
Clique o TaskProperties propriedade e, em seguida, clique nas reticências () o botão para exibir a Vincular propriedade caixa de diálogo.
Clique o ligar para um novo membro guia, selecione Criar o campoe, em seguida, clique em OK.
Na caixa de ferramentas, expanda o Fluxo de trabalho do SharePoint nó e localize o LogToHistoryListActivity atividade.
Adicionar esta atividade ao fluxo de trabalho arrastando e soltando-o até o outro Soltar atividades aqui área dentro do IfElseActivity1.
Adicionando código para o fluxo de trabalho.
Em seguida, adicione o código para o fluxo de trabalho para dar a funcionalidade.
Para adicionar o código para o fluxo de trabalho.
Clique duas vezes o createTask1 a atividade no designer de fluxo de trabalho para gerar um método vazio para o MethodInvoking evento.
Substituir o MethodInvoking método com:
Private Sub createTask1_MethodInvoking(ByVal sender As System.Object, ByVal e As System.EventArgs) createTask1_TaskId1 = Guid.NewGuid createTask1_TaskProperties1.AssignedTo = "somedomain\\someuser" createTask1_TaskProperties1.Description = "Please approve the expense report" createTask1_TaskProperties1.Title = "Expense Report Approval Needed" End Sub
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"; }
Observação No código, substitua somedomain\\someuser com um nome de usuário e domínio para o qual uma tarefa será criada, como "Office\\JoeSch". É mais fácil de usar a conta que você está desenvolvendo com para teste.
Abaixo de MethodInvoking método, adicione o seguinte exemplo:
Private Sub checkApprovalNeeded(ByVal sender As Object, ByVal e As ConditionalEventArgs) Dim approval As Boolean = False If (Convert.ToInt32(workflowProperties.InitiationData) > Convert.ToInt32(workflowProperties.AssociationData)) Then approval = True End If e.Result = approval End Sub
private void checkApprovalNeeded(object sender, ConditionalEventArgs e) { bool approval = false; if (Convert.ToInt32(workflowProperties.InitiationData) > Convert.ToInt32(workflowProperties.AssociationData)) { approval = true; } e.Result = approval; }
No designer de fluxo de trabalho, clique na ifElseBranchActivity1 atividade.
No Propriedades janela, clique na seta suspensa de condição propriedade e selecione Code Condition.
Expanda o condição propriedade clicando no sinal de mais () próximo a ele e, em seguida, defina seu valor como checkApprovalNeeded.
No designer de fluxo de trabalho, clique com o botão direito do logToHistoryListActivity1 atividade e selecione Gerar manipuladores para gerar um método vazio para o MethodInvoking de evento.
Substituir o MethodInvoking código com o seguinte:
Private Sub logToHistoryListActivity1_MethodInvoking(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.logToHistoryListActivity1.HistoryOutcome = ("Expense was auto approved for " + workflowProperties.InitiationData) End Sub
private void logToHistoryListActivity1_MethodInvoking(object sender, EventArgs e) { this.logToHistoryListActivity1.HistoryOutcome = "Expense was auto approved for " + workflowProperties.InitiationData; }
Pressione F5 para depurar o programa.
Isso compila o aplicativo, empacota, implanta, ativa os seus recursos, recicla o IIS pool de aplicativos e, em seguida, inicia o navegador no local especificado na Url do Site propriedade.
Associando o fluxo de trabalho para a lista de documentos
Em seguida, exibir o formulário de associação de fluxo de trabalho associando o fluxo de trabalho com o compartilhado documentos a lista no site do SharePoint.
Para associar o fluxo de trabalho.
Clique em Documentos compartilhados na barra Inicialização rápida.
Clique em biblioteca na Ferramentas de biblioteca guia da faixa de opções e clique no Definições da biblioteca de botão faixa de opções.
No permissões e gerenciamento seção, clique o Configurações de fluxo de trabalho link e, em seguida, clique no Adicionar um fluxo de trabalho do link na fluxos de trabalho página.
Na lista superior na página de configurações de fluxo de trabalho, selecione o ExpenseReport - Workflow1 modelo.
No próximo campo, digite ExpenseReportWorkflow e clique no próximo botão.
Isto associa o fluxo de trabalho com o Documentos compartilhados lista e exibe o formulário de associação de fluxo de trabalho.
No Limite de aprovação automática caixa de texto, digite 1200 e clique o Associar o fluxo de trabalho botão.
Iniciando o fluxo de trabalho.
Em seguida, associar o fluxo de trabalho para um dos documentos na Documentos compartilhados lista para exibir o formulário de inicialização de fluxo de trabalho.
Para iniciar o fluxo de trabalho.
Na página do SharePoint, clique no Home botão e, em seguida, exibir o Documentos compartilhados a lista no site do SharePoint clicando o Documentos compartilhados link na barra Inicialização rápida.
Carregar um novo documento na Documentos compartilhados lista clicando o documentos do link na Ferramentas de biblioteca guia na parte superior da página e, em seguida, em seguida, clicando no Carregar documento botão na faixa.
Aponte o mouse para o documento carregado para exibir uma seta suspensa. Clique na seta suspensa e selecione fluxos de trabalho.
Clique na imagem ao lado para o ExpenseReportWorkflow.
Exibe o formulário de inicialização de fluxo de trabalho. (Observe que o valor exibido na Limite de aprovação automática caixa é somente leitura porque ele foi inserido no formulário de associação.)
No O Total de despesas 1600 de tipo de caixa de texto e, em seguida, clique em Iniciar o fluxo de trabalho.
Isso exibe o Documentos compartilhados lista novamente. Uma nova coluna chamada ExpenseReportWorkflow com o valor Completed é adicionado ao item de fluxo de trabalho apenas iniciado.
Clique na seta suspensa próxima ao documento carregado e, em seguida, clique em fluxos de trabalho para exibir a página de status do fluxo de trabalho. Clique no valor Completed em Fluxos de trabalho concluído. A tarefa é listada sob o tarefas seção.
Clique no título da tarefa para exibir seus detalhes da tarefa.
Para voltar para o compartilhado documentos listar e reiniciar o fluxo de trabalho, usando o mesmo documento ou em um diferente.
Insira um valor na página de início que seja menor ou igual ao valor inserido na página de associação (1200).
Quando isso ocorre, uma entrada na lista do histórico é criada em vez de uma tarefa. Exibe a entrada do Histórico de fluxo de trabalho seção da página de status do fluxo de trabalho. Observe a mensagem de resultado coluna do evento do histórico. Ele contém o texto inserido na logToHistoryListActivity1.MethodInvoking evento que inclui a quantidade que foi auto–approved.
Próximas etapas
Você pode aprender mais sobre como criar modelos de fluxo de trabalho com estes tópicos:
- Para saber mais sobre os fluxos de trabalho do SharePoint, consulte fluxos de trabalho de Windows SharePoint Services.
Consulte também
Tarefas
Demonstra Passo a passo: Adicionar uma página de aplicativo para um fluxo de trabalho.