Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
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.
En la ventana Detalles del método, seleccione el descriptor de tipo del parámetro.
En el menú Ver, haga clic en Ventana Propiedades.
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.
En la ventana Detalles del método, expanda el nodo Descriptores de filtro.
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.
En el menú Ver, haga clic en Ventana Propiedades.
En la ventana Propiedades, seleccione la propiedad Type.
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.
En la ventana Propiedades, seleccione la propiedad Associated Type Descriptors.
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.
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 Functionpublic 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