DICIONÁRIO _________________________________________ __ Resumo ABAP/4.5 SAP - Sistema que manipula e armazena valores de controle de processos utilizando um número muito grande de tabelas. ABAP - Linguagem do sistema SAP, isto é, uma linguagem proprietária. Utilizada somente no SAP. Concorrentes do SAP - JD edwards People software Microsiga Magnus - linguagem progress Client - unidade independente do r/3 em termos comerciais, organizacionais e técnicos. Possuem sua própria configuração, dados de aplicação e cadastrais. Instância - ambiente R/3 que agrupa 1 ou + clients, onde se executa determinado trabalho. Uma instância de trabalho normalmente possui + de 1 client onde são trabalhados simultaneamente diferentes frentes de trabalho. Entidades - objeto que existe e é distinguível de outros objetos, ou seja, identifica agrupamentos de objetos do mesmo tipo. Ex. Clientes, bancos, agência, conta-corrente. Atributos - representam o que uma entidade pode ser. Ex. Nome, RG, CPF, Endereço. Domínio - conjunto de valores permissíveis para um atributo. Ex. Est. Civil, sexo, cor, mês do ano. Relacionamento - representa a maneira como duas entidades estão relacionadas. Ex. Conta-corrente de um cliente, agências de m banco, conta corrente de uma agência. Restrições de Mapeamento - representam o modo como as diferentes entidades de um modelo se relacionam. São determinadas pela cardinalidade dos relacionamentos entre as entidades. Transações - código alfanumérico de até 20 caracteres utilizado para iniciar um processo dentro do SAP. São atalhos para execução das tarefas. S000 Menu principal do sistema (Tela inicial) S001 Tela do Workbench ABAP/4 SA38 Execução de programa report SD11 Modelo de Dados SDBE Explorar SQL SE01 Correção e manutenção do sistema de transportes SE03 Utilitários do sistema de transporte SE05 Informações sobre transportes SE07 Tela de status do sistema de transporte SE09 Organizador do Workbench SE11 Edição e manutenção de tabelas Serve também para pesquisar dados de maneira rápida em uma tabela do SAP SE12 Apenas edição tabelas SE14 utilitários de Dtabase SE15 Informações do sistema do Dicionário de dados SE16 Visualização e manutenção de tabelas SE17 Visualização de tabelas SE30 ABAP/4 Trace - serve para verificar a performance de uma parte do programa SE32 Manutenção de elementos de textos SE35 Módulos de diálogos SE36 Base de dados lógicas SE37 Biblioteca de funções ABAP/4 SE38 Editor de programa ABAP SE41 Manu Painter SE51 Screen Painter SE63 Tradução de rótulos de campos para outros idiomas SE71 SapScript - layout de tela SE73 Manutenção de fontyes SE80 Desenvolvimento de Objetos SE84 Informações do repositório SE91 Manutenção de mensagens SE93 Manutenção de Códigos de transação SHDB Mapeamento de campos e telas para programas batch input SHDGValores Globais SM01 Travar transações SM02 Enviar mensagens de sistema SM04 Usuários - visualização SM12 Exibição de transações travadas SM13 Atualizações de requests SM21 Visualização do log do sistema SM30 Gerenciador de visualização de tabelas SM31 Gerenciador de tabelas SM35 Monitoramento de JOBs em background SM36 Definição de JOBs SM37 Status de JOBs SM50 Visualização de processos em andamento SM51 Servidores do SAP SM59 Visualização e Manutenção de RFC SP01 Manutenção do SPOOL SPAD Administração do SPOOL SQ01 ABAP/4 Query - Desenvolvimento e execução SQ02 ABAP/4 Query - Áreas funcionais SQ03 ABAP/4 Query - Grupos de usuários ST01 Trace do sistema (System Trace) ST05 SQL Trace ST22 Análise de erros (dumps) em ABAP SU01 Manutenção de Usuários (master) SU02 Manutenção de "Profiles" de Usuários SU20 Manutenção de autorizações em campos SU21 Manutenção de autorizações em objetos SU50 Manutenção de definições de usuários SU51 Manutenção de endereços de usuários SU52 Manutenção dos parâmetros do usuário SU53 Checagem das mais recentes autorizações do usuário SU54 Menu de usuários SU56 Exibição das autorizações do usuário GAP - coisas a mais colocadas no SAP. Os objetos criados em um sistema SAP podem ser divididos em 2 grupos: - - Client Independent - aqueles que uma vez criados podem ser utilizados por tosos os clients de uma mesma instância, sem que exista a necessidade de alguma articulação adicional. Ex. Um report criado. Client Dependent - não podem ser executados em nenhum outro a - que seja transportado ou copiado para seu destino. Ex. Típico nos formularios sapscript. Nomes de desenvolvimento sempre se iniciam com Z ou Y. Dentro da estrutura SYST. SY-LANGU - linguagem (idioma de acesso) SY-UZEIT - hora SY-DATUM - dia SY-PA GNO - página SY-SUBRC - para testa se houveram entradas. SY-TABIX - aponta a linha da tabela que está no lendo. SY-UCOMM - entrada de função no OKCODE. User command. código do comando do usuário. NEW-PAGE - nova página TOP-OF-PAGE - topo da página ULINE - para traçar uma linha PARAMETER - Pode-se usar os parameters para passar os valores contidos na ' selection-screen' no report chamado. NE - not existent OCCOURS - deixar espaço para dados da tabela interna. MESSAGE-ID XX - chama a classe de mensagens SKIP - pular linha /O - volta uma janela /N - posição zero (tela inicial do sap) /H - depurador. APPEND - anexar dados UPDATE 'S' = pode ser assincrono ou sincrono. o 's' joga direto e o 'as' aguarda no buffer. BD Um BANCO DE DADOS RELACIONAL é a implementação física do modelo Entidade-Relacionamento e traduz corretamente o que o modelo conceitual procura representar. É uma coleção de tabelas, cada uma associada a um nome único e que possuem relacionamentos entre si. As tabelas representam fisicamente as entidades. A cada linha de tabela, chamamos de OCORRÊNCIA e o conjunto de ocorrências pode ou não estar relacionado com ocorrências de outras tabelas. CHAVE PRIMÁRIA - conunto de atributos que garante a unidade de cada ocorrência da tabela. Ex. RG, CPF, n.o. chassis. NORMALIZAÇÃO - processo de reconhecimento da chave primária. CHAVE ESTRANGEIRA - quando a chave primária de uma tabela é um atributo em outra(s) tabela(s). SQL - utilizado no R/3 e proprietário, seguindo a regulamentação internacional para esta. Seus comandos podem ser divididos em: DDL - DATA DEFINITION LANGUAGE - comandos específicos para definição de objetos do banco de dados. Ex. Create Table, Create View, etc. DML - DATA MANIPULATION LANGUAGE - commandos específicos para o tratamento dos dados armazenados nos objetos do banco. Ex. Select, Insert, Delete, Uptade, etc. Funções desempenhadas pelo DATA DICTIONARY: Ø Ø Ø Ø Ø Gerenciamento das definições de dados - criação e manutenção das definições de dados num repositório central. Provisão de informações para avalizações - permite obter informações sobre o modo como os objetos estão relacionados. Suporte ao desenvolvimento. Suporte à documentação. Garantia de que as definições de dados sejam flexíveis e atualizadas. Transporte ORDENS (CHANGE REQUEST) - recurso através do qual um conjunto de objetos CD ou CI podem ser transferidos de um client para outro ou de uma instância para outra. ORDENS E TAREFAS (TASKS) - cada ordem pode possuir uma ou + TASKS. Cada TASK possui os objetos agrupados de acordo com seu tipo e ordem na qual deverão ser criados no cliente de destino (TASK - inf. A respeito do que está sendo executado. Pacote que guarda os objetos). MODIFIABLE - quando uma ordem ainda permanece associada a um usuário, dizemos que está sob o status MODIFIABLE. RELEASE (LIBERADA) - ocorre quando 1 ordem é encerrada, deixando de estar associada a um usuário, ou seja, os objetos a ela associados são liberados para alteração por outros usuários. ORDEM TRANSPORTÁVEL - permite que as ordens possam ser enviadas aos demais ambientes do SAP. Cada ordem gerada para um objeto ABAP/4 consiste em uma nova versão para este objeto, permitindo comparar, verificar e consolidar as alterações entre os ambientes de desenvolvimento e produção. ORDEM LOCAL - alterações não transportáveis são gravadas em ordens locais. Isto garante qe as ordens estão sujeitas ao mesmo tipo de controle aplicado aos objetos transportáveis. Quando 1 ordem local é liberada são criadas versões para o objeto. REPORT Programas que exibem mais informações do que simples relatórios. Comando Select - usado para acessar as tabelas internas do sap. 1) Select * from... <tabela> … Endselect - quando não existe restrição alguma, ocorrendo uma varredura sequencial dos registros da tabela. Afeta o runtime quando se utiliza tabelas grandes. 2) Select * from<tabela>where<campo>eq<conteúdo>. Le todos os registros da tabela especificada, onde o campo é igual ao conteúdo especificado. Deve-se sempre especificar as colunas para não afetar o runtime. 3) Select * from <table> where <field table> between <field1> and <field2>. Ex. Field1 = 100 e field2 = 500. Pega inclusive o 100 e o 500. Trabalha com o range. 4) Select * from <table> where <table field> like ‘_R%’. _ = a primeira letra não importa R = a segunda deve ser R % não importa a sequencia. 5) Select * from <table> where <field table> in (123, 1000). Especificando se o field table é 123 ou 1000. 6) Select * from <table> where < table field> in < internal table>. Ex: data: begin of itab occurs 10, Sign(1), option(2), sflight-price, end of itab. Ranges: itab for sflight-table. low like sflight-price, high like Move: ‘I’ to itab-sign, ‘bt’ to itab-option, ‘500’to itab-low, ‘1000’ to itab-high. Append itab. Move: ‘I’ to itab-sign, ‘bt’to itab-option, ‘440’ to itab-low. Append itab. 7) Select * from < table> order by < field1> < field2>… primary key. Classifica a tabela interna numa área auxiliar sem afetar a tabela original. Evitar o uso de sorts dentro de um select. 8) Select * from < table> by passing buffer. (para ler diretamente de uma tabela original) 9) Select * from <table> appending table < internal table>. - le os registros e os inclui (sem sobrepor) em um internal table. 10) Select... from <table> into table < internal table>. A estrutora da tab. Interna deve correponder à estrutura da tabela que está sendo acessada. Le os registros em conjunto e os coloca dentro de uma internal table. É mais rápido que ler individualmente através de um loop. 11) Select ... into corresponding fields of table <itab>. Neste caso, não precisa corresponder a estrutura da tabela acessada. Movimentará os registros para as colunas definidas na internal table que possuam nome igual ao da tabela acessada. Corresponding ou appending corresponding não exigem endselect. 12) Select… appending corresponding fields of table < itab>. Le e grava, sem sobrepor os dados em uma internal table que possua nomes identicos aos nomes da tabela que está sendo lida. 13) Select single * from spfli where... <campo> … eq… <conteúdo>. Toda vez que o select single * é utilizado a chave primária completa deve ser especificada. Se a chave não for qualificada, receberá uma mensagem de warning e afetará a performance. 14) Select <a1><a2>... into (<f1>, <f2>,…) from…<tabela> where Le as colunas especificadas a1 e a2. Após into deverão ser especificadas as áreas de trabalho auxiliares (f1, f2). O número de colunas deverá ser igual ao numero de workareas especificadas. 15) Select max (campo) min (campo) avg (campo) count (*) from < table> into (...,…,…). Where… Avg e sum : somente para campos alfanuméricos. Sem usar o endselect. 16) Select * from spflight where price in itab. 17) Select * from (<table>) into <workarea> . Ex. Data: begin of wa, Line (100), End of wa. Parameters: tabname(10) default ‘SPFLI’. Especificando o nome da tabela em tempo dinamicamente no select statement sempre consome mais tempo no processamento. 18) Select * from <table> for all entries in < internal table> where campo1 = < conteudo> and campo 2 = < conteudo> Define-se uma tab. Int. Alimenta-se os campos desta tab. Int. (move e append). No select campo1 e campo 2 serão os campos definidos e alimentados na tab. Interna. 19) Select carrid Min (price) max (price) into (carrid, minimum, maximum) from sflight group by carrid. Todos os campos que devem ser mostrados na lista, precisa-se especificar após a cláusula group by. (carrid, maximum e minimum sÃo campos auxiliares). Se o nome do database não é conhecido até runtime, não se pode especificar a cláusula group by). ESPECIFICAÇÃO TÉCNICA Auxilia o programador durante o desenvolvimento (codificação) de um produto. São descritas todas as etapas do programa, todas as tabelas q deverão ser acessadas, variáveis e constantes que deverão ser declaradas, tabelas internas que deverão ser criadas, descrição dos selects, layout com a distribuição dos campos a serem listados. CRIANDO TRANSAÇÕES Transação: SE93 1 - Digitar o nome da transação a ser criada (ver padrões) e clicar em criar. 2 - Preencher uma descrição para a transação e selecionar o tipo adequado. Ex. Para reports, selecionar “programa” e tela de seleção “trans_report’. 3 - Preencher o nome do programa e salvar a transação. INTERFACE BATCH OU CONVERSÕES DIRECT IMPUT - é um dos métodos para transformação de dados do sistema legado p/ o sistema R/3. é o método mais rápido. Um arquivo sequencial c/ dados é gerado como um arquivo txt para processamento por alguns functions modules especiais. Estas funções fazem as checagens para garantir a integridade dos dados. Quando são processados com sucesso, são gravados diretamente nas correspondentes tabelas de banco de dados nas aplicações. Quando ocorrem erros, os dados errados são passados para uma rotina de mensagens de excessão. CALL TRANSACTION - neste caso, o programa de transferência de dados do arquivo sequencial processa os dados e chama a transação desejada, usando um comando abap. Os dados são processados via telas de aplicação para uma única transação. A lógica da aplicação executa os checks e a validação dos dados. Processamento síncrono: usa-se este metodo em todos os casos em que não exista um programa direct imput. Somente em situações de lidar com erros, recomenda-se que o batch-imput seja realizado para posterior processamento. BATCH INPUT - usado tradicionalmente como um método de implementação de programas de transferencia de dados. Benefício sobre o call-transaction é que em um utilitário responsável pela administração e gerenciamento das funções batch-input. Não há a necessiidade de nenhuma programação adicional p/ análise de excessões e funções de protocolo. As sessões batch-input são fisicamentes armazenadas pelo sistema num banco de dados como uma fila, podendo conter registros de dados corretos e incorretos. Em contraste com o call-transaction, pode transferir dados de um sistema legado para o sistema r/3 p/ múltiplas transações da aplicação. No entanto, nenhuma transação é iniciada até que a transação anterior tenha sido gravada no correspondente banco de dados durante o processamento das sessões de batch-input. BDC - BATCH DATA COMUNICATION SESSION PASSOS PAR A A CRIAÇÃO DE UM BDC SESSION: 1 - IDENTIFICAR AS TELAS QUE A TRANSAÇÃO PROCESSARÁ 2 - ESCREVER O PROGRAMA EM ABAP P/ GERAR A TABELA BCD QUE SUBMETERÁ OS DADOS NA TRANSAÇÃO 3 - SUBMETER A TELA BDC PARA O SISTEMA EM MODO BATCH OU CALL-TRANSACTION. Tab BDC é uma tabela interna, com uma estrutura específica no qual é preenchida para ser enviada para a sessão batch-input. Esta estrutura chama-se bdc data. TRANSAÇÃO SHDB - monitora todos os passos que o usuário faz, quando utiliza uma transação e a resposta é uma listagem com os campos e telas que foram utilizados, permitindo a criação da tabela bdc. COMANDO CALL-TRANSACTION Possibilita o processamento de uma bdc imediatamente pelo sistema. Os dados da tabela bdc são utilizados para executar a transação e o RETURN CODE mostra se a transação foi efetuada com sucesso ou não. SINTAXE: CALL TRANSACTION trans [using bdctab mode mode] PROCESSANDO DADOS COM O BDC_INSERT 2.o. modo é via processamento batch. Ao contra’rio do CALL TRANSACTION, estas transações não serão executadas imediatamente, serão alocadas em uma pasta batch input que pode ser executada na transação SM35. Há 3 módulos de função que podem ser executados par este tipo de processamento: BDC_OPEN_GROUP (abre o BDC e necessita ser chamado antes de qualquer processamento). BDC_INSERT (é chamado para cada transação no processamento). BCD_CLOSE_GROUP (deve ser chamada após todo o processamento para que a pasta de process. Batch seja criada). COMANDOS Write --> para escrever. Uline --> aciona um linha horizontal. Skip --> saltar liha. Under --> em baixo "a baixo" occurs --> controle de registro na tabela. Delimita as linhas da tabela, para melhorar a performance do programa. E000 --> esta expressão é usada para mensagem de erro. I000 --> esta expressão é usada para mensagem de informação. Vline --> vertical " insere uma linha vertical". " | " --> igual ao V_line. Clear V_Var1 --> "Limpa" zera uma variavel. [ ] --> compara o conteúdo total da tabela. Select --> Selecionar. " Varre o banco de New-Page --> abrir um nova pagina. Standard Page Heading --> desabilita cabeçalho padrão. Top - Of - Page --> para desenvolver um novo cabeçalho. End-of-page --> ensera a página "Rodapé". Format Color 1 --> Insere uma nova cor que é selecionada pelo numero. Format Intensified off --> desabilita o formato padrão da letra. Format Intensifiel on --> ativa o formato padrão. Data --> Dados. Like --> como. Move --> mover. Move Correspond --> Is Initial --> comparação do vazio.... testa se a tabela interna esta vazia...no IF Refresh --> Limpa todo o conteúdo da tabela interna. Clear --> apaga o cabeçalho (limpa) de uma tabela interna.. Ex: clear i_tapp . Parameter --> "são os texts boxes" --> entrada de dados. Default --> Padrão. At First --> Primeiro registro da tabela. At New --> Primeiro registro da quebrar. At Last --> Ultimo registro da quebrar. At And Of --> Ultimo registro da quebra. Order --> Ordenar. Append --> Gravar um registro após a execução " Select * From". " Nunca deixando-o subescrever". **** Gravar o cabeçabelho de uma tabela interna *** ON CHANGE--> Describe --> mostra o total do registro na tabela. Condense --> Comando que serve para juntar as palavras de forma ordenada. Ex: Impressão. Using --> usar. OkCode --> Como se fosse Enter - "Isto um codigo interno do abap". Ws - Download --> Envia "Arquivo". Upload --> Importa "Arquivo". Loop --> comando execução. " Varre o banco de dados" é utilizado para varre a tabela interna. Exceptions --> Headlen --> Trunclen --> At selection screen --> At line selection --> At user command --> Form --> Subrotinas ... Perform --> Com o comando perform executamos uma rotina que esta fora do fluxo normal do programa. * É um comando que faz um acesso na tabela e retorna. Call Transaction --> possibilita o processamento de uma tabela BDC, * Bach Input --> método de entrada de dados. VARIÁVEIS DO SISTEMA. Sy-Datum --> variável data. Sy-Uzeit --> variável hora. Sy-Uname --> variável nome. Sy-Subrc --> se a expressão for verdadeira " ele confirma ". Valor de retorna de acordo com determinada intrução do ABAP. Sy-Langu --> Linguagem Padrão. Sy-Pagno --> insere numero de paginas. Sy-tabix --> Contador da tabela interna, Apontador, Cursor. TABELAS PADRÃO (SISTEMA). Definições: BKPF, BSEG --> Financeiro. EKKO, EKPO --> Pedidos. VBAK, VBAP --> Fatura. MKPF, MSEG --> Docuemntos contábeis. J_1BNFDOC --> Notas fiscais. J_1BNFLIN --> Itens N.F. VBPA --> Parceiros. BDC - BATCH DATA COMUNICATION SESSION T_BDC - quando se faz um batch input coloca-se num formato para inserir os dados no sistema. Ver programa e tela, transação, campo e dado. Estrutura ja pronta no bcd_data, cria sua t_bdc e coloca que deve ter os mesmos dados que a tabela já existente no sap. sempre terá os seguintes campos: CAMPO TIPO DESCRIÇÃO program char(40) nome do programa da transação dynpro numc(4) número da tela da transação dynbegin char(1) indicador de uma nova tela fnam char(132) nome do campo da tela fval char(132) valor a ser colocado no campo PASSOS PAR A A CRIAÇÃO DE UM BDC SESSION: 1 - IDENTIFICAR AS TELAS QUE A TRANSAÇÃO PROCESSARÁ 2 - ESCREVER O PROGRAMA EM ABAP P/ GERAR A TABELA BCD QUE SUBMETERÁ OS DADOS NA TRANSAÇÃO 3 - SUBMETER A TELA BDC PARA O SISTEMA EM MODO BATCH OU CALL-TRANSACTION. Tab BDC é uma tabela interna, com uma estrutura específica no qual é preenchida para ser enviada para a sessão batch-input. Esta estrutura chama-se bdc data. TRANSAÇÃO SHDB - monitora todos os passos que o usuário faz, quando utiliza uma transação e a resposta é uma listagem com os campos e telas que foram utilizados, permitindo a criação da tabela bdc. COMANDO CALL-TRANSACTION Possibilita o processamento de uma bdc imediatamente pelo sistema. Os dados da tabela bdc são utilizados para executar a transação e o RETURN CODE mostra se a transação foi efetuada com sucesso ou não. SINTAXE: CALL TRANSACTION trans [using bdctab mode mode] PROCESSANDO DADOS COM O BDC_INSERT 2.o. modo é via processamento batch. Ao contra’rio do CALL TRANSACTION, estas transações não serão executadas imediatamente, serão alocadas em uma pasta batch input que pode ser executada na transação SM35. Há 3 módulos de função que podem ser executados par este tipo de processamento: BDC_OPEN_GROUP (abre o BDC e necessita ser chamado antes de qualquer processamento). BDC_INSERT (é chamado para cada transação no processamento). BCD_CLOSE_GROUP (deve ser chamada após todo o processamento para que a pasta de process. Batch seja criada). ON CHANGE on change off v_beln * enquanto estiver fazendo um loop de impressão, olha a variável. uline. * continua a ordenação para a saida do relatorio. AT END E AT NEW at new - efetua mudanças na leitura do relatorio. at end ex|: at new werks... on change off especifico para um campo MODIFY USA O SY-TABIX EX: LOOP AT I_TAB1. CLEAR V_TOTAL V_TABIX = SY-TABIX. LOOP AT I_TAB2 WHERE C1 EQ I_TAB1-C1. V_TOTAL = V_TOTAL + I_TAB2-VAL. ENDLOOP. I_TAB1 - TOTAL = V_TOTAL. MODIFY I_TAB1 INDEX V_TABIX. ENDLOOP. Ordenação da esquerda para a direita - é definida quando se seleciona os campos da tabela interna no data. PERFORMANCE Principais problemas que podem ter: 1 - ninhos de select 2 - select... endselect 3 - select * em vez de especificar os campos 4 - select single sem a chave completa em vez de select up to 1 row 5 indices não utlizados ou falta de indices 6 - select em tabelas com alto número de registros, utilizando a clausula where baseada em tela de seleção onde o preenchimento não é obrigatório. 7 - falha na definição funcional 8 - utilização de grandes tabelas como : bseg, bkpf, etc 9 - funções genéricas, sem especificação. 10 - sempre verificar a ordem das colunas das tabelas internas e bd, elas devem coincidir. BUFFER - memória bufferização - selecionar da memória. by passing buffer - só utilizado para verificação de performance. a bufferização é preferível me tabelas que não mudam muito. existem tres tipos de bufferização: - full - resident buffer (100%), onde todo o conteúdo é buferizado - generic - uma chave genérica (primeiros n campos chaves) é especificada quando há a criação da tabela. esta chave genérica divide o conteúdo da tabela em áreas genéricas. Quando se acessa qualquer dado em uma determinada chave genérica, toda a área genérica é carregada no buffer. - partial (single record): somente alguns registros são lidos no banco de dados e armazenados no buffer. ONLINE Online são tipos de programas que, como o próprio nome indica, funcionam online, ou seja, instantaneamente. São dotados de uma maior capacidade de customização das telas e maior flexibilidade para criarem uma interface mais amigavel com o usuário. Pode-se fazer a manutenção de tabelas pelo online, incluindo novos dados. São úteis na criação de aplicações que necessitem de subtelas ou quando é necessário fornecer informações aos usuários de outra maneira, que não seja um relatório. - SCREEN - desenho da tela, lista de campos para tratamento de erros e definições dos módulos PBO e PAI relacionados com a tela. - GUI STATUS E GUI TITLE - definição dos comandos de botão e menus disponíveis: - definição de títulos, habilitação dos comandos standards existentes, criação de novos comandos necessários. - EVENTO PBO: evento executado antes da exibição da tela para o usuário: definição do GUI Status e GUI Title para a tela correspondente, seleção inicial de dados e atribuição de valores a serem exibidos na tela. Ex: MODULE STATUS_0100 OUTPUT. SET PF-STATUS ' TELA100'. SET TITLEBAR 'Z10'. ENDMODULE. - EVENTO PAI: evento executado após um comando do usuário (enter, click, etc); verificação do código de comando executado (definido no GUI Status), codigo abap para execução da lógica do comando. Ex: MODULE USER_COMMAND_0100 INPUT. CASE SY-UCOMM. WHEN 'EXIT'. SET SCREEN 0. LEAVE SCREEN. ENDCASE. ENDMODULE. SAPSCRIPT Ferramenta para a criação de formulários. A opção para utilização desta ferramenta geralmente se dá pela necessidde de alguns recursos que não podem ser obtidos através dos reports, tais como inserção de logotipos, fontes de tamanhos e tipos diferentes, etc. Os formularios sao client dependent, ou seja, podem ser transportados para todos os clientes em que se deseja executá-lo, independente de estar na mesma instância que já o tenha. Recomenda-se que todos os números das change requests sejam inseridos como comentário no corpo do formulário, pois não há administração de versões para Sapscripts, como há nos reports. No transporte, é importante salientar que no momento do transporte de um formulário Sapscript, é necessário assegurar que todas as estruturas utilizadas por ele, tenham sido transportadas anteriormente, assegurando que tudo que será utilizado pelo formulario já esteja no client, no momento em que este for introduzido. A ordem mais aconselhada para os transportes são: - estrutura, - layout, - programa de povoamento o Programa de Povoamento é responsável pelo controle da impressão do formulário. Através dele o formulário é aberto, que os dados são enviados para as janelas corretas, que é feito o controle de quebra de paginas que é feito o fechamento do formulário, etc. é nele também que são feitas as seleções de dados que deverão aparecer no relatório. é apenas um dispositivo para o output dos dados. a construção de um programa de povoamento deve seguir a seguinte estrutura: - abertura de um formulário, * call function/open form incialização de um formulario, * start form seleção dos dados do formulário, impressão dos dados nas janelas do formulário, encerramento do formulário, * endform fechamento do formulario * closeform * Abertura de formulários O primeiro passao para a impressão de um sapscript é abertura de um formulário para fazer o povoamento. é obrigatória a presença de um comando de abertura num programa de povoamento. os principais parametros para abertura de formulários são: Device - dispositivo onde sera gerado o formulario (geralmente PRINTER). Tabela Cluster - tem a chave primária e os campos estao em outras tabelas compactados. Ex. tabela bseg q possui muitos campos e eles estao compactados. CRIAR INDICE - SE11 1 - NOME DA TABELA. 2 - BOTÃO INDICES DA TRANSAÇÃO JÁ DENTRO DA TABELA. SM30 - Popular e manutenção da tabela.