Procédure : importer une définition d'application depuis XML

Le catalogue de données métiers prend désormais en charge deux types de fichiers de définition d'application XML : fichier modèle et fichier de ressources. Un fichier modèle de définition d'application contient les métadonnées XML de base pour un système. Un fichier de ressources permet d'importer ou d'exporter uniquement les propriétés, les autorisations et les noms localisés, quelle qu'en soit la combinaison. Les types de fichiers de ressources sont les suivants :

  • LocalizedNames   Contient les noms localisés des objets de métadonnées avec des paramètres régionaux spécifiques. Lorsque vous importez ce fichier, les informations correspondantes sont fusionnées avec les métadonnées existantes dans le référentiel de métadonnées. Si un nom localisé existe déjà pour les paramètres régionaux, il est remplacé par les informations du fichier LocalizedNames.

  • Properties   Contient les propriétés des objets de métadonnées. Lorsque vous importez ce fichier, les informations correspondantes sont fusionnées avec les métadonnées existantes dans le référentiel de métadonnées. Si une propriété existe déjà, sa valeur est remplacée par les informations du fichier Properties.

  • Permissions   Contient les listes de contrôle d'accès pour les objets de métadonnées. Lorsque vous importez ce fichier, les informations correspondantes sont fusionnées avec les métadonnées existantes dans le référentiel de métadonnées. Cependant, si une entrée de contrôle d'accès existe déjà pour un objet, sa valeur est remplacée par les informations issues du fichier Permissions. Par exemple, si une définition d'application existante contient uniquement l'utilisateur A qui a accès à l'entité A et que vous importez un fichier Permissions qui inclut uniquement l'utilisateur B qui a accès à l'entité A, l'ancienne liste de contrôle d'accès pour l'entité A sera supprimée et une nouvelle liste de contrôle d'accès sera créée pour l'utilisateur B.

Si vous importez un fichier modèle pour une application, le catalogue de données métiers remplacera les métadonnées existantes pour cette application. Cependant, si vous importez des fichiers de ressources contenant des autorisations, des propriétés ou des noms localisés, qu'elle qu'en soit la combinaison, le catalogue de données métiers effectue une opération de fusion. Il fusionne simplement le contenu du fichier de ressources avec les métadonnées existantes pour cette application.

Cela est extrêmement utile dans certaines situations. Pour illustrer ce point, supposez que vous avez déjà importé un fichier de définition d'application pour un système ERP (Enterprise Resource Planning) et envisagez trois situations :

  • Une modification est apportée aux informations de connexion au serveur frontal. Pour mettre à jour les informations de connexion, vous pouvez créer un fichier de ressources Properties simple qui inclut uniquement les propriétés modifiées dans l'objet LobSystemInstance, puis l'importer. Le catalogue de données métiers fusionnera ces informations avec les propriétés LobSystemInstance existantes et si une propriété existe déjà, elle sera remplacée par les informations du fichier de ressources.

  • Votre société s'est diversifiée en pénétrant un nouveau marché et votre application doit maintenant prendre en charge une nouvelle langue localisée. Dans ce cas, vous créez un fichier de ressources LocalizedNames qui contient uniquement les noms localisés pour cette nouvelle langue, puis vous l'importez. Le catalogue de données métiers fusionne ensuite ces informations avec les métadonnées existantes, ce qui résout facilement ce problème.

  • Un franchisé doit utiliser votre application dans son environnement. Dans ce cas, il crée un fichier de ressources Permissions qui contient uniquement les listes de contrôle d'accès pour les utilisateurs dans son établissement, puis il l'importe. le catalogue de données métiers remplace les listes de contrôle d'accès par les nouvelles informations, ce qui résout ce problème.

Il est préférable d'importer un nouveau fichier de ressources plutôt que de mettre à jour le fichier modèle. Si vous mettez à jour le fichier modèle en ajoutant les propriétés ou les noms localisés, le catalogue de données métiers supprime les métadonnées existantes et les remplace par les nouvelles informations. Cela n'est pas toujours souhaitable et peut impliquer des tests et des efforts supplémentaires. Par exemple, si vous mettez à jour le fichier modèle, le catalogue de données métiers supprime tous les objets de métadonnées et leurs ID ce qui, par conséquent, nécessite une analyse complète des métadonnées pour la recherche.

Important

Un seul fichier de définition d'application peut contenir toute combinaison de fichiers modèle et de ressources. L'Administration centrale de SharePoint prend en charge cette fonctionnalité dans l'interface utilisateur d'importation et d'exportation et le modèle objet la prend en charge en utilisant les opérateurs de bits OR (|).

Vous pouvez utiliser le modèle objet d'administration pour importer des métadonnées à partir de fichiers XML. L'exemple de code suivant montre comment utiliser la méthode ImportPackage de l'objet LobSystem afin d'importer des métadonnées.

Notes

Vous pouvez utiliser l'opérateur de bits OR ( | ) pour passer plusieurs valeurs PackageContents par exportation et importation.

Exemple

L'exemple de code suivant montre comment utiliser la méthode ImportPackage de l'objet LOBSystem afin d'importer des métadonnées pour un système.

Prerequisites

  • Assurez-vous qu'un fournisseur de services partagés a déjà été créé.

  • Procurez-vous le fichier AdventureWorks2000.XML sur le site Web du Centre de téléchargement MSDN.

  • Remplacez le nom du serveur SQL dans le fichier XML et l'emplacement du fichier XML dans l'exemple de code par les valeurs réelles.

  • Remplacez la valeur de constante EnterYourSSPNameHere dans le code par le nom de votre fournisseur de ressources partagées.

  • Project References

Ajoutez les références de projet suivantes dans votre projet de code d'application de console avant d'exécuter cet exemple :

  • Microsoft.SharePoint

  • Microsoft.SharePoint.Portal

  • Microsoft.Office.Server

  • System.XML

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;

namespace Microsoft.SDK.SharePointServer.Samples
{
    class GetStartedAndCreateSystem
    {
        const string yourSSPName ="EnterYourSSPNameHere";
        const string XMLFileLocation = "EnterXMLFileLocationHere";
        
        static void Main(string[] args)
        {
            SetupBDC();
            ImportLobSystemFromXML();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        public static void ImportLobSystemFromXML()
        {
            if (File.Exists(XMLFileLocation))
            {
                FileStream xmlStream = new FileStream(XMLFileLocation, FileMode.Open, FileAccess.Read);
                ParseContext parseContext = new ParseContext();
                ApplicationRegistry.Instance.ImportPackage(xmlStream, parseContext, PackageContents.Model | PackageContents.Properties);
            }
            else
            {
                throw new ArgumentException(string.Format("Specified path is invalid [{0}]", XMLFileLocation));
            }
        }
      }
}

Voir aussi

Autres ressources

Catalogue de données métiers : modèle de métadonnées