BUSINESS INFORMATION WAREHOUSE SAP-BW GUIA DE REFERÊNCIA Treinamento SAP-BW Conteúdo Introdução........................................................................................................................................................................ 4 Modelagem Star Schema e MER ...................................................................................................................................... 5 Granularidade .................................................................................................................................................................. 7 Nomenclatura BW............................................................................................................................................................ 8 Business Content ............................................................................................................................................................ 11 Repositório de Metadados............................................................................................................................................... 15 Criação de Infoarea........................................................................................................................................................ 17 Criação de Catálogos...................................................................................................................................................... 18 Localizar objetos ............................................................................................................................................................ 19 Requisição para transporte ............................................................................................................................................. 20 Criação de Infoobjetos.................................................................................................................................................... 21 Criação de Infoobjetos - Características ......................................................................................................................... 22 Tabelas geradas para um Infoobjeto .............................................................................................................................. 30 Inserir uma característica como Infoprovider ................................................................................................................ 31 Criação de Infoobjetos - Keyfigures................................................................................................................................ 32 Visão ao final da criação de todos os Infoobjetos ........................................................................................................... 36 Criando hierarquias manualmente no BW ..................................................................................................................... 37 Criação de um Cubo Standard........................................................................................................................................ 42 Tabelas geradas para um Cubo ...................................................................................................................................... 47 Relação entre tabela Fato e Dimensões: ......................................................................................................................... 49 Criação de uma DSO Standard ...................................................................................................................................... 50 DSO Standard – Funcionamento das tabelas: ................................................................................................................ 54 Parâmetros de configuração de uma DSO: .................................................................................................................... 55 Tipos de DSO e suas funções: ........................................................................................................................................ 56 Criação de um Multiprovider.......................................................................................................................................... 57 Criação de um Infoset .................................................................................................................................................... 65 Criação de um Remote Provider (Virtual Cube) ............................................................................................................. 70 Infoobjeto Característica com acesso Remoto aos dados mestres .................................................................................... 75 Processo de ETL - Criar/Ativar/Replicar Datasource ................................................................................................... 76 Processo de ETL – Datasource já está pronto ................................................................................................................. 87 Processo de ETL – Entre objetos do BW ...................................................................................................................... 101 Ampliação de Datasources (Quando sua tabela tem campos “Z” / “Y”) ....................................................................... 105 Atributos com Dependência de tempo – Exemplo de Funcionamento........................................................................... 111 Planejamento – BI-IP (Integrated Planning) ............................................................................................................... 117 Agregados .................................................................................................................................................................... 135 Administração de Infoproviders ................................................................................................................................... 138 2 Treinamento SAP-BW Process Chain – Automatização de Cargas................................................................................................................... 142 Reporting - Query Designer.......................................................................................................................................... 154 Reporting - Restrições .................................................................................................................................................. 157 Reporting - Variáveis.................................................................................................................................................... 159 Reporting - Variáveis – Exit de cliente (Documento SAP How to...) ............................................................................. 162 Reporting – Condições.................................................................................................................................................. 171 Reporting – Exceções ................................................................................................................................................... 173 Reporting – Fórmulas .................................................................................................................................................. 177 Reporting – Keyfigure Calculada / Restrita .................................................................................................................. 180 Reporting – Estruturas ................................................................................................................................................. 181 Reporting – Definição de células .................................................................................................................................. 182 Reporting – Navegação Web......................................................................................................................................... 183 Reporting – Analyzer (Frontend é o Excel) .................................................................................................................. 184 Reporting – Analyzer (Visões) ...................................................................................................................................... 186 Reporting – Analyzer (Modo Design) ........................................................................................................................... 187 Reporting – WAD (Web Application designer) ............................................................................................................. 190 Algumas dicas em Geral ............................................................................................................................................... 198 Saltos de Queries (RSBBS) ........................................................................................................................................... 199 Open Hub ..................................................................................................................................................................... 200 Infospokes (Versão 3.x) ................................................................................................................................................ 202 Visão geral do processo de carga da versão 3.X (e anterior) ......................................................................................... 205 3 Treinamento SAP-BW Introdução Uma das definições para Data warehouse é “...uma cópia dos dados transacionais especialmente estruturados para relatórios e análises.” Ralph Kimbal – “The Data warehouse Toolkit” O que fazer com a enorme quantidade de registros (dados) armazenada nas últimas décadas nas bases de dados das empresas? Como tirar proveito de dados históricos para tomada de decisões, avaliar algum problema e aumentar a competitividade? Para auxiliar nessa tarefa as empresas estão investindo em BI (Business Intelligence). São ferramentas de análise estratégica com alta qualidade de informação, projetos com curto prazo de implementação e com utilização de poucos recursos. O BW da SAP é uma dessas ferramentas de suporte a decisão. Vejamos abaixo algumas diferenças entre um ambiente operacional (em nosso caso o R/3) e o ambiente onde roda o BW. R/3 (Operacional - OLTP) BW (Suporte a decisão - OLAP) Detalhado, dados de transações Dados sumarizados Dados atuais, com o mínimo de dados históricos Dados históricos são requeridos para análise Estruturas normalizadas para ganho de performance A modelagem é baseada na necessidade. Não tem muita normalização Atualizar, Eliminar, Inserir Apenas leitura (*Não levando em consideração BI-IP) 4 Treinamento SAP-BW Modelagem Star Schema e MER Criar um banco de dados seguindo a modelagem Star Schema é o passo básico para criação dos Cubos em um projeto de datawarehouse. Será baseado nesse esquema a criação dos cubos. Vamos ver o mesmo problema, modelado de duas maneiras diferentes: MER: Modelo de entidade e relacionamento Star Schema (Multidimensional) Desejamos criar um modelo para um banco de dados de Vendas. Um exemplo bem simples utilizando primeiro o MER: É perfeitamente possível criar todo tipo de relatório para análise a partir desse modelo. Mas vamos nos deparar com o problema do tempo de resposta e a falta de recursos do produto final (Classificações por diferentes campos, totalizações, subtotais, análise do valor por outro campo, navegações em geral, etc.) Mesmo criando relatórios utilizando ALV não será possível ver o resultado sem que o programa execute em background (Lembrando que o volume de dados é muito grande), o que elimina qualquer recurso de relatórios dinâmicos. Isso acontece porque esse modelo é feito para ter uma boa performance no dia-a-dia, dados transacionais que ocorrem todo tempo. 5 Treinamento SAP-BW Vejamos agora um exemplo de como transformar o modelo da figura anterior em um modelo Multidimensional (Star Schema) e suas vantagens em termos de performance para relatórios: A idéia a agrupar campos semelhantes no que chamamos de dimensão (Vendedor, Tempo, Fornecimento, Material e Cliente). Ao centro temos a tabela fato que é onde vamos ter as chaves para as dimensões e os valores que gostaríamos de analisar, nossos KPIs (Keyfigures). Com as dimensões respondemos “Quem?”, “Onde”, “Quando?”, “O que?”. Na tabela fato vamos encontrar a resposta para “Quanto?”. Esse modelo é excelente na performance de relatórios ou qualquer retorno de informação, bastando para isso leitura direta na tabela fato, seguindo os parâmetros de qualquer uma das dimensões (Inclusive combinações entre elas). A SAP criou um modelo chamado Extended Star-schema, onde os dados mestres não ficam junto ao Cubo. Por exemplo você pode colocar o “Código do Material‟ em vários cubos diferentes, a fonte para o texto do material e seus atributos será sempre a mesma (Infoobjeto 0MATERIAL). 6 Treinamento SAP-BW Granularidade O termo Granularidade descreve o nível de detalhe do seu datawarehouse. Quanto menor a granularidade maior o nível de detalhe, maior o número de registros. Reduzir a granularidade pode significar perder informação. Veja no exemplo das tabelas abaixo: Dados de Faturamento no R/3: Data de Criação Documento Cliente Material Valor 10/09/2007 900000001 1234 M.123.123 10,00 11/09/2007 900000002 1234 M.456.456 10,00 12/09/2007 900000003 1234 M.789.789 10,00 13/09/2007 900000004 5678 M.123.123 10,00 Se enviarmos para o BW toda essa informação, o nível de detalhe é idêntico ao do ambiente transacional, granularidade é alta e a quantidade de registros será igual a 4, ou seja, uma query no BW vai ler a mesma quantidade de registros que uma transação no R/3. Ao passo que pode ser definido que o público alvo do relatório de vendas será a diretoria, e é necessário apenas a informação mensal com o valor total. Dessa forma teremos o seguinte no BW: Mês e Ano Valor 09/2007 40,00 No nível de gerente de conta, será necessário também o código do cliente. Nesse caso, teremos a seguinte situação: Mês e Ano Cliente Valor 09/2007 1234 30,00 09/2007 5678 10,00 Para definir a granularidade tenha em mente: Tamanho da base (Nível de detalhe) Público alvo Desenho do relatório (Navegação nesse relatório: Drill down) Performance 7 Treinamento SAP-BW Nomenclatura BW Até o momento discutimos conceitos que são pertinentes a todos os Datawarehouse. Antes de começarmos a desenvolver e navegar nos relatórios, precisamos entender alguns conceitos básicos e exclusivos do BW: Infoprovider: Todo objeto que for possível a criação de relatórios, é chamado de Infoprovider. Normalmente um Cubo. Infoobjetos: Pense em um Infoobjeto como sendo um “campo” (Como campos de tabelas do R/3, por exemplo). É a base de todo objeto dentro do BW. Se divide em dois grandes grupos: Características: Representam por exemplo o código do Material, Número do Cliente, Centro, Empresa, Centro de custo, Conta Contábil, Dia do calendário, Moeda (BRL, USD, EUR, etc), uma Unidade de medida (Kg, m, cm, Peça, etc) . Por isso, temos uma sub-divisão dentro de infoobjetos tipo características: o Características Gerais o Características de Tempo o Características de Unidade ou Moeda Keyfigures (Índices): Representam valores e quantidades. As keyfigures é o que utilizamos para compor a tabela fato de um modelo Star-schema. Atributos: Apenas infoobjetos tipo características (Gerais) possuem atributos. Um atributo nós dá mais informações sobre o Infoobjeto. Por exemplo, os atributos de um Cliente: Endereço, Cidade, País, Número do Fax. Não é obrigado um infoobjeto ter atributo. Display: Um atributo ainda pode ser de display. Pode ser utilizado apenas como informação adicional Navegação: Um atributo pode ser tipo Navegacional, ou seja, você consegue ver um valor de uma query por esse atributo, sem que a característica principal esteja no relatório. Por exemplo: Qual o valor das vendas por grupo de material ? Se o atributo grupo de material for de navegação, é possível ver esse valor sem que o Material esteja no relatório. Um atributo de navegação funciona como um infoobjeto tipo característica normal. Dados Mestre: Dados que não se alteram com grande velocidade ao longo do tempo. Apenas Infoobjetos tipo características gerais podem possuir dados mestre. Exemplo de dados mestre: Texto (Descrições), Atributos e Hierarquias. Dados Transacionais: Dados gerados constantemente no sistema fonte (R/3). Uma venda, uma fatura, um movimento de mercadoria, etc. 8 Treinamento SAP-BW Catálogo Coleção de infoobjetos com conteúdo relacionado entre si (Como sub-pastas para melhor organização). Infoarea Coleção de catálogos relacionados entre si. Pense em Infoarea como pastas. Dados Mestre Dados mestres são aqueles que permanecem inalterados durante um determinado período de tempo. O dado mestre de um material vai conter, por exemplo, o seu código e sua descrição. Isso raramente mudará. Dados Transacionais Informações que são criadas ou modificadas constantemente, por exemplo: Uma compra, uma movimentação, um faturamento, etc. Dimensão Grupo de características sumarizadas, armazenadas em uma tabela de um modelo Star Schema. A dimensão é muito importante, vejamos o exemplo: “Eu quero o total das vendas por tipo de material” Se você não tem em seu modelo (Star Schema), uma dimensão qualquer, que tenha a informação Tipo de Material, você não conseguirá navegar por essa característica. Tabela Fato Tabela central em um modelo Star Schema. Ela é quem vai conter todos os índices (Keyfigures) do modelo. Além de conter as chaves para cada dimensão. Star Schema Tipo de modelo multi-dimensional é o chamado modelo Estrela, onde existe uma tabela dominante no centro, chamada tabela de fato, com múltiplas junções conectando-a com outras tabelas, sendo estas chamadas de tabelas de dimensão. Cada uma das tabelas secundárias possui apenas uma junção com a tabela central. O modelo Estrela tem a vantagem de ser simples e intuitivo, mas também faz uso de novos enfoques de indexação e união de tabelas. Infoprovider Todo objeto sob o qual podemos desenvolver relatórios (Cubos, Infoobjetos com dados mestre, DSO, Infoset, entre outros) Multiprovider É uma view que permite a união de Infoproviders. Agregados Agregados armazenam um conjunto de dados de um InfoCubo de uma forma sumarizada e redundante. É a mesma informação do InfoCubo original, mas de uma forma que prima pela velocidade na recuperação da informação. Agregados ocupam espaço em disco, mas são um bom recurso para melhora de performance (Hoje em dia já existe o BWA: BW accelerator, outro recurso para melhora de performance em que não há necessidade de utilização de agregados) Sistema fonte Tudo que vai fornecer dados para o BW. Pode ser um arquivo texto, pode ser um Client do ECC, outro sistema ERP, etc. Drill down Partindo de um item do relatório anual, você consegue ver os meses daquele ano. Descendo mais um nível, você chega até o detalhe por dia de cada mês ou no documento. Isso é drill down. (Navegando no relatório) 9 Treinamento SAP-BW DSO DataStore Object. Sua estrutura é como uma tabela. Uma utilização é o armazenamento de dados em um nível bem detalhado, por exemplo, número do documento e item. Outra utilização interessante é a possibilidade de partir de um relatório de um Cubo (Mais sumarizado) para um relatório muito detalhado feito em uma DSO (Salto de queries ou Drill Through). Dependente de tempo Um objeto é dependente do tempo quando seu valor está atrelado a uma data (período “de – até”). Seu valor está em constante mudança. Por exemplo, o cargo de um empregado, o nome de um setor. Assim os relatórios estarão sempre de acordo. Para identificar qual valor correto, a query se vale de uma data (Key date). Veremos isso no desenvolvimento de queries. Dependente do idioma Um objeto é dependente do idioma, se ele for ser utilizado (Traduzido) para diversos idiomas. Datasource Contém a descrição e as propriedades dos campos em uma estrutura de extração. É um data source (o programa por trás do data source) que recupera os dados de um Sistema fonte para a carga no BW. Um datasource pode também ser um arquivo texto. Infopackage Descreve quais dados em uma Data Source devem ser requisitados de um sistema fonte. Os dados poderão ser selecionados a partir de parâmetros de seleção, por exemplo, um período. P.S.A. Persistent Staging Area. PSA é uma área intermediária onde são armazenados os dados vindos do sistema. Depois de carregado, passa-se então a atualizar o objeto correspondente. O PSA é criado de maneira automática pelo BW. Um PSA por datasource. Delta Controle feito para que apenas informações novas ou modificadas sejam carregadas para o BW. Isso é feito automaticamente (Atualização Delta). Hierarquia É uma estrutura organizada em sucessivos níveis. Existem hierarquias Standards e podemos criar novas também. 10 Treinamento SAP-BW Business Content O BW possui um repositório com um grande número de “itens prontos”. Isso significa que se precisamos de um infoobjeto (“Campo”) para armazenar os dados do MATERIAL, basta ir na guia Business Content, procurar pelo objeto MATERIAL e ativar. No momento que você ativa esse objeto, o BW já seleciona também tudo que é necessário para fazer o objeto principal funcionar. Veja os passos para ativação: Temos praticamente todo tipo de objeto pronto. 11 Treinamento SAP-BW Localizamos o item e marcamos como vamos ativá-lo (O agrupamento irá definir o que ativar). Apenas objetos necessários: Somente os objetos dependentes necessário para a ativação e funcionamento Fluxo de dados antes: Objetos necessários para ativação e funcionamento e também tudo que vem antes, por exemplo, um processo de carga (ETL) Fluxo de dados depois: Objetos necessários para ativação e funcionamento e também tudo que vem depois, por exemplo, uma Query pronta no Business Content para esse objeto. Fluxo dados antes e depois: Todos os objetos envolvidos. 12 Treinamento SAP-BW Movimentamos (Drag&Drop) o objeto para a janela da direita e utilizamos o botão Aceitar: Repare que serão ativados todos os objetos necessários (O que dependendo do objeto, já é bastante): Observação: Se o item não existir, é necessário criá-lo. Não é possível criar objetos que comecem com números, isso é reservado para objetos Standard SAP. Também não é possível criar Infoobjetos do tipo característica de tempo. Por esse motivo, vamos ver como se cria cada objeto. Ao iniciarmos um projeto de BW, se ganha muito tempo trabalhando/pesquisando o Business Content. Você vai economizar tempo de desenvolvimento. 13 Treinamento SAP-BW Do outro lado, pensando no sistema fonte ECC, também temos Business Content dos Extratores (Datasources). Um datasource é quem provê a informação ao BW (A transação de acesso no ECC é a SBIW, ou mais diretamente RSA5). Selecionamos o datasource e ativamos. Um datasource ativo, não é reconhecido pelo BW até que você faça a replicação dos dados. Para tanto, utilize a transação do BW, RSA1. Vamos na guia de Datasources. Escolha o sistema de onde você vai replicar e com o botão direito escolha Replicar Datasource. Replicar é a ação que irá criar o Datasource no BW automaticamente. No caso de datasources, também é possível que tenha de ser criado, para ler uma tabela particular da empresa. Isso também pode ser feito, acessando na transação SBIW, criação de Datasources Genéricos (Você pode acessar dado através de função ABAP, Tabela ou View). Veremos isso mais adiante no processo de ETL. 14 Treinamento SAP-BW Repositório de Metadados Acessamos o Repositório de metadados do BW através da transação RSA1, em seguida vamos à guia “Repositório de metadados”, em destaque na imagem abaixo. Sua utilização é bastante simples. Você pode exibir objetos ativos e também objetos prontos da SAP (Business Content). Todos os objetos estão disponíveis para pesquisa na parte esquerda, basta escolher o tipo ou mesmo utilizar o localizar. Você pode, por exemplo, ver a informação na forma de um gráfico (Um modelo Estrela de um cubo, por exemplo). Você pode exportar uma documentação em verão HTML dos objetos ativos também. Mas você não consegue selecionar apenas um grupo ou uma área, vai gerar para tudo: 15 Treinamento SAP-BW Isso vai gerar muitas páginas HTML com links entre si, é como uma versão off-line do que você tem em seu ambiente: 16 Treinamento SAP-BW Criação de Infoarea Para organização, é bom criamos Infoareas para armazenar nossos Infoproviders e Catálogos. Na transação RSA1, na guia Infoprovider. Botão direito sobre uma Infoarea existente e escolha Criar. Você deve informar o nome técnico e uma descrição: 17 Treinamento SAP-BW Criação de Catálogos Também para organização, um catálogo irá agrupar Infoobjetos. Existem dois tipos de catálogo: - Características - Keyfigures Na RSA1, na guia de Infoobjetos, clicar com botão direito em uma Infoarea e escolher criar Catálogo. Para catálogo de Características ou Keyfigures, marque a opção correspondente: 18 Treinamento SAP-BW Localizar objetos Se você não direcionar seus Infoproviders para alguma Infoarea, tudo vai ficar em “Nós não atribuídos”. Da mesma forma, um infoobjeto vai para o catálogo de objetos “Não atribuídos”. Para localizar algum objeto, utilize a opção de procura (Na barra de ferramentas onde colocamos o código da Transação), ajuda muito na localização: 19 Treinamento SAP-BW Requisição para transporte No ambiente de treinamento não teremos que criar uma requisição de transporte, mas isso é comum em uma ambiente corporativo. Uma requisição nada mais é do que um lugar onde agrupamos a manutenção feita no sistema (criação, eliminação, modificações, ativações, etc.) As informações serão passadas para você no desenvolvimento. Depois de pronto, o pessoal responsável irá liberar e transportar para o ambiente Produtivo. 20 Treinamento SAP-BW Criação de Infoobjetos 21 Treinamento SAP-BW Criação de Infoobjetos - Características Para criar um Infoobjeto Característica utilize o botão direito do mouse em um catálogo de Características, e escolha Criar Infoobjeto: Depois escolha um nome técnico e uma descrição: Caract. Referência: Se utilizar uma outra característica como referência, o seu novo objeto irá herdar tudo do Infoobjeto referido, inclusive dados mestres (Textos, Atributos e Hierarquias). Basicamente, você irá criar um mesmo objeto, mas com uma função/descrição diferente. Inclusive as tabelas criadas são as mesmas. Exemplo de objeto standard: 0SOLD_TO, tem como referência 0CUSTOMER. Só existe referência em Infoobjetos. O que você faz no objeto 0CUSTOMER, irá afetar o objeto 0SOLD_TO. Veja na figura como identificar um objeto criado com referência: Modelo: Nesse caso, você apenas herda as configurações do objeto modelo (Infoobjetos utilizados em Atributos, por exemplo). Aqui, as tabelas criadas para o Infoobjeto são novas e você irá precisar fazer a carga de dados, se for o caso. Você encontra a opção Modelo na maioria dos objetos e isso acelera o desenvolvimento. O que você fizer no objeto modelo, não afeta o que estamos criando. 22 Treinamento SAP-BW Na guia geral, vamos definir o tipo e o tamanho, essas são as informações mais importantes. Outro ponto de atenção é com relação ao flag “só atributo”. Se marcar isso, você não pode utilizar esse infoobjeto como Navegação (Veremos o que é isso na guia de atributos) 23 Treinamento SAP-BW Na guia Business Explorer (Barra de ferramentas da SAP para criação de relatórios no Excel) você vai definir como vai ser a apresentação dos dados desse Infoobjeto. No exemplo abaixo, a representação será com o texto. Se fosse um Infoobjeto que representasse o Estado. Nos relatórios, ao invés de SP (Chave) iria sair “São Paulo” (Texto). Você pode alterar as opções dessa guia a qualquer momento e até mesmo executando a query. Alterações à vontade não poderão ser feitas em todos os itens (Guias) de um Infoobjeto, e isso é bem simples de se entender. Alterando no Business Explorer, não se modifica os dados e sim sua exibição, apenas. Na guia Informações Gerais se você tentar alterar o tipo ou tamanho de um Infoobjeto e esse Infoobjeto já estiver sendo utilizado, não será possível. Então devemos ter um grande cuidado. Um Infoobjeto vai armazenar informações carregadas do sistema fonte, de maneira análoga a uma tabela do ECC, alterar algumas informações de um Infoobjeto é o mesmo que alterar um campo. 24 Treinamento SAP-BW Na guia Dados mestre/texto você vai definir se o seu Infoobjeto possui alguma informação que não se altera muito, ou praticamente nunca. No exemplo abaixo os dados mestres de um material é o seu código e os textos serão as descrições de cada um desses códigos. Veja que podemos definir qual o tamanho do campo texto que queremos (Breve [20 posições], Médio [40 posições] ou Descritivo [60 posições]), Se esse texto é dependente do Idioma (PT, EN, DE, etc) e ainda se é dependente do tempo. Para esse último cabe uma explicação melhor. Um dado mestre ser dependente do tempo significa que o BW vai manter uma data de validade para o valor desse dado mestre/texto (Date from/Date to) na tabela de dados mestre/texto. Por exemplo, o material 100.000.000 teve seu texto alterado para “Material Novo” em 01/01/2005. Para relatórios executados até 31/12/2004, o texto para o material será “Material Antigo”. É obrigatório na query utilizarmos uma data para determinar o ponto de corte (Key Date, que veremos quando trabalharmos com query) 25 Treinamento SAP-BW Na criação do Infoobjeto na guia Hierarquia você apenas marca um flag, informando que esse Infoobjeto vai conter uma hierarquia. Dessa forma o BW já prepara as tabelas para permitir isso. Para definir manualmente, clique com botão direito no Infoobjeto e escolha a opção de acesso as hierarquias. Apenas para os InfoObjetos que tem o flag marcado será possível a manutenção das hierarquias. É bem simples a manutenção, basta criar os níveis desejados e ir separando os valores chaves dentro desses níveis ou sub-níveis. Por exemplo, um Infoobjeto que armazena os Estados do Brasil, podemos definir o seu flag de hierarquia como ativo e criar níveis como: “Área Filial 1”, “Área Filial 2”, “Área Filial 3”. Depois disso basta adicionar o código chave de cada Estado (MG, SP, RJ, SC, etc), para cada um dos níveis criados. O volume de dados é bem pequeno, manualmente isso pode ser feito sem nenhum problema. Lembrando que os dados mestres já deverão estar no Infoobjeto, caso contrário, não encontraremos os valores (MG, SP, RJ, SC, etc) para a criação da hierarquia. Na carga de dados de um InfoObjeto que possui hierarquia standard, tudo é feito automaticamente. Mas se você definiu um Infoobjeto que não possui uma hierarquia standard, a carga via arquivo se torna um pouco mais complicada, pois você terá que montar o arquivo texto entendendo perfeitamente a tabela utilizada pelo BW para armazenar sua hierarquia. O botão em destaque na figura é o que dá acesso a criação de hierarquias, como sempre, teremos que informar um nome técnico e uma descrição. Depois, partimos para elaboração dos níveis. 26 Treinamento SAP-BW Veja na imagem abaixo, um exemplo de utilização de hierarquias. Isso pode ou não ser ativado na execução de um report: 27 Treinamento SAP-BW Para definir atributos de um Infoobjeto, utilizamos outros Infoobjetos. Os atributos são as informações adicionais que identificam e tem relação com o valor de um Infoobjeto. Veja na imagem alguns exemplos de atributos do Cliente (Lembrando que estamos utilizando um exemplo com dados de uma locadora de vídeos: Temos a possibilidade também de definir um atributo como sendo de navegação (O Default é tipo Display). Navegacional, é um tipo especial que permite ao usuário navegar na query utilizando os valores desse atributo. Vamos pegar como exemplo um Infoprovider que possui o Infoobjeto CA_CLIEXX (Veja acima que possui vários atributos). Se o Infoobjeto CA_FILIXX (Filial) não fizer parte de um Infoprovider, mas está como atributo de navegação para o Infoobjeto CA_FILIXX, você poderá gerar uma query quebrando por Filial, claro que isso vai ter um custo de performance, uma leitura a mais feita para devolver a query. Atenção, um Infoobjeto de navegação, deve ser ativado no Infoprovider para podermos ter acesso. Veremos isso na criação de um Infocubo, é apenas um flag, mas sem estar ligado, o atributo não estará disponível no momento da query. 28 Treinamento SAP-BW Você pode definir que sempre que um determinado Infoobjeto for utilizado, deverá ser levado em consideração, algum(ns) outro(s) Infoobjeto(s). Essa ligação é Dependência. Por exemplo, sempre utilizarmos o Infoobjeto 0REGION, o Infoobjeto 0COUNTRY também será anexado (Isso em qualquer parte: Query, Transformações, etc). Outro objeto standard com dependência é o 0CUST_SALES. 29 Treinamento SAP-BW Tabelas geradas para um Infoobjeto Apenas para conhecimento, aqui temos a relação de todas as tabelas possíveis de existir para um Infoobjeto. Tudo vai depender das opções marcadas durante sua criação (A estrutura das tabelas também pode variar com base em suas escolhas): M View das tabelas de dados mestre Q Dados mestres dependente de tempo H Tabela de hierarquias K Tabela SID para hierarquias I Tabela SID para a estrutura da hierarquia J Tabela de hierarquias dependente de tempo S Tabela SID Y Tabela SID para objeto dependente de tempo T Tabela texto SID = É uma chave automática criada pelo BW (Surrogate ID) para utilização interna na criação dos relacionamentos. 30 Treinamento SAP-BW Inserir uma característica como Infoprovider A partir da versão 7.x, para utilização do novo procedimento de carga de dados (ETL), é necessário inserir a característica como Infoprovider. Você poderá criar queries utilizando esses Infoobjetos. Mas atenção, o Infoobjeto deve conter dados mestre. Para inserir, na guia de Infoproviders (RSA1) clique com o botão direito e escolha a opção correspondente: Defina qual o Infoobjeto e pronto: 31 Treinamento SAP-BW Criação de Infoobjetos - Keyfigures Na transação RSA1, clique com botão direito sobre um catálogo de Keyfigures e escolha Criar Infoobjeto: Nome técnico e uma descrição. Referência e Modelo funcionam da mesma forma aqui, como foi visto na criação de uma característica (Objeto anterior): 32 Treinamento SAP-BW As Keyfigures são os valores e quantidades que vamos analisar, são as Keyfigures ou índices que vão fazer parte da tabela Fato no Star-Schema. Para valores tipo Montante e Quantidade, obrigatoriamente devemos informar uma unidade (Moeda ou Medida). Podemos para isso, utilizar um Infoobjeto do tipo Unidade/Moeda ou utilizar um valor Fixo. Se utilizarmos um objeto tipo Unidade para identificar um valor, ao utilizarmos a Keyfigure em um Cubo, o objeto que determina sua unidade, vai para uma dimensão do Cubo (Unidade) 33 Treinamento SAP-BW Na guia Agregação a principal opção é que você pode definir como será a forma de armazenamento, será a Soma (Default), guardar apenas o maior valor, o menor valor, etc. 34 Treinamento SAP-BW Em Outras Características, vamos definir como será a apresentação desse valor no BEX, ou seja, nos relatórios. Escolha aqui a quantidade casas decimais, a representação (1 vale 1000, 1 vale 100, etc.) e como no Infoobjeto do tipo característica, como será a representação da descrição desse valor, ou seja, o label para a coluna da query. Isso será o comportamento default, mas pode ser alterado em tempo de execução/navegação em Queries. Índice com precisão elevada: O número de casas decimais é 16. Comumente utilizados em cubos que recebem informações de valores quebrados, por exemplo parte de um rateio. Só atributo: Nesse caso, não poderá ser utilizado como índices de Cubos (tabela fato). Se caso esse flag estiver ligado, a Keyfigure pode apenas servir de atributo para outro Infoobjeto. 35 Treinamento SAP-BW Visão ao final da criação de todos os Infoobjetos Seguindo a rotina de exercícios para o treinamento, ao final, teremos os seguintes objetos criados: 36 Treinamento SAP-BW Criando hierarquias manualmente no BW Para criamos uma hierarquia em um Infoobjeto, ele deve estar marcado “Com hierarquias”. No exemplo, vamos criar um agrupamento de Estados Brasileiros em Regiões. Isso será feito no Infoobjeto CA_UFXX. Para iniciar, localizamos o Infoobjeto na RSA1 e o modificamos (Você também pode utilizar a transação RSD1). Na guia “Hierarquia”, vamos clicar no botão de “Atualizar Hierarquia” e depois no ícone de criação. O nome da característica já vai estar preenchido. Na tela seguinte, definimos um nome técnico e as descrições: 37 Treinamento SAP-BW Criamos nós de texto para identificar cada Região (Nó de hierarquia é um nome técnico, você cria): Ao final, teremos a seguinte configuração: 38 Treinamento SAP-BW Agora, basta inserir o Estado em cada um dos Nós de Texto criados. Os valores de cada Estado serão fornecidos com base nos dados mestre do Infoobjeto CA_UFXX. Faremos isso por pasta. Selecione a Região “Sul” (Nó de texto) e clique no botão em destaque na imagem abaixo. Esse botão indica que você vai inserir um nó dentro de outro nó. Clique no botão “Estado” E inserir todos os Valores da Região Sul: 39 Treinamento SAP-BW Faremos isso para cada Região, e ao final Ativamos. Veja que “Intervalo” não está habilitado, isso porque nossa hierarquia não foi marcada com permissão de utilizar intervalo de valores. Também podemos eliminar um nó ou um valor, exibir nomes técnicos, expandir, etc. Também é possível inserir um mesmo nó em dois lugares, isso chama-se “Link”. Você irá ver essa caixa de mensagem. Se escolher apenas transferir nó duplo, você estará removendo do local de origem. Caso queira nos dois lugares (Dois pontos diferentes dentro da mesma hierarquia) use a opção “Transferir o nó duplo como nó de link”. É possível também, mais de uma hierarquia para um mesmo objeto, sem problemas. 40 Treinamento SAP-BW É possível você acrescentar em sua hierarquia, outras características (botão “Nó caract.”). Para isso você deve incluir essa característica como externa na guia “Hierarquias”. Mas isso praticamente não é utilizado, pois ajuda apenas quando os nós de sua hierarquia podem sofrer variação de textos, não faz nenhum filtro de dado. 41 Treinamento SAP-BW Criação de um Cubo Standard Já conhecemos o modelo Star Schema e como seu desenho é feito no papel. Agora vamos ver como passar a estrutura elaborada para o BW. No SAP-BW o objeto que segue o modelo multidimensional chama-se Infocubo (Infoprovider ou Cubo simplesmente). Para criar, seguindo o mesmo princípio de outros objetos, clicamos com botão direito em alguma Infoarea do “Infoprovider” e escolhemos criar Infocubo: Existem vários tipos, vamos criar um Standard (Os demais seguem o mesmo princípio e forma de criação, mas tem funções finais diferentes) Standard: É o mais comum e funciona com cargas regulares de dados. Não permite entrada manual de informação. Real time: Para aplicações de planejamento (São os antigos cubos do SEM-BPS, transacionais). Aceitam entrada direta de dados. Utilizados no BI-IP (Integrated Planning) Virtual: Não possui dados. A busca é feita apenas no momento da solicitação 42 Treinamento SAP-BW Do lado esquerdo, podemos nos servir de Infoobjetos que estão em algum outro Infoprovider, algum catálogo, pesquisar objetos, etc. Isso para facilitar a localização e assim deixar mais rápido o processo. Do lado direito e onde criamos as dimensões e o fato. Para criar uma dimensão utilize o botão direito e escolha Criar nova dimensão: 43 Treinamento SAP-BW Você também pode alterar as propriedades de uma dimensão, para isso, escolha “Características” após clicar com botão direito sobre uma dimensão já existente: Nesse caso estamos alterando a descrição: Dimensão part. Indiv. (Line Item Dimension): Dimensão com apenas um Infoobjeto e com grande quantidade de linhas. Marcamos essa dimensão como sendo “Line Item”. Dessa forma, o BW vai utilizar como link entre essa dimensão e a tabela fato, diretamente o SID da característica, e não mais o DIM-ID. Exemplo: Dimensão com número de documento de vendas (Veja Relação entre tabela Fato e Dimensões) Cadinalidade Elevada: Dimensão com mais de uma característica (Infoobjeto) e com grande quantidade de linhas (Quase mesmo que a tabela fato). O BW vai utilizar outro tipo de indexação para essa dimensão, caso o banco de dados aceite. Exemplo, uma dimensão contendo Cliente e Produto. 44 Treinamento SAP-BW A inclusão de objetos pode ser feita através de Drag and Drop (Arrastar e soltar): ... ou ainda inserindo manualmente: “Entrada direta Infoobjetos”. É bastante prático quando se tem certeza do nome do Infoobjeto: Relacione os objetos que deseja incluir na dimensão e tecle Enter: 45 Treinamento SAP-BW Tendo como base o Cubo que estamos utilizando em nossos exercícios, a imagem abaixo demonstra como deve ser sua estrutura: Lembrando: Na imagem acima em destaque, estão marcados os atributos de navegação dos Infoobjetos CA_CLIEXX e CA_FILMXX. Se não ligarmos, não estará disponível na query. 46 Treinamento SAP-BW Tabelas geradas para um Cubo Como todo objeto criado, um cubo também tem suas tabelas para trabalhar. Podemos verificar quais são, por exemplo, através da transação SE11, SE16 ou SE80 (Dicionário de dados). Na imagem abaixo estamos utilizando a SE11. Colocamos o nome técnico do cubo entre *, e apertamos F4 ou o botão em destaque na imagem acima. Assim temos acesso a todas as tabelas. Que são: Uma para cada dimensão Uma para package (Que controla a carga de dados, gerando um ID para cada uma) Uma para Unidade (que só faz sentido quando temos objetos que necessitam de identificar sua Unidade) Uma para tempo Uma tabela F, Fato sem compressão Uma tabela E, que é a tabela fato após a compressão, veremos essa parte em Administração, mas basicamente, na compressão, o número do ID do package é ignorado e também podemos eliminar registros com todos os valores zerados. Isso vai da tabela F para E Podemos utilizar no máximo 13 dimensões, porque 3 são de uso exclusivo do BW (Tempo, Unidade e Pacote). 47 Treinamento SAP-BW Nessas transações, você pode ver o conteúdo dessas tabelas: E a quantidade de registros também: 48 Treinamento SAP-BW Relação entre tabela Fato e Dimensões: Para entender um pouco melhor, veja na imagem abaixo, como o BW faz o relacionamento entre as Dimensões e a tabela Fato central: Tem uma chave chamada DIM-ID para cada combinação em uma determinada dimensão. Mas podemos ter também diretamente o SID, exemplo da dimensão “Documentos” onde tem apenas o Infoobjeto “Fatura”. Teremos um DIM-ID para cada combinação de “Cliente, Banco e Forma de Pagamento”. Com isso o BW filtra os dados transacionais. Produtos Clientes Material Grupo Planta Cliente Forma Pagto Banco DIM-ID Clientes DIM-ID Produtos SID Documentos Quantidade Valor Documentos Fatura (Line Item) No caso de atributos de navegação, o BW vai precisar fazer uma leitura a mais, porque através do DIM-ID chega até a dimensão, depois precisa selecionar a informação de um atributo a partir do SID da característica que está na dimensão. Por exemplo, se o “Grupo” fosse um atributo de navegação de 0MATERIAL: 49 Infoobjeto Material Infoobjeto Grupo SID Material SID Grupo Treinamento SAP-BW Criação de uma DSO Standard Para criarmos uma DSO, utilize o botão direito sobre alguma Infoarea (Dentro do menu Infoprovider) e escolha criar “objeto DataStore”. Parece ser uma simples tabela, mas sua utilidade vai além da simples função de armazenar dados. Nome Técnico e uma descrição: 50 Treinamento SAP-BW Na tela de criação é bastante simples. Na parte da esquerda você seleciona o catálogo, cubo, outra DSO, ou seja, de onde vamos buscar os Infoobjetos. Você tem duas opções para mover os Infoobjetos, ou para a pasta de Campos-chave ou para a pasta Campos de dados. Atenção: A pasta Índices, não são onde devem ser colocadas as Keyfigures. Nessa pasta podemos criar índice de bando de dados para melhorar a performance em caso de leitura para criação de Queries. Normalmente criamos índices secundários, onde os campos não são chave (Porque para os campos chave, já vai existir índice) 51 Treinamento SAP-BW Você pode fazer o Drag&Drop da esquerda para direita ou também escolher “Entrada direta de Infoobjetos” (Como na criação de um Cubo). Prático, se você conhece o nome técnico dos objetos que quer inserir: Digite ou Infoobjetos e escolha Enter para transferir (Em destaque na imagem abaixo): 52 Treinamento SAP-BW Com base no modelo de nossa DSO para BW Vídeo, teremos o seguinte objeto criado ao final do exercício: Para evitar mensagens de aviso no momento da criação de uma transformação para a DSO, você pode acrescentar o infoobjeto Standard 0RECORDMODE eu sua DSO. Esse objeto é padrão e também fornecido pelo Business Content em DSO. A conexão com esse infoobjeto é feita pelo campo ROCANCEL, que vem dos datasources (Extratores) no ECC (Transação SBIW). É algo transparente para o desenvolvedor ou usuário. Algumas combinações de valores ajudam o BW a tratar devidamente os registros que serão gravados nas tabelas de dados ativos e log de modificação. Veja em documentos adicionais “Record Mode Concept in Delta Management.pdf ”. 53 Treinamento SAP-BW DSO Standard – Funcionamento das tabelas: Para entender melhor como é a carga de uma DSO standard, veja o esquema abaixo. Sempre estarão envolvidas 3 tabelas. Duas são idênticas a que você criou, e a outra (Log de modificação) tem os mesmos campos e alguns campos de controle a mais. Esse primeiro esquema demonstra uma carga inicial: A figura abaixo representa uma segunda carga, onde foi feito uma alteração no registro. Isso deve refletir no BW. Sempre ao final de uma carga de dados com sucesso, a DSO de dados novos é limpa e fica sem nenhum registro. Na DSO de dados ativos ficamos com o registro mais atual. A tabela de log é muito importante, pois mantém todo histórico e além disso, é a partir dessa tabela que o BW alimenta os demais objetos que têm como origem de dados uma DSO. Por isso a tabela de log inverte o sinal do registro antigo, justamente para zerar o valor que estava carregado e atualizar com o valor atual: 54 Treinamento SAP-BW Parâmetros de configuração de uma DSO: Geração de IDS dados mestre na ativação: Já vem como padrão. O BW irá gerar um SID para os dados mestres caso não exista. Isso é utilizado apenas se você for criar queries nessa DSO, se for apenas para staging área (ou uma camada em sua arquitetura), você pode desmarcar isso. Registro de dados unívocos: Marque apenas se essa DSO for receber sempre registros novos e nunca repetidos. Se marcado, na chegada de um registro duplicado você irá receber um erro Definir automaticamente o status de qualidade: Após a carga, define o status como OK em caso de nenhum erro. Deve ser marcado, pois sem o status de completo sem falhas, não se consegue ativar os dados, ou seja, passar da tabela de dados novos para ativos. Ativar dados automaticamente: Passar os dados da tabela de registros novos para a de dados ativos automaticamente. ATENÇÃO: Isso não adianta se você utilizar o fluxo de dados da versão 7.X, mesmo com o flag ligado, ainda temos que ativar utilizando um processo do Process Chain ou mesmo clicando com botão direito na DSO e escolhendo ativar dados. Atualizar dados automaticamente: Se você marcar esse flag e existir algum outro Infoprovider (DSO ou Infocubo) que carrega dados a partir de sua DSO, o processo fica automático. Ativou na DSO, passa para a carga dos infoproviders acima do fluxo de dados. 55 Treinamento SAP-BW Tipos de DSO e suas funções: Existem outros dois tipos de DSO. No momento da criação definimos o tipo clicando em Configurações: Veja as características dos outros dois tipos: Write Optimized • Foi desenvolvida para o nível de arquitetura de sistema e tem a vantagem de cargas mais rápidas. Não tem o processo de ativação de dados novos para ativos. Direct Update • Antiga ODS transacional. Este tipo de DSO é carregada por serviço API (Application Program Interface) e pode ser lida via BAPI. A utilização é feita para que seja possível vários usuários entrarem dados diretamente. Logo após o dado já está disponível. De longe, a menos utilizada das DSOs. 56 Treinamento SAP-BW Criação de um Multiprovider Um Multiprovider não possui dados. É como uma View de tabelas, mas nesse caso, permite fazer operações de UNION entre Infoproviders. Veja na imagem abaixo, dois Infoproviders: Repare que temos características em comum (Isso não significa necessariamente, os mesmos Infoobjetos). Veja que no Cubo BW Vídeo o objeto para Filme é CA_FILMXX, já do Cubo com dados de um concorrente, chama-se CA_CONFIL. Isso não é problema, tem que ter apenas o mesmo formato: Para criação, na RSA1 na guia de Infoproviders. Clique com botão direito em uma Infoarea e escolha “Criar Multiprovider” 57 Treinamento SAP-BW Escolha o nome técnico e uma descrição: Na próxima tela, vamos escolher os objetos que farão parte do Multiprovider (No exemplo, vamos selecionar dois Cubos básicos): Veja que é possível selecionar Níveis de agregação utilizados na parte de Planejamento (Na verdade nível de agregação é um tipo de Infoprovider também, como um subset de um Cubo). Para maiores informações veja “BI-Integrated Planning” 58 Treinamento SAP-BW Depois de selecionar os objetos, escolha o botão Enter para iniciarmos a estruturação do Multiprovider: Criamos as dimensões normalmente e também inserimos os objetos, como um Infocubo regular, nada muda (Você pode escolher objetos de qualquer infoprovider que você selecionou, eles aparecem do lado esquerdo): 59 Treinamento SAP-BW Como na criação de um Cubo regular, podemos criar nossas dimensões (Máximo também de 13): Movimentar os objetos nas dimensões ou na fato (Índices): 60 Treinamento SAP-BW Finalizada a criação da estrutura de nosso Multiprovider, com base nos dois Cubos, teremos a seguinte definição. Veja que não vamos utilizar todas as dimensões, por exemplo, Clientes. O que vamos conseguir comparar entre a informação de nossa Locadora com a Concorrente é: Filmes, Período, Produtos, Mídia e Dia da Semana. Também vamos comparar apenas valores e não quantidades. 61 Treinamento SAP-BW Um ponto que de grande diferença entre um Multiprovider e outro Cubo qualquer é que temos necessariamente que identificar de onde o Multiprovider irá recuperar as informações. Para tanto, vamos clicar com botão direito em um dos infoobjetos e escolher “Identificar (atribuir)” Então, vamos informar, por exemplo, que 0CALMONTH, será preenchido pelo Infoobjeto 0CALMONTH existente nos dois Infoproviders que estamos fazendo a união: 62 Treinamento SAP-BW E assim, infoobjeto por infoobjeto. Um detalhe para Filme e Produto. Veja que o source não é o mesmo objeto. No Cubo da concorrência, o nome é outro. Não há problema, desde que tenha o mesmo formato e indiquem a mesma característica referente ao negócio: Veja também que podemos ou não ativar os objetos de navegação no Multiprovider. Se ativarmos, também teremos que informar de onde serão lidos. 63 Treinamento SAP-BW Se você esquecer-se de identificar alguma característica ou keyfigure, o seguinte erro é apresentado: Corrigido o problema, basta ativar e está pronto. Para um Multiprovider, também podemos exibir o Fluxo de informação (Utilize o botão direito sobre o Multiprovider e escolha a opção “Exibir Fluxo de dados”) 64 Treinamento SAP-BW Criação de um Infoset Enquanto um Multiprovider é uma operação de UNIÃO. Um Infoset é uma operação de JOIN (Inner ou Outer). Para criação, clicar com botão direito sobre um Infoarea e escolher “Criar Infoset”: Na criação, você já indica um objeto para fazer parte do Infoset. Nesse exemplo, a idéia é identificar quais os filmes que nunca foram locados. Para isso precisamos dos dados Transacionais (Cubo ou DSO) e também todos os dados mestres de todos os Filmes. Quem tem essa informação é o Infoobjeto CA_FILMXX No exemplo, vamos trabalhar com os dados do Cubo, iniciamos a criação informando esse Infoprovider como base: 65 Treinamento SAP-BW Agora, vamos inserir o infoobjeto que possui o cadastro de todos os filmes: CA_FILMXX. Se necessário, utilize as ferramentas para localizar e tornar mais rápido o desenvolvimento: Selecionado o objeto, vamos arrastar para o lado direito: 66 Treinamento SAP-BW Vamos ter o Cubo e um Infoobjeto em nosso Infoset. A ligação será através do Código do filme (Que é o que temos em comum). Com o “JOIN”, temos o seguinte: Apenas o que existe nos dois objetos. E não ajuda o nosso caso. FILMES QUE FORAM LOCADOS E ESTÃO NO CUBO/DSO FILMES CADASTRADOS Logo, para resolver o problema do exemplo (Filmes em catálogo nunca locados), vamos utilizar „LEFT OUTER JOIN‟: Para conseguir selecionar todos os filmes em catálogo (que estão no infoobjeto) e completar, se existir, com dados do Cubo. Em azul, é o conjunto que queremos: FILMES QUE FORAM LOCADOS E ESTÃO NO CUBO/DSO FILMES CADASTRADOS 67 Treinamento SAP-BW Veja que do cubo, precisamos apenas do código to filme e a quantidade de títulos como Keyfigure. Porque no resultado (Query), os filmes que tiverem quantidade de títulos igual a Zero e apenas o Preço de Aquisição (Atributo de Filmes), é porque nunca foram locados. Essa é a idéia nesse nosso exemplo. Faça a ligação: 68 Treinamento SAP-BW E com o botão direito sobre o Infoobjeto, você altera o tipo de Join: Repare que a cor, irá mudar: Basta ativar o Infoset. 69 Treinamento SAP-BW Criação de um Remote Provider (Virtual Cube) Da mesma forma que outro Infoprovider, utilizamos o botão direito sobre uma Infoarea e escolhemos “Criar RemoteProvider” Um cubo Virtual não possui dado e apenas seleciona a informação quando solicitado. Então, procure utilizar com cuidado. Se o volume de informação é grande, número de usuários concorrentes for elevado ou ainda se o sistema fonte não for tão rápido, sua query pode ficar comprometida. Para o nosso exemplo, vamos utilizar um arquivo CSV com pouco mais de 6.000 linhas e com os seguintes campos: 70 Treinamento SAP-BW Definimos o nome técnico e uma descrição. Na primeira tela também definimos como será a seleção de dados, ou seja, como o Remote cube vai recuperar a informação, através de qual mecanismo. Podemos utilizar 3 tipos DTP (Podemos utilizar com acesso a infosource da versão 3.X do BW) BAPI (Business Application Programming Interface) Módulo de função Para utilizar via BAPI ou Módulo de função, temos que ter bons conhecimentos de ABAP, assim, no exemplo vamos criar com base em um DTP. A criação do cubo é exatamente igual ao Cubo Standard: Dimensões, inserir Características, Keyfigures, etc. Com base no dado que vamos carregar nesse exemplo, teremos a seguinte estrutura: 71 Treinamento SAP-BW Agora vamos ver as diferenças que existem para esse tipo de Infoprovider. Datasource: A criação é igual. Apenas temos que informar que o datasource será de acesso direto. Isso é feito no momento da criação. A aba onde você encontra isso irá variar, dependendo do tipo de datasource (Standard, CSV, etc.). Lembrando que o Infopackage também é necessário. Execute o Infopackage para que o dado chegue até Datasource. Veja que você pode schedular (Agendar a execução do Infopackage para cada 20 minutos, por exemplo) Agora, criamos uma transformação entre o Virtual Cube e o Datasource, como normalmente é feito: 72 Treinamento SAP-BW Em seguida, criamos a DTP, veja que o tipo é automaticamente “DTP para acesso direto”. Ative a DTP e a conexão com o source está pronta. O Cubo não possui dados, não temos nem a opção de Administrar que encontramos nos demais. Para visualizar, você pode criar uma Query, ou simplesmente utilizar a transação RSRT, coloque como Query o “Nome do Cubo/!Nome do Cubo” e execute: 73 Treinamento SAP-BW Resultado: Compare com a informação do Arquivo texto: 74 Treinamento SAP-BW Infoobjeto Característica com acesso Remoto aos dados mestres Também é possível acesso direto a dados mestres. Para tanto, temos que alterar o comportamento do acesso ao dado mestre do Infoobjeto. Para isso, altere o Infoobjeto na aba “Dados mestre/textos”. Na parte inferior, mude Acesso dados mestre para “Acesso direto”. Atenção: O Infoobjeto, também deve estar inserido como um Infoprovider Você tem que criar as conexões com os dados mestres também, ou seja, o processo de carga tem que ser de acesso direto, como no Cubo. 75 Treinamento SAP-BW Processo de ETL - Criar/Ativar/Replicar Datasource Até aqui, criamos os nossos objetos, mas ainda não efetuamos nenhuma carga de dados. É o que vamos ver a partir de agora. O primeiro passo é obter o Datasource. Temos 3 opções básicas. Vamos ver cada uma. Depois de o datasource existir, o fluxo de dados acima é igual ao da imagem acima. 76 Treinamento SAP-BW Criação do datasource a partir de um arquivo texto Transação RSA1, na guia Datasources, altere para o source system PC FILE ou um que você tenha para carga de dados via arquivos texto. Em nosso exemplo, PC_FILE Botão direito em um componente de aplicação e escolha Criar datasource: 77 Treinamento SAP-BW Escolha um nome técnico para seu datasource e também o seu tipo (No exemplo, vamos carregar dados transacionais) Escreva uma descrição para esse datasource na guia informações gerais: 78 Treinamento SAP-BW Na guia extração, vamos buscar o arquivo a ser utilizado como modelo: É aqui também que iremos definir o separador dos campos, se existe linha de cabeçalho, se o arquivo é local (Apenas processamento on-line) ou se o arquivo está no servidor (Nesse caso, permite processamento em background). No exemplo da imagem abaixo, o arquivo está local. 79 Treinamento SAP-BW Em proposta, escolha o botão para carga de dados para servir de exemplo. Revise o tamanho e a categoria que foram identificados automaticamente para evitar problemas: Veja que na guia „Campos‟, temos praticamente o formato pronto. Em destaque o campo “Seleção”. Utilize esse campo para indicar se você vai desejar fazer alguma seleção para algum ou alguns campos de seu datasource (Exemplo,carregar apenas filial “ABC”): 80 Treinamento SAP-BW Em previsão, praticamente para verificar os dados. Ative e está pronto seu datasource via arquivo texto (Flat-File). 81 Treinamento SAP-BW Criação do datasource Genérico Algumas vezes é necessário criar um datasource customizado para atender as necessidades do negócio, por exemplo, carregar uma tabela “Z”. Para isso, utilizamos a transação SBIW (Existe tanto no BW como no ECC). Nesse caso, vai depender de onde está a fonte desse datasource genérico. Transação SBIW vamos em Datasources genéricos e executar Atualizar Datasource genérico: Escolha o tipo de seu datasource: Texto, Atributo ou Transacional. Dê um nome para seu datasource na linha correspondente e clique em Criar: 82 Treinamento SAP-BW Na tela seguinte temos diversas informações. Preencher e após isso clique em Salvar. Delta genérico: Como você está criando o datasource, o controle de delta deve ser feito por você. Esse botão é para você indicar qual campo será utilizado como delta (Deve ser algo que não se repita, por exemplo, um campo tipo Timestamp (Onde temos a data e também horário em um só campo). Se você não tem nenhum campo, deixe sem escolher e faça um controle de delta já no BW utilizando uma DSO. Podemos criar um datasource com base em Função, Visão ou Query. Para utilizar uma função existe um modelo que deve ser seguido: RSAX_BIW_GET_DATA_SAMPLE (Transação de funções é a SE37). Para maiores informações, digite “F1” onde temos o espaço para colocar o nome da função, lá existem pequenas orientações. 83 Treinamento SAP-BW A estrutura do datasource é criada (com base nos campos de uma tabela, dados da estrutura utilizada em uma função ou query). Você ainda pode escolher alguns campos para pode fazer a seleção no momento da carga (No Infopackage). Para testar, você pode utilizar a transação RSA3, aqui você consegue simular uma extração. 84 Treinamento SAP-BW O Datasource agora precisa ser replicado. Para isso, utilize a transação RSA1 e vá para Sistema fonte. Escolha a conexão com o ambiente onde você criou o seu datasource para replicar: O datasource está pronto para ser utilizado e está reconhecido no BW. 85 Treinamento SAP-BW Ativar um datasource do Business Content Esse é o mais simples, caso atenda a necessidade do negócio. Nesse caso, o datasource necessita apenas ser ativado no sistema fonte e replicado no BW, a estrutura já existe. No sistema fonte, utilize a transação SBIW para ativar um datasource e no BW vá até source system para replicá-los. Veja como fazer. No sistema Fonte, utilize a transação SBIW. Com ela você tem acesso ao business Content de Datasources separado por área Após a ativação, o datasource está pronto para utilização, mas precisa ser replicado no BW, ou seja, o BW precisa reconhecer esse datasource. Transação RSA1 em Modelagem vá até Sistema fonte e escolha a ligação com o sistema fonte que possui o seu datasource. Escolha então Replicar Datasources: O datasource está pronto para ser utilizado e está reconhecido no BW. DICA: No tópico “Ampliação de Datasources (Quando sua tabela tem campos “Z” / “Y”)” veremos como resolver problemas em que o Datasource do Business Content não atende totalmente o negócio. Veremos como ampliar e criar o ABAP de preenchimento dos campos ampliados. Com o datasource criado ou replicado, o procedimento de carga é o mesmo, com poucas diferenças de opções em alguns dos objetos envolvidos (Infopackage, Transformação, Procedimento de transferência de dados [DTP]). Porque vai depender do tipo e também os recursos de seu extrator (datasource). Por exemplo, se permite delta ou não, acesso direto ou não, se está separado por vírgulas, etc. No exemplo, vamos utilizar um arquivo CSV, mas se aplica para qualquer outro. 86 Treinamento SAP-BW Processo de ETL – Datasource já está pronto Utilize a transação RSA1 e vá à guia de Datasources. Encontre o datasource (Criado ou Replicado). Clique com botão direito e comece criando o Infopackage: Escolha uma denominação e clique em gravar para iniciar a configuração: 87 Treinamento SAP-BW Em sua guia “Seleção de dados” só vai existir algum campo se você configurou isso previamente no seu datasource: A guia extração só existe para arquivos texto. Basicamente virá preenchido baseado em seu datasource. 88 Treinamento SAP-BW Em processamento, você define como quer fazer a carga: Nesse caso, arquivo texto, apenas carga completa: Em caso de Carga através de um extrator que permite Delta, você pode encontrar as seguintes opções: Carga Completa Inicialização do processo delta é como um ponto de corte onde a partir daquele momento o BW+ECC irá ter o controle de registros novos e alterados para as cargas seguintes Carga Delta, não está na imagem, mas estará disponível após uma inicialização do processo delta correta 89 Treinamento SAP-BW Em “Escalonar” você pode criar um processo (Job) regular (que rode todos os dias em um determinado horário) ou executar imediatamente de forma manual. Os Infopackages com execução em background são os que podem ser incluídos em Process Chains. Após execução, use o botão de monitoramento para acompanhar a carga e ver se houve sucesso ou falha: 90 Treinamento SAP-BW Após a carga, você pode ver o conteúdo da PSA. Para isso, clique com botão direito no Datasource e escolha Administrar. Clique na requisição que deseja marcando a linha do lado esquerdo e clique no ícone do PSA, em destaque na figura abaixo: Veja que é possível eliminar requisições. O processo de eliminar registros do PSA deve ser feito regularmente e pode ser automático através de Process Chain. Você é quem define quanto tempo uma carga deve permanecer no PSA depois de ter sido concluída com sucesso. 91 Treinamento SAP-BW Próximo passo é a transformação entre o seu Datasource e o Target (Infoprovider). Clique com botão direito no Datasource e escolha criar transformação: No exemplo, vamos enviar dados do datasource para uma DSO (Muita atenção nesse ponto). 92 Treinamento SAP-BW Faça as conexões necessárias. Aqui você pode utilizar ligação direta com a fonte, uma fórmula, uma rotina ABAP mais complexa, fazer um look-up em dados mestres de outro Objeto, etc. Em documentos adicionais, na pasta ETL temos dois bons exemplos de rotinas. Será muito difícil encontrar algum tipo de transformação que você não consiga implementar aqui. Lembrando que Infoobjetos de tempo (0CALDAY, 0CALMONTH, 0CALYEAR, etc) são convertidos entre si automaticamente, ou seja, você pode conectar uma data completa (DD/MM/AAAA) para um infoobjeto que tem apenas o ano, sem problemas. Caso você esteja criando uma transformação para uma DSO sem o Objeto 0RECORDMODE, você será alertado, isso não é um erro. 93 Treinamento SAP-BW Criação da DTP. Também clicando com botão direito no Datasource, escolhemos agora Criar processo transferência de dados Praticamente, temos tudo automático, devido à ordem que criamos: 94 Treinamento SAP-BW Você normalmente não precisa fazer alteração alguma, com poucas exceções (Fine tuning de performance durante cargas). DTP de erro é utilizada para encaminhar os registros incorretos para outra PSA, não interrompendo a carga totalmente. Assim você pode trabalhar os registros incorretos e enviar ao final através da DTP de erro para o destino final. O ideal é corrigir o problema na raiz, mas em caso de alto volume de registros, sua utilização é muito bem vinda. 95 Treinamento SAP-BW Basta então executar a DTP para finalizar o processo. Veja todas as formas de execução: 96 Treinamento SAP-BW Em depuração, temos possibilidade de efetuar pontos de parada específicos e analisar o conteúdo do dado ou alguma rotina criada. Após execução da chamada, você pode monitorar a DTP, ao receber a mensagem abaixo escolha Sim. Ou, sempre se pode utilizar o botão de monitoramento: 97 Treinamento SAP-BW Tudo dever estar ok, para sucesso, veja abaixo a imagem do monitor: Alguns atalhos do Monitor: PSA Ver o Target Se você criou um procedimento para tratar erros Esse botão irá apresentar o job executado no processo 98 Treinamento SAP-BW Aspectos referentes ao objeto DSO: Ativação da requisição. Após a carga de uma DSO no formato 7.X, temos que manualmente ativar a requisição, ou seja, enviar de dados Novos para dados Ativos (Lembrando que isso normalmente é feito automaticamente em Process Chain). Para chegar na tela abaixo, clique com botão direito na DSO e escolha Administrar: Após ativação, veja que já temos o número da requisição: 99 Treinamento SAP-BW Lembrando que após a ativação, você irá ter informação nas tabelas de LOG e dados ATIVOS. A tabela de dados novos estará vazia. 100 Treinamento SAP-BW Processo de ETL – Entre objetos do BW Carga entre Objetos do BW, muito comum. Onde a fonte e o destino, estão no próprio BW. Veja que infoproviders geram Datasource, iniciando com o número 8. Exemplo, seu Object DataStore tem o seguinte nome: DS_ALUXX, automaticamente, temos o seguinte datasource para utilização: 8DS_ALUXX Quer localizá-lo? Você pode ir até Datasources (Dentro do Administrator Workbench – RSA1), escolha corretamente o sistema fonte, no caso, será o BW (Algumas vezes chamado de Myself Connection) Localize o datasource: Dica: O símbolo ao lado do ícone de datasource, indica objetos de versões anteriores a 7.X. Você pode migrar esses datasources, basta clicar com botão direito e escolher “Migrar” 101 Treinamento SAP-BW Escolha “S/Exportação”, caso não pense em desfazer a migração. Se houver necessidade futura de voltar para versão anterior, então escolha “C/Exportação”. Porque Migrar? Com essa ação você consegue efetuar o processo de carga no modelo novo, com Transformação e DTP. O modelo antigo era feito com Regras de atualização e Infosource (Estruturas de Comunicação e Regras). Agora, a transformação a partir da DSO para o Cubo. Não é necessário fazer a partir do datasource, você pode clicar com botão direito na DSO e escolher criar transformação. Indique o destino, no caso um Cubo 102 Treinamento SAP-BW Veja que entre Infoproviders do BW com os mesmos Infoobjetos, algumas regras já estarão prontas. E finalmente o DTP. Botão direito, agora no ícone da pasta de DTP e escolha criar processo transf. Dados: 103 Treinamento SAP-BW Um modelo bastante comum: DSO -> CUBO. Clique com botão direito sobre o cubo e veja Fluxo de Dados graficamente: 104 Treinamento SAP-BW Ampliação de Datasources (Quando sua tabela tem campos “Z” / “Y”) Quando um extrator standard atende, o processo fica bem simples, ativamos via SBIW no sistema que será o fonte e depois replicamos no BW. Agora, em alguns casos, temos que customizar o extrator, ora devido a campos adicionais ou mesmo para aplicar alguma regra durante a carga. Sempre o primeiro passo é ativar o datasource. Com isso feito, ainda na SBIW, vamos escolher a opção Processamento posterior de Datasources Localize o extrator (datasource). No exemplo, vamos executar a função “Ampliar estrutura extração” do datasource 0FI_AR_3 (ou colocar campos adicionais). 105 Treinamento SAP-BW O BW já vai propor um nome para nossa estrutura. A partir desse ponto, é bom ter algum conhecimento de ABAP ou solicitar a ajuda de alguém, estamos criando os campos de nossa estrutura, exatamente os campos que não existem no extrator, logo, ao final, se o extrator standard tinha 10 campos e a nossa estrutura append (ampliação) tem 4. O total de campos do nosso extrator modificado, tem 14 campos. Crie todos os campos necessários, sempre começar com YY ou ZZ. No exemplo, nossa estrutura adicional tem 5 campos. O que devemos levar em consideração é que o datasource original deve trazer pelo menos um campo com o qual iremos utilizar para preencher os demais via SELECT em alguma tabela. A não ser que o seu campo adicional seja apenas cálculos baseado em campos que já existam no extrator e você nem precise utilizar um SELECT na função que iremos criar para preencher os campos adicionais. ATIVE SUA ESTRUTURA !! 106 Treinamento SAP-BW Todos os campos que criamos como adicionais permanecem ocultos para o BW e para qualquer exit que utilizamos. Teremos que alterar esse argumento no DataSource. Selecione novamente o DataSource e escolha o botão Alterar: Desmarcar o flag “Ocultar Campo” e Salvar. Todos os campos ampliados não serão preenchidos automaticamente, uma ampliação de estrutura vai levar sempre à utilização de uma Exit ABAP para preencher esses novos campos. Se não desmarcamos os campos criados, não teremos acesso em nossa rotina na Exit. É muito importante a Estrutura de Extração, no caso: DTFIAR_3 para a especificação do ABAP. O programador terá que saber em qual estrutura seu código será baseado. 107 Treinamento SAP-BW Falta agora, preenchermos os campos criados no momento em que o programa de extração estiver preenchendo os campos standard. Utilize a transação CMOD para ativar as Exits (Caso não esteja ativo). Novamente, solicite um ABAP para o apoio. A especificação dos campos e de onde pegar, deve ser feita pelo funcional BW. Nome do Enhancement: RSAP0001 Componentes: EXIT_SAPLRSAP_001: Exit na carga de dados de movimento, transacionais EXIT_SAPLRSAP_002: Exit para carga de dados mestres e textos EXIT_SAPLRSAP_003: Obsoleta EXIT_SAPLRSAP_004: Exit para carga de Hierarquias Apenas para exemplificar o que é uma EXIT: 108 Treinamento SAP-BW O exemplo que veremos é com a 001, para dados transacionais., crie o include ZXRSAU01 (Caso não exista) Abaixo segue o exemplo do código. Cada função deverá pertencer a um grupo de funções e para cada DataSource criar uma função. Veja que para identificar cada carga, utilizamos o nome do DataSource que vem no parâmetros I_DATASOURCE. Atenção, existem várias formas de se trabalhar com exits, você pode fazer seu programa em um Include ou até mesmo diretamente na exit. O problema de trabalhar diretamente no Include da exit é que você bloqueia para outras pessoas que também possam estar trabalhando em uma exit para outro extrator. 109 Treinamento SAP-BW Dentro da função vamos preencher todos os campos adicionais e se necessário alterar qualquer campo standard, temos acesso a todos. A tabela C_T_DADOS e onde a funções vai receber os registros que o extrator já selecionou. Teste seu código via transação RSA3, onde você coloca o nome de seu datasource e pode “debugar” a extração. Se estiver tudo Ok, replique o datasource e depois seguir os mesmos procedimentos de um extrator normal. 110 Treinamento SAP-BW Atributos com Dependência de tempo – Exemplo de Funcionamento Vamos ver duas técnicas de como tratar a questão de mudança de valores em atributos. Um Cliente de nossa locadora (Cliente 112) estava em MG e veio para SP. Mudando o valor do seu atributo “Estado” (Que é marcado como dependente de tempo): A primeira diferença está na transformação durante a carga dos dados mestres do Infoobjeto. Repare que temos mais dois objetos por conta do controle de tempo para o atributo Estado: 0DATETO e 0DATEFROM. Normalmente, sendo um datasource standard, esses valores já serão fornecidos. No case do exemplo, estamos utilizando arquivo CSV, vamos assumir: 0DATETO = 31.12.9999 0DATEFROM = Hoje (Via fórmula = SYST-DATUM) 111 Treinamento SAP-BW Para conseguir demonstrar as duas técnicas de modelagem com relação a mudança de atributos com o passar do tempo, vamos fazer uma alteração no Cubo. Vamos acrescentar uma nova dimensão chamada Região. Incluindo o infoobjeto CA_UFXX nessa dimensão. Veja que vamos ter um atributo de Navegação Região e também um infoobjeto Região diretamente em uma dimensão: 112 Treinamento SAP-BW Agora no momento da carga, eu vou gravar nesse infoobjeto o atributo que está no Cliente: 113 Treinamento SAP-BW Vejamos a situação do cliente “112”. Estava em MG e durante muito tempo fez locações lá. Assim todas transações para o Cubo, ficaram da seguinte forma. Tanto o atributo de navegação quanto o infoobjeto na dimensão com o mesmo valor: Dados Mestres Dados Transacionais: Agora, ocorre a mudança para SP. O cliente “112” fica então com essa situação. Dados Mestres (O BW atualiza o registro antigo): Dados Transacionais: 114 Treinamento SAP-BW Nesse momento, podemos demonstrar dados históricos de duas maneiras: Utilizando o atributo de navegação dependente do tempo Na query, vamos utilizar uma variável que será utilizada para recuperar dados dependente de tempo: No momento da Execução da query, entramos com o valor dessa data, por exemplo: 01.03.2011. O BW vai verificar qual era o valor do atributo válido para aquele momento, ou seja, ainda era MG. 115 Treinamento SAP-BW Já escolhendo 23.12.2011 (ou posterior), temos os valores mais atuais, que é SP: Observação: Estamos utilizando uma varíavel em que o usuário entra com a informação. Podemos utilizar uma variável da SAP que retorna automaticamente o dia de hoje. Mas aí o usuário perde essa flexibilidade de ver a situação em diferentes momentos. Utilizando o infoobjeto CA_UFXX que colocamos na dimensão Nesse caso, é necessário apenas utilizar esse Infoobjeto em sua Query, ao invés de utilizar um atributo de navegação. Esse Infoobjeto como colocamos, sempre vai guardar o valor histórico do atributo. 116 Treinamento SAP-BW Planejamento – BI-IP (Integrated Planning) Criar Cubos de Real Time Access Nome Técnico, descrição e marque a opção “real-time”: Clique em criar: Veja que o ícone de identificação é outro para Real time cubes: A criação é como a de um Infoprovider standard. No exemplo, até utilizamos como modelo um Cubo existente e apenas vamos excluir o que não queremos. Isso deixa o processamento mais rápido. 117 Treinamento SAP-BW Para Infoprovider do tipo Real time existe a possibilidade de receber cargas regulares (via processo de carga) ou permitir a entrada direta de dados (Via Web ou Excel). Para modificar o comportamento, clique com botão direito sobre o cubo e escolha “Características específicas planejamento” -> “Modificar comportamento carga em tempo real”: Para trabalhar com entrada manual de dados através de uma Query (Web/Excel), marque a segunda opção: Não permitir carregamento dados. Se desejar efetuar alguma carga, escolha a primeira opção. Por exemplo, carga dos dados históricos para servir como base do planejamento. É possível criar funções e aplicar por exemplo 5% na base e apenas revisar o planejamento. Faça a carga e depois volte para a segunda opção, do contrário, o usuário não poderá entrar com dados. 118 Treinamento SAP-BW A transação de criação de todo processo é a RSPLAN (BI Integrated Planning). Também existe uma opção de execução através da WEB, e o usuário não necessita utilizar o SAP-Gui, mas são as mesmas opções apresentadas aqui: A tela seguinte é a principal e de onde vamos fazer a criação de todos os itens necessários para que seja possível a entrada de dados em um Infoprovider Real Time O infoprovider IC_IPXX é o Infoprovider tipo Real time que críamos, logo, tudo mais será criado com base nesse Infoprovider. Por exemplo, no nível de agregação, vamos movimentar apenas Infoobjetos desse Infoprovider: 119 Treinamento SAP-BW Nível de agregação: Nada mais é que um novo tipo de Infoprovider e serve para selecionarmos as características e keyfigures para o processo de planejamento. Como um subset do Infoprovider Real time. Filtros: Serve para restringirmos os valores possíveis para entrada no planejamento. Por exemplo: Um grupo de contas Função de Planejamento: Aqui podemos escrever rotinas em uma linguagem chamada FOX (Formula Extention). Para validação de entradas, pequenos cálculos que ajudam o planejador, etc. Um exemplo,pode ser que a próximo valor, como default, deve ser o anterior com acréscimo de 5%. Esse tipo de cálculo podemos fazer em FOX. Funções Standard Formulas (FOX) Exits Complexidade, Funcionalidade Seqüência de Planejamento: Em uma seqüência de planejamento, agrupamos funções de planejamento, passos que deverão ser processados para um planejamento correto. Você pode adicionar Seqüência de planejamento em Process Chain. 120 Treinamento SAP-BW Vamos criar um nível de agregação: Nada mais é que um novo tipo de Infoprovider, utilizado para planejamento. 121 Treinamento SAP-BW Selecione os objetos que serão utilizados no Planejamento. Vamos utilizar como exemplo, valores para dia da Semana e Ano civil/Mês: Repare que é como a criação de um Cubo e é sempre com base em outro Infoprovider. Basta ativar 122 Treinamento SAP-BW Embora não seja obrigatório, vamos ver as demais possibilidades que envolvem o planejamento: Repare que vamos criar um filtro para um Nível de agregação. A idéia no exemplo é dar a opção de planejamento apenas para a segunda-feira: Restrição: Os valores que você colocar aqui são os valores que o planejador terá acesso. Valores Propostos: Valores propostos poderão ser trocados durante o planejamento. Mas por exemplo, estamos em um tempo de planejar para o ano de 2013. Como valor proposto coloque 2013 e quem está entrando com as informações, não necessita digitar todas as vezes 123 Treinamento SAP-BW Veja que nada mais é que restringir o nível de agregação, para um ou mais dados. No exemplo, ao utilizar o filtro, será possível apenas fazer planejamento para a Segunda-Feira. Trazendo um pouco mais para a realidade, o filtro pode ser aplicado em um Código de Empresa, um Ano, Centro de custos, Versão de planejamento, etc. Através de roles (Funções/Cargos) a pessoa terá acesso ou não a entrada de dados. 124 Treinamento SAP-BW Também podemos propor valores, nesse caso, escolhemos Janeiro de 2012. Não é uma restrição, é apenas para facilitar a entrada de dados (Pode ser alterado durante a entrada de dados). Não é necessário ativar filtros, basta salvar. Não iremos criar nenhuma Função e Seqüência de Planejamento. Por favor, verificar o material adicional: - Fox Formula in SAP BI-Integrated Planning.pdf Tips and Tricks for Implementing Formulas BI-IP.pdf SAP Help: http://help.sap.com/saphelp_sem320bw/helpdata/en/c4/9057425ca611d4b2e30050dadfb23f/content.htm 125 Treinamento SAP-BW Finalmente criamos a query para entrada de dados. Criamos utilizando o Nível de Agregação criado. Repare abaixo que o ícone desse objeto é diferente e é encontrado em Infoproviders: Para criar, utilizamos normalmente o Query Designer (Abrindo através do Menu Business Explorer, Através do Excel Bex Analyzer ou ainda através da transação RRMX, nesse último caso, acesso é desde o SAP Gui. Localizamos o nosso Nível de Agregação (Podemos entender como um Cubo): 126 Treinamento SAP-BW Nesse ponto, vamos montar a tela de entrada de dados. Será a query. Podemos utilizar depois o Excel ou a Web como frontend: 127 Treinamento SAP-BW Podemos adicionar o Filtro criado, em nosso exemplo, apenas dia da semana = Segunda-Feira 128 Treinamento SAP-BW Algumas propriedades importantes que temos que ter em conta para uma query de Integrated Planning: Marcar as keyfigures que permitem a entrada de valores. Você pode ter keyfigures que permitem entrada e outras não. Basta selecionar a keyfigure e alterar o comportamento na aba de Planejamento: Marcar a query como tipo IP, ou seja, Executar query em modo de modificação: 129 Treinamento SAP-BW Outro ponto é se seu Cubo estiver vazio, você pode, a partir da query, criar uma base de dados para entrada do planejamento com base nos valores de suas características como Valores de Dados Mestres: Veja que na Web ou via RSRT executando a query, já podemos fazer o planejamento, basta executar a query criada: Valor inserido manualmente, meu plano para as Segundas de Jan/2012 130 Treinamento SAP-BW Mesmo comportamento ao executar com o Excel (Bex Analyzer): Valor inserido manualmente, meu plano para as Segundas de Jan/2012 131 Treinamento SAP-BW Ao encerrar, clicamos com botão direito e gravamos os valores: Transferir Valores: Salva os valores em uma área de buffer Gravar Valores: Salva a informação digitada no Cubo 132 Treinamento SAP-BW Nesse momento, o dado vai para o nosso cubo Real Time, criando uma nova requisição: Para fazer com ela fique verde, precisamos fazer um procedimento que em versões anteriores chamamos de Comutar. Nessa versão de planejamento integrado, clicamos com botão direito sobre o Cubo e alteramos as Características específicas planejamento. 133 Treinamento SAP-BW Mude para a primeira opção, para bloquear o planejamento e deixar a requisição verde: Apenas lembrando que o valor proposto criado no Nível de agregação para o Ano/mês, pode ser alterado: E então temos como entrar mais valores, para os demais meses: 134 Treinamento SAP-BW Agregados A utilização de agregados está ligado a performance das queries. Um agregado é um cubo menor (Com menos registros) criado a partir de um cubo standard. A granularidade de um agregado é maior que a do cubo de origem porque ele não possui todas as características do cubo original. Você cria de acordo com a necessidade da query (Das características que estão sendo utilizadas) Pegando como exemplo nosso Cubo com dados da BW Vídeo. Em um registro, temos as seguintes características: Ano civil / mês Ano civil Cliente Filme Mídia Dia da semana Produto Imagine que uma query de um dashboard tenha apenas a informação “Ano Civil” e “Dia da Semana”. Em uma execução normal, o BW faz a seleção dos registros e depois agrega, retornando na query apenas as duas características solicitadas, mas ele teve que fazer a leitura da tabela fato no nível de CLIENTE, FILME, MÍDIA, PRODUTO. Ano Civil/mês 2005/01 2005/02 2005/03 2005/04 2005/05 2005/06 2005/07 Ano Civil Cliente Filme Mídia 2005 2005 2005 2005 2005 2005 2005 C1 C2 C3 C4 C5 C6 C7 F1 # F2 F3 # # F4 D # D D # # B Dia da Semana SEG SEG SEG SEG SEG SEG SEG Produto P1 P1 P2 P3 P4 P5 # Para melhorar a performance de uma query desse tipo, podemos criar um agregado, apenas com “Ano Civil” e “Dia da Semana”. Os registros desse novo cubo, já estarão com a agregação correta. O BW identifica a existência de um agregado que pode utilizar para a query e vai ler diretamente dele, tendo que ler bem menos registros, no exemplo, ao invés de ler 7, irá ler apenas 1. Ano Civil/mês 2005 Dia da Semana SEG 135 Treinamento SAP-BW Agregados... Melhor performance na execução das queries (Criado devidamente) Ocupa espaço, pois possui registros Após a carga do cubo básico, o roll up deve ser efetuado para atualizar os agregados, portanto o tempo de carga será maior Quando um atributo de navegação está em um agregado e ele é atualizado, devemos executar um procedimento chamado “Atribute Change Run”, também para atualizar os registros que estão gravados no agregado. Isso consome muito tempo também, dependendo do volume de dados Criamos o agregado, clicando com botão direito sobre o Infoprovider e escolhendo a opção “Atualizar Agregados”. O BW vai perguntar se deseja gerar automaticamente. Escolha criação própria. 136 Treinamento SAP-BW A criação é bastante simples, bastando utilizar o Drag&Drop das características que deseja utilizar em seu cubo reduzido (agregado): Ao arrastar uma característica, automaticamente irá solicitar uma descrição. O nome técnico é criado pelo BW. Depois, basta arrastar as demais características que você deseja. Sempre acima do agregado que você acabou de criar (Em destaque na imagem abaixo). Caso contrário, o BW entende que você está criando um novo. Não esqueça de ativar !!! 137 Treinamento SAP-BW Administração de Infoproviders Clique com botão direito sobre o Infoprovider e escolha Administrar: Em administração temos acesso as seguintes opções: Conteúdo: Listar o conteúdo do Cubo / DSO (Transação LISTCUBE) Performance: Verificar índices (Índice das tabelas) Requisições: Visualizar as cargas, eliminar requisições, monitorar Roll up: Atualizar os agregados. Cubos menores que podem ser criados a partir dos originais com alguns Infoobjetos apenas. A granularidade é alta, ou seja, com número menor de registros, uma performance melhor para query. Comprimir: Na compressão, são eliminados os número das requisições e valores zerados (Opcionalmente). Isso também diminui a quantidade de registros e também é utilizado para melhora de performance Reestruturação: Com a opção de reestruturação é possível, por exemplo, recarregar requisições eliminadas por engano. 138 Treinamento SAP-BW Na guia de conteúdo você pode ver os dados do Cubo (Incluindo dimensões) ou apenas o conteúdo da tabela fato. Com Eliminação seletiva, você consegue eliminar, por exemplo, todos os registros com Código do Filme = “1203” (Seguindo exemplo do exercício modelo com dados de uma locadora). A eliminação por seleção é bastante útil. Você pode selecionar qualquer característica que está no Cubo e usar como parâmetro. Na guia Performance, você tem acesso a verificação dos índices das tabelas do cubo, bem como recriá-los se necessário. Estatísticas no BW são um conjunto de objetos que ativamos (Praticamente é um padrão de uma instalação) em que o sistema coleta informações de execuções de queries, por exemplo. Informações de estatísticas são utilizadas para a proposta de criação de Agregados. 139 Treinamento SAP-BW Em requisições você tem acesso as cargas efetuadas para o Infoprovider, monitoramento, eliminar uma requisição (Aqui não é seletiva em conteúdo). A numeração das requisições fica na dimensão Pacotes, por isso o BW precisa obrigatoriamente daquela dimensão. Em Roll-up você tem acesso a atualização dos agregados, se houver algum para o Infoprovider. Roll-up é a ação de atualizar os dados do Cubo original em seus agregados (Como uma nova carga, partindo agora do Cubo) 140 Treinamento SAP-BW Compressão de requisições (Dados do Cubo). Exemplo: Você tem cargas de um ano em seu cubo, provavelmente, você tem registros zerados, registros com mesma chave em diferentes requisições. Com a compressão, o BW ignora o ID das requisições e passa os dados da tabela F (Fato) para a tabela E (Também fato, mas com ID de requisição nulo. Outra diferença é o tipo de índexação utilizado em cada tabela: F – B-tree (Binary Search) E – Bitmap (Existem bons algoritmos de compressão para Bitmap) Atenção: Após a compressão, você não pode mais eliminar dados do cubo baseado em seu número de requisição, você perde isso! Reestruturação é utilizada para recuperar uma requisição eliminada. Isso somente é possível se a requisição eliminada ainda estiver em PSA ou mesmo no Infoprovider que serve de datasource. Ela aparece na lista como não existente no destino, e você pode selecionar e solicitar a inserção novamente. 141 Treinamento SAP-BW Process Chain – Automatização de Cargas O Process chain (Transação RSPC) é uma forma de encadear/automatizar as cargas de dados. Com várias opções: Startar eventos para acionar outras cargas Executar programa ABAP Execuções condicionais, ou seja, executar a carga seguinte, apenas se a anterior encerrou com sucesso Carregar dados mestres agrupados para serem atualizados: Diariamente, Mensalmente ou semanalmente Enviar avisos (Email) em caso de falhas etc Conceito básico de Process Chain: 142 Treinamento SAP-BW Criação de um Process Chain (Transação RSPC): Entre na transação RSPC para acesso a construção/alteração da cadeia de atividades que necessita. Do lado esquerdo, você irá ver a hierarquia já existente, isso é apenas para organização, como Infoarea. Aqui são chamados de Componentes de Exibição Se precisar criar novos, você deve estar processando uma Cadeia ou criando uma nova. Assim você tem acesso ao botão em destaque na imagem abaixo: Na tela seguinte, clique para ver todos os componentes e também um botão de criar. Primeiro aparece a tela porque o BW já assume que o componente exista, e você deseja apenas atribuir seu Process Chain em uma hierarquia existente: 143 Treinamento SAP-BW Caso ainda não existe, clique no botão para criar (Fica na parte inferior do lado direito): 144 Treinamento SAP-BW Ainda analisando o lado esquerdo na janela da transação RSPC, temos diversas categorias de processo. Nada mais são que atividades que podemos automatizar. Você tem processo criado e testado manualmente que envolve: Carga de dados para PSA Carga eliminar dados de um Infoprovider Executar um programa ABAP para verificar o conteúdo de uma tabela de parâmetros e baseado no valor, executar um processo ou outro Executar diretamente uma DTP Etc. Depende muito de sua necessidade, ou melhor, do processo. A criação é bem simples e se faz através de Drag&Drop de uma categoria para a área da direita (área da construção propriamente dita). Depois o BW vai solicitar os parâmetros que irão variar de acordo com cada categoria (atividade). Por exemplo: Precisamos executar um Infopackage. Arrastamos a categoria para a direita e o BW vai solicitar o nome técnico do Infopackage. Utilize esse botão para exibir as categorias de processo Utilize esse botão para exibir as Cadeias de Processos existentes Utilize esse botão para exibir as Infoareas com Infoproviders 145 Treinamento SAP-BW Vamos criar um que efetue a carga de alguns dados mestres e depois a carga da DSO e finalmente a carga do Cubo. Clicar no Botão Criar Na janela seguinte o BW irá solicitar a criação do processo inicial. Todo Process Chain, deve ter esse um: Agora chegamos a outro termo, chamado de Variante. É a variante que efetivamente armazena as regras de execução do seu Process Chain. É assim que podemos escalonar sua execução, ou seja, criar um job regular (Rodando diariamente, uma vez por mês, apenas nos finais de semana, etc.) O BW também chama de variante as informações dos parâmetros de cada categoria que você inserir. Por exemplo, executar um DTP: O nome técnico do DTP está salvo em uma variante. 146 Treinamento SAP-BW Você pode apenas salvar, depois você pode voltar e Modificar Seleções para acesso as diversas opções de criação de um Job no BW: Inicio med. Cadeia meta ou API = Significa que esse Process Chain será acionado por outro processo, assim não existe a criação de um job regular Para criar um agendamento: Clique em Modificar seleções e a seguinte tela padrão é aberta. Aqui é onde vamos criar a regra de execução do nosso Process Chain. 147 Treinamento SAP-BW Como a idéia é criamos um Process Chain e não um agendamento, apenas utilize o botão salvar e depois voltar (Seta verde). E o nosso processo inicial foi criado. Partimos agora, para acrescentar as categorias processo Início, formando a cadeia: abaixo de nosso Como primeiro passo, vou solicitar a execução de um DTP. Drag&Drop da categoria “Processo de Transferência de dados”. Escolha a DTP e clique em Enter. No exemplo, pretendo fazer a carga dos atributos de filme: 148 Treinamento SAP-BW O que o procedimento pede é o nome técnico da DTP para carga de atributos de filme, se lembra? Geralmente criamos um Process Chain em uma janela e abrimos outro SAP-GUI (/ORSA1) para pesquisar mais rápido os objetos Nosso primeiro processo fica então assim, falta fazer a ligação entre os processos. Para a conexão, utilize o Clique do mouse em um objeto e arraste ate o outro: 149 Treinamento SAP-BW Seguimos assim, inserindo algumas DTPs para carga de exemplo. Ao final, ficamos com o seguinte desenho. Veja que nesse caso estamos carregando de forma paralela 3 infoobjetos: Pretendemos iniciar a carga da DSO apenas se as três cargas tiverem sucesso. Isso é possível com a categoria de Condição “E” (Em Serviços Gerais) A Ao Eu ainda tenho a opção de deixar prosseguir apenas se a carga foi feita com sucesso, indiferente ou deixar passar apenas em caso de Erro. 150 Treinamento SAP-BW Fazendo isso para os três processos anteriores, a próxima etapa somente vai iniciar em caso de sucesso dos três. Repare na cor das setas, verde. (Erro – Vermelho, Indiferente – Azul) Agora inserir outro DTP para a carga da DSO, e também o processo de ativação de dados: Veja novamente o BW irá solicitar uma variante, simplesmente para guardar o nome da DSO, que será solicitado: 151 Treinamento SAP-BW Essa informação fica na variante: Qual a DSO a ser ativada? Aqui não podemos digitar, teremos que pesquisar e aceitar o valor. Salvar e voltar. Nosso Process Chain fica como na imagem abaixo. Repare que na ligação da carga da DSO e sua ativação, automaticamente se cria uma condição no momento que você conecta os dois. Assim, você pode escolher ativar os dados apenas em caso de sucesso da carga (O que é mais usual): 152 Treinamento SAP-BW Falta agora carregar o Cubo. Também um processo DTP e fechamos a carga. Que já foi ativada e colocada em uma hierarquia de Componentes de Execução (Utilizando o botão em destaque na figura abaixo): Ajuda bem vinda: Em algumas categorias que você movimenta, o BW te ajuda a não esquecer de outras categorias que você deveria estar utilizando. Por exemplo, o normal na carga de um Cubo é ELIMINAR ÍNDICES -> FAZER A CARGA -> CRIAR ÍNDICES (Temos categoria para tudo isso). Dessa forma sua carga é mais rápida. Ao arrastar uma DTP que tem como destino o Cubo, o BW já te orienta a não esquecer das outras duas (Em nosso exemplo isso não foi colocado). Se houvesse algum agregado em nosso cubo, deveríamos inserir a categoria de Roll-up e escolher os agregados ao final. Veja que esse foi um exemplo bastante simples. Tudo vai depender da necessidade e automaticamente você deverá fazer a pesquisa e ver qual categoria de processo você deve utilizar. 153 Treinamento SAP-BW Reporting - Query Designer A ferramenta de construção de Query do BW chama-se Query Designer. Podemos acessar o Query designer de algumas formas: Através do Menu de programas no Windows, no Grupo Business Explorer. Também podemos chamar o Query Designer através do Bex Analyzer. O Bex Analyzer é o Add-on do BW para o Excel. Acesse através da transação RRMX ou através do Grupo Business Explorer também Essa é a tela de construção do Query Designer: 154 Treinamento SAP-BW Do lado esquerdo, você irá ter acesso as informações do Infoprovider. Para criar a query arraste os Infoobjetos para a área de desenvolvimento que deseja: Na aba Linhas/Colunas Características livres: Infoobjetos que o usuário pode utilizar para navegar na query depois que executá-la Colunas: São as colunas do relatório Linhas: Serão os objetos da linha do relatório Na aba Filtro Restrições de características: Coloque aqui variáveis ou valores fixos para filtrar as informações de seu relatório. Se filtrar para o ano de 2011, o usuário só consegue ver dados de 2011. Valores propostos: O filtro que você coloca aqui, depois da execução da query, o usuário pode trocar. Se propor 2011, o usuário após a execução, pode ver de outros períodos . 155 Treinamento SAP-BW Vamos dar uma olhada na barra de ferramentas do Query Designer: Criar uma nova query Abrir uma query Salvar Salvar como Executar na Web Verificar erros e mensagens de atenção (warnings) Características da query (acesso a propriedades) Recortar Copiar Inserir (Colar) Exibir a janela do infoprovider (Parte da esquerda) Nos leva para aba de filtro Nos leva para aba de linhas/colunas Definição de células (Você precisa ter duas estruturas em suas query). Você tem acesso a cada “linha x coluna”, inclusive com possibilidade de alterar valores e fazer fórmulas Criar condições (Top N, Bottom N, restrições de valores de sua query em geral) Criar exceções (Definir padrão de cores para um range de valores: Maior que 10, Verde. Etc) Exibir janela de características Exibir janela de tarefas (Suas últimas escolhas, como Salvar, Verificar). Como atalhos Exibir janela de mensagens (Na parte inferior) Lista de utilizações (Where used list). Você pode ver em que local sua query ou objetos dela são utilizados Acesso a documentos. Você pode criar documentação para objetos, como uma documentação de sua query ou um simples Infoobjeto. Esse botão permite o acesso ao que foi criado Visualizar nomes técnicos 156 Treinamento SAP-BW Reporting - Restrições Nós podemos fazer restrições/filtros utilizando valores de características, por exemplo, fixar um determinado dia da semana para uma Keyfigure. Para isso, basta clicar com o botão direito na Keyfigure e escolher “Processar”, a seguinte tela será apresentada e você pode definir suas regra: 157 Treinamento SAP-BW Ou ainda, na aba de filtros você pode definir algum valor para uma característica, e assim fazer com que sua query apresente apenas valores para um determina cliente, no exemplo abaixo. Para isso clique com botão direito sobre a característica que deseja filtrar e escolha “Restringir”: 158 Treinamento SAP-BW Reporting - Variáveis Restrições são mais comuns utilizando: variáveis. Vamos ver como se cria ou se utiliza uma. Sempre na aba de Filtro. Com o botão direito, clique na característica que deseja filtrar e escolha restringir: Caso exista alguma, selecione, caso contrário, utilize o botão Criar, em destaque na imagem abaixo. Se tiver dúvidas sobre o funcionamento e tipo, você pode clicar no botão de alterar (Botão ao lado do botão de Criar) e assim ter acesso a configuração da variável: 159 Treinamento SAP-BW Essa é a tela de criação, vamos ver em detalhe os itens mais importantes: Na guia Geral, Processamento por: Entrada manual/valor proposto: o É a mais comum. Aquela que usuário entra com o valor desejado na tela Caminho de substituição: o Os valores para essa variável, são preenchidos com o resultado de outra query Exit de cliente: o Também muito utilizada, envolve o desenvolvimento de código ABAP, não muito complexo, em que normalmente se colocar um valor default para a variável ou mesmo derivar o valor de uma a partir do que foi informado em outra. Autorização: o Este tipo de variável está ligada ao perfil do usuário. Vai permitir apenas valores que ele tem acesso 160 Treinamento SAP-BW Vamos ver a aba Detalhe, também importante na criação: Valor Individual: o Permitido entrar com apenas um valor Vários valores individuais: o Permitido a entrada de vários valores Intervalo: o Valor de...até Opção de Seleção: o Qualquer combinação: Valor Individual, Vários valores, Intervalo, > X, < X, etc. Conjunto valores c/ cálculo preliminar: o Você pode definir um conjunto de valores que fica armazenado em uma tabela. São definidos na transação RSBUCKET. O flag “Variável está pronta para entrada” indica que a variável vai aparecer na tela para que usuário faça a escolha. Porque a variável pode ser do tipo Exit e ser preenchida automaticamente, então não há necessidade de aparecer na tela. 161 Treinamento SAP-BW Reporting - Variáveis – Exit de cliente (Documento SAP How to...) Um dos tipos de varíaveis são as de Exit de Cliente. Na exit podemos derivar uma variável em função de outra, podemos definir valores default, verificar valores digitados em variáveis, etc. O que deve existir é o programa RSR00001 ativo (Chamado de ampliação). Requer algum conhecimento ABAP para criação de exit de variáveis: Passo 1: Acessar o projeto onde exista a RSR00001. Projetos são acessados via transação CMOD (Customer modifications). Normalmente as empresas já tem isso ativo. No exemplo, estamos trabalhando com o projeto ZBW Passo 2: Duplo clique na função EXIT_SAPLRRS0_001 (Visível em COMPONENTES) Passo 3: Definir seu código dentro do include: ZXRSRU01 Alguns esclarecimentos sobre os STEPs: STEP1 - Antes da tela de entrada ser apresentada STEP2 - Após o usuário escolher suas opções STEP3 - Todas as variáveis (Para alguma exportação ou verificação). Variáveis SAP EXIT não aparecem na relação O Documento a seguir é um documento da SAP que mostra como proceder para a criação de uma exit de variáveis de query. Geralmente já existe alguma codificação criada, basta seguir o mesmo procedimento. 162 Treinamento SAP-BW Business Scenario A query should show in one column the value for one period. The period should be entered by the user. In the second column the accumulated value from the beginning of the year to the period from the first column should be displayed. The InfoCube contains only the InfoObject 0CALMONTH (Month/Year) and not single InfoObjects for the period and year. The Result For this scenario we need four variables; two variables for the column text and two variables for the period values. One of these period variables is defined as a variable with a customer exit. The customer exit for variables is called three times maximally. These three steps are called I_STEP. The first step (I_STEP = 1) is before the processing of the variable pop-up and gets called for every variable of the processing type “customer exit”. You can use this step to fill your variable with default values. The second step (I_STEP = 2) is called after the processing of the variable pop-up. This step is called only for those variables that are not marked as “ready for input” and are set to “mandatory variable entry”. The third step (I_STEP = 3) is called after all variable processing and gets called only once and not per variable. Here you can validate the user entries. Please note that you cannot overwrite the user input values into a variable with this customer exit. You can only derive values for other variables or validate the user entries. 163 Treinamento SAP-BW The Step By Step Solution This example is based on the InfoCube 0D_SD_C03 from the Demo Business Content. 1. Create an input variable. The variable is based on the InfoObject 0CALMONTH. Set the following attributes: Single Value Ready for input Mandatory variable entry 2. Create a variable with a customer exit as a processing type. The variable is based on the InfoObject 0CALMONTH. Set the following attributes: Interval Mandatory variable entry 164 Treinamento SAP-BW 3. Create two text variables. Both variables use the “Replacement Path” as the processing type. The first text variable is filled with the text from the „from value‟. The second variable is filled with the text from the „to value‟. 4. Call Transaction CMOD for the definition of the customer exit. Create a new project, maintain the short text, and assign a development class. Goto Enhancements Assignments and assign RSR00001. Press the button components to continue. 165 Treinamento SAP-BW 5. Double-click on EXIT_SAPLRRS0_001. For documentation place the cursor on RSR00001 and use the menu Goto -> Display documentation. 6. Then double-click on ZXRSRU01. If the include doesn‟t exist you have to create it; assign a development class and a transport request. 7. Enter the coding (see also Appendix). Save and activate the coding. 166 Treinamento SAP-BW 8. Activate the project. This is very important. 9. Define a query. The details are described in the following steps. 10. Create a new structure for the columns by using a right-mouse click on the columns. 167 Treinamento SAP-BW 11. Make another right-mouse click on the columns and choose the option „New selection‟. 12. Drag & drop the variable „MONTH‟ to your selection. Add the text variable &TMONTHF& as the description. 13. Create a second selection 168 Treinamento SAP-BW 14. Now drag & drop the variable „CUMMONTH‟ to your selection Add the text variable &TMONTHF& as the description. 15. Your Query should look like this now. 16. Save your query, embed the query in a workbook and execute the query. 17. You can see in the first column the value for the period which was entered by the user. The second column shows the accumulated value from the beginning of the year. Both columns have the correct text. 169 Treinamento SAP-BW Appendix *----------------------------------------------------------------------* * INCLUDE ZXRSRU01 * *----------------------------------------------------------------------* DATA: L_S_RANGE TYPE RSR_S_RANGESID. DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT. CASE I_VNAM. WHEN 'CUMMONTH'. IF I_STEP = 2. "after the popup LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'MONTH'. CLEAR L_S_RANGE. L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(4)."low value, e.g.200001 L_S_RANGE-LOW+4(2) = '01'. L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW. "high value = input L_S_RANGE-SIGN = 'I'. L_S_RANGE-OPT = 'BT'. APPEND L_S_RANGE TO E_T_RANGE. EXIT. ENDLOOP. ENDIF. ENDCASE. 170 Treinamento SAP-BW Reporting – Condições Utilizamos condições para restringir valores no resultado de uma query (Apenas linhas de resultado que obedeçam a regra são apresentados) Para acesso a criação de condições, utilizamos o botão “Condições” da barra de ferramentas Botão direito, condição nova: Altere a descrição e clique em Processar. Veja também que temos a opção de marcar se a condição vai estar Ativa na execução da query (O usuário pode ativar ou desativar a qualquer momento), nesse ponto é apenas o comportamento standard: 171 Treinamento SAP-BW Criando a condição: Clique em Novo, crie a sua condição e clique em Aceitar. Depois basta clicar em OK para voltar a query (Veja que você pode utilizar também variáveis) 1 2 3 4 Detalhe sobre a guia “Atribuição de características”. Aqui você vai marcar para qual/quais característica(s) a condição será aplicada. Exemplo: Você deseja saber quais são os TOP5 clientes por Estado. Aqui você vai marcar apenas “Cliente”. Se marcar também o Estado, você irá ver apenas 5 Estados e dentro de cada um, 5 clientes. Já marcando o Infoobjeto “Cliente”, iremos ter como resultado, todos os Estados, cada um com seus TOP 5. 172 Treinamento SAP-BW Reporting – Exceções Quando precisamos de um resultado como o da imagem abaixo, utilizamos exceções. Dependendo do valor e da configuração, vamos atribuir uma formatação diferente: Acessar Exceções com o botão em destaque na imagem abaixo e utilizar o botão direito para criar: 173 Treinamento SAP-BW Já na tela de exceções, criamos as regras necessárias. (Veja que você pode utilizar também variáveis): 174 Treinamento SAP-BW Na guia “Definição” é onde informamos para qual Keyfigure, a exceção vai valer (Podemos escolher todas também). Podemos definir em qual momento aplicar a formatação de cores, no exemplo, será aplicado após a agregação (Utilize essa opção quando você estiver utilizando alguma exceção baseada em um cálculo local, fórmula): Na guia “Representação” vamos configurar o que será destacado: apenas as Keyfigures, Características ou ambos. Exceção com efeito em células de dados: Formatar apenas keyfigures. A opção “Exceção com efeito nas células de características” é para formatar (colorir) também a característica (Dia da Semana, Cliente, Produto, etc), normalmente utilizamos a opção Linhas. Isso não é suportado quando executamos a query utilizando o Excel (Bex Analyzer) 175 Treinamento SAP-BW Na guia “Restrições células” vamos configurar se a exceção será aplicada apenas nas linhas de resultado ou em tudo. Aqui também podemos dizer que não vamos aplicar a exceção (destaque) para um determinado grupo de valores de alguma característica. No exemplo, para Gênero tipo “A”, não será aplicado (Isso é apenas ilustrativo, no resultado final do Exercício, deverá ser aplicado a todos os gêneros de filmes). 176 Treinamento SAP-BW Reporting – Fórmulas Com a utilização de fórmulas você poderá efetuar cálculos, decisões (IF) e muito mais em sua query. O que você criar em fórmulas, você terá acesso apenas em uma específica query, aquela em que a fórmula foi criada. Para criar uma fórmula, clique com botão direito na estrutura de Indicadores e escolha “Fórmula nova”: Depois em Processar e você terá acesso a tela de criação de fórmulas. Você tem acesso apenas as keyfigures que estão em sua estrutura, na query. Também podemos criar/utilizar variáveis de fórmulas (Exemplo: Solicitar ao usuário o valor percentual a ser adicionado em uma determinada coluna). 177 Treinamento SAP-BW Temos várias funções disponíveis, para conhecer, veja o documento PDF em seu material: “Formula Operators in Business Information Warehouse for SAP BW.PDF” Vamos mostrar dois que considero bem importantes: Função de dados: NODIM Como funciona os Operadores Booleanos NODIM() É muito comum operações em que temos que envolver keyfigures com diferentes unidades de medida. O BW necessita ser avisado que a dimensão de unidade não importa para a fórmula. Por exemplo, somando a keyfigure “Valor Total” que tem unidade BRL com um valor 12 sem unidade alguma. Senão colocarmos NODIM, o BW irá apresentar uma mensagem. Você também vai reparar que em linhas de totais com mais de uma unidade o BW vai apresentar no lugar do resultado um “ * “. Isso porque no montante existem unidades diferentes (Kg, g, Pacotes, Paletes, etc): Funcionamento de operadores booleanos (Sem NODIM apenas porque o foco é a condição) O BW em condições retorna apenas duas informações: 1 = Verdadeiro ou 0 = Falso Problema para exemplificar: Eu preciso subtrair 40 do Valor Total, caso ele tenha o valor igual a 10. A solução está no seguinte cálculo: A primeira parte “A” é a condição: “O Valor Total é igual a 10?”. Toda condição vai retornar 0 ou 1. Se for verdade eu tenho o “A = 1” Na composição restante da fórmula, teremos A * B, onde B é uma conta simples onde subtraímos 40 do “Valor Total”. Ou seja, se “A=1”, o resultado final é 1 * (Valor Total – 40) A B Se a condição “A” for falsa, ou seja, “Valor Total não é 10”, o valor de A é Zero. Assim Zero vezes qualquer coisa é Zero. O resultado seria 0 (Zero) 178 Treinamento SAP-BW Vamos complicar um pouco mais. Meu problema agora é o seguinte: Preciso subtrair 40 do Valor Total, caso ele tenha o valor igual a 10, Se ele for diferente de 10, eu quero apenas subtrair 5). Nesse caso utilizamos condições que se anulam e assim conseguimos fazer o “OR”. Repare que temos entre o sinal de “ + “ (Adição) duas condições. Uma e apenas uma, irá resultar em “1”. Ao final eu tenho as duas possibilidades: 0 * (Valor total – 40) + 1 * (Valor Total – 5) 1 * (Valor total – 40) + 0 * (Valor Total – 5) 179 Treinamento SAP-BW Reporting – Keyfigure Calculada / Restrita Já vimos que podemos criar restrições com variáveis e também fixando valores de características. Também vimos como filtrar uma keyfigure por uma variável e por uma ou mais características, Tudo isso até aqui foi local, ou seja, válido apenas para a query em que foi criada. Agora é possível fazer o mesmo de forma global, válida para todas as queries de um Infoprovider. Para isso utilizamos índice Calculado e Restrito. Para acesso, clique com botão direito em “Índices” e escolha a opção desejada. A criação é da mesma forma que vimos localmente, a diferença é que aqui você tem acesso a todas as keyfigures do Cubo e também a todos os cálculos e restrições já criados. Também aceita varáveis, funciona igual. 180 Treinamento SAP-BW Reporting – Estruturas Você pode ter no máximo duas estruturas em sua Query. Uma já é criada automaticamente ao movimentarmos uma keyfigure para o relatório: Mas você pode criar outra, clicando com botão direito em Linhas ou Colunas e escolhendo “Nova estrutura”: Você pode adicionar seleções e fórmulas em sua nova estrutura. Clique com botão direito em sua estrutura e escolha a opção que desejar: Você pode também salvar uma estrutura que pode ser utilizada em outras queries do mesmo Infoprovider: 181 Treinamento SAP-BW Reporting – Definição de células Você obrigatoriamente necessita ter duas estruturas em sua query para a utilização de células. A query com estruturas fica com menos possibilidade de navegação, mas nos dá um poder enorme para cálculos e fórmulas através de Células. É como trabalhar no conceito de célula do Excel, cruzamento de Linha x Coluna. Com duas estruturas criadas, clique no botão para acesso a definição de células: Veja que temos é acesso a cada cruzamento entre Linha x Coluna. Com opções de criar uma referência de célula (Ou seja, nomear um cruzamento para utilizá-lo em outra fórmula). Sobregravar o valor por uma fórmula ou seleção diferente do que seria o comportamento normal. Temos acesso também a células de ajuda, Você pode fazer uma seleção diferente e mesmo uma fórmula nas células de ajuda e utilizar isso em qualquer ponto (Linha x Coluna) 182 Treinamento SAP-BW Reporting – Navegação Web A navegação em uma query não tem muito segredo. Utilizamos muito o botão direito para acesso menu de contexto e demais opções. No mais, os ícones já apresentam uma indicação de seu uso. Basta navegar e testar. Com o botão direito temos acesso a opção de Menu Ampliado, com algumas outras opções, por exemplo, características da query e também do infoobjeto que clicamos com botão direito: 183 Treinamento SAP-BW Reporting – Analyzer (Frontend é o Excel) Uma opção de frontend utilizada para o Query Designer é o Excel. A ferramenta se chama Analyzer e podemos acessar partindo de dentro do BW com a transação RRMX. Também podemos acessar via menu do Windows (Grupo de programas “Business Explorer”: O Excel será aberto com uma barra de ferramentas a mais: Ao abrir o Query Designer por aqui, você tem um botão adicional na barra de ferramentas, justamente para a execução no próprio Excel: Praticamente tudo que pode ser feito na Web (ou transação RSRT em HTML) pode ser feito aqui no Excel. A principal vantagem é ter seus dados em uma ferramenta que praticamente todo pessoal de negócio que vai utilizar a informação conhece. Ele também pode salvar suas consultas como Pastas de Trabalho (Workbooks). 184 Treinamento SAP-BW Workbooks são arquivos Excel com macros adicionais para acessar o BW e atualizar a query, veja que o usuário deve ter acesso ao BW e a consulta é atualizada em tempo real. Você pode ter mais de uma query em um único arquivo. Para gravar uma pasta de trabalho utilize o Menu “BEx Analyzer” -> “Gravar pasta de trabalho”. Isso vai ficar salvo no BW. Caso queira guardar em sua máquina, utilize o salvar o Excel normalmente que a macro vai junto (Quando você abrir, você terá que se conectar ao BW). Uma pasta de trabalho simples pode ser criada facilmente, basta abrir a query desejada em uma planilha do seu arquivo Excel e salvar. Com isso você tem um arquivo Excel com uma query do BW. Você pode então, adicionar seus cálculos na mesma planilha ou em outra, utilizando como fonte a planilha que tem os resultados da query. Veja que para esse tipo de utilização o ideal são queries de pouca navegação, para que o seu trabalho no Excel não tenha que envolver muito esforço. Suas fórmulas podem estar ligadas a uma determinada região de dados, então você faz um drill-down por outra característica ou remove alguma. Sua área de resultado já é outra e as fórmulas feitas na pasta de trabalho ficam danificadas.. 185 Treinamento SAP-BW Reporting – Analyzer (Visões) Outra opção do Bex Analyzer são as Visões. A partir de uma query do BW, você consegue definir diversas outras visões dessa mesma query, alterando as navegações: Visão 001 Visão 002 Utilizamos visões para compor uma Pasta de Trabalho ou mesmo um Template do Web Application Designer. Veja como é o ícone de uma visão. Você também pode gravar visões de queries utilizando a transação RSRT. Utilize o botão “Gravar Visão”. 186 Treinamento SAP-BW Reporting – Analyzer (Modo Design) Vimos como é possível guardar visões e também como criar pasta de trabalho simples (Com uma query e sem formatação). Agora, para criar um Workbooks (Pasta de trabalho) mais elaborado, você pode utilizar o modo Design da nova versão do Bex Analyzer. Clique no botão em destaque na imagem abaixo: Será possível trabalhar com todos os seguintes botões para criar uma pasta de trabalho, por exemplo com mais de uma query ou utilizando visões. Cada um dá a possibilidade de inserir/trabalhar com um objeto diferente: Tabela, Bloco de navegação, Filtro, botões, caixa de combinação, checkbox, radiobutton, lista de condições, lista de exceções, um texto que você queira e mensagens. Praticamente é possível criar/formatar sua pasta de trabalho da maneira que preferir: Exemplo, vamos inserir duas visões em nossa planilha. Criamos uma em branco (Uma planilha mesmo, a partir do menu do Excel). Clicamos então no modo design, selecionamos a célula do Excel e clicamos sobre o ícone de tabela de análise (Colocamos duas: A1 e C1): 187 Treinamento SAP-BW Agora, como qualquer outro objeto dessa barra de ferramentas,vamos alterar as suas propriedades, cada qual tem a sua. Clicamos sobre o objeto da célula A1 para acesso as características do objeto Tabela de análise. O principal é Dataprovider, que é onde vamos escolher a query ou view fonte de dados para o objeto: Queremos acrescentar uma visão aqui, logo clicamos para criar um Dataprovider. Podemos alterar o nome do Dataprovider e obrigatoriamente escolher uma fonte, que em nosso caso é uma visão (A visão fica abaixo de uma Query). 188 Treinamento SAP-BW Podemos definir o comportamento dessa visão/query em nossa planilha, depende da utilização do seu Workbook: Faremos o mesmo com o objeto que está na outra célula “C1”, mas vamos escolher outra visão (ou query): Ao final temos em uma mesma planilha, duas visões do BW, apresentando o mesmo resultado de forma diferente, sem navegação. Amarelo iniciando em A1 e azul iniciando em C1: 189 Treinamento SAP-BW Reporting – WAD (Web Application designer) Com o WAD podemos desenvolver páginas Web com as Queries criadas no Query Designer. Podemos utilizar uma ou mais Queries. O ideal, não é utilizar Queries com muitas opções de navegação para não fugir muito do aspecto original de seu layout (Dashboard). Mas nada impede de criarmos um template com o logo da empresa e acrescentar uma única query com toda navegação possível. A idéia do WAD é a mesma que vimos no modo Design do Bex Analyzer, mas aqui temos muitos outros objetos disponíveis e o resultado é na web. 190 Treinamento SAP-BW O WAD é muito semelhante a outros tipos de ferramentas. Do lado esquerdo, temos uma lista de objetos para fazer o Drag&Drop para a área de criação (os Web Item). Cada objeto tem suas propriedades e vamos definilas conforme a necessidade e o desenho de seu Template (Novamente, como no Modo Design do Analyzer): 191 Treinamento SAP-BW Vamos criar um pequeno exemplo utilizando alguns objetos. Críamos algumas visões para utilizar em nosso template (Poderiam ser queries também): Criamos um modelo em branco e vamos inserir uma tabela para organizar os objetos em nosso template. Temos 4 visões (ou queries), logo vamos inserir uma tabela 2x2 192 Treinamento SAP-BW Vamos agora inserir 4 objetos, um em cada célula de nossa tabela: Um objeto de análise, dois Diagramas (Gráficos) e um Ticker (Esse último está no grupo “Vários” dos objetos disponíveis): A B C D Agora temos que definir as propriedades de cada objeto, as características estão na parte inferior a esquerda. No objeto “A”, vamos fazer a ligação com a visão “Itens por semana”, isso é feito através de um Dataprovider. Criamos um Dataprovider e selecionamos a query ou visão que desejamos (Nesse exemplo uma visão). Assim, nessa área da tabela iremos apresentar uma query com os dias da semana e a keyfigure quantidade de itens: 193 Treinamento SAP-BW No objeto “B”, vamos fazer o mesmo, mas inserir a visão: Linha de total geral. O Ticker é um objeto com efeito legal, fica passando informações como um painel de bolsa de valores ou como as informações na parte inferior da TV ao assistir um canal de notícias 24hs. No objeto “C”, vamos utilizar a visão “Principais áreas”. A criação do Dataprovider é igual, mas o objeto vai representar um Gráfico de Pizza. Altere as características conforme sua necessidade (Veja, todo objeto tem as suas propriedades na aba Parâmetros de Web Item): 194 Treinamento SAP-BW Também identificar o tipo de gráfico. Clicar com botão direito sobre o objeto e escolha “Processar”: Vamos selecionar o tipo de gráfico que queremos e clicando em avançar, vamos definir as propriedades de ligação entre o gráfico e a query (Visão). Como criação de um Gráfico no Excel: 195 Treinamento SAP-BW No objeto “D”, outro gráfico, agora de colunas com a visão: “Top 5 Clientes” 196 Treinamento SAP-BW Sem grandes alterações, utilizando as configurações de propriedades padrão de todo Web item, essa é a visão de nosso template: Você pode refinar seu modelo, utilizar outros objetos, criar outras queries específicas para utilizar, etc. Leva algum tempo para criar um template e aprender a utilizar todos os Web Item disponíveis, também é bom desenhar sua idéia antes em um papel, ver como vai ficar e aí partir para a ferramenta. 197 Treinamento SAP-BW Algumas dicas em Geral Transações: São como atalhos. Você pode ir diretamente onde você deseja, sem seguir o Menu. Cada transação nos dá acesso a uma determinada parte/aplicação do sistema. Você acaba decorando as principais, ou ao menos, as que você mais utiliza. Algumas das transações abaixo serão encontradas tanto no BW com no sistema fonte. Na coluna “Onde”, foi convencionado o local onde normalmente serão utilizadas: Sistema fonte = ECC Código Onde Serve para... RSA1 BW Administração – Sua principal Transação RRMX BW Chama o Bex Analyzer (Excel) RSRT BW Execução de queries para testes SBIW Sistema Fonte Administrar DataSources RSA7 Sistema Fonte Verificar a fila de registros delta para BW RSKC BW Relacionar os caracteres adicionais permitidos. Atenção ! não apague a linha, apenas adicione o novo caracter no final de todos e tecle F8 para gravar. A tabela que possui esses caracteres chama-se RSALLOWEDCHAR RSD1 BW Atalho com acesso a manutenção de vários tipos de objetos. SM66 BW/Sistema fonte O que está em execução no momento em seu sistema SM12 BW/Sistema fonte Síntese de bloqueio. Normalmente conseguimos ver o objeto bloqueado, mas não temos autorização de eliminar. Um bloqueio pode ser causado, por exemplo, se estiver alterando uma query e o sistema falha. A query fica bloqueada. SE11 BW/Sistema fonte Dicionário de dados (Ver conteúdo de tabelas) RSA3 Sistema fonte Testar extração de um datasource RSA5 Sistema fonte Ativar business content de datasource (Um atalho dentro da SBIW) LISTCUBE BW Conteúdo do Cubo RSPC BW Process chain (Acesso a todos) RSCP1 BW Abrir um único Process chain SE38 BW Executar programas ABAP. Execute o programa RS_TEMPLATE_MAINTAIN. Você tem acesso a testes de seu Web Application Designer sem a necessidade de abrir a ferramenta. Utilize o nome do template como parâmetro 198 Treinamento SAP-BW Saltos de Queries (RSBBS) Salto de query permite sairmos de uma query para outra passando algum filtro para a Query de destino (Drill Through). Por exemplo, uma Query apresentando Mês e Quantidade para um determinado ano (Temos no máximo 12 linhas de resultado, pouco detalhe). Digamos que navegações não são possíveis, ou seja, nesse Cubo a granularidade é Ano e Mês. Não temos qualquer outra informação. O Analista deseja identificar o que houve em um determinado mês que está em vermelho (Query com exceções). Podemos configurar o salto para uma query por Dia e Produto, passando como filtro um Mês escolhido na query original. A query destino, deve ter uma variável de Mês e Ano para receber o parâmetro. Na transação RSBBS, vamos criar uma ligação: 199 Treinamento SAP-BW Open Hub Open hub é comumente utilizado para extrair infomações do BW tabelas ou arquivos CSV. Na versão 7.X utilizamos Criação de destino Open Hub. Em Modelagem (Dentro da RSA1) Preencher as informações necessárias. Em Modelo, é o objeto que você pretende ler as informações: 200 Treinamento SAP-BW Veja os tipos de destino que podemos utilizar: Uma tabela (Dentro do BW), Um arquivo texto ou ainda enviar os dados para um aplicativo externo (Esse último não é nada comum) Em caso de tabela, você pode definir entre uma chave técnica (O BW irá criar) ou chave semântica onde a própria origem possui a chave Em caso de extração de arquivo texto, outras informações serão solicitadas Após preenchimento, basta ativar. Aqui também teremos que criar uma DTP que irá controlar a extração das informações. A transformações será gerada automaticamente. Ative a DTP e execute. 201 Treinamento SAP-BW Infospokes (Versão 3.x) O infospoke é uma outra opção para a extração de dados do BW, já obsoleto. Transação RSA1 e no menu Ferramentas escolha Serviços de Open hub. Depois Criar infospoke (Transação RSBOH2) Na versão 7.0 é possível utilizar sem problemas. Escolha o nome para seu Infospoke e clique em criar 202 Treinamento SAP-BW Como em Open hub, temos que preencher a origem dos dados Qual o tipo de destino da informação (Todas opções que temos em Open hub) 203 Treinamento SAP-BW Em infoobjetos, você irá escolher quais objetos irão fazer parte do arquivo/tabela de destino: Em seleção, caso queira fazer algum filtro. Informe no infoobjeto correspondente: Finalmente em transformação (Requer conhecimentos de programação ABAP), se deseja fazer algum cálculo antes da geração do registro, excluir registros, etc. Marque o checkbox e automaticamente o BW irá criar o ABAP apenas para que você inclua sua rotina: Ative o Infospoke. Não é necessário criar DTP. Você pode executar do tipo de destino, também incluir em um Process chain 204 e dependendo Treinamento SAP-BW Visão geral do processo de carga da versão 3.X (e anterior) Estou anexando essa informação adicional, apenas para fazer um comparativo com o processo de carga que existe atualmente na 7.x. O processo de carga era um pouco diferente e envolvia outros objetos. Infoproviders InfoCubo Sistema Fonte Infosource Objeto ODS Regras de atualização Infopackage PSA Queries Infoobjeto com Dado Mestre 205