Partager via


Création et modification d'objets (XMLA)

Les objets principaux peuvent être créés, modifiés et supprimés de manière indépendante. Les objets principaux se composent notamment des objets suivants :

  • Serveurs

  • Bases de données

  • Dimensions

  • Cubes

  • les groupes de mesures ;

  • Partitions

  • Perspectives

  • Modèles d'exploration de données

  • Rôles

  • Commandes associées à un serveur ou à une base de données

  • Sources de données

Vous utilisez la commande Create pour créer un objet majeur sur un instance de Microsoft SQL Server Analysis Services, et la commande Alter pour modifier un objet majeur existant sur un instance. Les deux commandes sont exécutées à l’aide de la méthode Execute .

Création d'objets

Lorsque vous créez des objets à l’aide de la Create méthode, vous devez d’abord identifier l’objet parent qui contient l’objet Analysis Services à créer. Vous identifiez l’objet parent en fournissant une référence d’objet dans la propriété ParentObject de la Create commande . Chaque référence d'objet contient les identificateurs d'objet nécessaires pour identifier de manière unique l'objet parent pour la commande Create. Pour plus d’informations sur les références d’objets, consultez Définition et identification d’objets (XMLA).

Par exemple, vous devez fournir une référence d'objet à un cube pour créer un groupe de mesures pour le cube. La référence d'objet pour le cube dans la propriété ParentObject contient à la fois un identificateur de base de données et un identificateur de cube, car le même identificateur de cube peut très bien être utilisé dans une autre base de données.

L’élément ObjectDefinition contient des éléments ASSL (Analysis Services Scripting Language) qui définissent l’objet principal à créer. Pour plus d’informations sur ASSL, consultez Développement avec le langage de script Analysis Services (ASSL).

Si vous définissez l'attribut AllowOverwrite de la commande Create à true, vous pouvez remplacer un objet principal existant associé à l'identificateur spécifié. Sinon, une erreur se produit si un objet principal associé à l'identificateur spécifié existe déjà dans l'objet parent.

Pour plus d’informations sur la Create commande, consultez Créer un élément (XMLA).

Création d'objets de session

Les objets de session sont des objets temporaires disponibles uniquement pour la session explicite ou implicite utilisée par une application cliente et qui sont supprimés à la fin de la session. Vous pouvez créer des objets de session en définissant l’attribut Scope de la commande sur CreateSession.

Notes

Lorsque vous utilisez le paramètre Session , l’élément ObjectDefinition peut uniquement contenir des éléments ASSL Dimension, Cube ou MiningModel .

Modification d'objets

Lorsque vous modifiez des objets à l’aide de la Alter méthode, vous devez d’abord identifier l’objet à modifier en fournissant une référence d’objet dans la propriété Object de la Alter commande. Chaque référence d'objet contient les identificateurs d'objet nécessaires pour identifier de manière unique l'objet pour la commande Alter. Pour plus d’informations sur les références d’objets, consultez Définition et identification d’objets (XMLA).

Par exemple, vous devez fournir une référence d'objet à un cube pour modifier la structure de ce dernier. La référence d'objet pour le cube dans la propriété Object contient à la fois un identificateur de base de données et un identificateur de cube, car le même identificateur de cube peut très bien être utilisé dans une autre base de données.

L'élément ObjectDefinition contient des éléments ASSL qui définissent l'objet principal à modifier. Pour plus d’informations sur ASSL, consultez Développement avec le langage de script Analysis Services (ASSL).

Si vous définissez l'attribut AllowCreate de la commande Alter à true, vous pouvez créer l'objet principal spécifié si l'objet n'existe pas. Sinon, une erreur se produit si un objet principal spécifié n'existe pas déjà.

Utilisation de l'attribut ObjectExpansion

Si vous modifiez uniquement les propriétés de l’objet principal et que vous ne redéfinissez pas les objets mineurs contenus par l’objet principal, vous pouvez définir l’attribut ObjectExpansion de la Alter commande sur ObjectProperties. La propriété ObjectDefinition ne doit donc contenir que les éléments relatifs aux propriétés de l'objet principal, et la commande Alter laisse les objets secondaires associés à l'objet principal inchangés.

Pour redéfinir des objets mineurs pour un objet majeur, vous devez définir l’attribut ObjectExpansionsur ExpandFull et la définition de l’objet doit inclure tous les objets mineurs contenus par l’objet principal. Si la propriété ObjectDefinition de la commande Alter n'inclut pas explicitement un objet secondaire contenu dans l'objet principal, cet objet secondaire est supprimé.

Modification d'objets de session

Pour modifier les objets de session créés par la Create commande, définissez l’attribut Scope de la commande sur AlterSession.

Notes

Lorsque vous utilisez le paramètre Session , l’élément ObjectDefinition peut uniquement contenir des éléments ASSL Dimension, Cube ou MiningModel .

Création ou modification d'objets subordonnés

Bien qu'une commande Create ou Alter ne crée ou ne modifie qu'un seul objet principal de niveau supérieur, l'objet principal ainsi créé ou modifié peut contenir des définitions dans la propriété ObjectDefinition englobante pour les autres objets principaux ou secondaires qui lui sont subordonnés. Par exemple, si vous définissez un cube, vous spécifiez la base de données parente dans ParentObject. Ensuite, dans la propriété de la définition du cube ObjectDefinition, vous pouvez définir des groupes de mesures pour le cube et, dans chaque groupe de mesures, vous pouvez définir des partitions. Un objet secondaire ne peut être défini que sous l'objet principal qui le contient. Pour plus d’informations sur les objets majeurs et mineurs, consultez Objets de base de données (Analysis Services - Données multidimensionnelles).

Exemples

Description

L’exemple suivant crée une source de données relationnelle qui fait référence à l’exemple de base de données Multidimensionnelle 2012 Adventure Works DW SQL Server.

Code

<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
    <ParentObject>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
    </ParentObject>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ImpersonationInfo>  
                <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>  
            </ImpersonationInfo>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT0S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Create>  

Description

L'exemple suivant modifie la source de données relationnelle créée dans l'exemple précédent pour définir le délai d'expiration de requête de la source de données à 30 secondes.

Code

<Alter ObjectExpansion="ObjectProperties" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>  

Commentaires

L’attribut ObjectExpansion de la Alter commande a été défini sur ObjectProperties. Ce paramètre permet à l’élément ImpersonationInfo , objet mineur, d’être exclu de la source de données définie dans ObjectDefinition. Par conséquent, les informations d'emprunt d'identité de cette source de données restent définies sur le compte de service, comme spécifié dans le premier exemple.

Voir aussi

Méthode Execute (XMLA)
Développement avec le langage de script Analysis Services (ASSL)
Développement avec XMLA dans Analysis Services