Partager via


FilterDescriptor

Les filtres sont la manière fondamentale avec laquelle le catalogue de données métiers capture l'entrée utilisateur (ou système) et la sonde par le biais de l'invocation de l'API principale. Les FilterDescriptors décrivent où dans une série complexe de paramètres, une valeur de filtre doit être insérée. Pour ce faire, les TypeDEscriptors représentant les paramètres complexes d'une définition Method sont balisés afin d'indiquer où l'insertion doit avoir lieu. Il est important de remarquer que le serveur principal doit fournir la fonctionnalité de filtrage ; les FilterDescriptors forment simplement un mécanisme permettant de remonter cela à l'utilisateur final. Les objets FilterDescriptor appartiennent aux objets Method. Ils sont par la suite désignés en tant qu'objets TypeDescriptor.

Les utilisateurs peuvent vouloir récupérer les instances d'une entité qui correspondent à certains critères. Par exemple, un utilisateur peut souhaiter afficher les clients dont les noms commencent par « A » ou les commandes effectuées par un certain client. L'API utilisée pour récupérer les clients requiert que cette entrée d'utilisateur soit passée en tant que troisième paramètre Chaîne de l'appel. L'auteur des métadonnées crée un FilterDescriptor d'un type générique et balise le TypeDescriptor racine du troisième paramètre avec ce FilterDescriptor nouvellement créé. La plupart de ces FilterDescriptors peuvent être associés à une seule méthode (API). Les utilisateurs sélectionnent ensuite le filtre de leur choix au moment de l'exécution et spécifient une valeur. Le catalogue de données métiers transfère alors la valeur de ce filtre à la méthode principale en l'insérant exactement là où le serveur principal l'attend et renvoie uniquement les lignes que l'utilisateur souhaite voir.

Par exemple, supposons que la méthode Finder de l'entité Client est définie comme suit :

SELECT * FROM Customers WHERE CustomerID >= lo

Supposons que la valeur de paramètre par défaut de la méthode soit lo = 0. Les métadonnées FilterDescriptor indiquent que si l'utilisateur écrase la valeur lo, il peut limiter l'éventail des instances renvoyées. L'utilisateur, dans ce cas, peut fournir la valeur lo et afficher les résultats spécifiques.

Notes

FilterDescriptor est un objet de métadonnées alors que les filtres sont des objets d'exécution. Les objets FilterDescriptor décrivent les filtres disponibles sur une méthode.

Modèles de filtrage

Les systèmes sectoriels fournissent divers mécanismes de filtrage. Le catalogue de données métiers isole les modèles communs afin de fournir aux utilisateurs la même sémantique de filtrage, indépendamment de la source de données. Le catalogue de données métiers prend en charge les filtres et modèles de filtrage suivants :

  • Wildcard filtre   Limite les instances renvoyées à celles où un champ field like value, où value peut contenir le caractère générique astérisque (*). Les utilisateurs peuvent utiliser ce type de filtre pour présenter des filtres plus conviviaux tels que « commence par » et « contient ».

Notes

