Share via


Forum aux questions : catalogue de données métiers

Cette rubrique contient les réponses aux questions les plus fréquemment posées lorsque vous utilisez le catalogue de données métiers et les fonctionnalités de données métiers. Elle n'est en aucun cas exhaustive et sera régulièrement mise à jour avec vos questions.

Question : J'ai ajouté des métadonnées, mais impossible de voir les entités dans le Sélecteur d'entités ?

Question : Où se situe le fichier BdcMetadata.XSD ?

Question : Qu'est-ce que le « Registre d'application » dans les modèles objets du catalogue de données métiers ?

Question : Comment obtenir des résultats limités de sécurité via l'invocation d'une méthode principale ?

Question : Dans quels scénarios puis-je octroyer l'autorisation Afficher à une entité sans octroyer d'autorisations à l'application ?

Question : Puis-je utiliser des GUID dans les métadonnées ?

Question : Où se trouvent les journaux du serveur ? Comment les utiliser pour corriger les erreurs ?

Question : Comment afficher un champ de base de données de type BLOB qui stocke des données image via le catalogue de données métiers ?

Question : est-il possible d'avoir plusieurs connexions à une base de données ou à un service Web dans un seul fichier de définition d'application ? Est-il possible d'avoir des associations entre des entités à l'intérieur de fichiers de définition d'application différents ?

Question : comment faire pour que la boîte de dialogue Sélecteur de données métiers affiche plusieurs champs ?

Question : J'ai ajouté des métadonnées, mais impossible de voir les entités dans le Sélecteur d'entités ?

Les listes et composants WebPart de données métiers reposent sur des autorisations du catalogue de données métiers. L'autorisation minimale requise sur une entité pour l'utiliser dans des clients est l'autorisation Sélectionnable dans les clients.

Remarque   Comme le catalogue de données métiers est un service partagé entre plusieurs collections de sites, les paramètres de sécurité de niveau collection ne lui sont pas applicables. Par conséquent, les paramètres de site ont peu de relations avec les autorisations du catalogue de données métiers.

Question : Où se situe le fichier BdcMetadata.XSD ?

Le catalogue de données métiers fournit un fichier de définition de schéma (XSD) qui définit le schéma autorisé dans le fichier XML et les métadonnées d'une application d'entreprise. Il est important que les documents XML respectent ce schéma.

Le fichier BdcMetadata.XSD se situe dans le répertoire \Bin de votre installation de Microsoft Office SharePoint Server 2007, généralement dans <Racine>\Program Files\Microsoft Office Server\12.0\Bin.

Lorsque vous créez des métadonnées dans Microsoft Visual Studio 2005, copiez le fichier .xsd dans le dossier de travail et définissez l'attribut SchemaReference du fichier XML de façon à ce qu'il pointe vers le fichier .xsd. Ce faisant, vous bénéficiez de la fonction IntelliSense de Visual Studio, qui simplifie grandement le processus de modification.

Question : Qu'est-ce que le « Registre d'application » dans les modèles objets du catalogue de données métiers ?

Le nom d'origine du catalogue de données métiers était « Registre d'application ». C'est pourquoi ce nom apparaît dans les noms d'espaces de noms et le modèle objet. Lorsque vous le voyez dans ces contextes, vous pouvez supposer qu'il s'agit du catalogue de données métiers.

Question : Comment obtenir des résultats limités de sécurité via l'invocation d'une méthode principale ?

Voir Filtrage de sécurité du catalogue de données métiers et AccessChecker, exemples pour plus d'informations.

Le filtre UserContextlimite les instances renvoyées par une méthode au contexte actif de l'utilisateur. 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.

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 le filtre UserContext pour transférer le nom d'utilisateur à l'appel de méthode.

Pour plus d'informations, voir FilterDescriptor.

Question : Dans quels scénarios puis-je octroyer l'autorisation Afficher à une entité sans octroyer d'autorisations à l'application ?

Il existe des scénarios valides dans lesquels vous pouvez souhaiter octroyer des autorisations Afficher à un utilisateur sur une entité sans pour autant lui octroyer d'autorisations sur l'application. Prenez le cas de l'administration déléguée. Le catalogue de données métiers permet à un administrateur de déléguer l'administration de n'importe quel objet à un autre utilisateur. Il (domaine\admin) peut par exemple autoriser domaine\xyz à administrer l'entité ABC. Pour ce faire, il donne à domaine\xyz l'autorisation Définir sur l'entité ABC. Domaine\xyz peut maintenant s'octroyer l'autorisation Afficher, qui lui permet de consulter les données (instances d'entité) de cette entité. Domaine\xyz n'a besoin d'aucune autorisation sur les autres objets (comme l'application ou d'autres entités de l'application).

