Crear y modificar objetos (XMLA)

Los objetos principales se pueden crear, modificar y eliminar de forma independiente. Entre los objetos principales se incluyen los siguientes:

  • Servidores

  • Bases de datos

  • Dimensiones

  • Cubos

  • Grupos de medida

  • Particiones

  • Perspectivas

  • Modelos de minería de datos

  • Funciones

  • Comandos asociados a un servidor o base de datos

  • Orígenes de datos

Utilice el comando Create para crear un objeto principal en una instancia de MicrosoftSQL ServerAnalysis Services y el comando Alter para modificar un objeto principal ya existente en una instancia. Ambos comandos se ejecutan mediante el método Execute.

Crear objetos

Al crear objetos mediante el método Create, primero debe identificar el objeto primario que contiene el objeto de Analysis Services que se va a crear. Para identificar el objeto primario, proporcione una referencia de objeto en la propiedad ParentObject del comando Create. Cada referencia de objeto contiene los identificadores de objeto necesarios para identificar de forma exclusiva el objeto primario para el comando Create. Para obtener más información acerca de las referencias de objeto, vea Definir e identificar objetos (XMLA).

Por ejemplo, debe proporcionar una referencia de objeto a un cubo para crear un nuevo grupo de medida para el cubo. La referencia de objeto para el cubo en la propiedad ParentObject contiene un identificador de base de datos y un identificador de cubo, ya que es posible que se utilice el mismo identificador de cubo en otra base de datos.

El elemento ObjectDefinition contiene elementos de Analysis Services Scripting Language (ASSL) que definen el objeto principal que se va a crear. Para obtener más información acerca de ASSL, vea ASSL.

Si establece el atributo AllowOverwrite del comando Create en true, puede sobrescribir un objeto principal existente que tenga el identificador especificado. De lo contrario, si ya existe un objeto principal con el identificador especificado en el objeto primario, se produce un error.

Para obtener más información acerca del comando Create, vea Elemento Create (XMLA).

Crear objetos de sesión

Los objetos de sesión son objetos temporales que sólo están disponibles para la sesión explícita o implícita utilizada por una aplicación cliente y que se eliminan cuando finaliza la sesión. Para crear objetos de sesión, establezca el atributo Scope del comando Create en Session.

[!NOTA]

Si se utiliza el valor Session, el elemento ObjectDefinition sólo puede contener los elementos ASSL Dimension, Cube o MiningModel.

Modificar objetos

Al modificar objetos mediante el método Alter, primero debe identificar el objeto que se va a modificar; para ello, proporcione una referencia de objeto en la propiedad Object del comando Alter. Cada referencia de objeto contiene los identificadores de objeto necesarios para identificar de forma exclusiva el objeto para el comando Alter. Para obtener más información acerca de las referencias de objeto, vea Definir e identificar objetos (XMLA).

Por ejemplo, debe proporcionar una referencia de objeto a un cubo para modificar la estructura de un cubo. La referencia de objeto para el cubo en la propiedad Object contiene un identificador de base de datos y un identificador de cubo, ya que es posible que se utilice el mismo identificador de cubo en otra base de datos.

El elemento ObjectDefinition contiene elementos ASSL que definen el objeto principal que se va a modificar. Para obtener más información acerca de ASSL, vea ASSL.

Si establece el atributo AllowCreate del comando Alter en true, puede crear el objeto principal especificado si éste no existe. De lo contrario, si un objeto principal especificado no existe aún, se produce un error.

Utilizar el atributo ObjectExpansion

Si sólo va a cambiar las propiedades del objeto principal y no desea redefinir los objetos secundarios incluidos en el objeto principal, puede establecer el atributo ObjectExpansion del comando Alter en ObjectProperties. De este modo, la propiedad ObjectDefinition sólo debe contener los elementos para las propiedades del objeto principal y el comando Alter conserva intactos los objetos secundarios asociados al objeto principal.

Para redefinir los objetos secundarios de un objeto principal, debe establecer el atributo ObjectExpansion en ExpandFull y la definición del objeto debe incluir todos los objetos secundarios contenidos en el objeto principal. Si la propiedad ObjectDefinition del comando Alter no incluye de forma explícita un objeto secundario contenido en el objeto principal, se elimina el objeto secundario no incluido.

Modificar objetos de sesión

Para modificar objetos de sesión creados por el comando Create, establezca el atributo Scope del comando Alter en Session.

[!NOTA]

Si se utiliza el valor Session, el elemento ObjectDefinition sólo puede contener los elementos ASSL Dimension, Cube o MiningModel.

Crear o modificar objetos subordinados

Aunque los comandos Create o Alter crean o modifican solamente un objeto principal de nivel superior, el objeto principal que se crea o modifica puede contener definiciones para otros objetos principales y secundarios subordinados a éste dentro de la propiedad ObjectDefinition envolvente. Por ejemplo, si define un cubo, la base de datos primaria se especifica en ParentObject y, dentro de la definición del cubo en ObjectDefinition, puede definir grupos de medida para éste; a su vez, dentro de los grupos de medida, puede definir particiones para cada grupo de este tipo. Un objeto secundario sólo se puede definir bajo el objeto principal que lo contiene. Para obtener más información acerca de los objetos principales y secundarios, vea Objetos de base de datos (Analysis Services - Datos multidimensionales).

Ejemplos

Descripción

En el ejemplo siguiente se crea un origen de datos relacional que hace referencia a la base de datos de ejemplo Adventure Works DW de MicrosoftSQL Server.

Código

<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
        <DatabaseID>Adventure Works DW</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>Adventure Works DW</ID>
            <Name>Adventure Works DW</Name>
            <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorksDW;Integrated Security=True</ConnectionString>
            <ImpersonationInfo>
                <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
            </ImpersonationInfo>
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>
            <Timeout>PT0S</Timeout>
        </DataSource>
    </ObjectDefinition>
</Create>

Descripción

En el ejemplo siguiente se modifica el origen de datos relacional creado en el ejemplo anterior para establecer en 30 segundos el tiempo de espera de consulta para el origen de datos.

Código

<Alter ObjectExpansion="ObjectProperties" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
    <Object>
        <DatabaseID>Analysis Services Project1</DatabaseID>
        <DataSourceID>Adventure Works DW2</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>Adventure Works DW2</ID>
            <Name>Adventure Works DW2</Name>
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW;Integrated Security=True</ConnectionString>
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>
            <Timeout>PT30S</Timeout>
        </DataSource>
    </ObjectDefinition>
</Alter>

Comentarios

El atributo ObjectExpansion del comando Alter se estableció en ObjectProperties. Este valor permite que el elemento ImpersonationInfo, un objeto secundario, se excluya del origen de datos definido en ObjectDefinition. Por lo tanto, la información de suplantación de ese origen de datos permanece activa en la cuenta de servicio, como se especifica en el primer ejemplo.