Le catalogue de données métiers utilise le caractère générique spécifié dans les métadonnées de l'objet LobSystem à des fins de filtrage.

  • Comparison filtre   Limite les instances renvoyées à celles pour lesquelles SQL prend en charge the condition is met. avec la clause WHERE

  • Filtre Limit    Limite le nombre des instances renvoyées à n. SQL le prend en charge avec la clause SELECT TOP. En utilisant un filtre Limit, vous pouvez éviter les longues attentes, les délais et empêcher les utilisateurs de publier de mauvaises requêtes nécessitant un volume important de données.

  • UserContext   Limite les instances par le contexte de l'utilisateur actif. Ce filtre indique au catalogue de données métiers d'ajouter le domaine/nom d'utilisateur de l'utilisateur Microsoft Windows actif à l'appel de la méthode.

  • Username   Limite les instances par un nom d'utilisateur d'authentification unique (SSO). Ce filtre indique au catalogue de données métiers de transférer le nom d'utilisateur d'authentification unique en tant que paramètre à l'appel de la méthode.

  • Password   Fonctionne avec le filtre Username. Ce filtre indique au catalogue de données métiers de transférer le mot de passe d'authentification unique en tant que paramètre à l'appel de la méthode.

    Notes

    La définition de méthode principale doit prendre en charge les filtres. Alors seulement pouvez-vous, d'une manière contextuelle, utiliser des filtres pour refléter dans l'application frontale les fonctionnalités qui sont disponibles dans le serveur principal. Les métadonnées déclarent simplement quels filtres une méthode prend en charge.

  • UserProfile    Type de filtre simple que vous pouvez spécifier dans la définition FilterDescriptor. Pour utiliser ce filtre, déclarez un filtre de type « UserProfile » et ajoutez une propriété System.String avec le nom « UserProfilePropertyName », dont la valeur est le nom d'une propriété de profil utilisateur. Le catalogue de données métiers recherche le profil de l'utilisateur actif, lit la valeur de la propriété portant ce nom et l'envoie à l'appel principal.

  • SSOTicket   Indique au catalogue de données métiers de transférer le ticket d'authentification unique en tant que paramètre à l'appel de méthode.

  • LastIdSeen   Active la segmentation pour les membres de l'énumération IDEnumerator. Pour les services Web et autres applications principales de non-diffusion, il convient d'utiliser le filtre LastIdSeen dans le membre IDEnumerator pour améliorer les performances, comme illustré dans l'exemple ci-dessous :

    SELECT TOP 100 Id FROM Customers WHERE Id>=@LastIdSeen
    ORDER BY Id
    

Les filtres utilisateur comme Comparison déclarent les entrées que les utilisateurs peuvent écraser, et les filtres système comme UserContext et UserProfile permettent au catalogue de données métiers de définir de manière sécurisée des valeurs comme un jeton utilisateur.

Important

Si un auteur de métadonnées crée des métadonnées incorrectes qui prennent un nom d'utilisateur comme filtre contrôlable par l'utilisateur et renvoient des données personnelles sensibles, un utilisateur peut voir les données d'un autre. Pour éviter ce problème, utilisez UserContextFilter pour transférer le nom d'utilisateur à l'appel de méthode.

Les clients interrogent le référentiel de métadonnées pour déterminer les filtres pris en charge par le système et rendre leur interface utilisateur en conséquence.

Exemple

<FilterDescriptors>
      <FilterDescriptor Type="Wildcard" Name="Name">
         <Properties>
            <Property Name="UsedForDisambiguation" 
               Type="System.Boolean">true</Property>
         </Properties>
      </FilterDescriptor>
   <FilterDescriptor Type="Wildcard" Name="ProductNumber" />
</FilterDescriptors>

Schéma

Enfant Type Se produit Par défaut Limites / Valeurs possibles Description

Type

Attribut (bdc:FilterDescriptorType)

1..1

true

Limit

Comparison

Wildcard

UserContext

Username

Password

LastId

SsoTicket

UserProfile

Spécifie le type de filtre.

Propriétés

Les propriétés que l'objet FilterDescriptor accepte à la fois pour les systèmes de base de données et de services Web sont présentées ci-dessous.

Important

Les propriétés respectent la casse.

Propriété Type Obligatoire Valeur par défaut Limites / Valeurs possibles Commentaires

UsedForDisambiguation

System.Boolean

Non

false

true

false

Si true, ce filtre est utilisé dans le sélecteur de données métiers pour générer la liste des correspondances possibles.

CaseSensitive

System.Boolean

Non

false

true

false

Si true, les composants WebPart des données métiers et le sélecteur de données métiers indiquent à l'utilisateur que ce filtre respecte la casse.

IsDefault

System.Boolean

Non

false

true

false

Si true, ce filtre est sélectionné par défaut dans le sélecteur de données métiers.

Voir aussi

Autres ressources

Exemple SQL Server 2000 AdventureWorks
Procédure : utiliser le modèle objet Runtime
Procédure : mise en route de l'utilisation du modèle objet Administration
Forum aux questions : catalogue de données métiers
Catalogue de données métiers : glossaire