Relatório com Filtros Avançados Utilizando Search Helps e Listas de Domínio

1. Objetivo

Esta funcionalidade demonstra a criação de um relatório SAP Fiori com uma barra de filtros (Filter Bar) avançada na plataforma Tachyonix, utilizando Search Helps e Listas de Domínio para aprimorar a experiência do usuário e a usabilidade.

2. Pré-requisitos

  • Tabelas SAP: Acesso e dados nas tabelas EKKO e EKPO.
  • Search Helps SAP: Existência das Search Helps H_T001, H_T161 e KREDA no sistema SAP.
  • Configuração na Tachyonix: Projeto Tachyonix configurado e acesso ao ambiente de desenvolvimento.

3. Passo a Passo Detalhado

Criar Novo Componente de Relatório:

No ambiente de desenvolvimento Tachyonix, crie um novo componente.

Selecione o tipo Relatório.

Defina o título do relatório como "Relatorio com Filtros - aula 021".

Configurar Fonte de Dados:

Adicione as tabelas EKKO e EKPO como fontes de dados.

Configure um INNER JOIN entre EKKO e EKPO utilizando as chaves apropriadas (ex: EKKO-EBELN = EKPO-EBELN).

Definir Layout da Lista Principal:

Na seção de layout da lista principal, adicione os seguintes campos da tabela EKKO:

  • EBELN (Número do Documento de Compra)
  • BUKRS (Empresa)
  • BSTYP (Categoria do Documento de Compra)
  • BSART (Tipo de Documento de Compra)
  • STATU (Status do Documento)
  • AEDAT (Data de Criação do Registro)
  • LIFNR (Número do Fornecedor)

Configurar Filtros na Filter Bar:

Filtro para Empresa (BUKRS):

Selecione o campo BUKRS.

Defina o Tipo de filtro como Ajuda de Pesquisa.

Configure o Modo de seleção como Múltiplo.

Especifique a Fonte da Search Help como H_T001.

Mapeie os Campos para exibição: BUKRS (chave) e BUTXT (descrição).

Filtro para Categoria do Documento (BSTYP):

Selecione o campo BSTYP.

Defina o Tipo de filtro como Lista de Domínio.

Configure o Modo de seleção como Múltiplo.

Filtro para Tipo do Documento (BSART):

Selecione o campo BSART.

Defina o Tipo de filtro como Ajuda de Pesquisa.

Configure o Modo de seleção como Múltiplo.

Especifique a Fonte da Search Help como H_T161.

Mapeie os Campos para exibição: BSART (chave) e BATXT (descrição).

Filtro para Status (STATU):

Selecione o campo STATU.

Defina o Tipo de filtro como Lista de Domínio.

Configure o Modo de seleção como Múltiplo.

Filtro para Data de Criação (AEDAT):

Selecione o campo AEDAT.

Defina o tipo de filtro para permitir seleção por período (range).

Filtro para Fornecedor (LIFNR):

Selecione o campo LIFNR.

Defina o Tipo de filtro como Ajuda de Pesquisa.

Configure o Modo de seleção como Múltiplo.

Especifique a Fonte da Search Help como KREDA.

Mapeie os Campos para exibição: LIFNR (chave) e MCOD1 (nome).

Configurar Tela de Detalhe:

Aba "Detalhe PO":

Crie uma nova aba com o título "Detalhe PO".

Adicione um componente Painel e associe o ícone account.

Arraste os campos do cabeçalho (EKKO) para dentro deste painel para exibição detalhada.

Aba "Detalhe - Item":

Crie uma nova aba com o título "Detalhe - Item".

Adicione um componente Tabela e associe o ícone activity-items.

Arraste os campos do item (EKPO) para dentro desta tabela.

Habilite a funcionalidade de exportação para esta tabela.

4. Verificação e Teste

Publique o componente de relatório.

Acesse o aplicativo Fiori gerado.

Interaja com a Filter Bar:

Verifique se os filtros de Ajuda de Pesquisa (BUKRS, BSART, LIFNR) exibem o Value Help Fiori com chave e descrição, permitindo seleção múltipla.

Verifique se os filtros de Lista de Domínio (BSTYP, STATU) apresentam um dropdown list (ComboBox) com os valores fixos.

Teste a seleção múltipla e por intervalo (range) para o campo AEDAT.

Execute a pesquisa com diferentes combinações de filtros e valide se os resultados na lista principal e nas abas de detalhe (Detalhe PO, Detalhe - Item) estão corretos.

5. Considerações Técnicas Adicionais

Filter Bar como Tela de Seleção Fiori:

A Filter Bar em um relatório Fiori, construída na plataforma Tachyonix, atua como o equivalente moderno da tela de seleção (selection screen) de um programa ABAP (SE38). Enquanto em ABAP tradicional o desenvolvedor declara PARAMETERS e SELECT-OPTIONS no código para construir a interface de seleção, a plataforma Tachyonix permite a construção dessa tela de forma visual e declarativa. A configuração de filtros na Filter Bar mapeia diretamente para os critérios de seleção que serão aplicados na consulta OData enviada ao backend SAP, abstraindo a complexidade da geração do código ABAP subjacente.

Reaproveitamento de Artefatos do Dicionário de Dados:

A plataforma Tachyonix se integra nativamente com o Dicionário de Dados ABAP (SE11), permitindo o reaproveitamento de artefatos existentes para enriquecer a experiência do usuário nos filtros:

Ajuda de Pesquisa (Search Help): A configuração de um filtro com uma Search Help (ex: H_T001, KREDA) é análoga a usar a cláusula MATCHCODE OBJECT na declaração de um PARAMETER em ABAP. A plataforma Tachyonix lê a definição da Search Help no Dicionário de Dados e gera automaticamente o Value Help Fiori correspondente. Este Value Help inclui a exibição de múltiplos campos (tipicamente chave e descrição) e a funcionalidade de busca, proporcionando uma interface rica para o usuário selecionar valores sem a necessidade de memorizar códigos.

Lista de Domínio (Domain Fixed Values): A configuração de um filtro com uma Lista de Domínio é análoga a criar um campo de tela que faz referência a um Data Element associado a um Domínio com valores fixos definidos no Dicionário de Dados. A plataforma Tachyonix lê esses valores fixos e os apresenta como um dropdown list (ComboBox) na interface Fiori. Isso elimina a necessidade de o usuário digitar ou memorizar códigos, garantindo a entrada de dados válidos e melhorando significativamente a usabilidade.

Seleção Múltipla e por Intervalo (Ranges):

A configuração de filtros com modo de seleção Múltiplo ou como um período de datas (range) na plataforma Tachyonix gera, por baixo dos panos, o equivalente a um SELECT-OPTIONS em ABAP.

  • Para seleção Múltipla, o usuário pode selecionar múltiplos valores discretos (ex: várias empresas).
  • Para seleção por Período, o usuário pode definir um intervalo de datas ou outros tipos de ranges.

A plataforma gerencia a complexidade da interface de usuário para a seleção de múltiplos valores ou intervalos (incluindo operadores como "entre", "maior que", "menor que", "excluir", etc.) e traduz essa entrada para a estrutura SELECT-OPTIONS (tabela interna com campos SIGN, OPTION, LOW, HIGH) que é então utilizada na cláusula WHERE da consulta OData enviada ao backend SAP. Isso permite que o desenvolvedor crie filtros poderosos e flexíveis sem escrever código ABAP complexo para manipulação de ranges.