Cómo: Agregar un descriptor de filtro para un método Finder

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

Es muy habitual que los usuarios de SharePoint deseen recuperar las instancias de un tipo de contenido externo que coincidan con ciertos criterios. Puede admitir este escenario agregando un descriptor de filtro a un método Finder.

Para agregar 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, a continuación, agregue un parámetro de entrada. Para obtener más información, vea Cómo: Agregar un parámetro a un método.

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

  3. En el menú Ver, haga clic en Ventana Propiedades.

  4. En la ventana Propiedades, establezca la propiedad Type Name en un tipo de datos que sea adecuado para el filtro.

    Un filtro puede usar, por ejemplo, una fecha de pedido para limitar el número de pedidos de venta devueltos por el método. Para admitir ese filtro, la propiedad Type Name del descriptor de tipo debe estar establecida en System.DateTime.

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

  6. En la lista desplegable Agregar un descriptor de filtro, haga clic en Crear descriptor de filtro.

    Bajo el nodo Descriptores de filtro, aparece un nuevo descriptor de filtro.

  7. En el menú Ver, haga clic en Ventana Propiedades.

  8. En la ventana Propiedades, seleccione la propiedad Type.

  9. En la lista desplegable que aparece en la propiedad Type, seleccione el modelo de filtrado que desee. Para obtener más información sobre cada uno de los modelos de filtrado, vea Types of Filters Supported by the BDC.

    Por ejemplo, si desea crear un filtro que use una fecha de pedido que limite el número de pedidos de ventas devueltos en un método Finder, seleccione Comparación. Un filtro de comparación limita las instancias devueltas por un método Finder a las instancias que cumplen una determinada condición.

  10. En la ventana Propiedades, seleccione la propiedad Associated Type Descriptors.

  11. En la lista desplegable que aparece en la propiedad Associated Type Descriptors, seleccione el descriptor de tipo que creó anteriormente en este procedimiento. De este modo, relacionará el filtro con el parámetro de entrada del método Finder.

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

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

    Nota

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

    Public Shared Function ReadList(ByVal OrderDateParam As DateTime) As IEnumerable(Of SalesOrderHeader)
        Const ServerName As String = "MySQLServerName"
        Dim dataContext As AdventureWorksDataContext = _
            New AdventureWorksDataContext("Data Source=" & ServerName & _
                ";Initial Catalog=AdventureWorks;Integrated Security=True")
    
        Dim NoValuePassedIn As DateTime = Convert.ToDateTime("1/1/1900 12:00:00 AM")
        Dim DefaultDateTime As DateTime = Convert.ToDateTime("2001-09-01 00:00:00.000")
    
        ' If the user does not provide a value for the filter.
        If OrderDateParam = NoValuePassedIn Then
            ' Use a default date time value.
            OrderDateParam = DefaultDateTime
        End If
    
        Dim SalesOrderHeader As IEnumerable(Of SalesOrderHeader) = _
            From SalesOrderHeaders In dataContext.SalesOrderHeaders _
            Where SalesOrderHeaders.OrderDate = OrderDateParam _
            Select SalesOrderHeaders
        Return SalesOrderHeader
    End Function
    
    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;
    }
    

Vea también

Tareas

Cómo: Agregar un método Finder

Cómo: Agregar un método Finder específico

Cómo: Agregar un parámetro a un método

Cómo: Definir el descriptor de tipo de un parámetro

Otros recursos

Diseñar un modelo de conectividad a datos profesionales

Integrar Datos profesionales en SharePoint