Adición de un descriptor de filtro a un método Finder

Los descriptores de filtro permiten a los consumidores del modelo pasar valores a métodos antes de ejecutarlos. Para obtener más información, vea Diseño de un modelo de conectividad a datos profesionales.

Un escenario común es que los usuarios de SharePoint quieran recuperar instancias de un tipo de contenido externo que coincidan con algunos criterios. Para permitir este escenario, agregue un descriptor de filtro a un método Finder.

Adición de un descriptor de filtro a un método Finder

  1. En la ventana Detalles del método de BDC, expanda el nodo de un método Finder, expanda el nodo Parámetros y agregue un parámetro de entrada. Para más información, consulte Adición de un parámetro a un método.

  2. En la ventana Detalles del método, elija el descriptor de tipo del parámetro.

  3. En la barra de menús, elija Ver>ventana Propiedades.

  4. En la ventana Propiedades, establezca la propiedad Nombre del tipo en un tipo de datos adecuado para el filtro.

    Por ejemplo, un filtro podría usar una fecha de pedido para limitar el número de pedidos de ventas devueltos por el método. Para permitir ese filtro, la propiedad Nombre del tipo del descriptor de tipo debe establecerse en System.DateTime.

  5. En la ventana Detalles del método, expanda el nodo Descriptores de filtro.

  6. En la lista Agregar un descriptor de filtro, elija Crear descriptor de filtro.

    Aparece un nuevo descriptor de filtro debajo del nodo Descriptores de filtro.

  7. En la barra de menús, elija Ver>ventana Propiedades.

  8. En la ventana Propiedades, elija la propiedad Tipo.

  9. En la lista que aparece para la propiedad Tipo, elija el patrón de filtrado que desee.

    Por ejemplo, para crear un filtro que use una fecha de pedido para limitar el número de pedidos de ventas devueltos en un método Finder, elija Comparación. Un filtro de comparación garantiza que un método Finder devuelva solo instancias que cumplan una condición específica. Para más información sobre cada patrón de filtrado, consulte Tipos de filtros admitidos por el BDC.

  10. En la ventana Propiedades, elija la propiedad Descriptores de tipo asociados.

  11. En la lista que aparece para la propiedad Descriptores de tipo asociados, elija el descriptor de tipo que creó anteriormente en este procedimiento. De esta forma, se relaciona el filtro con el parámetro de entrada del método Finder.

  12. Agregue código al método Finder que devuelve datos. Puede usar el parámetro de entrada como condición en una consulta de selección.

    En el ejemplo siguiente se devuelven pedidos de ventas que tienen la fecha de pedido especificada.

    Nota

    Reemplace el valor del campo ServerName por el nombre del servidor.

    public static IEnumerable<SalesOrderHeader> ReadList(DateTime OrderDateParam)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        DateTime NoValuePassedIn = Convert.ToDateTime("1/1/1900 12:00:00 AM");
        DateTime DefaultDateTime = Convert.ToDateTime("2001-09-01 00:00:00.000");
    
        // If the user does not provide a value for the filter.
        if (OrderDateParam == NoValuePassedIn)
        {
            // Use a default date time value.
            OrderDateParam = DefaultDateTime;
        }
    
        IEnumerable<SalesOrderHeader> SalesOrderHeader =
            from salesOrderHeaders in dataContext.SalesOrderHeaders
            where salesOrderHeaders.OrderDate == OrderDateParam
            select salesOrderHeaders;
        return SalesOrderHeader;
    }