Formulários Inteligentes em SAP ABAP

⚡ Resumo Inteligente

Formulários Inteligentes em SAP ABAP permite criar e manter formulários para impressão em massa, com saída para impressora, fax, e-mail ou internet. Esta página explica a arquitetura, os nós do Construtor de Formulários, janelas, tabelas, modelos, estilos e o módulo de função gerado.

  • 🖨️ Objetivo principal: O Smart Forms produz documentos impressos em massa e oferece suporte a impressão, fax, e-mail e saída pela Internet por meio do XML gerado.
  • 🕰️ Origem: SAP Introduzimos os Formulários Inteligentes em 1998 para superar as limitações de SAPscript, e são mais fáceis de desenvolver, manter e transportar.
  • 🧱 Design gráfico: Os nós são organizados por meio de arrastar e soltar no Construtor de Formulários, permitindo a adaptação de um formulário sem a necessidade de escrever uma única linha de código.
  • ⚙️ Módulo gerado: A ativação de um formulário gera um módulo de função, e o programa de impressão obtém seu nome em tempo de execução com SSF_FUNCTION_MODULE_NAME.
  • 🪟 Regra da janela: Uma página contém, no máximo, uma janela principal, que se estende por todas as páginas, enquanto cada janela secundária exibe apenas conteúdo estático.
  • 📐 Tabela ou modelo: Uma tabela cresce dinamicamente com os dados, e um modelo é usado quando a saída tem um tamanho fixo, como um cheque ou um bilhete.
  • ???? Estilos inteligentes: Os formatos de parágrafo, formatos de caractere, cores e códigos de barras são armazenados em um Estilo Inteligente e reutilizados em todos os formulários.

SAP Formulários inteligentes ABAP

O que são Formulários Inteligentes em SAP ABAP?

SAP Smart Forms é usado para criar e manter formulários para impressão em massa em SAP Sistemas.Como meio de saída SAP Os Formulários Inteligentes oferecem suporte a uma impressora, um fax, um e-mail ou à Internet (usando a saída XML gerada).

SAP introduziu SmartForms em 1998 para superar as limitações em SAP Roteiros. SmartForms são mais fáceis de desenvolver, manter e transportar do que SAP Roteiro.

Comparação entre Smart Forms e SapScripts

  • Vários formatos de página são possíveis em SmartForms, o que não é o caso em SAP Scripts
  • É possível ter um SmartForm sem janela principal.
  • As rotinas podem ser escritas na ferramenta SmartForms.
  • SmartForms gera um módulo de função quando ativado.
  • Etiquetas não podem ser criadas em SmartForms.
Critérios Formulários Inteligentes SAPescrita
Formatos de página Vários formatos de página em um único formulário. Formato de uma página por formulário
Janela principal Não obrigatório É necessária exatamente uma janela principal.
Rotinas Escrito dentro do próprio formulário Escrito no programa de impressão separado
ativação Gera um módulo de função Nenhum módulo de função foi gerado.
Rótulos Não pode ser criado. Pode ser criado

Vantagens dos Formulários Inteligentes

  • Elas ajudam a adaptar formulários sem qualquer conhecimento de programação, graças à interface gráfica do usuário.
  • Ao ativar o smart form o sistema gera automaticamente o módulo de função e em tempo de execução.
  • Para fazer qualquer alteração temos que usar Arrastar e Soltar, Recortar e Colar. Essas ações não incluem a escrita de linhas de codificação ou o uso de uma linguagem de script.
  • Podemos inserir tabelas estáticas e dinâmicas. Isso inclui os feeds de linha nas células individuais da tabela, acionando eventos para títulos e subtotais da tabela e classificando os dados antes da saída.
  • Os formulários inteligentes permitem ao usuário incluir gráficos, que podem ser exibidos como parte do formulário ou como gráficos de fundo. Durante a impressão o usuário pode suprimir o gráfico de fundo como e quando necessário.
  • A publicação na Web é possível usando o gerado XML saída

Archiarquitetura de SAP Formulário Inteligente

Archiarquitetura de SAP Formulário Inteligente

O diagrama de arquitetura mostra as três camadas envolvidas. O formulário é projetado no Construtor de Formulários, a ativação gera o módulo de função e o programa de impressão chama esse módulo com os dados do aplicativo. As etapas de projeto da primeira camada são abordadas a seguir.

Guia de formulários inteligentes

Vamos passar por isso em SAP sistema.-

  1. Insira a transação SMARTFORMS na caixa do código de transação.
  2. Na próxima tela, insira um nome de formulário e clique em criar

Guia de formulários inteligentes

A próxima tela é dividida em três seções-

Guia de formulários inteligentes

