Compartir a través de


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 el Detalles del método ventana, elija el descriptor de tipos del parámetro.

  3. En la barra de menús, seleccione vista, Ventana de 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 Agregar un Descriptor de filtro , elija Crear Descriptor de filtro.

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

  7. En la barra de menús, seleccione vista, Ventana de propiedades.

  8. En el Propiedades ventana, elija la tipo de propiedad.

  9. En la lista que aparece para el tipo de propiedad, seleccione el modelo de filtro que desea.

    Por ejemplo, para crear un filtro que utiliza una fecha de pedido para limitar el número de pedidos de ventas devueltas en un método de Finder, seleccione comparación.Un filtro de comparación asegura que un método buscador devuelve sólo las instancias que cumplen una condición específica.Para obtener más información sobre cada uno de los modelos de filtrado, vea Types of Filters Supported by the BDC.

  10. En el Propiedades ventana, elija la Asociados descriptores de tipo propiedad.

  11. En la lista que aparece para el Asociados descriptores de tipo propiedad, seleccione el descriptor de tipos 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