Partager via


Étape 2 : définir des entités, des méthodes et des filtres

Une application métier inscrite dans le catalogue de données métiers permet de définir les entités, les méthodes qui peuvent être exécutées sur ces entités et des filtres que les utilisateurs peuvent appliquer. Une entité est un objet métier, tel qu'un Client ou un Produit dans une application métier. Les méthodes sont les opérations associées à une entité et enfin, les filtres permettent de limiter les instances des entités renvoyées par les méthodes.

Dans le catalogue de données métiers, une entité appartient à un seul système métier et doit posséder un nom unique. Les entités contiennent des identificateurs, des méthodes, des filtres et des actions.

Au cours de cette étape, vous allez définir une entité nommée Products (Produits) dans la base de données AdventureWorks2000, puis définir la méthode GetProducts pour générer une liste de produits. Vous allez également ajouter des caractères génériques et des filtres de comparaison pour permettre aux utilisateurs d'appliquer des filtres sur la base des ID, des noms et des numéros de produit.

Conditions préalables requises

Étape 1 : se connecter à la base de données AdventureWorks2000

Définir une entité, une méthode et des filtres

  1. Ouvrez le fichier XML de métadonnées AdventureWorks2000.XML.

  2. Remplacez la section <!--Insert Entity XML Here --> par le code XML qui suit :

    <Entity EstimatedInstanceCount="10000" Name="Product">
          <!-- EstimatedInstanceCount is an optional attribute-->
          <Properties>
            <Property Name="Title" Type="System.String">Name</Property>
          </Properties>
          <Identifiers>
            <Identifier Name="ProductID" TypeName="System.Int32" />
          </Identifiers>
          <Methods>
            <!-- Defines a method that brings back Product data from the 
            back-end database.-->
            <Method Name="GetProducts">
              <Properties>
                <Property Name="RdbCommandText" Type="System.String">
                  SELECT ProductID, Name, ProductNumber, ListPrice FROM Product WHERE (ProductID &gt;= @MinProductID) AND (ProductID &lt;= @MaxProductID) AND (Name LIKE @Name) AND (ProductNumber LIKE @ProductNumber)
                </Property>
                <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
                <!-- For database systems, can be Text, StoredProcedure, 
                or TableDirect. -->
              </Properties>
              <FilterDescriptors>
                <!-- Define the filters supported by the back-end method 
               (or sql query) here. -->
                <FilterDescriptor Type="Comparison" Name="ID" >
                  <Properties>
                    <Property Name="Comparator" Type="System.String">Equals</Property>
                  </Properties>
                </FilterDescriptor>
                <FilterDescriptor Type="Wildcard" Name="Name">
                  <Properties>
                    <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
                  </Properties>
                </FilterDescriptor>
                <FilterDescriptor Type="Wildcard" Name="ProductNumber" />
              </FilterDescriptors>
              <Parameters>
                <Parameter Direction="In" Name="@MinProductID">
                  <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" AssociatedFilter="ID" Name="MinProductID">
                    <DefaultValues>
                      <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.Int32">0</DefaultValue>
                    </DefaultValues>
                  </TypeDescriptor>
                </Parameter>
                <Parameter Direction="In" Name="@MaxProductID">
                  <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" AssociatedFilter="ID" Name="MaxProductID">
                    <DefaultValues>
                      <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.Int32">99999999</DefaultValue>
                    </DefaultValues>
                  </TypeDescriptor>
                </Parameter>
                <Parameter Direction="In" Name="@Name">
                  <TypeDescriptor TypeName="System.String" AssociatedFilter="Name" Name="Name">
                    <DefaultValues>
                      <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.String">%</DefaultValue>
                      <DefaultValue MethodInstanceName="ProductSpecificFinderInstance" Type="System.String">%</DefaultValue>
                    </DefaultValues>
                  </TypeDescriptor>
                </Parameter>
                <Parameter Direction="In" Name="@ProductNumber">
                  <TypeDescriptor TypeName="System.String" AssociatedFilter="ProductNumber" Name="ProductNumber">
                    <DefaultValues>
                      <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.String">%</DefaultValue>
                      <DefaultValue MethodInstanceName="ProductSpecificFinderInstance" Type="System.String">%</DefaultValue>
                    </DefaultValues>
                  </TypeDescriptor>
                </Parameter>
                <Parameter Direction="Return" Name="Products">
                  <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataReader">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductDataRecord">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" Name="ProductID">
                            <LocalizedDisplayNames>
                              <LocalizedDisplayName LCID="1033">ID</LocalizedDisplayName>
                            </LocalizedDisplayNames>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="Name" >
                            <!-- Do not use the AssociatedFilter 
                            attribute in return parameters.-->
                            <LocalizedDisplayNames>
                              <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                            </LocalizedDisplayNames>
                            <Properties>
                              <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="ProductNumber">
                            <LocalizedDisplayNames>
                              <LocalizedDisplayName LCID="1033">Product Number</LocalizedDisplayName>
                            </LocalizedDisplayNames>
                            <Properties>
                              <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.Decimal" Name="ListPrice">
                            <LocalizedDisplayNames>
                              <LocalizedDisplayName LCID="1033">List Price</LocalizedDisplayName>
                            </LocalizedDisplayNames>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Name="ProductFinderInstance" Type="Finder" ReturnParameterName="Products" />
                <MethodInstance Name="ProductSpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="Products" />
              </MethodInstances>
            </Method>
          </Methods>
          <!-- Enter your Action XML here -->
        </Entity>
    
  3. Enregistrez le fichier XML.

  4. Ajoutez la définition d'application dans le catalogue de données métiers. Pour plus d'informations, voir Procédure : ajouter une définition d'application au catalogue de données métiers.

  5. Testez les métadonnées en créant un composant WebPart Liste de données métiers, Détails, une colonne de données métiers Type, Produit ou une combinaison de tout cela. Pour plus d'informations, voir Test des métadonnées.

Étapes suivantes

Étape 3 (facultatif) : définir les actions

Voir aussi

Autres ressources

Catalogue de données métiers : modèle de métadonnées
Exemple SQL Server 2000 AdventureWorks