Criando e alterando objetos (XMLA)
Os objetos principais podem ser criados, alterados e excluídos de forma independente. Os objetos principais incluem o seguinte:
Servidores
Bancos de dados
Dimensões
Cubes
Grupos de medidas
Partições
Perspectivas
Modelos de mineração
Funções
Comandos associados a um servidor ou a um banco de dados
Fontes de dados
Use o comando Criar para criar um objeto principal em uma instância do Microsoft SQL Server SQL Server Analysis Services e o comando Alter para alterar um objeto principal existente em uma instância. Ambos os comandos são executados usando o método Execute .
Criando objetos
Ao criar objetos usando o método Create, primeiro você deve identificar o objeto pai que contém o objeto SQL Server Analysis Services a ser criado. Você identifica o objeto pai fornecendo uma referência de objeto na propriedade ParentObject do comando Create . Cada referência de objeto contém os identificadores de objeto necessários para identificar exclusivamente o objeto pai do comando Create . Para obter mais informações sobre referências de objeto, consulte Definindo e identificando objetos (XMLA).
Por exemplo, você deve fornecer uma referência de objeto a um cubo para criar um grupo de medidas novo para ele. A referência de objeto para o cubo na propriedade ParentObject contém um identificador de banco de dados e um identificador de cubo, pois o mesmo identificador de cubo poderia potencialmente ser usado em um banco de dados diferente.
O elemento ObjectDefinition contém elementos ASSL (Analysis Services Scripting Language) que definem o objeto principal a ser criado. Para obter mais informações sobre ASSL, consulte Desenvolvendo com a ASSL (Linguagem de Script do Analysis Services).
Se você definir o atributo AllowOverwrite do comando Create como true, poderá substituir um objeto principal existente que tenha o identificador especificado. Caso contrário, ocorrerá um erro se um objeto principal com o identificador especificado já existir no objeto pai.
Para obter mais informações sobre o comando Create , consulte Create Element (XMLA).
Criando objetos de sessão
Os objetos de sessão são objetos temporários que só estão disponíveis para a sessão explícita ou implícita usada por um aplicativo cliente e são excluídos quando a sessão é encerrada. Você pode criar objetos de sessão definindo o atributo Escopo do comando Criar para Sessão.
Observação
Ao usar a configuração de Sessão , o elemento ObjectDefinition só pode conter elementos ASSL Dimension, Cube ou MiningModel .
Alterando objetos
Ao modificar objetos usando o método Alter , primeiro você deve identificar o objeto a ser modificado fornecendo uma referência de objeto na propriedade Object do comando Alter . Cada referência de objeto contém os identificadores de objeto necessários para identificar exclusivamente o objeto para o comando Alter . Para obter mais informações sobre referências de objeto, consulte Definindo e identificando objetos (XMLA).
Por exemplo, você deve fornecer uma referência de objeto a um cubo para modificar a sua estrutura. A referência de objeto para o cubo na propriedade Object contém um identificador de banco de dados e um identificador de cubo, pois o mesmo identificador de cubo poderia potencialmente ser usado em um banco de dados diferente.
O elemento ObjectDefinition contém elementos ASSL que definem o objeto principal a ser modificado. Para obter mais informações sobre ASSL, consulte Desenvolvendo com a ASSL (Linguagem de Script do Analysis Services).
Se você definir o atributo AllowCreate do comando Alter como true, poderá criar o objeto principal especificado se o objeto não existir. Caso contrário, ocorrerá um erro se um objeto principal especificado ainda não existir.
Usando o atributo ObjectExpansion
Se você estiver alterando apenas as propriedades do objeto principal e não estiver redefinindo objetos secundários contidos pelo objeto principal, poderá definir o atributo ObjectExpansion do comando Alter como ObjectProperties. A propriedade ObjectDefinition só precisa conter os elementos para as propriedades do objeto principal e o comando Alter deixa objetos secundários associados ao objeto principal intocados.
Para redefinir objetos secundários para um objeto principal, você deve definir o atributo ObjectExpansion como ExpandFull e a definição de objeto deve incluir todos os objetos secundários contidos pelo objeto principal. Se a propriedade ObjectDefinition do comando Alter não incluir explicitamente um objeto secundário contido pelo objeto principal, o objeto secundário que não foi incluído será excluído.
Alterando objetos de sessão
Para modificar objetos de sessão criados pelo comando Criar , defina o atributo Escopo do comando Alter como Sessão.
Observação
Ao usar a configuração de Sessão , o elemento ObjectDefinition só pode conter elementos ASSL Dimension, Cube ou MiningModel .
Criando ou alterando objetos subordinados
Embora um comando Create ou Alter crie ou altere apenas um objeto principal superior, o objeto principal que está sendo criado ou modificado pode conter definições dentro da propriedade ObjectDefinition que inclui outros objetos principais e menores subordinados a ele. Por exemplo, se você definir um cubo, especificar o banco de dados pai no ParentObject e, dentro da definição de cubo em ObjectDefinition , poderá definir grupos de medidas para o cubo e, dentro dos grupos de medidas, poderá definir partições para cada grupo de medidas. Um objeto secundário só pode ser definido sob o objeto principal que o contém. Para obter mais informações sobre objetos principais e menores, consulte Objetos de Banco de Dados (Analysis Services – Dados Multidimensionais).
Exemplos
Descrição
O exemplo a seguir cria uma fonte de dados relacional que faz referência ao banco de dados microsoft SQL Server de exemplo do Adventure Works DW Multidimensional 2012.
Código
<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>
Descrição
O exemplo a seguir altera a fonte de dados relacional criada no exemplo anterior para definir o tempo limite da consulta para a fonte de dados como 30 segundos.
Código
<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>
Comentários
O atributo ObjectExpansion do comando Alter foi definido como ObjectProperties. Essa configuração permite que o elemento ImpersonationInfo , um objeto menor, seja excluído da fonte de dados definida em ObjectDefinition. Dessa forma, a informações de representação para aquela fonte de dados permanece definida para a conta de serviço, como especificado no primeiro exemplo.
Consulte Também
Método Execute (XMLA)
Desenvolvendo com ASSL (linguagem de script do Analysis Services)
Desenvolvendo com XMLA no Analysis Services