Compartilhar via


Passo a passo: adicionar uma página de aplicativo a um fluxo de trabalho

Este passo a passo demonstra como adicionar uma página de aplicativo que exibe dados derivados de um fluxo de trabalho a um projeto de fluxo de trabalho. Ele se baseia no projeto descrito no tópico Passo a passo: Criar um fluxo de trabalho com formulários de associação e iniciação.

Este passo a passo demonstra as seguintes tarefas:

  • Adicionando uma página de aplicativo ASPX a um projeto de fluxo de trabalho do SharePoint.

  • Obtendo dados do projeto de fluxo de trabalho e manipulando-os.

  • Exibindo dados em uma tabela na página do aplicativo.

    Observação

    Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, confira Personalizar o IDE.

Pré-requisitos

Você precisará dos seguintes componentes para concluir este passo a passo:

Alterar o código do fluxo de trabalho

Primeiro, adicione uma linha de código ao fluxo de trabalho para definir o valor da coluna Resultado para a quantidade do relatório de despesas. Esse valor é usado posteriormente no cálculo de resumo do relatório de despesas.

Para definir o valor da coluna de resultado no fluxo de trabalho

  1. Carregue o projeto concluído do tópico Passo a passo: criando um fluxo de trabalho com formulários de associação e de iniciação no Visual Studio.

  2. Abra o código para Workflow1.cs ou Workflow1.vb (dependendo da linguagem de programação).

  3. Na parte inferior do createTask1_MethodInvoking método, adicione o seguinte código:

    createTask1_TaskProperties1.ExtendedProperties["Outcome"] =
      workflowProperties.InitiationData;
    

Criar uma página de aplicativo

Em seguida, adicione um formulário ASPX ao projeto. Esse formulário exibirá os dados obtidos do projeto de fluxo de trabalho do relatório de despesas. Para fazer isso, você adicionará uma página de aplicativo. Uma página de aplicativo usa a mesma página mestra que outras páginas do SharePoint, o que significa que ela será semelhante a outras páginas no site do SharePoint.

Para adicionar uma página de aplicativo ao projeto

  1. Escolha o projeto ExpenseReport e, na barra de menus, clique em Projeto>Adicionar só item.

  2. No painel Modelos, escolha o modelo da Página do Aplicativo, use o nome padrão para o item do projeto (ApplicationPage1.aspx) e escolha o botão Adicionar.

  3. No XML de ApplicationPage1.aspx, substitua a PlaceHolderMain seção pelo seguinte:

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
        <asp:Label ID="Label1" runat="server" Font-Bold="True"
            Text="Expenses that exceeded allotted amount" Font-Size="Medium"></asp:Label>
        <br />
        <asp:Table ID="Table1" runat="server">
        </asp:Table>
    </asp:Content>
    

    Esse código adiciona uma tabela à página junto com um título.

  4. Adicione um título à página do aplicativo substituindo a PlaceHolderPageTitleInTitleArea seção pelo seguinte:

    <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
        Expense Report Summary
    </asp:Content>
    

Codificar a página do aplicativo

Em seguida, adicione o código à página de aplicativo de resumo do relatório de despesas. Quando você abre a página, o código verifica a lista de tarefas no SharePoint em busca de despesas que excederam o limite de gastos alocado. O relatório lista cada item junto com a soma das despesas.

