Microsoft Word - do ABAP No MINISAP

download Microsoft Word - do ABAP No MINISAP

of 52

Transcript of Microsoft Word - do ABAP No MINISAP

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.