Comment : ajouter un descripteur de filtre à une méthode de recherche

Les descripteurs de filtre permettent aux consommateurs du modèle de passer des valeurs aux méthodes avant leur exécution. Pour plus d'informations, consultez Conception d'un modèle de connectivité de données métiers.

Il arrive fréquemment que les utilisateurs dans SharePoint souhaitent extraire des instances d'un type de contenu externe qui correspondent à certains critères. Vous pouvez prendre en charge ce scénario en ajoutant un descripteur de filtre à une méthode de recherche.

Pour ajouter un descripteur de filtre à une méthode de recherche

  1. Dans la fenêtre Détails de méthode BDC, développez le nœud d'une méthode de recherche, développez le nœud Paramètres, puis ajoutez un paramètre d'entrée. Pour plus d'informations, consultez Comment : ajouter un paramètre à une méthode.

  2. Dans la fenêtre Détails de méthode, sélectionnez le descripteur de type du paramètre.

  3. Dans le menu Affichage, cliquez sur Fenêtre Propriétés.

  4. Dans la fenêtre Propriétés, affectez à la propriété Type Name un type de données approprié pour le filtre.

    Par exemple, un filtre peut utiliser une date de commande pour limiter le nombre de commandes client retournées par la méthode. Pour prendre en charge ce filtre, la propriété Type Name du descripteur de type doit avoir la valeur System.DateTime.

  5. Dans la fenêtre Détails de méthode, développez le nœud Descripteurs de filtre.

  6. Dans la liste déroulante Ajouter un descripteur de filtre, cliquez sur Créer un descripteur de filtre.

    Un nouveau descripteur de filtre apparaît sous le nœud Descripteurs de filtre.

  7. Dans le menu Affichage, cliquez sur Fenêtre Propriétés.

  8. Dans la fenêtre Propriétés, sélectionnez la propriété Type.

  9. Dans la liste déroulante qui apparaît pour la propriété Type, sélectionnez le modèle de filtrage de votre choix. Pour plus d'informations sur chaque modèle de filtrage, consultez Types of Filters Supported by the BDC (page éventuellement en anglais).

    Par exemple, pour créer un filtre qui utilise une date de commande pour limiter le nombre de commandes client retournées dans une méthode de recherche, sélectionnez Comparaison. Un filtre de comparaison limite les instances retournées par une méthode de recherche à celles respectant une condition spécifique.

  10. Dans la fenêtre Propriétés, sélectionnez la propriété Associated Type Descriptors.

  11. Dans la liste déroulante qui apparaît pour la propriété Associated Type Descriptors, sélectionnez le descripteur de type que vous avez créé précédemment dans cette procédure. Cela lie le filtre au paramètre d'entrée de la méthode de recherche.

  12. Ajoutez du code à la méthode de recherche qui retourne des données. Vous pouvez utiliser le paramètre d'entrée comme condition dans une requête Select.

    L'exemple suivant retourne les commandes client avec la date de commande spécifiée.

    Notes

    Remplacez la valeur du champ ServerName par le nom de votre serveur.

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

Voir aussi

Tâches

Comment : ajouter une méthode de recherche

Comment : ajouter une méthode de recherche spécifique

Comment : ajouter un paramètre à une méthode

Comment : définir le descripteur de type d'un paramètre

Autres ressources

Conception d'un modèle de connectivité de données métiers

Intégration de données métiers dans SharePoint