L'autorisation Afficher contrôle l'aptitude de l'utilisateur à afficher les données associées à l'entité, et non pas l'aptitude de l'utilisateur à afficher tous les objets de métadonnées à tout moment. Les applications et entités sont affichables dans l'interface utilisateur par défaut. L'autorisation Afficher revient à posséder l'autorisation Exécuter pour exécuter des méthodes sur une entité ou une application dans son ensemble.

Question : Puis-je utiliser des GUID dans les métadonnées ?

Les GUID sont des primitives de première classe du catalogue de données métiers. Vous pouvez les utiliser en tant que Properties, DefaultValues et Identifiers.

Question : Où se trouvent les journaux du serveur ? Comment les utiliser pour corriger les erreurs ?

Si vous obtenez une erreur en utilisant un composant WebPart ou une colonne de données métiers, ou encore le modèle objet, activez la consignation du diagnostic dans l'Administration centrale et vérifiez l'Observateur d'événements Windows ou les fichiers journaux du serveur ULS (Unified Logging Service). Le catalogue de données métiers enregistre les messages et les exceptions d'exécution dans le journal des événements et dans les fichiers journaux ULS.

Les fichiers journaux ULS contiennent une copie des informations du journal des événements et la trace de la pile. Par conséquent, les fichiers d'événements peuvent vous sembler plus faciles à utiliser et à comprendre que les fichiers journaux ULS. Cependant, si vous avez besoin d'informations détaillées pour corriger l'erreur, les fichiers journaux ULS sont très pratiques.

Le catalogue de données métiers crée un fichier journal ULS toutes les 30 minutes. Ils sont stockés dans <drive>\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS. Ils contiennent des informations utiles sur toutes les exceptions d'exécution et peuvent vous aider à identifier les problèmes. Dans ces fichiers, les messages sont classés par catégorie et contiennent les champs suivants :

  • Timestamp

  • PID : les erreurs du client Web apparaissent sous le PID w3wp.exe. Les erreurs de recherche et de profil utilisateur apparaissent sous le PID mssdmin.exe.

  • TID

  • Product

  • Category : le champ Category est Business Data pour les erreurs liées au catalogue de données métiers.

  • EventID

  • Level

  • Message

  • Correlation

Une méthode simple pour rechercher les messages liés au catalogue de données métiers consiste à rechercher « metadataexception », « ApplicationRegistry » ou « Exception » dans le champ Message et de regarder dans la catégorie Données métiers.

Voir Avertissements et messages d'erreur pour obtenir une liste des messages d'erreur courants et leurs solutions.

Question : Comment afficher un champ de base de données de type BLOB qui stocke des données image via le catalogue de données métiers ?

Cette fonctionnalité n'est pas prise en charge. Dans SharePoint Server 2007, le catalogue de données métiers ne prend pas en charge les bases de données de type BLOB.

Question : est-il possible d'avoir plusieurs connexions à une base de données ou à un service Web dans un seul fichier de définition d'application ? Est-il possible d'avoir des associations entre des entités à l'intérieur de fichiers de définition d'application différents ?

En aucun cas. Un seul fichier de définition d'application ne peut se connecter qu'à une base de données ou un service Web. De plus, des objets SourceEntity et DestinationEntity d'une association doivent exister dans le même objet LobSystem.

Question : comment faire pour que la boîte de dialogue Sélecteur de données métiers affiche plusieurs champs ?

Utilisez la propriété ShowInPicker de l'élément TypeDescriptor dans les champs requis du paramètre de retour.

ShowInPicker

System.Boolean

Non

false

true

false

Si cette propriété a la valeur True dans un champ d'un paramètre de retour, ce champ s'affiche dans le Sélecteur de données métiers. Le catalogue de données métiers affiche tous les champs dont la propriété « ShowInPicker » est définie, ainsi que le champ de titre dans le Sélecteur de données métiers. S'il n'y en a pas, il affiche uniquement le champ identificateur.

Voici un exemple :

         <Parameter Direction="Return" Name="Employees">
              <TypeDescriptor TypeName="System.Data.SqlClient.SqlDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="EmployeeDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="EmployeeDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierName="EmployeeId" Name="EmployeeId">
                        <Properties>
                          <Property Name="ShowInPicker" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EmployeeFirstName">
                        <Properties>
                          <Property Name="ShowInPicker" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EmployeeLastName">
                        <Properties>
                          <Property Name="ShowInPicker" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Double" Name="Telephone">
                        <Properties>
                          <Property Name="HideInItemWebPartByDefault" Type="System.Boolean">true</Property>
                          <Property Name="HideInListWebPartByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>