Prévia do material em texto
Treinamento Abap Query SAP 4.0B Novembro/2001 Agenda • Áreas de Trabalho • Grupo de usuários • Área funcional • Query • Identificação de tabelas Área de Trabalho e Grupo de Usuários As transações utilizadas para query são: SQ03, SQ02 e SQ01. Ao acessá-las, é necessário definir o ambiente de trabalho. Para isso, acessar o menu ‘Ambiente’, ‘Areas de trabalho’. As queries desenvolvidas na área standard pertencem somente ao mandante onde foram desenvolvidas. As queries da área global somente podem ser criadas ou alteradas na instância S01, e exigem request, sendo transportadas para os outros ambientes. A criação de Query no SAP deve começar na transação SQ03 ou pelo menu selecionando Ferramentas/ABAP Workbench - Utilitários/ABAP4 Query/Grupos de usuário. • A criação do grupo de usuários pode ser feita uma única vez para ser utilizado várias vezes para a criação de várias Query's para o mesmo grupo de usuário. • Este passo não é obrigatório se quem for criar a Query já tiver um grupo de usuários pré definido. • Para padronização do nome do grupo de usuários deve-se seguir a seguinte nomenclatura: • ZSADQGMMNN • Onde: • Q = Define que é uma Query • G = Define que é um Grupo de Usuários • MM = Módulo ( MM, SD, FI...) • NN = Número Seqüencial Área Funcional • O próximo passo é entrar na transação SQ02 (Ferramentas/ABAP Workbench - Utilitários/ABAP4 Query/Áreas funcionais) para que seja criada a área funcional. Vale dizer que, como o grupo de usuários, caso já exista alguma área funcional para quem quer criar a Query, este passo também não é obrigatório. • O nome da área funcional deve seguir o seguinte padrão: • ZSADQAMMNN • Onde: • Q = Define que é uma Query • A = Define que é uma área funcional • MM = Módulo ( MM, SD, FI...) • NN = Número Seqüencial A área funcional irá conter as tabelas utilizadas, campos selecionados, etc. Várias queries (relatórios) podem utilizar uma mesma área funcional. Definição da área funcional Ao solicitar a criação de uma nova área funcional, deverá ser informada a denominação (obrigatório), e definido se será utilizado mais de uma tabela ou uma única tabela como fonte das informações. Cuidado: se optar por uma única tabela, isso não poderá ser alterado posteriormente. Se optar por mais de uma tabela, será preciso informar pelo menos 2 tabelas. No campo ‘Tabela’ deve ser informada a tabela principal, onde estarão as principais informações e onde estão os principais campos que serão utilizados como parâmetros de seleção. Área Funcional – Join A tela seguinte (se foi utilizada a opção ‘União tabelas’ solicitará o relacionamento entre as tabelas envolvidas (join). A tabela informada na primeira tela já vem preenchida, devendo ser informadas as demais tabelas. Serão processados os dados que estiverem em todas as tabelas relacionadas nessa tela, e se uma delas possuir mais de um registro, o relatório exibirá uma linha para cada registro. É necessário marcar as tabelas que se relacionam, e utilizar o botão ‘Definir condição’. As tabelas serão exibidas na coluna esquerda. Utilizar o botão ‘Especificar condição’. Serão solicitado confirmação para utilizar as propostas do sistema, podendo ser confirmado. A tela seguinte exibirá uma sugestão de relacionamento; é necessário verificar se há coerência no relacionamento sugerido. Além disso, para garantir uma boa performance da query que será criada, é preciso que os campos sejam indice. Índices de tabelas para área funcional Para verificar se os campos que serão utilizados no join fazem parte de índices, deve-se consultar as tabelas envolvidas pela transação SE11. Os campos que vêm marcados como chave compôem o índice primário, que é o ideal para utilização. Se não for possível, verificar pelo botão ‘Indices’ quais são os indices criados para tabela e tentar utilizar os campos de um deles. Os campos identificados nessa pesquisa também devem ser os campos utilizados como parâmetros de seleção, para garantir uma boa performance da query. Área Funcional - Tabelas Álias Tabelas alias: Pelo botão ‘Tabelas alias’ pode-se definir um novo nome para uma tabela, e dessa forma utilizar a tabela mais de uma vez no join. Isso permite que se utilize a mesma tabela com mais de uma informação diferente na mesma linha do relatório. Grupos funcionais: Após definir o join, é preciso criar um grupo funcional. O grupo funcional é necessário para definir os campos das tabelas selecionadas que serão utilizados. Área Funcional - Delimitações Após criar o grupo funcional, deverão ser selecionados os campos que serão utilizados na query, para impressão ou como critério de seleção. Parametros de seleção: pelo botão ‘Delimitações’ é possível definir parâmetros de seleção. Utilizar sempre a opção ‘Critério de seleção’. No campo ‘For’ deve ser informada a tabela/campo, e no campo ‘Suplms’ pode ser definido como obrigatório, valor default Área Funcional -Suplementos Pelo botão ‘Suplementos’ da área funcional é possível adicionar campos ou códigos Abap. A sequencia permite que a informação de um campo adicional seja utilizada em outro campo adicional subsequente. Significado e título devem ter informações que esclareçam o conteúdo do campo. O formato do campo pode ser definido pelo usuário ou referenciar-se à um campo do banco de dados (like tabela-campo). Para definir o conteúdo do campo, utiliza-se o botão ‘Editor’ e então é inserido um código Abap para preenchimento do campo. Área Funcional - Campos Adicionais Os campos adicionais criados passam a fazer parte da tabela principal, e podem ser adicionados ao grupo funcional para serem inseridos na query. Como os dados das tabelas inseridas no joins somente são exibidos se atenderem as condições de relacionamento em todas as tabelas, algumas vezes utilizamos o campo adicional para buscar dados em outras tabelas. Para isso, é necessário definir a tabela no menu ‘Saltar, Coding, Data’. Área Funcional - Códigos Abap adicionais Uma vez definida a tabela, podemos utilizá-la no campo adicional. Também é possível fazer tratamento dos dados através de código Abap inserido nos pontos definidos no menu ‘Saltar, Coding’. Por exemplo, na área ‘End of Selection’ pode ser inserida a chamada para outro programa. Na área ‘Data’ pode ser definida uma tabela interna para uso em outra área. Exemplo • Com a área funcional abaixo, ao executar a query será gerada a tabela i_ordens, que executará o programa z_sad_sd_atualiza_ordens_venda após selecionar todos os registros. Geração da Área Funcional Após definirmos todos os elementos da área funcional, devemos utilizar o botão ‘Verificar’ para identificarmos possíveis problemas Depois de corrigir os problemas, Salvar e Gerar a área funcional. Após salvar a área funcional é preciso atribuí-la ao grupo de usuários que terá permissão para criar queries utilizando essa área funcional. Marcar o grupo de usuários e salvar. Query Click aqui para selecionar o Grupo de Usuários. Digite o nome da query, conforme o padrão e click em CRIAR. Utilize a seguinte nomenclatura: ZSADQ_MMNN onde: Q = Define que é uma Query MM = Módulo ( MM, SD, FI...) NN = Número Seqüencial Selecione a área funcional que será atribuída à QUERY. Query - Definição Na tela inicial devem ser informados o título do relatório e o número de colunas. Os parâmetros ‘Atributos especiais’ podem ser utilizados depois que a query estiver pronta, pois exigem uma variante. Utilizar o botão ‘Tela seguinte’ para os próximos passos. Query - Campos Serão exibidos os grupos funcionais criados na área funcional (normalmente, é um único grupo). Deve-se prosseguir para a tela seguinte. Nesse momento deve-se marcar os campos do grupo funcional que serão utilizados na query (no relatório ou como critério de seleção). Query - Denominação Breve eCampo Local É possível criar denominações breves para os campos na query. Essas denominações podem ser utilizadas na impressão ou na criação de outros campos locais. Os campos locais são campos que terão valor apenas no momento da impressão, podendo conter fórmulas ou referências a outros campos. Campos Locais da Query Os campos locais podem também ser informados pelo usuário na tela de seleção, como opcionais ou obrigatórios. Critérios de Seleção na Query Os campos de seleção só precisam ser definidos na query se não foram definidos anteriormente na área funcional. Na query não há os recursos disponíveis na área funcional de sequência dos parâmetros, obrigatoriedade do campo, valor default. À partir desse ponto é necessário definir o tipo de relatório que será gerado: Lista Básica (exibe todos os registros), Estatística (valores consolidados) ou Lista Ranking (maiores valores). Query - Lista Básica A lista básica deve ser definida em linhas, com a sequência dos campos na linha, a sequência de ordenação, os campos que serão totalizados e o critério de contagem. Para os campos utilizados na ordenação, podem ser definidos os critérios de quebra. Query - Lista Básica Na definição do lay-out de impressão, podem ser alterados o tamanho dos campos, a impressão das unidades de medida, a cor da linha. Em seguida é exibido o lay-out de impressão, onde podem ser definidos o cabeçalho e o rodapé e alterada a linha de descrição dos campos. Com o uso dos caracteres especiais & % é possível utilizar variáveis do sistema (data, hora, página) e com o caracter & é possível utilizar campos locais definidos como critério de seleção. Query - Estatística Na definição de um relatório tipo ‘Estatística’, deve-se relacionar os campos texto que irão compor o fator de totalização e em seguida relacionar os campos de valor ou quantidade que serão totalizados. Na tela seguinte é possível personalizar o lay-out, da mesma forma que na lista básica. Query - Lista Ranking A lista ranking permite exibir os maiores (ou menores) valores de uma seleção. O campo que será utilizado como critério deve estar marcado na coluna ‘Crit’. Para exibir em ordem crescente, é necessário flegar a coluna ‘Em’. É possível definir também o tamanho do campo e o número de casas para arredondamento. A definição do lay-out é a mesma da lista básica e da estatística. Query - Impressão No menu ‘Processar, Sequencia de Saida’ é possível determinar a ordem em que os relatórios criados na query serão impressos.. Com a query concluída, é possível criar variantes para facilitar a utilização e garantir alguns parâmetros. Se for flegada a coluna ‘Sem valores SPA/GPA’, o valor gravado na variante não será utilizado, prevalecendo o valor default que for definido pela query. Query - Impressão Se for criada uma variante padrão, a query pode ser modificada para utilizar sempre essa variante. É possível também proteger a query para que somente a opid que criou possa alterá-la. No relatório gerado, há uma série de funcionalidades que podem ser utilizadas pelo usuário, como geração de relatório de curva ABC, visualização dos parâmetros, visualização somente dos totais. Como identificar as tabelas • Os campos a serem utilizados nas queries podem ser identificados através de transações que atualizam esses campos, posicionando- se sobre o campo e utilizando as teclas F1 e F9 Estrutura ou tabela transparente ? • Muitas vezes, a informação técnica exibida refere-se à uma estrutura, que é utilizada apenas no momento de utilização da transação, sem ter dados gravados. Para verificar, deve-se clicar 2 vezes sobre o nome da tabela. Será exibida a transação SE11, onde é possível a identificação. Como identificar as tabelas • Se a informação referenciar uma estrutura, deve-se tentar a identificação em outra transação. Se isso não for possível, pode-se tentar identificar a tabela através de ‘trace’ da transação. • Para isso, é necessário executar uma atualização dos campos desejados através da transação, com a ferramenta SQL Trace ativa para o usuário. Como utilizar o SQL Trace • Em uma seção, acesse a transação ST05 e acione o botão ‘Trace on’. O trace é gravado por usuário. • Em outra sessão, execute uma inclusão ou alteração da informação desejada. Como utilizar o SQL Trace • Após gravar os dados, retorne para a sessão do SQL Trace, acione o botão ‘Trace off’, em seguida o botão ‘List Trace’ e tecle <Enter>. Será exibida uma relação das tabelas acessadas pela transação utilizada. Como utilizar o SQL Trace • Se foi feita uma inclusão, procure pelo comando Insert, e se foi feita uma alteração, procure pelo comando Update. Serão exibidas todas as tabelas utilizadas na transação. Como utilizar o SQL Trace • Clique duas vezes sobre o comando, e será exibido o registro que foi gravado. Dessa forma, será possível identificar qual tabela possui a informação que foi digitada. • Para certificar-se do nome do campo, consulte a tabela pela transação SE16 Algumas tabelas • BKPF – Cabeçalho documento contábil • BSEG – Detalhe documento contábil • LFA1 – Fornecedores • LFBK – Fornecedores – dados bancários • LFB1 – Fornecedores – dados empresa • BSID – Duplicatas em aberto – clientes • BSIK – Duplicatas em aberto – fornecedores • BSAD – Duplicatas liquidadas – clientes • BSAK – Duplicatas liquidadas – fornecedores • BSIS - Índice secundário para contas do Razão Algumas tabelas • KNA1 – Clientes • KNVP – Clientes – parceiros • KNVV – Clientes – dados de vendas • KNB1 – Clientes – dados empresa • EKKO – Pedidos (MM) • EKPO – Item de pedido • EKET – Divisão remessa pedido • MARA – Materiais • MARC – Materiais por centro • MARD – Materiais – saldo estoque • MBEW – Materias – dados contábeis • MARM – Materiais – unidades de medida Algumas tabelas • MCHA – Lotes • MCHB – Lotes – saldos • LQUA – Saldos WM • MKPF – Cabeçalho documento material • MSEG – Documento material – detalhe • VBAK – Ordem de venda – cabeçalho • VBAP – Ordem de venda – item • VBEP – Ordem de venda – divisão de remessa • VBAP – Ordem de venda – parceiros • VBKD – Ordem de venda – dados comerciais • VEPVG – Ordens de venda para serem fornecidas • VBFA – Fluxo de documentos Algumas tabelas • LIKP – Fornecimento – cabeçalho • LIPS – Fornecimento – item • VTTK – Transporte – cabeçalho • VTTP – Transporte – item • VBUK – Status – cabeçalho • VBUP – Status – item • VBSS – Grupo de remessa • VBRK – Documento Faturamento – Cabeçalho • VBRP – Documento Faturamento – Item • KONV – Condições (preços) • J_1BNFDOC – Nota fiscal – cabeçalho • J_1BNFLIN – Nota fiscal - item Treinamento Abap Query Agenda Área de Trabalho e Grupo de Usuários Área Funcional Definição da área funcional Área Funcional – Join Índices de tabelas para área funcional Área Funcional - Tabelas Álias Área Funcional - Delimitações Área Funcional -Suplementos Área Funcional - Campos Adicionais Área Funcional - Códigos Abap adicionais Exemplo Geração da Área Funcional Query Query - Definição Query - Campos Query - Denominação Breve e Campo Local Campos Locais da Query Critérios de Seleção na Query Query - Lista Básica Slide 22 Query - Estatística Query - Lista Ranking Query - Impressão Slide 26 Como identificar as tabelas Estrutura ou tabela transparente ? Slide 29 Como utilizar o SQL Trace Slide 31 Slide 32 Slide 33 Algumas tabelas Slide 35 Slide 36 Slide 37