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çãoObservaçã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:

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

  1. Exibição do Novo projeto caixa de diálogo, apontando para novo na arquivo menu e clique Novo projeto.

  2. Expanda o SharePoint o nó em um Visual C# ou Visual Basice, em seguida, clique em 2010.

  3. No modelos de painel, selecione o fluxo de trabalho seqüencial.

  4. No nome digite ExpenseReport e, em seguida, clique em OK.

    O O Assistente para personalização do SharePoint aparece.

  5. 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.

  6. 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.

  7. 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.

  8. 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

  1. Clique o Workflow1Solution Explorer.

  2. Clique em Add New Item sobre o projeto menu para exibir o Add New Item caixa de diálogo.

  3. 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.

  4. Na lista de modelos, selecione Formulário de associação de fluxo de trabalho.

  5. No nome caixa de texto, digite ExpenseReportAssocForm.aspx.

  6. 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

  1. No formulário de associação (ExpenseReportAssocForm.aspx), localize o asp:Content elemento que tenha ID="Main".

  2. 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" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="AutoApproveLimit" runat="server" />
    <br /><br />
    
  3. Expanda o ExpenseReportAssocForm.aspx de arquivo em Solution Explorer para exibir seus arquivos dependentes.

    ObservaçãoObservação

    Se o seu projeto está em Visual Basic, você deve clicar na Exibir todos os arquivos botão para executar esta etapa.

  4. O arquivo ExpenseReportAssocForm.aspx com o botão direito e selecione Exibir código.

  5. 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

  1. Clique o Workflow1Solution Explorer.

  2. Clique em Add New Item sobre o projeto menu para exibir o Add New Item caixa de diálogo.

  3. 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.

  4. Na lista de modelos, selecione Formulário de inicialização de fluxo de trabalho.

  5. No nome caixa de texto, digite ExpenseReportInitForm.aspx.

  6. 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

  1. No formulário de inicialização (ExpenseReportInitForm.aspx), localize o asp:Content elemento que tenha ID="Main".

  2. 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" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="AutoApproveLimit" ReadOnly="true" runat="server" />
    <br /><br />
    <asp:Label ID="lblExpenseTotal" Text="Expense Total:" runat="server" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="ExpenseTotal" runat="server" />
    <br /><br />
    
  3. Expanda o ExpenseReportInitForm.aspx de arquivo em Solution Explorer para exibir seus arquivos dependentes.

  4. O arquivo ExpenseReportInitForm.aspx com o botão direito e selecione Exibir código.

  5. 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;
    }
    
  6. 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.

  1. Exiba o fluxo de trabalho no designer de fluxo de trabalho clicando duas vezes em Workflow1 no projeto.

  2. Na caixa de ferramentas, expanda o v 3.0 do fluxo de trabalho do Windows nó e localize o IfElse atividade.

  3. 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.

  4. Na caixa de ferramentas, expanda o Fluxo de trabalho do SharePoint nó e localize o CreateTask atividade.

  5. Adicionar esta atividade ao fluxo de trabalho arrastando e soltando-o em um dos dois Soltar atividades aqui áreas dentro de IfElseActivity1.

  6. No Propriedades janela, digite um valor de propriedade de taskToken para o CorrelationToken propriedade.

  7. Expanda o CorrelationToken propriedade clicando no sinal de mais (Sinal de adição de TreeView) próximo ao proprietário.

  8. Clique na seta suspensa na OwnerActivityName sub propriedade e selecione Workflow1.

  9. Clique o TaskId propriedade e, em seguida, clique nas reticências (Elipse do designer do ASP.NET para dispositivos móveis) o botão para exibir a Vincular propriedade caixa de diálogo.

  10. Clique o ligar para um novo membro guia, selecione Criar o campoe, em seguida, clique em OK.

  11. Clique o TaskProperties propriedade e, em seguida, clique nas reticências (Elipse do designer do ASP.NET para dispositivos móveis) o botão para exibir a Vincular propriedade caixa de diálogo.

  12. Clique o ligar para um novo membro guia, selecione Criar o campoe, em seguida, clique em OK.

  13. Na caixa de ferramentas, expanda o Fluxo de trabalho do SharePoint nó e localize o LogToHistoryListActivity atividade.

  14. 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.

  1. Clique duas vezes o createTask1 a atividade no designer de fluxo de trabalho para gerar um método vazio para o MethodInvoking evento.

  2. 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çãoObservaçã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.

  3. 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;
    } 
    
  4. No designer de fluxo de trabalho, clique na ifElseBranchActivity1 atividade.

  5. No Propriedades janela, clique na seta suspensa de condição propriedade e selecione Code Condition.

  6. Expanda o condição propriedade clicando no sinal de mais (Sinal de adição de TreeView) próximo a ele e, em seguida, defina seu valor como checkApprovalNeeded.

  7. 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.

  8. 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;
    } 
    
  9. 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.

  1. Clique em Documentos compartilhados na barra Inicialização rápida.

  2. 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.

  3. 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.

  4. Na lista superior na página de configurações de fluxo de trabalho, selecione o ExpenseReport - Workflow1 modelo.

  5. 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.

  6. 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.

  1. 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.

  2. 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.

  3. Aponte o mouse para o documento carregado para exibir uma seta suspensa. Clique na seta suspensa e selecione fluxos de trabalho.

  4. 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.)

  5. 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.

  6. 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.

  7. Clique no título da tarefa para exibir seus detalhes da tarefa.

  8. Para voltar para o compartilhado documentos listar e reiniciar o fluxo de trabalho, usando o mesmo documento ou em um diferente.

  9. 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:

Consulte também

Tarefas

Demonstra Passo a passo: Adicionar uma página de aplicativo para um fluxo de trabalho.

Outros recursos

Criação de soluções de fluxo de trabalho do SharePoint