Janela de navegação consistem em nós e subnós. Eles contêm todos os elementos (texto, janela, etc.) que pertencem aos formulários SAP

  • Janela de manutenção mostra atributos dos elementos
  • Impressora de formulários janela mostra o layout da página

Sempre que criamos formulários inteligentes, SAP cria/gera um módulo de função. Ao contrário SAProteiros, SAP FORMULÁRIOS permitem alterar o idioma.

Na janela de navegação você encontrará

Declarações de dados globais : Os dados definidos aqui podem ser usados ​​em todo o smartform para fins de codificação.

Interface de formulário : Aqui são definidos todos os dados que serão passados ​​​​para o smartform a partir do programa Print.

Guia de formulários inteligentes

Clicar com o botão direito nas páginas permitirá a criação de uma nova página, janela, gráfico ou endereço.

Guia de formulários inteligentes

A impressão ocorrerá com base no campo 'próxima página'.

Mas o processamento acontecerá conforme a sequência na janela de navegação!

Guia de formulários inteligentes

Para imagens e gráficos de fundo, você pode escolher imagens bitmap em preto e branco ou coloridas e armazená-las na forma de textos padrão. Você pode fazer um desvio na tela do smartform e abrir a tela Form Graphics. Código de transação: Se78

Guia de formulários inteligentes

Configurações gráficas na janela do formulário inteligente

Guia de formulários inteligentes

Windows em formulários inteligentes

Windows em formulários inteligentes

Existem dois tipos de Windows

  1. a Principal
  2. Secundário

