APRENDENDO ABAP no MINISAP NetWeaver 7.0 Tela Inicial
Onde se digitam as transaes
Criando tabelas ZMARA e a ZMAKT
Dentro da SE11 marque Database table e coloque o nome da tabela que quer criar no campo
Transao: SE11 Dicionrio de dados
Clique em Create.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 1
Na tela que se abrir, na ABA Delivery and Maintenance preencha:
Descrio da tabela Display/Maintenanc e Allowed para permitir a manuteno da tabela sem restrio
Classe de aplicao
Na ABA Fields repita a Descrio da tabela, e preencha os nomes dos campos como abaixo
O mandante deve existir como primeiro campo de qualquer tabela e sempre ser chave
No campo Nmero de Material coloque o elemento de dados ZMATNR e d duplo clique para cri-lo
Clique em Local Object Clique em Yes para salvar a tabela.
Confirme a criao do Elemento de Dados
Desconsiderar essa telinha, apenas confirme.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 2
O Elemento de Dados carrega a descrio do campo e do domnio (caractersticas).
Coloque a descrio breve
preencha o nome do domnio a ser criado
Na ABA Field Label, coloque as descries possveis para os campos e clique ENTER
O preenchimento dos tamanhos automtico
Voltando para ABA Data Type d duplo clique no nome do Domnio
Clique em Yes
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 3
Clique em Local Object
Confirme a criao do Elemento de Dados
Desconsiderar essa telinha, simplesmente confirme. O Domnio carrega as caractersticas do campo, como tamanho e tipo; e neste caso o tipo como CHAR e o tamanho 18. Descrio breve
3 passos obrigatrios: Salvar Verificar Inconsistncias Ativar
para voltar. Somente aps esses passos o objeto funciona. Clique em BACK Para salvar o domnio aps o clique, marque o popup como objeto local, verifique e ative. Voltando, salve, verifique e ative tambm o Elemento de Dados.Campo MATNR Elmto Dd ZMATNR Descries 1, 2, 3, e, 4 1- N. Matnr 2- N. Mater. 3- N. do Mater 4- N. do Material 1- Criado 2- Criado em 3- Data criao 4- Data da criao do material 1- Tp. Material 2- Tipo material 3- Tipo de Material 4- Tipo de Mateiral Domnio ZMATNR Tipo CHAR Tamanho 18
ERSDA
ZERSDA
DATUM
DATS
8
MTART
ZMTART
ZMTART
CHAR
4
Crie os outros elementos de dados e domnios/nse11 conforme as especificaes e da mesma forma que foram criados o Elemento de Dados e o Domnio do MATNR.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 4
Crie tambm a tabela ZMAKT de acordo com as especificaes abaixo.Campo MATNR Elmto Dd ZMATNR ZMAKT Descrio: Textos breves de material Descries 1, 2, 3, e, 4 Domnio 1- N. Matnr ZMATNR 2- N. Mater. 3- N. do Mater 4- N. do Material 1- Idioma CHAR2 2- Idioma 3- Cdigo do Idioma 4- Cdigo do Idioma do Material 1- Tx mat TEXT40 2- Texto material 3- Texto breve material 4- Texto breve de material Tipo CHAR Tamanho 18
SPRAS
ZSPRAS
CHAR
2
MAKTX
ZMAKTX
CHAR
40
Clique Technical Settings para ativar a tabela.
Clique em Yes
Escolha APPL0 para Classe de Dados e 0 para Categoria
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 5
Clique em Salvar e depois em Voltar
Salvar, Verificar e Ativar a tabela
Manuteno das tabelas - Transao: SE11 Dicionrio de dados. Entrar na tabela ativada Utilities Table Maintenace Generator
Clique em criar.
Preencha essa tela com Grupo de Autorizao &NC&, e no Grupo de Funes coloque o mesmo nome da tabela.
Marque one step em Maintenance type e coloque 1 em overview screen.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 6
Para testar a manuteno de tabela gerada, v para a transao SM30.
Preencha o nome da tabela no campo Table/View (VIEWNAME) e clique em Maintain (Update).
Para entrar com novos dados
Entre com os dados do ex. e salve
Criando uma transao para manuteno de tabela - Transao: SE93 Criao de transao. Como a SM30 no uma transao disponvel para o usurio, criar uma transao para a manuteno da tabela na transao SE93.
Coloque o nome da transao, no ex. ZMARA e clique em Create
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 7
Preencha a descrio breve, marque a opo Transao com Parmetros e confirme.
Marque as 3 opes de interface
Preencha com a transao SM30 Marque Pular a Tela Inicial Preencha os campos e os contedos da primeira tela da transao SM30.
No topo da pgina, clique em Salvar. Para criar a transao no necessrio ativar, basta salvar como Objeto Local. Faa tudo para as duas tabelas Preencha a tabela ZMAKT com as linhas: MATNR SPRAS 100001 BR 100002 BR 100003 BR 100005 BR MAKTX CANETA LAPIZ BORRACHA CADERNO
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 8
Criando um REPORT, relatrio simples - Transao: SE38 Editor de programa ABAP
Preencha o nome do programa clique em Create, todo objeto customizado, ou que no seja Standard comea com Z.
Preencha o campo Title com o nome do relatrio, o Type como Executable program e o Status como SAP Standard Prodution Program. Salve como Objeto Local. O sistema abrir o editor de programa ABAP; complete o cdigo como no modelo abaixo:
*---------------------------------------------------------------------* * Report ZRELMARA * *---------------------------------------------------------------------* * Autor: Responsvel: * Data: Mdulo: *---------------------------------------------------------------------* REPORT zrelmara. *---------------------------------------------------------------------* * Declarao *---------------------------------------------------------------------* * Tabelas transparentes do dicionrio de dados que sero usadas no cdigo. TABLES: zmara, zmakt.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 9
* Tipos de referncias para declaraes das tabelas internas. TYPES: BEGIN OF ty_zmara, matnr TYPE zmara-matnr, ersda TYPE zmara-ersda, mtart TYPE zmara-mtart, END OF ty_zmara. TYPES: BEGIN OF ty_zmakt, matnr TYPE zmakt-matnr, spras TYPE zmakt-spras, maktx TYPE zmakt-maktx, END OF ty_zmakt. * Tipo de referncia que vai receber os dados gerais do relatrio. TYPES: BEGIN OF ty_saida, matnr TYPE zmara-matnr, ersda TYPE zmara-ersda, mtart TYPE zmara-mtart, spras TYPE zmakt-spras, maktx TYPE zmakt-maktx, END OF ty_saida. * Tabelas Internas que vo receber os dados vindos do banco de dados; * elas so temporrias e s existem durante o processamento do cdigo. DATA: ti_zmara TYPE STANDARD TABLE OF ty_zmara, ti_zmakt TYPE STANDARD TABLE OF ty_zmakt, ti_saida TYPE STANDARD TABLE OF ty_saida. * Work reas so iguais a 1 linha de cada tabela interna referente; * na work rea que os dados so trabalhados. DATA: wa_zmara LIKE LINE OF ti_zmara, wa_zmakt LIKE LINE OF ti_zmakt, wa_saida LIKE LINE OF ti_saida. * Variveis, quando necessrio. * Tela com os parmetros de entrada que serviro de filtro para a * busca dos dados do relatrio. * Parmetro de tela que recebe um nico valor PARAMETERS: p_spras TYPE zmakt-spras. * Parmetro de tela que recebe um perodo `de at' (ranger). SELECT-OPTIONS: s_matnr FOR zmara-matnr. *---------------------------------------------------------------------* * Processamento *---------------------------------------------------------------------* * Busca Dados--------------------------* para organizar o processamento neste bloco utiliza-se forms, com a chamada * pelo comando perform. * para criar o form referente basta clicar duas vezes no nome do perform. * Busca ZMARA - Busca dados da tabela zmara. PERFORM busca_zmara. * Busca ZMAKT - Busca dados da tabela zmakt PERFORM busca_zmakt. * Processa dados----------------------PERFORM processa_dados.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 10
* Saida-------------------------------PERFORM imprime_saida. *---------------------------------------------------------------------* * Subrotinas *---------------------------------------------------------------------* *---------------------------------------------------------------------* * Form busca_zbseg *---------------------------------------------------------------------* FORM busca_zmara . * Seleciona os dados matnr ersda mtart SELECT matnr ersda mtart * para dentro da tabela interna ti_zmara INTO TABLE ti_zmara * vindo da tatela transparente zmara FROM zmara * com a condio de acordo com a tela de seleo WHERE matnr IN s_matnr. " ranger com 'IN' * Para testar se houve erro no select. * Sy-subrc = 0 = ZERO ERRO , retornou pelo menos 1 registro. * Sy-subrc 0 = HOUVE ERRO , no retornou nada IF sy-subrc 0 . * Se no retornar nada vai dar mensagem de erro. MESSAGE i000(su) WITH 'DEU ERRO'. * Pra o processamento e retorna para a tela de parmetros de entrada STOP. ELSE. * Se a busca no deu erro, a tabela tem algum registro ento sorteia. SORT ti_zmara BY matnr. ENDIF. ENDFORM. " busca_zmara *---------------------------------------------------------------------* * Form busca_zbxt *---------------------------------------------------------------------* FORM busca_zmakt . * sempre que for fazer um select relacionado com uma tabela transparente * tem que garantir que isso no ser feito com uma tabela vazia. IF NOT ti_zmara[] IS INITIAL. * Seleciona os dados matnr spras maktx SELECT matnr spras maktx * para dentro da tabela interna ti_zmakt INTO TABLE ti_zmakt * vindo da tatela transparente zmakt FROM zmakt * para cada entrada da tabela ti_zmara FOR ALL ENTRIES IN ti_zmara * com a condio de acordo com a tela de seleo * e com a tabela de comparao. WHERE matnr = ti_zmara-matnr AND spras = p_spras. "Parameters com = * Para testar se houve erro no select. * Sy-subrc = 0 = ZERO ERRO , retornou pelo menos 1 registro. * Sy-subrc 0 = HOUVE ERRO , no retornou nada
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 11
IF sy-subrc = 0 . * Neste caso pode testar se no houve erro * e se a tabela foi preenchida ento sorteia, indexa. SORT ti_zmakt BY matnr. ENDIF. ENDIF. ENDFORM. " busca_zmakt *---------------------------------------------------------------------* * Form processa_dados *---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM processa_dados . * Para preencher a tabela com os dados de sada * Para cada registro da tabela ti_mara. LOOP AT ti_zmara INTO wa_zmara. * move o contedo da wa_mara para wa_saida. wa_saida-matnr = wa_zmara-matnr. wa_saida-ersda = wa_zmara-ersda. wa_saida-mtart = wa_zmara-mtart. * Para carregar com os dados relacionados da ti_makt * Tem que ler a ti_makt onde o campo chave matnr o mesmo * Clusula Binary Serach faz uma pesquisa binria e mais rpida READ TABLE ti_zmakt INTO wa_zmakt WITH KEY matnr = wa_zmara BINARY SEARCH. * Para economizar processamento o valor da ti_zmakt para ti_saida * s ser trasportado se a leitura com o comando read table tiver dado * resultado. IF sy-subrc = 0 . wa_saida-spras = wa_zmakt-spras. wa_saida-maktx = wa_zmakt-maktx. ENDIF. * No final do processamento o valor da wa_saida movido para ti_saida pelo * comando APPEND. APPEND wa_saida TO ti_saida. ENDLOOP. ENDFORM. " processa_dados
*---------------------------------------------------------------------* * Form imprime_saida *---------------------------------------------------------------------* FORM imprime_saida . * Para cada registro da tabela ti_saida LOOP AT ti_saida INTO wa_saida. * Imprime cada campo da tabela. WRITE:/ wa_saida-matnr, wa_saida-ersda, wa_saida-mtart, wa_saida-spras, wa_saida-maktx. ENDLOOP. ENDFORM. " imprime_saida
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 12
Aps a finalizao do relatrio, Salvar Verificar Inconsistncias Ativar Clicar em Direct Processing (F8) para rodar o programa.
O resultado ser uma tela de entrada. Preenchendo com BR e clicando em executar...
O Relatrio impresso na tela. Clicando em Voltar, retorna-se ao cdigo e sero permitidas as alteraes nos nomes dos campos.
Clicando em Goto Text Elements Selections Texts.
Preencher com a descrio dos campos, Salvar Voltar , Ativar . e
O resultado ser a tela de entrada com os nomes corretos dos campos e no como apresentados no cdigo.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 13
Criando uma Funo - Transao: SE80 Objeto de Navegao Para criar uma funo, primeiro cria-se o grupo de funo
Clique em Yes
Selecione Function Group , coloque o nome do grupo de funo e tecle Enter.
Preencha a descrio breve e clique em Save; como objeto local. O grupo est criado. Criar a funo.
Fazendo uma Funo calculadora simples - Transao: SE37 Construtor de funo ABAP.
Coloque o nome da funo e clique em Create
Preencha o grupo de funo e a descrio breve e Salve.
Desconsidere esta tela e confirme.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 14
Uma funo IMPORTA parmetros (variveis, works reas, tabelas internas) executa um processamento e EXPORTA um parmetro de resultado .
Preencha os parmetros de importao como o modelo e use elementos de dados j existentes.
Preencha o parmetro de exportao que receber o resultado, usando um elemento j existente.
Em Source code, a tela trar os parmetros declarados anteriormente.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 15
Escreva o cdigo e clique: Salvar Verificar Ativar Para testar a funo d F8 Preencha os parmetros de entrada e d F8. Segue o resultado.
Caso o sinal seja um invlido, verifique a mensagem de erro tipo I.
Usando uma funo no cdigo - Crie o programa ZCALCSP na SE38, com o cdigo abaixo.*---------------------------------------------------------------------* * Report ZCALSP *---------------------------------------------------------------------* REPORT zcalcsp. *---------------------------------------------------------------------* * Declarao *---------------------------------------------------------------------* * Variveis DATA: v_result(10) TYPE n. * Tela com os parmetros de entrada que serviro de filtro para a * busca dos dados do relatrio. * Parmetro de tela que recebe o endereo de exportao do TXT. PARAMETERS: p_valor1(5) TYPE n, p_sinal(1) TYPE c, p_valor2(5) TYPE n.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 16
*---------------------------------------------------------------------* * Processamento *---------------------------------------------------------------------* * para organizar o processamento neste bloco utiliza-se forms, com a chamada * pelo comando perform. * para criar o form referente basta clicar duas vezes no nome do perform. * Processa dados----------------------PERFORM chama_funcao. * Sada-------------------------------* Imprime os dados da tabela ti_saida na tela. PERFORM imprime_saida. *---------------------------------------------------------------------* * Subrotinas *---------------------------------------------------------------------* *---------------------------------------------------------------------* * Form chama_funcao *---------------------------------------------------------------------* FORM chama_funcao .
Para chamar o corpo da funo, localize o cursor no local onde a funo deve constar no cdigo e clique em Pattern.
Preencha o nome da funo no campo ende o CALL FUNCTION estiver flegado e confirme.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 17
Vai aparecer a funo para completar com os parmetros do cdigo. CALL FUNCTION 'ZCLCSP' EXPORTING p_valor1 = p_valor1 p_sinal = p_sinal p_valor2 = p_valor2 IMPORTING p_result = v_result. ENDFORM. " chama_funcao *---------------------------------------------------------------------* * Form imprime_saida *---------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM imprime_saida . WRITE:/ / / / 'Primeiro valor: 'Sinal : 'Segundo valor : 'Resultado : ', ', ', ', p_valor1, p_sinal, p_valor2, v_result.
ENDFORM. " imprime_saida *---------------------------------------------------------------------*
Teste clicando em F8; os parmetros so como os declarados. Para adequar o texto aos usurios, retorne ao cdigo...
Clique em Goto Text Elements Selection Texts
Preencher com o texto que os usurios iro ver: Salvar, Ativar e Voltar.
Execute novamente
Criando uma Interface de remessa - Transao: SE38 Editor de programa ABAP. O programa de interface tem o objetivo de troca de dados com outro sistema. Agora vamos fazer uma interface de remessa, onde selecionamos dados no SAP e exportamos um arquivo PONTO TXT, para um local disponvel para outro sistema importar.
Autores: Emmanuel de Souza Lima [email protected] ngela Cristina Junqueira [email protected]
Pgina 18
Crie um programa na SE38 com o nome de ZREMESSA e cole o cdigo do relatrio ZRELMARA fazendo as alteraes abaixo.* Tela com os parmetros de entrada que serviro de filtro para a * busca dos dados do relatrio. * Parmetro de tela que recebe o endereo de exportao do TXT. PARAMETERS: p_path(128) TYPE c.
Top Related