ABAP - SmartForms
ABAP - SmartForms
Smartforms
1. Introduo
SAP Smart Form utilizado para criar formulrios de impresso para SAP/R3. Os meios de sada que essa ferramenta suporta so impressoras, fax, e-mail, ou internet (utilizando XML). Algumas de suas vantagens so: criao e manuteno de formulrios mais rapidamente e com uma interface mais amigvel, adaptao do layout sem nenhum conhecimento de programao, sada em XML, etc. Todos os novos formulrios so desenvolvidos e disponibilizados utilizando a tecnologia do Smartforms, porm a SAP garante o suporte e a continuidade dos formulrios SAPscripts j existentes, inclusive os desenvolvidos para clientes. Alm disso, possvel efetuar a migrao para a nova tecnologia, permitindo assim uma padronizao nos ambientes e favorecendo as manutenes futuras.
Smartforms
2. Conceitos bsicos: Formulrios script em SAPscript
Antes de iniciarmos os nossos estudos de Smartforms vamos recapitular cada um dos componentes de um formulrio script, utilizando a viso da tecnologia SAPscript. Pginas o Todo formulrio dever conter, pelo menos, uma pgina. Esta pgina pode ser configurada de acordo com as dimenses requeridas pelo cliente ou ento por padro existentes no mercado; o S h a necessidade de mais de uma pgina por formulrio quando o layout entre elas diferenciarem, logo, quando estamos tratando de formulrio com (n) pginas idnticas, basta termos definido uma nica pgina e considerar a pgina seguinte como sendo a mesma. Mais adiante estaremos revendo este tpico; quando estivermos trabalhando com impresses matriciais, interessante mantermos as unidade de medida: CH - caracteres para comprimento e LN - linhas para altura. Janelas o As janelas nada mais so que espaos pr-estabelecidos para limitao de reas nas pginas; o Oferece a facilidade de lidarmos com caractersticas, formas e at edies particulares para cada parte do todo; o As janelas, no momento de sua criao podem ser sobrepostas umas nas outras, exclusive utilizando o mesmo espao fsico; em SAPscripts, uma das tcnicas utilizadas para linhas de grade justamente criar duas janelas ocupando o mesmo espao, sendo uma para textos e outra para as linhas horizontais e verticais.
Smartforms
Famlia de Pargrafos
o possvel criar uma biblioteca de formatos de pargrafos para um nico formulrio; o Para estes formatos podemos entender: definio de margens, recuos de pargrafos, alinhamento, fonte, tabulao, etc; o Este recurso muito mais aplicado em impresses a laser ou jato de tinta, pois podemos tratar as fontes e tabulaes indiscriminadamente. O que no ocorre em impresses matriciais salve excees de impressoras atuais que s faltam falar. As mais antigas no possuem tanta flexibilidade e impede um bom aproveitamento destes recursos; o Para o SAPscript este recursos um recurso interno do formulrio, ou seja, se para o formulrio X eu criei o pargrafo Y eu no posso utilizar este pargrafo Y em outro formulrio Z; Famlia de caracteres o Assim como as famlias de pargrafos, este recurso permite a criao de vrias formas de edio para fontes; o Tambm sendo um recurso interno, permitindo o uso exclusivamente do seu formulrio; Programa chamador o O SAPscript no trabalha sozinho, ele precisa de um programa ABAP para gerenciar suas informaes e ditar o que deve ser realizado; o O programa ABAP fica encarregado de acessar o banco de dados, selecionar informaes pertinentes, format-las, agrup-las e disponibiliza-las para o formulrio; o As principais funes standards que devem ser componentes deste programa so: OPEN_FORM para a abertura e envio de informaes do dispositivo de sada, START_FORM inicializao de um formulrio ou sua pgina especfica, WRITE_FORM impresso de trecho do formulrio script restringidos por um identificados chamado Elemento de Texto, END_FORM encerra o formulrio ou sua pgina e CLOSE_FORM finaliza a operao de impresso;
Smartforms
3. Conceitos bsicos: Formulrios script em Smartforms
O Smartform dividido inicialmente em duas partes: Opes Globais e Pginas e Janelas. Vamos descrever cada uma delas e suas subdivises: Opes Globais: o Atributos do formulrio: demonstrar as informaes do criados e modificador do formulrio, a classe de desenvolvimento, os atributos de idioma, como: idioma original e as tradues, formato de pgina, caracteres por polegada, linhas por polegada, estilo padro e sada por OTF ou XML o Interface do usurio: esta interface semelhante interface que encontramos em mdulos de funo, ou seja: importao, exportao, tabelas e excees. Estas interfaces sero utilizadas pelo(s) programas que faro uso do formulrio Smartform criado; o Definies Globais: disponibiliza uma rea para que sejam declarados campos, estruturas e tabelas internas que sero aproveitadas em todo o formulrio. Identificar a sua familiaridades com os dados globais em programas ABAP; Pginas e Janelas: o Pgina(s): identificador do formato do seu formulrio, assim como o agrupador de todos os demais subobjetos do script, como: janelas, grficos, endereo. Neste n do formulrio indicamos a forma de numerao do formulrio, podendo ser numrico ou alfa-numrico, indicador de pgina seguinte, formato vertical ou horizontal, fonte de alimentao na impressora e mtodo de impresso: Simplex ou Duplex, este ltimo s possvel quando o dispositivo esteja preparado para impresses frente e verso de pginas e finalmente a utilizao de marca dgua ou timbre do formulrio, adicionando imagem de fundo; o Janela MAIN: assim como o SAPscript, o Smanrtform deve conter pelo menos uma janela caracterizada como janela principal que deve estar presente em cada uma das pginas. Suas propriedades so similares s demais janelas, o que diferencia da tecnologia anterior que o efeito de LOOP leitura repetitiva s poderia ser realizado nesta janela;
Smartforms
4. Componentes de uma janela Janela Grfico
Delimitador de uma rea espacial de uma pgina Utilizado para inserir uma imagem no formulrio, podendo ser: uma logomarca, uma assinatura virtual, uma fotografia, etc. Esta imagem poder ser tratada no sistema a partir da transao SE78
Endereo
Serve para identificar o nmero de endereo de uma entidade presente em quase todos os registros mestre, como Empresa T001-ADRNR, cliente KNA1-ADRNR, etc. Este campo tambm pode ser uma varivel de acordo com o dados globais do seu formulrio, indicando o nome do campo correspondente que contm o nmero do endereo dinmico entre (&)
Texto
Utilizado para insero de um texto no formulrio. Este texto pode estar mesclado de constantes e variveis, assim como formataes por pargrafos e fontes.
Alternativa
Recurso para que seja disponibilizado a flexibilidade de tratar diferentes componentes, conforme a regra estabelecida, ou seja, caso queiramos dar um novo texto de acordo com o contedo de uma varivel, para isso este componente sempre vem acompanhado de duas opes: condio e para a resposta afirmativa da para a negativa da condio.
Smartforms
Comando
Utilizado para enviar comando de impresso diretamente para o dispositivo, como: nmero de cpias, sada imediata, folha-de-rosto e at printcontrols para a impressora. Os print-controls podem ser visualizados e atualizados na transao SE73. NOTA: importante ter o manual do usurio do dispositivo para enviar os comando em Hexadecimal corretamente.
Programao
Utilizado para a insero de cdigos ABAP para extrao e/ou tratamento de dados colhidos no banco de dados do sistema
Classificador
Loop
Leitura repetitiva de uma estrutura de tabela interna para tratamento de entidades registros por vez.
Tabela
Criao de uma estrutura e grade e informaes alinhadas para exibio de itens de uma mesma aplicao, como: itens de uma ordem de venda, lista de funcionrios. Este componente facilita o trabalho que temos atualmente de reestruturar linhas em um formulrio e tambm pode ser agregado de um sistema de leitura seqencial internamente.
Padro
Utilizado para subdividir uma janela em celular e tratar o contedo de cada uma destas clulas individualmente.
Seo complexa
Serve como um coringa, podendo utilizar-se dos recurso dos componentes: Loop, padro e tabela.
Smartforms
5. Como trabalhar com os componentes?
Para criar qualquer objeto no formulrio voc deve selecionar o n de interesse em sua estrutura e clicar com o boto direito do mouse para que seja aberto o menu popup. Entrar na guia Criar e observar os componentes disponveis para aquele nvel do n. Selecion-lo. Os componentes so criados com um nome pr-estabelecido pelo sistema, podendo manter o mesmo ou determinar um nome que melhor identifique o componente, assim como a sua descrio.
Janela Na aba caractersticas gerais voc poder indicar se esta uma janela principal. Na aba opes de sada voc poder indicar o seu posicionamento na rea espacial de sua pgina, indicando: margem esquerda, margem superior, largura e altura, ser definido se o componente ser apresentado com linha de borda, qual a sua espessura e se deseja o sombreamento em escalas de cinza em percentual.
Smartforms
Na aba Condies, voc poder indicar uma ou mais variveis para condicionar a exibio destes componente em seu formulrio. Da mesma forma que a periodicidade da informao.
Smartforms
Grfico Pode ser tratado com valore fixos ou variveis. Na aba Caractersticas gerais voc poder informar o nome, o tipo de objeto e sua identificao.
Caso seja de interesse que estas informaes tornem-se dinmicas, basta clicar no boto localizado na frente de cada campo para que o sistema passe a
aceitar um ponteiro que indicar a varivel que contm a informao necessria. Esta varivel deve estar declarada globalmente e entre (&) ex. &V_OBJNOME&. H a possibilidade de classificar este objeto por monocromtico, colorido ou ambos dinamicamente. Na aba opes de sada voc poder indicar o ponto de referncia para a montagem da imagem, como: a borda da janela ou o ltimo pargrafo impresso. Da mesma forma, voc indicar o seu alinhamento: esquerda, direita ou
Smartforms
justificado, oferecendo uma margem no campo indicado frente com sua respectiva unidade de medida. a indicao de borda com linhas e sombreamento.
Endereo i. Caractersticas gerais: A determinao de categoria de endereo pode ser identificada por 1 organizao, 2 privado e 3 centro de trabalho ou dinamicamente atravs da indicao do ponteiro (varivel global) que detm esta informao; O nmero de endereo pode ser fixo ou varivel, basta indicar no campo da tela ou clicar no boto dados; para converter para a recepo de um ponteiro de
Smartforms
No quadro seguinte, voc indicar o pargrafo que deve ser utilizado para a impresso, assim como linhas utilizadas e pas remetente;
ii. Opes de sada: H um campo para a indicao de um estilo para a impresso do texto. Voc pode fazer uso dos estilos disponibilizado no sistema ou criar o seu prprio estilo. uma vez que um estilo foi alterado, todos os formulrio que utilizam ele sero afetados. O flag proteo de pgina evita que o texto apresentado seja quebrado entre pginas. Caso haja a quebra, o texto inteiro transcrito na pgina subseqente. iii. Condies: idntico aos itens anteriores
Smartforms
Alternativa i. Caractersticas gerais:
Voc dever indicar qual ou quais so os campos que faro parte da regra de condio para seu processamento, indicando o nome do campo, seu operador relacional e seu elemento de comparao.
ii. Opes de sada: mesmas tela do componente Texto iii. Condies: idntico aos componentes anteriores Comando i. Caractersticas gerais: O flag transio para nova pgina faz a vez do comando NEW-PAGE do SAPscript, ou seja, ele interrompe o processo e inicia uma nova pgina
Smartforms
O campo inserir controle de impresso serve para que voc coloque um print-control especfico. Por exemplo, para compactar fonte SF013, etc... Voc poder consultar as variedades de print-controls na transao SE73
Programao i. Caractersticas gerais: Nos parmetros de entrada voc poder identificar qual ou quais campos voc ir levar para dentro de seu cdigo Nos parmetros de sada voc indicar qual ou quais as variveis ser preenchidas com o retorno do seu programa ABAP.
No editor de texto voc poder criar o seu cdigo ABAP seguindo as regras normais de programao, assim como a declarao de variveis locais. Caso voc trabalhe com a programao estruturada em rotinas, a chamadas das mesma devem ser realizadas neste ponto, porm a declarao das rotinas devem ser globais, na aba rotinas FORM.
Smartforms
Classificador i. Caractersticas gerais
Este componente ir agrupar demais componente que voc queira que sejam impressos ou no cabealho ou no rodap das pginas.
Loop i. Dados:
Neste caso indicado os campo que devem ser preenchidos com as suas declaraes globais. Subentende-se que houve um componente anterior que alimentou uma tabela interna e esta deve ser declarada aqui. Da mesma forma, declarar a estrutura que receber o registro lido. Pode ser determinado a leitura de registros fechados atravs do de/at.
Smartforms
leitura, realizando assim o filtro na leitura.
Tambm poder utilizar este quadro para gerar os limitadores lgicos para a
Finalmente a regra para uma reclassificao dos registro, mais comumente conhecido como SORT. ii. Horas: Pode ser determinado a regra assim como foi determinada no componente Classificador.
Tabela i. Tabela: nica aba que se diferencia do componente Loop. Nela voc definir o seu tio de linha para uma grade, subdividindo-a em celular numeradas
seqencialmente.
Smartforms
inseridas.
O tipo de linha deve possuir um identificador. Quando este tipo de linha for definido como o Default, caso um subn (texto por exemplo) no possuir a identificao da sublinha, ser assumido o tipo de linha padro. O tipo de linha tambm poder possuir o flag de proteo de pgina, conforme vimos anteriormente , ele inibe a quebra de informaes entre pginas. O conjunto de campos n.Unit, onde n um nmero seqencial para identificao unvoca de uma celular e Unid a sua unidade de medida, serve para que seja indicado a largura que esta clula ir assumir na grade.
Smartforms
devero aparecer.
Os subns podem ser textos, comandos ou outros tantos conforme a sua necessidade. Na maioria dos casos utilizamos os textos para imprimir o contedo da grade, observando que desta vez teremos uma subtela a mais nas opes de sada para indicarmos o tipo de linha e clula de referncia
Smartforms
A primeira clula, referenciada ao primeiro texto do subn deve ser preenchido da seguinte forma: Marcar a Nova linha, indicar o tipo de linha. As demais clulas referenciadas aos outros textos devem ter somente o flag clula nova marcado. Caso queira ignorar alguma clula, basta indicar o seu respectivo nmero no campo correspondente. Padro i. Padro:
Semelhante a tabela, o padro voc deve criar um tipo de linha informando o tamanho da mesma, seu alinhamento horizontal e vertical;
O tipo de linha deve ter um nome unvoco; Os campos DE e AT servem para dimensionar o nmero de linhas da matriz; A referncia servir para que voc indique uma tipo de linha j existente; A altura indicar o espacejamento entre as linhas;
Smartforms
E assim como a tabela, voc ter (n) campos para declarar suas colunas clulas que no deve ultrapassar o tamanho da linha;
Assim como na tabela, o padro tambm ter subns para preenchimento das clulas e cada subn deve ter sua relao definida na aba opes de sada, indicando em qual linha e em qual coluna deve sair sua informao.
Seo Complexa i. Caractersticas gerais: O diferencial deste componente coringa fica justamente nesta aba que permite que o componente assuma diversas finalidades.
Smartforms
LOOP;
Se o tipo de sada for uma tabela, ele assumir as caractersticas dela e o mesmo ocorrendo para o componente PADRO 6. Ferramentas de apoio Exitem estas duas ferramentas mais amigveis para o design de tabelas e janelas para o seu formulrio, oferecendo uma viso mais realista do que ser de fato o seu componente. So eles: Form Painter
Smartforms
Table Pianter
Smartforms
7. Estilos
Os estilos so bibliotecas de pargrafos e caracteres para a formatao de texto dos formulrios Smartforms. A grande vantagem deste recurso est na praticidade de manuteno, visualizao e padronizao de seu grupo de formulrios. Pode-se trabalhar com uma gama grande de estilos j existentes no sistema ou at com cpias a partir dos padres do R/3.
Smartforms
O estilo est dividido em trs partes: Dados de cabealho;
Smartforms
Formato de pargrafos;
Smartforms
Formato de caracteres;
Smartforms
8. Modelo de Texto
Smartforms
Ao aceitar este modelo indicado, o texto ser transcrito para o editor do componente ativo
Smartforms
9. Migrao de SAPscript para Smartforms
Smartforms
Smartforms
10. Exerccios 01 Nota de Crdito Descritivo do GAP
Dever ser criado um smartform para impresso de notas de crdito, consequentemente, resgatando o mdulo de funo gerado automaticamente. Transao Transao XXXX Periodicidade Toda criao de um faturamento de um documento de nota de crdito. Detalhamento do GAP Para pesquisa do nome e endereo do cliente, identificar qual o parceiro do documento de faturamento (VBRK-KUNRG), aps pesquisar nome (KNA1-NAME1) e endereo, cidade e CEP (KNA1-STRAS , KNA1-ORT01, KNA1-PSTLZ)
Smartforms
Logomarca
Aviso de Lanamento
Informamos a V.Sas. que, nesta data estamos levando a seu CRDITO a importncia de R$ KOMVKWERT ou somar campos VBRK-NETWR + VBRK-MWSBK (colocar valor por extenso.) conforme especificaes abaixo: HISTRICO Crdito ref. n/ NF n VBAK-XBLNR de J_1BNFDOC-DOCDAT (pesquisar n ordem de venda na VBRP-VGBEL) Motivo: VBAK-AUGRU (pesquisar texto em funo do cdigo na TVAUT-BEZEI) Valor Total do CRDITO: R$ VBRK-NETWR + VBRK-MWSBK ICMS...: R$ (de posse do n da NF pesquisar seu numero interno e na tabela J_1BNFSTX para este numero interno (J_1BNFSTX-DOCNUM) somar todos os valores dos itens (J_1BNFSTX-TAXVAL ) que tenham J_1BNFSTX-TAXTYP igual a ICM3. IPI: R$ (de posse do n da NF pesquisar seu numero interno e na tabela J_1BNFSTX para este numero interno (J_1BNFSTX-DOCNUM) somar todos os valores dos itens (J_1BNFSTX-TAXVAL ) que tenham J_1BNFSTX-TAXTYP igual a IPI3. R$ VBRK-NETWR + VBRKMWSBK VALOR
<nome da empresa> <endereo> <bairro> <cep> <cidade> <estado> Fone: <nmero> Fax: <nmero>
Smartforms
02 Resumo para Ordem de Venda Descritivo do GAP
Desenvolvimento de um formulrio para resumir os principais dados de uma ordem de venda gerada atravs da transao VA01 Transao XXXX Periodicidade A cada ordem de venda criada Detalhamento do GAP Dados do Cliente Nome: <tabela KNA1> CNPJ: Endereo: Textos: <texto de cabealho> Logomarca Dados da Empresa Nome: <tavela T001> CNPJ: Endereo: Data de Emisso <tabela VBAK>
Condio de pagamento: <ZTERM>-<Check table> Item <VBAP> <VBAP> <VBAP> <VBAP> Material
Smartforms
11. Material de apoio SE78 Manuteno de imagens no sistema
Smartforms
Smartforms
Smartforms