A reserva de dados é um novo recurso incluído a partir do TM1 9.5.2. A reserva de dados (DR) é usada para reservar regiões de um cubo para determinado usuário. Depois de reservada, a região só pode ser modificada por aquele usuário. Assim, muitas vezes é necessário saber que usuários têm reservas de dados em quais cubos. Este artigo descreve um método de criar uma listagem de cubo de todas as reservas de dados em todos os cubos disponíveis em um servidor TM1.
TM1 9.5.2
Criando um cubo de resumo usando o TurboIntegrator
Pode-se criar um cubo chamado “DRsummary” usando um TurboIntegrator. Tudo que é preciso é criar o processo do TurboIntegrator e executá-lo. Esse processo cria o cubo DRsummary que lista todas as reservas de dados feitas pelos usuários de um servidor TM1.
Só há duas dimensões em um cubo DRsummary. Não é preciso criá-las manualmente. Esse cubo usa as dimensões do objeto de controle que já existe todo servidor TM1. Essas dimensões podem ser visualizadas no TM1 Architect navegando até a opção View do menu principal e selecionando Display Control Objects. As duas dimensões são:
- }Clients
- }Cubes
A Figura 1 mostra os elementos dentro das dimensões do objeto de controle para o servidor TM1 Planning Sample. A imagem mostra dois Subset Editors do TM1 Architect abertos lado a lado e listando os itens de dimensão nessas duas dimensões do objeto de controle.
Figura 1: Esta imagem mostra as dimensões }Clients e }Cubes do objeto de controle
Criando o processo de TurboIntegrator
Para criar o processo de TurboIntegrator siga o procedimento listado abaixo.
- Crie um processo de TurboIntegrator com o tipo de origem de dados None.
- Copie e cole o seguinte código no procedimento Prolog do processo.
#****Begin: Generated Statements*** #****End: Generated Statements**** #If DRsummary cube already exist delete it. IF(CubeExists('DRsummary') = 1); CubeDestroy('DRsummary'); ENDIF; CubeCreate('DRsummary','}Clients','}Cubes'); #Getting no. of elements present in }clients and }cubes dimension no_user = DIMSIZ('}clients'); no_cubes = DIMSIZ('}Cubes'); cube_counter = 1; user_counter = 1; vIndex = 1; vDelim = '|'; WHILE(user_counter <= no_user); user=DIMNM('}Clients',user_counter); cube_counter = 1; WHILE(cube_counter <= no_cubes); #If it is a control cube then it is skipped cube_name = DIMNM('}Cubes',cube_counter); var1 = scan('}',cube_name); if(var1<>1); vAddress = CubeDataReservationGet(vIndex,cube_name,user,'|'); CellPutS(vAddress,'DRsummary',user,cube_name); endif; cube_counter= cube_counter + 1; END; user_counter = user_counter +1; END;
Resultado da criação do cubo DRsummary
Após executar esse processo, aparece uma lista de cubos do servidor TM1 (colunas) e de usuários do servidor TM1 (linhas). Cada cubo reservado será exibido com uma entrada mostrando o registro de data e hora de quando ocorreu a reserva e a região reservada (se aplicável) em um novo cubo chamado DRsummary.
A Figura 2 mostra o cubo Drsummary resultante, no qual as linhas listam os usuários do TM1 e as colunas, os nomes de cubo de aplicativo. Se houver um valor em uma célula de interseção, isso significa que há reserva de dados atualmente aplicada ao cubo pelo usuário naquela linha. A entrada de célula contém o registro de data e hora de quando a reserva de dados foi aplicada, juntamente com o intervalo de dados da reserva.
Figura 2: Essa imagem mostra o cubo Drsummary resultante que exibe todas as reservas de dados atuais em um servidor TM1
