Tutorial: agregar una página de aplicación a un flujo de trabajo

En este tutorial se muestra cómo agregar una página de aplicación que muestra los datos derivados de un flujo de trabajo a un proyecto de flujo de trabajo. Se basa en el proyecto descrito en el tema Tutorial: crear un flujo de trabajo con formularios de asociación e iniciación.

En este tutorial se muestran las siguientes tareas:

  • Agregar una página de aplicación ASPX a un proyecto de flujo de trabajo de SharePoint.

  • Obtener datos del proyecto de flujo de trabajo y manipularlos.

  • Mostrar datos en una tabla en la página de la aplicación.

    Nota:

    Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.

Requisitos previos

Necesitará los componentes siguientes para completar este tutorial:

Modifique el código de flujo de trabajo

En primer lugar, agregue una línea de código al flujo de trabajo para establecer el valor de la columna Resultado en la cantidad del informe de gastos. Este valor se usa más adelante en el cálculo de resumen del informe de gastos.

Para establecer el valor de la columna de resultados en el flujo de trabajo

  1. Cargue el proyecto completado desde el tema Tutorial: Crear un flujo de trabajo con formularios de asociación e iniciación en Visual Studio.

  2. Abra el código de Workflow1.cs o Workflow1.vb (según el lenguaje de programación).

  3. Al final del método createTask1_MethodInvoking, agregue el siguiente código:

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

Crear una página de aplicación

A continuación, agregue un formulario ASPX al proyecto. Este formulario mostrará los datos obtenidos del proyecto de flujo de trabajo del informe de gastos. Para ello, agregará una página de aplicación. Una página de aplicación usa la misma página maestra que otras páginas de SharePoint, lo que significa que se parecerá a otras páginas del sitio de SharePoint.

Para agregar una página de aplicación al proyecto

  1. Elija el proyecto ExpenseReport y, a continuación, en la barra de menús, elija Proyecto>Agregar nuevo elemento.

  2. En el panel Plantillas, elija la plantilla Página de aplicación, use el nombre predeterminado para el elemento de proyecto (ApplicationPage1.aspx) y elija el botón Agregar.

  3. En el XML de ApplicationPage1.aspx, reemplace la sección PlaceHolderMain por lo siguiente:

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

    Este código agrega una tabla a la página junto con un título.

  4. Agregue un título a la página de la aplicación reemplazando la sección PlaceHolderPageTitleInTitleArea por lo siguiente:

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

Codificar la página de aplicación

A continuación, agregue código a la página de la aplicación de resumen del informe de gastos. Al abrir la página, el código examina la lista de tareas en SharePoint en busca de gastos que superen el límite de gasto asignado. El informe enumera cada elemento junto con la suma de los gastos.

Codificar la página de aplicación

  1. Elija el nodo ApplicationPage1.aspx y, a continuación, en la barra de menús, elija Ver>código para mostrar el código subyacente a la página de la aplicación.

  2. Reemplace las instrucciones using o Importar (según el lenguaje de computación) en la parte superior de la clase por lo siguiente:

    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. Agregue el código siguiente al 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());
    }
    

    Advertencia

    Asegúrese de reemplazar «TestServer» en el código por el nombre de un servidor válido que ejecuta SharePoint.

Pruebe la página de aplicación

A continuación, determine si la página de la aplicación muestra correctamente los datos de gastos.

Probar la página de aplicación

  1. Elija la tecla F5 para ejecutar e implementar el proyecto en SharePoint.

  2. Elija el botón Inicio y, a continuación, elija el vínculo Documentos compartidos en la barra Inicio rápido para mostrar la lista Documentos compartidos en el sitio de SharePoint.

  3. Para representar informes de gastos para este ejemplo, cargue algunos documentos nuevos en la lista Documentos eligiendo el vínculo Documentos en la pestaña BibliotecaHerramientas de la parte superior de la página y, a continuación, elija el botón Cargar documento en la cinta de herramientas.

  4. Después de cargar algunos documentos, cree una instancia del flujo de trabajo; para ello, elija el vínculo Biblioteca en la pestaña BibliotecaHerramientas de la parte superior de la página y, a continuación, elija el botón Configuración de la biblioteca en la cinta de herramientas.

  5. En la página Configuración de la biblioteca de documentos, elija el vínculo Configuración de flujo de trabajo en la sección Permisos y administración.

  6. En la página Configuración de flujo de trabajo, elija el vínculo Agregar un flujo de trabajo.

  7. En la página Agregar un flujo de trabajo, elija el flujo de trabajo ExpenseReport - Workflow1, escriba un nombre para el flujo de trabajo, como ExpenseTest y, a continuación, elija el botón Siguiente.

    Aparece el formulario Asociación de flujo de trabajo. Úselo para notificar el importe del límite de gastos.

  8. En el formulario Asociación, escriba 1000 en el cuadro Límite de aprobación automática y, a continuación, elija el botón Asociar flujo de trabajo.

  9. Elija el botón Inicio para volver a la página principal de SharePoint.

  10. Elija el vínculo Documentos compartidos en la barra Inicio rápido.

  11. Elija uno de los documentos cargados para mostrar una flecha desplegable, selecciónela y, a continuación, elija el elemento Flujos de trabajo.

  12. Elija la imagen situada junto a ExpenseTest para mostrar el formulario Inicio del flujo de trabajo.

  13. En el cuadro de texto Total de gastos, escriba un valor mayor que 1000 y, a continuación, elija el botón Iniciar flujo de trabajo.

    Cuando un gasto notificado supera el importe del gasto asignado, se agrega una tarea a la lista de tareas. También se agrega una columna denominada ExpenseTest con el valor Completado al elemento de informe de gastos de la lista Documentos compartidos.

  14. Repita los pasos 11 a 13 con otros documentos de la lista Documentos compartidos. (El número exacto de documentos no es importante).

  15. Para mostrar la página de la aplicación de resumen de informes de gastos, abra la siguiente dirección URL en un explorador web: http://SystemName/_layouts/ExpenseReport/ApplicationPage1.aspx.

    En la página de resumen del informe de gastos se enumeran todos los informes de gastos que superaron la cantidad asignada, el importe por el que lo superaron y el importe total de todos los informes.