Para codificar a página do aplicativo

  1. Escolha o nó ApplicationPage1.aspx e, na barra de menus, escolha Exibir>Código para exibir o código por trás da página do aplicativo.

  2. Substitua as Instruções usando ou Importando (dependendo da linguagem de programação) na parte superior da classe pelo seguinte:

    using System;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using System.Collections;
    using System.Data;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Drawing;
    using Microsoft.SharePoint.Navigation;
    
  3. Adicione o seguinte código ao método Page_Load:

    try
    {
        // Reference the Tasks list on the SharePoint site.
        // Replace "TestServer" with a valid SharePoint server name.
        SPSite site = new SPSite("http://TestServer");
        SPList list = site.AllWebs[0].Lists["Tasks"];
    
        // string text = "";
        int sum = 0;
    
        Table1.Rows.Clear();
    
        // Add table headers.
        TableHeaderRow hr = new TableHeaderRow();
        hr.BackColor = Color.LightBlue;
        TableHeaderCell hc1 = new TableHeaderCell();
        TableHeaderCell hc2 = new TableHeaderCell();
        hc1.Text = "Expense Report Name";
        hc2.Text = "Amount Exceeded";
        hr.Cells.Add(hc1);
        hr.Cells.Add(hc2);
        // Add the TableHeaderRow as the first item
        // in the Rows collection of the table.
        Table1.Rows.AddAt(0, hr);
    
        // Iterate through the tasks in the Task list and collect those
        // that have values in the "Related Content" and "Outcome"
        // fields - the fields written to when expense approval is
        // required.
        foreach (SPListItem item in list.Items)
        {
            string s_relContent = "";
            string s_outcome = "";
    
            try
            {
                // Task has the fields - treat as expense report.
                s_relContent = item.GetFormattedValue("Related
                  Content");
                s_outcome = item.GetFormattedValue("Outcome");
            }
            catch
            {
                // Task does not have fields - skip it.
                continue;
            }
    
            if (!String.IsNullOrEmpty(s_relContent) &&
              !String.IsNullOrEmpty(s_outcome))
            {
                // Convert amount to an int and keep a running total.
                sum += Convert.ToInt32(s_outcome);
                TableCell relContent = new TableCell();
                relContent.Text = s_relContent;
                TableCell outcome = new TableCell();
                outcome.Text = "$" + s_outcome;
                TableRow dataRow2 = new TableRow();
                dataRow2.Cells.Add(relContent);
                dataRow2.Cells.Add(outcome);
                Table1.Rows.Add(dataRow2);
            }
        }
    
        // Report the sum of the reports in the table footer.
           TableFooterRow tfr = new TableFooterRow();
        tfr.BackColor = Color.LightGreen;
    
        // Create a TableCell object to contain the
        // text for the footer.
        TableCell ftc1 = new TableCell();
        TableCell ftc2 = new TableCell();
        ftc1.Text = "TOTAL: ";
        ftc2.Text = "$" + Convert.ToString(sum);
    
        // Add the TableCell object to the Cells
        // collection of the TableFooterRow.
        tfr.Cells.Add(ftc1);
        tfr.Cells.Add(ftc2);
    
        // Add the TableFooterRow to the Rows
        // collection of the table.
        Table1.Rows.Add(tfr);
    }
    
    catch (Exception errx)
    {
        System.Diagnostics.Debug.WriteLine("Error: " + errx.ToString());
    }
    

    Aviso

    Substitua "TestServer" no código pelo nome de um servidor válido que está executando o SharePoint.

Testar a página do aplicativo

Em seguida, determine se a página do aplicativo exibe os dados de despesas corretamente.

Para testar a página do aplicativo

  1. Clique na tecla F5 para executar e implantar o projeto no SharePoint.

  2. Clique na Página Inicial, depois clique nos Documentos Compartilhados na barra QuickLaunch para exibir a lista Documentos Compartilhados no site do SharePoint.

  3. Para representar relatórios de despesas para este exemplo, carregue alguns novos documentos na lista Documentos escolhendo o link Documentos na aba Ferramentas de biblioteca na parte superior da página, depois clique em Carregar Documento na faixa de opções da ferramenta.

  4. Depois de carregar alguns documentos, instancie o fluxo de trabalho clicando em Biblioteca na aba Ferramentas de biblioteca na parte superior da página, depois clique em Configurações da Biblioteca na faixa de opções da ferramenta.

  5. Na página Configurações da Biblioteca de Documentos, clique em Configurações de Fluxo de Trabalho na seção Permissões e Gerenciamento .

  6. Na página Configurações de Fluxo de Trabalho, clique em Adicionar um fluxo de trabalho.

  7. Na página Adicionar um Fluxo de Trabalho, escolha o fluxo de trabalho ExpenseReport – Workflow1, digite um nome para o fluxo de trabalho, como ExpenseTest, e clique em Avançar.

    O formulário Associação de fluxo de trabalho é exibido. Use-o para relatar o valor do limite de despesas.

  8. No formulário Associação, insira 1000 na caixa Limite de Aprovação Automática e clique em Associar Fluxo de Trabalho.

  9. Clique em Página Inicial para retornar à página inicial do SharePoint.

  10. Clique no link Documentos Compartilhados na barra QuickLaunch.

  11. Escolha um dos documentos carregados para exibir uma seta suspensa, clique no item Fluxos de Trabalho.

  12. Clique na imagem ao lado do ExpenseTest para exibir o formulário de Iniciação do fluxo de trabalho.

  13. Na caixa de texto Despesa Total, digite um valor maior que 1000 e, clique no botão Iniciar Fluxo de Trabalho.

    Quando uma despesa relatada excede o valor da despesa alocada, uma tarefa é adicionada à Lista de Tarefas. Uma coluna chamada ExpenseTest com o valor Concluído também é adicionada ao item de relatório de despesas na lista Documentos Compartilhados.

  14. Repita as etapas 11 a 13 com outros documentos na lista documentos compartilhados. (O número exato de documentos não é importante.)

  15. Exiba a página do aplicativo resumo do relatório de despesas abrindo a seguinte URL em um navegador da Web: http://SystemName/_layouts/ExpenseReport/ApplicationPage1.aspx.

    A página resumo do relatório de despesas lista todos os relatórios de despesas que excederam o valor alocado, o valor que eles excederam e o valor total de todos os relatórios.