Partager via


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 Détails de la méthode fenêtre, cliquez sur le descripteur de type du paramètre.

  3. Dans la barre de menu, choisissez mode, 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 Ajouter un descripteur de filtre , choisissez Créer un descripteur de filtre.

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

  7. Dans la barre de menu, choisissez mode, Fenêtre Propriétés.

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

  9. Dans la liste qui s'affiche pour la Type propriété, choisissez le motif de filtrage que vous souhaitez.

    Par exemple, pour créer un filtre qui utilise une date de commande pour limiter le nombre de commandes renvoyée dans une méthode Finder, choisissez comparaison.Un filtre de comparaison garantit que la méthode de recherche retourne uniquement les instances qui satisfont à une condition spécifique.Pour plus d'informations sur chaque modèle de filtrage, consultez Types of Filters Supported by the BDC (page éventuellement en anglais).

  10. Dans la Propriétés fenêtre, choisissez la Associés À des descripteurs de Type propriété.

  11. Dans la liste qui s'affiche pour la Associés À des descripteurs de Type propriété, cliquez sur 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.

    [!REMARQUE]

    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