Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Sapscript
Apostila de Sapscript
doc
SAPscript
O Que SAPscript e quando utilizar..................................................................................................2
Limitaes e Problemas da Ferramenta.............................................................................................2
Programa de Povoamento de SAPscript.............................................................................................3
Abertura de formulrio.................................................................................................................3
Inicializao de um formulrio.....................................................................................................4
Seleo dos dados............................................................................................................................5
Impresso dos dados nas janelas...................................................................................................5
O Formulrio.......................................................................................................................................7
1. Header.........................................................................................................................................7
2. Pargrafos ..................................................................................................................................7
3. Caracter String ..........................................................................................................................7
4. Janelas ........................................................................................................................................7
MAIN ..........................................................................................................................................7
VAR .............................................................................................................................................8
CONST.........................................................................................................................................8
5. Pginas ........................................................................................................................................8
6. Page Windows ............................................................................................................................9
7. Text Elements .............................................................................................................................9
Manuteno de formulrios................................................................................................................9
1. Criar um formulrio novo.........................................................................................................9
2. Copiar formulrios em outro idioma (Traduo) .................................................................10
3. Copiar um formulrio de outro cliente ..................................................................................10
Incluso de logos no formulrio.......................................................................................................10
Altero de Programas / Layout Standards......................................................................................11
Pg.: 1/11
9625558.doc
1. O objeto com o logotipo deve ser gerado a partir de um programa ABAP, atravs da
transao SE38, chamado RX... . O modo como o arquivo com o logotipo tratado, deve
ser cuidadosamente verificado, pois implicar no sucesso ou fracasso da exibio do
logotipo esperado. Inicialmente, deve ser ressaltado que o arquivo deve estar no foramto
.TIF . Observado esse ponto, assegurar que o arquivo no apresente mais do que 16 cores
e por ltimo o seu tamanho no apresenta uma relao direta com o tamanho que ser
obtido dentro do formulrio SAPscript. At onde se tem notcias, ningum nunca descobriu
uma relao correta e geral para o tamanho de um logo em pixels e seu tamanho dentro do
formulrio. Geralmente essa relao s observada caso a caso, aps algumas tentativas
de erro e acero.
2. Nessa hora entra a segunda dificuldade de se trabalhar com logotipos em SAPscript. Ao se
executar o formulrio, em uma visualizao na tela, o usurio nunca ir conseguir enxergar
o logotipo. Esse somente ir aparecer na impresso em papel (ainda que impresso do
layout do formulrio, e no seu contedo final Utilitrios -> Imprimir Layout).
Essas duas caractersticas podem tomar algumas horas do programador, ainda que bem
experiente no trabalho com SAPscript.
importante se observar tambm que os formulrios so client dependent, o que significa
dizer que devem ser transportados a todos os clientes em que se deseja executa-lo,
independentemente de estar na mesma instncia que j o tenha. Isso no pareceria ser muito
complicado se no fosse um trabalho a mais controlar a verso de todos no momento que uma
alterao feita. Pior do que eles, so os objetos gerados como os logotipos, que alm de
dependentes do cliente, no esto vinculados a nenhuma request, no podendo nem ser
transportados de um cliente para outro.
Por falar em transporte, sempre bom reforar que no momento do transporte de um
formulrio SAPscript, necessrio assegurar que todas as estruturas utilizadas por ele, tenham
Pg.: 2/11
9625558.doc
sido transportadas anteriormente. O objetivo assegurar que tudo que ser utilizado pelo
formulrio j esteja no cliente, no momento em que este for introduzido, para que no haja
erros. A ordem mais aconselhada para esses transportes seria:
1. Estrutura
2. Layout
3. Programa de povoamento
Tambm vale a pena chamar a ateno para que essas 3 classes de objetos estejam em
requests separadas no desenvolvimento de um projeto, o que pode evitar problemas quando
algum deles no estiver no desenvolvimento propriamente e necessitar ser reparado.
Abertura de um formulrio
Inicializao de um formulrio
Seleo dos dados do formulrio
Impresso dos dados nas janelas do formulrio
Fechamento do formulrio
Abertura de formulrio
O primeiro passo para a impresso de um SAPscript atravs de um programa a abertura de
um formulrio para que se possa fazer o povoamento.
Para que se possa inicializar um formulrio necessrio que este esteja aberto. Portanto,
obrigatria a presena de um comando de abertura num programa de povoamento.
A abertura de um formulrio gera automaticamente a inicializao de um formulrio.
O comando para a abertura de um formulrio a seguinte funo:
Call function OPEN_FORM
exporting
*
APPLICATION
*
ARCHIVE_INDEX
*
ARCHIVE_PARAMS
DEVICE
*
DIALOG
FORM
LANGUAGE
*
OPTIONS
*
importing
*
language
*
new_archive_params
*
result
exceptions
canceled
device
form
options
unclosed
others
=
=
=
=
=
=
=
=
TX
PRINTER
X
(nome do formulrio)
(idioma do formulrio)
ITCPO
=
=
=
=
=
=
=
=
=
1
2
3
4
5
6.
Pg.: 3/11
9625558.doc
Nmero de cpias
Dispositivo de sada
Print Preview
Sada imediata
=
=
=
=
=
=
=
=
TX
PRINTER
ZSCR_CURSO
P
ITCPO
=
=
=
=
=
=
=
=
=
1
2
3
4
5
6.
Neste exemplo, o formulrio ZSCR_CURSO no idioma portugus est aberto, sem a exibio da
caixa de dilogo de impresso, utilizando a impressora IMP1 e executando a impresso
imediata de 2 cpias.
Inicializao de um formulrio
A abertura de um formulrio automaticamente gera a inicializao do mesmo.
Mas, imagine por exemplo que estejamos gerando relatrios para uma empresa de
computadores onde, para cada novo computador vendido, deve ser gerado um novo relatrio,
e esse relatrio deve conter todos os componentes presentes no computador em questo.
A abertura de um formulrio inicia o primeiro, mas para cada novo computador vendido um
novo formulrio deve ser gerado.
Pg.: 4/11
9625558.doc
Para isso utilizados o comando de inicializao. Este comando permite que, numa mesma
impresso, sejam gerados vrios formulrios diferentes, como se estivssemos abrindo um
novo para cada computador vendido.
Este comando no obrigatrio e pode no ser utilizado caso no haja necessidade da quebra
e criao de vrios formulrios para uma s seleo de dados.
O comando para inicializao de um formulrio a seguinte funo:
Call function START_FORM
exporting
*
ARCHIVE_INDEX
FORM
LANGUAGE
*
STARTPAGE
*
PROGRAM
*
importing
*
language
exceptions
form
format
unended
unopened
unused
others
=
=
=
=
=
=
=
=
=
=
=
=
1
2
3
4
5
6.
=
=
=
=
SET
BODY
MAIN
=
= 1
= 2
Pg.: 5/11
9625558.doc
type
unopened
unstarted
window
others
=
=
=
=
=
3
4
5
6
7.
Neste ponto fica evidente a diferenciao entre os tipos de janela MAIN e demais janelas.
Para as janelas do tipo MAIN, cada comando de escrita (write_form) significa uma nova linha no
formulrio e o valor a ser impresso o valor que o campo armazena no momento do comando
de impresso.
Por exemplo, digamos que o campo MARA-MATNR tenha o valor 1234 e que um comando de
impresso seja dado para a janela MAIN que ir imprimir este campo. Logo em seguida uma
nova seleo da tabela MARA feita e o campo MATNR agora vale 5678. Se uma nova
impresso na janela MAIN for executada o resultado ser o seguinte:
1234
5678
J as janelas que no forem do tipo MAIN imprimem os dados uma nica vez, no final da
impresso do formulrio ou na quebra de pgina, com os valores armazenados nos campos no
momento do encerramento ou no momento da quebra, e no no momento da escrita
(write_form), ou seja, se no exemplo anterior fosse utilizada uma janela no-MAIN, o resultado
final seria somente 5678.
Na realidade, a utilizao de um comando WRITE_FORM numa janela no-MAIN utilizada para
a escolha de qual elemento de texto ser utilizado para a impresso dos dados.
Exemplo:
Uma janela HEADER no-MAIN contm dois elementos de texto chamados FRASE1 e FRASE2 da
seguinte forma:
/E
/E
FRASE1
&MARA-MATNR&
FRASE2
&MARA-MATNR&
Teste de Frase 1
Teste de Frase 2
=
=
=
=
FRASE1
SET
BODY
HEADER
estar sendo indicado ao programa que, ao se escrever o formulrio, deve ser impresso o
elemento de texto FRASE1 para a janela HEADER (somente um elemento de texto utilizado
para cada janela no-MAIN).
No caso do exemplo, se o campo MATNR for igual a 1234 no encerramento do formulrio,
seria impressa a seguinte frase:
1234
Teste de Frase 1
O elemento de texto a ser impresso ser sempre o ltimo a ser selecionado antes do final ou
da quebra de pgina.
Pg.: 6/11
9625558.doc
O Formulrio
Trabalhar com um formulrio SAPscript no complicado, desde que se entenda seus
componentes da maneira correta. Um layout composto por vrios componentes, dentre os
quais podemos citar:
1.
Header
Informaes gerais do formulrio, como formato e orientao da pgina em que ser utilizado,
pargrafo e fontes default do mesmo (quando no for especificado nenhuma dentro do form).
Nesse tpico aparece tambm o ttulo do formulrio, a classe de desenvolvimento do mesmo e
os idiomas do formulrio original e o corrente.
2.
Pargrafos
So elementos que podem ser criados pelo usurio e apresentam informaes dos textos de
uma determinada janela. Nesses pargrafos so determinados tipos de fontes, tabulaes,
negrito ou sublinhado, etc...
Para criar um pargrafo novo, utilizar o caminho do menu Processar -> Create Element,
lembrando que em um formulrio standard, somente se pode alterar o layout no idioma
original.
3.
Caracter String
4.
Janelas
As janelas so a base da construo do layout. As janelas podem ser criadas sem limites e tem
por finalidade dividir espacialmente as regies de um formulrio para operaes
independentes.
Essas janelas podem ser criadas basicamente em 3 tipos distintos:
MAIN
Janelas do tipo MAIN so as mais importantes do relatrio (janela pela qual o formulrio se
guia). Somente permitido um tipo de janela MAIN por formulrio, e a nica janela
obrigatria em uma pgina. Pode-se criar mais de uma janela MAIN por pgina, no entanto
essas janelas, na verdade, s so divididas fisicamente, uma vez que seus elementos e
processamentos obedecem aos mesmos comandos, e no podem ter nomes diferentes. A
passagem de uma janela MAIN para outra pode ser automtica ou forada pelo usurio.
Quando o espao fsico de uma janela MAIN est tomado e necessita-se de mais dados na
mesma, o formulrio automaticamente passa prxima janela MAIN do formulrio. atravs
desse princpio que um relatrio ganha nmero de pginas automaticamente quando da
Pg.: 7/11
9625558.doc
Pg. 2
VAR
Essa janela apresenta uma caracterstica prpria, que necessita de verificao constante do
formulrio com seus dados, que podem variar durante a execuo do relatrio. Esse tipo de
janela deve ser utilizada quando se pretende trabalhar com textos que variam, como exemplos
de mensagens que podem mudar durante o decorrer da execuo do formulrio.
CONST
So janelas que no merecem muita preocupao de processamento por parte do formulrio,
uma vez que seus dados devem ser mantidos os mesmos desde seu primeiro preenchimento
at o fechamento do formulrio. Geralmente nesse tipo de janela so includos objetos e textos
que permanecem os mesmos durante todo o relatrio, independente do nmero de pginas,
como logo e rodaps.
Na atual verso do SAP, esta distino de ateno de processamento do formulrio s
terica, mas deve ser levada em conta, pois deve ser tratada por verses mais novas do
sistema.
5.
Pginas
Pg.: 8/11
9625558.doc
Aps a primeira pgina, seria chamada a segunda, com um layout diferente (sem o logotipo). A
partir dessa, todas apresentariam o mesmo tipo de layout (com dados do relatrio
aproveitando a pgina inteira).
6.
Page Windows
As page windows podem ser entendidas pelo nosso conceito de layout propriamente dito. So
os elementos responsveis pelo aparecimento ou no das janelas dentro de uma determinada
pgina, bem como seus posicionamentos em relao folha a ser impressa. tambm atravs
das page windows que o programador ter acesso aos Text Elements de cada uma das janelas,
responsveis pelo tratamento dos dados em tempo de execuo do formulrio.
7.
Text Elements
Manuteno de formulrios
A maioria dos formulrios feita pela mesma transao citada anteriormente (SE71). Nessa ela
o nome do formulrio e o idioma do mesmo so parmetros obrigatrios. Nessa tela so feitas
praticamente todas as operaes com os formulrios do SAP.
1.
Um formulrio pode ser criado inteiramente a partir dessa transao. Preenchendo um nome
do formulrio, que comece por Z ou Y, no diretamente seguidos por caracteres especiais,
como o _, o usurio poder apertar o boto Criar ou ir ao menu Layout -> Criar. O idioma
preenchido ser entendido como idioma original do formulrio. A partir da, outros formulrios
Pg.: 9/11
9625558.doc
podero ser traduzidos a partir desse original, nas mais diferentes lnguas, porm todos
mantero as caractersticas do formulrio original. Ao mesmo tempo que uma alterao desse
original, implica na imediata alterao de todos os seus filhos.
2.
Uma vez criado um formulrio (conforme descrito acima), poder ser copiado sobre ele, as
informaes de um outro formulrio do mesmo client, atravs do menu Layout -> Copy form,
j de dentro da primeira tela do formulrio criado (Header).
Ateno que essa cpia fiel ao formulrio copiado, e no poupa nenhuma informao que j
existisse no formulrio que recebe a cpia.
3.
Um formulrio pode tambm ser copiado de um outro client na mesma instncia, atravs do
menu Utilitrios -> Copy from client, da primeira janela da transao SE71, fora de
qualquer formulrio especfico.
Essa opo ir abrir uma outra janela que recebe basicamente 3 informaes.
Nome do formulrio a ser copiado
Cliente em que se encontra o original
Nome da cpia no client corrente
Os outros dois campos de check Box geralmente no so alterados, pois tratam de informaes
como cpia do formulrio somente no idioma original e exibio ou no de um log de erros ao
final da execuo da cpia.
Uma vez entrados os parmetros, deve-se apertar o boto Executar e obter uma cpia com
sucesso em todos os idiomas existentes do formulrio.
O cliente de origem do formulrio, quando for cpia de forms standards, deve ser mantido 000,
uma vez que o repositrio dos formulrios originais do SAP encontram-se todos no 000, e
podem ser lidos de todos os outros.
Pg.: 10/11
9625558.doc
3. No DELETAR janelas, elementos de textos, etc. na cpia do, layoutset. Mesmo que
alguns (ou todos) os dados e janelas do standard no sejam utilizados, o programa de
povoamento continuar tentando executar escritas em janelas e elementos de dados
especficos, j que uma cpia do standard. Os novos dados e janelas devem ser
apenas adicionados.
4. Encontrar as posies idias para alteraes no programa de povoamento. Quando os
novos dados devem ser impressos na MAIN, procurar por comandos WRITE_FORM
dentro do programa e colocar as alteraes o mais prximo possvel do WRITE_FORM
correto. Se devem ser impressos em outras janelas, procurar pelo comando
CLOSE_FORM / END_FORM e colocar as alteraes imediatamente antes destes
comandos (sempre que possvel)
5. Colocar todas as alteraes juntas sempre que possvel, identificando visivelmente,
atravs de comentrios, o bloco de alteraes. Isso facilita a manuteno e visualizao
do cdigo, alm de facilitar a busca por possveis erros, visto que, na sua grande
maioria, os programas standard da SAP so bastante complicados.
Pg.: 11/11