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 une instance de Microsoft SQL Server SQL Server Analysis Services et la commande Alter pour modifier un objet majeur existant sur une 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 méthode Create, vous devez d’abord identifier l’objet parent qui contient l’objet SQL Server Analysis Services à créer. Vous identifiez l’objet parent en fournissant une référence d’objet dans la propriété ParentObject de la commande Create . Chaque référence d’objet contient les identificateurs d’objet nécessaires pour identifier de manière unique l’objet parent de la commande Create . Pour plus d’informations sur les références d’objets, consultez Définition et identification des 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 potentiellement être utilisé sur 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 Analysis Services Scripting Language (ASSL).

Si vous définissez l’attribut AllowOverwrite de la commande Create sur true, vous pouvez remplacer un objet majeur existant qui a 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 commande Create, consultez Create Element (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 Create sur Session.

Notes

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

Modification d'objets

Lors de la modification d’objets à l’aide de la méthode Alter , vous devez d’abord identifier l’objet à modifier en fournissant une référence d’objet dans la propriété Object de la commande Alter . Chaque référence d’objet contient les identificateurs d’objet nécessaires pour identifier de manière unique l’objet de la commande Alter . Pour plus d’informations sur les références d’objets, consultez Définition et identification des 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 potentiellement être utilisé sur 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 Analysis Services Scripting Language (ASSL).

Si vous définissez l’attribut AllowCreate de la commande Alter sur 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 majeur et ne définissez pas les objets mineurs contenus par l’objet principal, vous pouvez définir l’attribut ObjectExpansion de la commande Alter sur ObjectProperties. La propriété ObjectDefinition doit alors contenir uniquement les éléments des propriétés de l’objet principal, et la commande Alter laisse des objets mineurs associés à l’objet majeur non modifié.

Pour redéfinir les objets mineurs pour un objet majeur, vous devez définir l’attribut ObjectExpansion sur 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 mineur contenu par l’objet principal, l’objet mineur qui n’a pas été inclus est supprimé.

Modification d'objets de session

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

Notes

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

Création ou modification d'objets subordonnés

Bien qu’une commande Create ou Alter crée ou modifie un seul objet majeur le plus important, l’objet majeur en cours de création ou modifié peut contenir des définitions dans la propriété ObjectDefinition englobante pour d’autres objets majeurs et mineurs subordonnés. Par exemple, si vous définissez un cube, vous spécifiez la base de données parente dans ParentObject et dans la définition de cube dans ObjectDefinition , vous pouvez définir des groupes de mesures pour le cube, et dans les groupes de mesures, vous pouvez définir des partitions pour chaque groupe de mesures. 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 Database Objects (Analysis Services - Données multidimensionnelles).

Exemples

Description

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

Code

<Create xmlns="http://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="http://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 commande Alter a été défini sur ObjectProperties. Ce paramètre permet à l’élément ImpersonationInfo , un 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