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.

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
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.-
- Insira a transação SMARTFORMS na caixa do código de transação.
- Na próxima tela, insira um nome de formulário e clique em criar
A próxima tela é dividida em três seções-
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.
Clicar com o botão direito nas páginas permitirá a criação de uma nova página, janela, gráfico ou endereço.
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!
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
Configurações gráficas na janela do formulário inteligente
Windows em formulários inteligentes
Existem dois tipos de Windows
- a Principal
- 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.
Dentro da janela principal podemos adicionar texto como introdução para personalizar a saída do formulário.
As opções de Saída em cada janela determinam o tamanho da linha, largura, cores e fundo a serem colocados.
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.
Os dois editores diferentes estão disponíveis no Smartforms viz. Editor normal
e o Editor Gráfico.
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
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.
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'
Isso retornará o nome do módulo de função do smartform que é referenciado.
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.
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.
- 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.
- 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.
- 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.
- 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".
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.
💡 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






