Pontos importantes a serem observados

  • Você não pode ter mais de uma janela principal em uma página. Você pode ter várias janelas secundárias
  • Tudo o que você imprime na janela secundária… tem que ser estático. (Se você tiver 20 linhas em um PO e houver restrição de página, as linhas serão transportadas para a próxima página na janela principal. Ou seja, em um tipo de conteúdo predecessor e sucessor, elas serão impressas em sequência na janela principal. Isto não é permitido em janelas secundárias.

Windows em formulários inteligentes

Dentro da janela principal podemos adicionar texto como introdução para personalizar a saída do formulário.

Windows em formulários inteligentes

As opções de Saída em cada janela determinam o tamanho da linha, largura, cores e fundo a serem colocados.

Windows em formulários inteligentes

Smartforms oferece a opção de fornecer o número do endereço que é mantido na gestão central de endereços. O endereço será retirado diretamente da tabela ADRC e será preenchido no formulário.

Windows em formulários inteligentes

Os dois editores diferentes estão disponíveis no Smartforms viz. Editor normal

Windows em formulários inteligentes

e o Editor Gráfico.

Windows em formulários inteligentes

Essa configuração pode ser alterada usando o editor Configure em Utilitários.

Mesas em uma janela

No Table Painter, você pode desenhar o formato conforme a necessidade do cliente (por exemplo, Título, Subtítulo, Item, Subtotal, Total Geral etc.)

Você pode usar o layout da tabela para determinar:

  • O número de linhas e células
  • A altura de cada linha
  • A largura de cada célula
  • O alinhamento da tabela na janela

Windows em formulários inteligentes

A Tabela mostra os diferentes tipos de linha que serão usados ​​na tabela. Os tipos de linha definem o tamanho de cada célula e o número de células em cada linha.

Windows em formulários inteligentes

Fluxo de programação de formulários inteligentes

Quando um SAP O modelo Smart Form é criado, um usuário cria o layout do formulário, define os campos obrigatórios, as condições e as instruções especiais de programação no modelo Smart Form usando o Smart Form Builder.

Após a conclusão do design do formulário, o formulário precisa ser ativado antes de poder ser testado ou acessado pelos programas de impressão. A ativação do formulário inicia a geração de um módulo de função que controla todo o processamento do formulário.

Este módulo de função interage com o programa aplicativo/programa de impressão para criar a saída na mídia de saída definida pelo usuário para o dispositivo especificado.

No caso de formulários inteligentes, utilizamos 2 módulos funcionais para o processamento do formulário inteligente. Para o primeiro módulo de função, passamos o nome do formulário inteligente como parâmetro de importação. Isso então retorna o nome do módulo de função gerado dinamicamente que irá realmente chamar o smartform.

O nome do smartform pode ser passado para a função Módulo – 'SSF_FUNCTION_MODULE_NAME'

Fluxo de programação de formulários inteligentes

Isso retornará o nome do módulo de função do smartform que é referenciado.

Fluxo de programação de formulários inteligentes

O programa Print estará ligando para a FM 'SSF_FUNCTION_MODULE_NAME' para obter o nome do módulo Function em Runtime. A partir daí irá chamar o módulo Function assim obtido para executar o smartform.

Fluxo de programação de formulários inteligentes

Como chamar um formulário inteligente a partir de um programa de impressão

A chamada em duas etapas descrita acima é sempre escrita da mesma maneira. O programa primeiro resolve o nome gerado e, em seguida, o executa com os dados do aplicativo.

  1. Resolva o nome do módulo de função: Passe o nome do formulário para SSF_FUNCTION_MODULE_NAME. O nome gerado varia em cada sistema, portanto, nunca deve ser codificado diretamente no código.
  2. Chame o módulo gerado dinamicamente: Utilize a função CALL FUNCTION com a variável que contém o nome resolvido e passe os dados através dos parâmetros definidos na interface do formulário.
  3. Controle a saída: Preencha a estrutura de controle SSFCTRLOP para suprimir a caixa de diálogo de impressão ou para solicitar uma pré-visualização e preencha SSFCOMPOP com o dispositivo de saída.
  4. Lidar com as exceções: O módulo gerado apresenta os erros FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR e USER_CANCELED, portanto, o SY-SUBRC precisa ser verificado após a chamada.
DATA: lv_fm_name TYPE rs38l_fnam,
      ls_control TYPE ssfctrlop,
      ls_output  TYPE ssfcompop.

* 1. Get the name of the generated function module
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    formname           = 'Z_SMART_INVOICE'
  IMPORTING
    fm_name            = lv_fm_name
  EXCEPTIONS
    no_form            = 1
    no_function_module = 2
    OTHERS             = 3.

IF sy-subrc <> 0.
  MESSAGE e001(zsf).          " Form not found
ENDIF.

* 2. Call the generated module with the form data
ls_control-no_dialog = 'X'.
ls_control-preview   = 'X'.

CALL FUNCTION lv_fm_name
  EXPORTING
    control_parameters = ls_control
    output_options     = ls_output
    is_header          = ls_header
  TABLES
    it_items           = lt_items
  EXCEPTIONS
    formatting_error   = 1
    internal_error     = 2
    send_error         = 3
    user_canceled      = 4
    OTHERS             = 5.

⚠️ Aviso: O nome do módulo de função gerado, por exemplo /1BCDWB/SF00000123, é diferente em cada sistema. Sempre o resolva com SSF_FUNCTION_MODULE_NAME; caso contrário, o programa falhará após o transporte.

Modelos

Um modelo pode ser usado quando você sabe o tamanho exato da saída ou quando a saída está em um formato fixo.

Por exemplo, formulário fiscal/cheques/formulário de companhia aérea/passagem de trem: todos esses usam modelos.

A principal diferença entre uma tabela e um modelo é que, em uma tabela, a altura muda dinamicamente. Em um modelo, chamamos uma linha de "linha".

Modelos em SAP ABAP

Estilos SMART

Um estilo inteligente contém:

  • Dados de cabeçalho contendo os valores padrão de um estilo inteligente
  • Formatos de parágrafo, incluindo recuos e espaçamento, atributos de fonte, tabulações, contorno e numeração
  • Formatos de caracteres, incluindo efeitos (sobrescrito, subscrito), código de barras e atributos de fonte
  • Cores e sublinhados para um formato de parágrafo ou caractere

Você pode usar a transação 'smartforms'/'smartstyles' para criar um estilo inteligente.

Modelos em SAP ABAP

💡 Dica: Atribua o Estilo Inteligente nos atributos do formulário em vez de em cada nó de texto. Dessa forma, uma única alteração no estilo será aplicada a todos os parágrafos do formulário.

Isso é tudo neste tutorial

Perguntas Frequentes

Uma tabela cresce de acordo com o número de linhas na tabela interna, portanto sua altura muda em tempo de execução. Um modelo tem um número fixo de linhas e células, o que é adequado para um cheque, um bilhete ou um formulário de imposto.

Configure GETOTF na estrutura de controle, leia os dados OTF retornados pelo módulo gerado e passe-os para o módulo de função CONVERT_OTF. O resultado é uma tabela binária que pode ser enviada por e-mail ou baixada.

Não. Um Formulário Inteligente é independente do cliente, portanto, está disponível em todos os clientes do sistema após a ativação. SAPO formato do script depende do cliente e precisa ser copiado com o SCC1.

Os assistentes de IA elaboram o programa de impressão, incluindo a chamada SSF_FUNCTION_MODULE_NAME e o tratamento de exceções. O layout em si ainda é organizado nó por nó no Construtor de Formulários, pois trata-se de um objeto gráfico.

Sim. Os Formulários Inteligentes continuam sendo a opção padrão para impressão em massa em muitos sistemas. SAP sistemas, enquanto o Adobe Forms abrange documentos interativos. As ferramentas de IA aceleram principalmente as tarefas relacionadas, como ler um formulário e redigir sua documentação.

Resuma esta postagem com: