Passo a passo: Criando um fluxo de trabalho com formulários de iniciação e associação
Essa 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 de iniciação.Esses são os formulários ASPX que permitem que os parâmetros para ser adicionados a um fluxo de trabalho quando primeiros são associados pelo administrador do SharePoint (o formulário de associação), e quando o fluxo de trabalho é iniciado pelo usuário (o formulário de iniciação).
Essa 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 possui os seguintes requisitos:
Quando o fluxo de trabalho é associado a uma lista, o administrador será solicitado a um formulário de associação onde digitem um limite de dólar para relatórios de despesas.
Os funcionários usam seus relatórios de despesas para documentos compartilhados listas, começando o fluxo de trabalho, e insira no total de despesas no formulário de iniciação pelo fluxo de trabalho.
Se um total de relatório de despesas de funcionários excede o limite predefinido de administrador, uma tarefa é criada para que o gerenciador de funcionários aprove o relatório de despesas.Em o entanto, se o total de relatório de despesas de um funcionário é menor ou igual ao limite de despesas, uma mensagem automática aprovada são gravadas para a lista histórico de fluxo de trabalho.
Essa explicação passo a passo mostra as seguintes tarefas:
Criando um fluxo de trabalho seqüencial de definição de lista do SharePoint projeto em Visual Studio.
Criando uma agenda de fluxo de trabalho.
Eventos de atividade do fluxo de trabalho de manipulação.
Criando formulários de associação e de iniciação pelo fluxo de trabalho.
Associando o fluxo de trabalho.
Iniciando manualmente o fluxo de trabalho.
Observação |
---|
Embora essa explicação passo a passo usa um projeto de fluxo de trabalho seqüencial, o processo é o mesmo para fluxos de trabalho do computador de estado. Além de isso, seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos de interface de usuário de Visual Studio nas instruções a seguir.A edição de Visual Studio que você tenha e as configurações que você usa determinam esses elementos.Para mais informações, consulte Configurações de Visual Studio. |
Pré-requisitos
Para completar este passo-a-passo, são necessários os seguintes componentes:
Edições suportadas de Microsoft Windows e do SharePoint.Para mais informações, consulte Requisitos para o desenvolvimento de soluções do SharePoint.
O Visual Studio.
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 é executado em ordem até que a atividade a última terminar.Em esse procedimento, você criará um fluxo de trabalho seqüencial que se aplica aos documentos compartilhados lista no SharePoint.O assistente de fluxo de trabalho permite que você associe o fluxo de trabalho com o site ou a definição da lista e permite que você determinar quando o fluxo de trabalho iniciará.
Para criar um projeto de fluxo de trabalho seqüencial do SharePoint
Em a barra de menu, escolha Arquivo, Novo, Projeto para exibir a caixa de diálogo de Novo Projeto .
Expanda o nó de SharePoint em Visual C# ou Visual Basic, e então escolha o nó de 2010 .
Em o painel de, escolha Modelos o modelo de projeto Projeto do SharePoint 2010 .
Em a caixa de Nome , entre em ExpenseReport e então escolha o botão de OK .
Assistente de personalização do SharePoint Aparece.
Em a página de Especificar o site e o nível de segurança para depuração , escolha o botão de opção de Implantar como uma solução de farm , e então escolha o botão de Concluir para aceitar o nível de confiança e o site padrão.
Esta etapa também define o nível de confiança para a solução como a solução de farm, que é a única opção disponível para projetos de fluxo de trabalho.
Em Gerenciador de Soluções, escolha o nó de projeto.
Em a barra de menu, escolha Projeto, Adicionar novo item.
Em Visual C# ou Visual Basic, expanda o nó de SharePoint , e então escolha o nó de 2010 .
Em o painel de Modelos , escolha o modelo de Fluxo de trabalho seqüencial de farm solução (somente) , e então escolha o botão de Adicionar .
Assistente de personalização do SharePoint Aparece.
Em a página de Especifique o nome de fluxo de trabalho para depuração , aceite o nome padrão (ExpenseReport - Workflow1).Manter o valor padrão do tipo de modelo de fluxo de trabalho (listar o fluxo de trabalho).Escolha o botão de Avançar .
Em a página de Você tem do Visual Studio para associar automaticamente o fluxo de trabalho em uma sessão de depuração? , desmarque a caixa que associa automaticamente o modelo de fluxo de trabalho se estiver marcado.
Esta etapa permite associar manualmente o fluxo de trabalho com documentos compartilhados para listar posteriormente, que exibe o formulário de associação.
Escolha o botão de Concluir .
Adicionando um formulário de associação ao fluxo de trabalho
Em seguida, cria um formulário de associação de .ASPX que aparece quando o administrador do SharePoint associa o primeiro fluxo de trabalho com um documento de relatório de despesas.
Para adicionar um formulário de associação ao fluxo de trabalho
Escolha o nó de Workflow1 em Gerenciador de Soluções.
Em a barra de menu, escolha Projeto, Adicionar novo item para exibir a caixa de diálogo de Adicionar novo item .
Em o modo de exibição de árvore da caixa de diálogo, expanda Visual C# ou Visual Basic (dependendo do idioma do projeto), expanda o nó de SharePoint , e então escolha o nó de 2010 .
Em a lista de modelos, escolha o modelo de Formulário de associação de fluxo de trabalho .
Em a caixa de texto de Nome , digite ExpenseReportAssocForm.aspx.
Escolha o botão de Adicionar para adicionar o formulário ao projeto.
Criando e codificando o formulário de associação
Em esse procedimento, você apresenta a funcionalidade para o formulário de associação adicionando controles e codifica-lhe.
Para criar e codificar o formulário de associação
Em o formulário de associação (ExpenseReportAssocForm.aspx), localize o elemento de asp:Content que tem ID="Main".
Diretamente após a primeira linha em esse elemento de conteúdo, adicione o seguinte código para criar um rótulo e a caixa de texto que os avisos para a aprovação de despesas limitam (AutoApproveLimit):
<asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" /> <asp:TextBox ID="AutoApproveLimit" runat="server" /> <br /><br />
Expanda o arquivo de ExpenseReportAssocForm.aspx em Gerenciador de Soluções para exibir seus arquivos dependentes.
Observação Se o projeto está em Visual Basic, você deve escolher o botão de exibir todos os arquivos para executar esta etapa.
Abra o menu de atalho para o arquivo de ExpenseReportAssocForm.aspx e escolha Exibir Código.
Substituir o método de GetAssociationData 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; }
Adicionando um formulário de iniciação pelo fluxo de trabalho
Em seguida, criar o formulário de iniciação que aparece quando os usuários executem o fluxo de trabalho com seus relatórios de despesas.
Para criar um formulário de iniciação
Escolha o nó de Workflow1 em Gerenciador de Soluções.
Em a barra de menus, escolha, Projetoexibição de Adicionar novo item a caixa de diálogo de Adicionar novo item .
Em o modo de exibição de árvore da caixa de diálogo, expanda Visual C# ou Visual Basic (dependendo do idioma do projeto), expanda o nó de SharePoint , e então escolha o nó de 2010 .
Em a lista de modelos, escolha o modelo de Formulário de iniciação pelo fluxo de trabalho .
Em a caixa de texto de Nome , digite ExpenseReportInitForm.aspx.
Escolha o botão de Adicionar para adicionar o formulário ao projeto.
Criando e codificando o formulário de iniciação
Em seguida, apresenta a funcionalidade para o formulário de iniciação adicionando controles e codifica-lhe.
Para codificar o formulário de iniciação
Em o formulário de iniciação por ExpenseReportInitForm.aspx (), localize o elemento de asp:Content que contém ID="Main".
Diretamente após a primeira linha em esse elemento de conteúdo, adicione o seguinte código para criar um rótulo e uma caixa de texto que exibe o limite de aprovação de despesasAutoApproveLimit() que foi conectado no formulário de associação, e outro rótulo e caixa de texto a prompt para 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 arquivo de ExpenseReportInitForm.aspx em Gerenciador de Soluções para exibir seus arquivos dependentes.
Abra o menu de atalho para o arquivo de ExpenseReportInitForm.aspx e escolha Exibir Código.
Substituir o método de Page_Load com o seguinte exemplo:
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 método de GetInitiationData com o seguinte exemplo:
' 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, personalizar o fluxo de trabalho.Posteriormente, você associará duas formas ao fluxo de trabalho.
Para personalizar o fluxo de trabalho
Exibir o fluxo de trabalho no designer de fluxo de trabalho abrindo Workflow1 no projeto.
Em Caixa de Ferramentas, expanda o nó de Fluxo de trabalho v3.0 do windows e localize a atividade de IfElse .
Adicionar esta atividade ao fluxo de trabalho executando um das seguintes etapas:
Abra o menu de atalho para atividades de IfElse , escolha Copiar, abra o menu de atalho para a linha abaixo da atividade de onWorkflowActivated1 no designer de fluxo de trabalho, e então escolha Colar.
Arraste a atividade de IfElse de Caixa de Ferramentas, e conecta-se a linha abaixo da atividade de onWorkflowActiviated1 no designer de fluxo de trabalho.
Em a caixa de ferramentas, expanda o nó de Fluxo de trabalho do SharePoint e localize a atividade de CreateTask .
Adicionar esta atividade ao fluxo de trabalho executando um das seguintes etapas:
Abra o menu de atalho para atividades de CreateTask , escolha Copiar, abra o menu de atalho para uma das duas áreas de Atividades de soltar irá dentro de IfElseActivity1 no designer de fluxo de trabalho, e então escolha Colar.
Arraste a atividade de CreateTask de Caixa de Ferramentas em uma das duas áreas de Atividades de soltar irá dentro de IfElseActivity1.
Em a janela de Propriedades , insira um valor de propriedade de taskToken para a propriedade de CorrelationToken .
Expanda a propriedade de CorrelationToken escolhendo o sinal de mais () próximo de ele.
Escolha a seta suspensa na propriedade da sub-rotina de OwnerActivityName , e defina o valor de Workflow1 .
Escolha a propriedade de TaskId , e então escolha o botão reticências () para exibir a caixa de diálogo de Propriedade da associação deem .
Escolha a guia de Associar a um novo membro , escolha o botão de opção de crie o campo , e então escolha o botão de OK .
escolha a propriedade de TaskProperties , e então escolha o botão reticências () para exibir a caixa de diálogo de Propriedade da associação deem .
Escolha a guia de Associar a um novo membro , escolha o botão de opção de crie o campo , e então escolha o botão de OK .
Em Caixa de Ferramentas, expanda o nó de Fluxo de trabalho do SharePoint , e localize a atividade de LogToHistoryListActivity .
Adicionar esta atividade ao fluxo de trabalho executando um das seguintes etapas:
Abra o menu de atalho para atividades de LogToHistoryListActivity , escolha Copiar, abra o menu de atalho para outra área de Atividades de soltar irá dentro de IfElseActivity1 no designer de fluxo de trabalho, e então escolha Colar.
Arraste a atividade de LogToHistoryListActivity de Caixa de Ferramentas, e soltar-la em outra área de Atividades de soltar irá dentro de IfElseActivity1.
Adicionando código para o fluxo de trabalho
Em seguida, adicione o código ao fluxo de trabalho para fornecer funcionalidade.
Para adicionar código ao fluxo de trabalho
Abra o menu de atalho para atividades de createTask1 no designer de fluxo de trabalho, e então escolha Exibir Código.
Adicione o seguinte método:
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 Em o código, substitua somedomain\\someuser com um domínio e um nome de usuário para uma tarefa será criada, como, “Office\\JoeSch”.Para testar é mais fácil usar a conta que você está desenvolvendo com.
Abaixo do método de MethodInvoking , 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; }
Em o designer de fluxo de trabalho, escolha a atividade de ifElseBranchActivity1 .
Em a janela de Propriedades , escolha a seta suspensa da propriedade de Condição , e defina o valor de Code Condition .
Expanda a propriedade de Condição escolhendo o sinal de mais () próximo de ele, e defina seu valor para checkApprovalNeeded.
Em o designer de fluxo de trabalho, abra o menu de atalho para atividades de logToHistoryListActivity1 , e então escolha Gerar manipuladores para gerar um método vazio para o evento de MethodInvoking .
Substitua o código de MethodInvoking 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; }
Escolha a tecla F5 para depurar o programa.
Isso cria o aplicativo, empacotar-lo, implantá-lo, toggle seus recursos, reciclar-lo o pool de aplicativos de IIS , e a inicia o navegador no local especificado na propriedade de Localize o URL .
Associando o fluxo de trabalho à lista de documentos
Em seguida, exibe o formulário de associação de fluxo de trabalho associando o fluxo de trabalho com a lista de compartilhadoDocumentos no site do SharePoint.
Para associar o fluxo de trabalho
Escolha o link de Documentos Compartilhados na barra de QuickLaunch.
Escolha o link de Biblioteca na guia de Ferramentas de biblioteca e então escolha o botão de fita de Configurações de biblioteca .
Em a seção de permissões e gerenciamento , escolha o link de Configurações de fluxo de trabalho e então escolha o link de Adicione um fluxo de trabalho na página de fluxos de trabalho .
Em a lista superior nas configurações de fluxo de trabalho página, escolha o modelo de ExpenseReport - Workflow1 .
Em o próximo campo, digite em ExpenseReportWorkflow e então escolha o botão de Avançar .
Isso associa o fluxo de trabalho com a lista de Documentos Compartilhados e exibe o formulário de associação de fluxo de trabalho.
Em a caixa de texto de Aprovação de associação automática 1200, digite e clique no botão de Fluxo de trabalho do associado .
Iniciando o fluxo de trabalho
Em seguida, associa o fluxo de trabalho a um dos documentos na lista de Documentos Compartilhados para exibir o formulário de iniciação pelo fluxo de trabalho.
Para iniciar o fluxo de trabalho
Em a página do SharePoint, escolha o botão de Início .
Escolha o link de Documentos Compartilhados na barra de QuickLaunch para exibir a lista de Documentos Compartilhados .
Escolha o link de Documentos na guia de Ferramentas de biblioteca na parte superior da página, e então escolha o botão de Carregar Documento em fita para carregar um novo documento na lista de Documentos Compartilhados .
Em a caixa de diálogo de Carregar Documento , escolha o botão de Procurar , escolha qualquer arquivo de documento, escolha o botão de Abrir , e então escolha o botão de OK .
Você pode alterar as configurações do documento em esta caixa de diálogo, mas deixa-as nos valores padrão escolhendo o botão de Salvar .
Escolha o documento carregado, escolha a seta suspensa que aparece, e então escolha o item de fluxos de trabalho .
Escolha a imagem ao lado de ExpenseReportWorkflow.
Isso exibe o formulário de iniciação pelo fluxo de trabalho.(Observe que o valor exibido na caixa de Aprovação de associação automática é somente leitura porque foi inserido no formulário de associação.)
Em a caixa de texto, digite Total de despesas de 1600, e então escolha o botão de Fluxo de trabalho de Início .
Isso exibe a lista de Documentos Compartilhados novamente.Uma nova coluna chamada ExpenseReportWorkflow com o valor Concluído é adicionada ao item que o fluxo de trabalho foi iniciado logo.
Escolha a seta suspensa próxima de documento carregado e então escolha o item de fluxos de trabalho para exibir a página de status de fluxo de trabalho.Escolha o valor de Concluído em Fluxos de trabalho concluído.A tarefa é listada na seção de Tarefas .
Escolha o título de tarefa exibir os detalhes da tarefa.
Volte à lista de compartilhadoDocumentos e reinicie o fluxo de trabalho, usando o mesmo documento ou diferente.
Insira um valor na página de iniciação que é menor ou igual a quantidade inserida na página de associação (1200).
Quando isso ocorre, uma entrada na lista histórico é criada em vez de uma tarefa.Exibe a entrada na seção de Histórico de fluxo de trabalho da página do status de fluxo de trabalho.Observe a mensagem a coluna de resultado de evento histórico.Contém o texto inserido no evento de logToHistoryListActivity1.MethodInvoking incluindo a quantidade que foi automática aprovada.
Próximas etapas
Você pode aprender mais sobre como criar modelos de fluxo de trabalho de esses tópicos:
- Para saber mais sobre fluxos de trabalho do SharePoint, consulte Fluxos de trabalho no Windows SharePoint Services.
Consulte também
Tarefas
Passo a passo: Adicionar uma página de aplicativo para um fluxo de trabalho.