apost acad abap sc2006

Upload: andrefkato

Post on 09-Jul-2015

159 views

Category:

Documents


2 download

TRANSCRIPT

Sejam bem VindosSuporte a Clientes - Equipe ABAP

Queiram por favor sentar-se em duplas e aguardar...

Academia ABAP Suporte a Clientes

Academia ABAP Suporte a ClientesO que o SUPORTE A CLIENTES? O Suporte a Clientes a diviso da Aspen responsvel por pequenos desenvolvimentos, melhorias e adaptaes do Sistema R/3 (popularmente chamado de SAP) ps implementaes. As implementaes ou migraes de verso so realizadas pela equipe de Projetos da Aspen. O que um ABAP? ABAP uma sigla que d nome linguagem de programao utilizada pelo R/3. ABAP tambm o nome dado ao PROGRAMADOR desta linguagem (ou ABAPER) Qual o principal papel do ABAP dentro do ciclo de vida do sistema R/3? O ABAP ser responsvel por desenhar e implementar as solues que o R/3 no suportar pela variedade de configurao. Ou seja, caso haja um cenrio que no seja contemplado pelo sistema, dever ocorrer um desenvolvimento que supra esta necessidade.

Qual a diferena entre um ABAP do Suporte a Clientes e da rea de Projetos? Nenhuma. Todo o acesso de desenvolvimento tcnico dos ABAPs so semelhantes, seja nas atividades ligadas a implementao, quanto as atividade ps-implementao.2

Academia ABAP Suporte a ClientesQual a rotina de trabalho de um ABAP no Suporte a Clientes? O ABAP do Suporte a clientes trabalha em um local fixo e eventualmente pode ser requerido em uma atividade local no cliente. Geralmente suas atividades so realizadas de forma remota e acompanhadas por um consultor Funcional, que conhecer as regras de negcio. O ABAP junto com o consultor funcional sero responsveis por introduzir a necessidade do cliente no sistema. Horrio de trabalho: De forma geral a equipe do Suporte a Clientes trabalha de segunda a sexta-feira, das 08:30 as 17:30

Vestimenta: O traje padro para os funcionrios do Suporte a Clientes o social leve. Sem a necessidade de terno e gravata para os homens, mas necessrio ter sempre uma de step.

3

Academia ABAP Suporte a Clientes

Programa de TreinamentoBSICO Introduo e padres Reports / Includes Funes / Pop-up Tabelas (Bco dados) Call Transaction e Batch Input Interfaces (up/download) Field e User-exits Request Debug

Atividades bsicas para o incio de trabalho em pequenos desenvolvimentos e correes.

INTERMEDIRIO 1 SAP Script Query ALV Vises / Tabelas JOB SAP Notes

INTERMEDIRIO 2 Contexto Search Help Screen Exit Module Pool

Atividades no to corriqueiras mas presentes no dia-a-dia do ABAP.

4

Academia ABAP Suporte a Clientes

AVANADO OOP BADI RFCs BAPI Regra de substituio (FI) Frmulas (Princing e TAXBRJ) JAVA Workflow FTP Pacote Net Weaver BW HR

Atividades com grau de complexidade maior ou com pouca demanda nos Sistemas atualmente atendidos.

5

Introduo ao R/3Academia ABAP - Suporte a Clientes

Academia ABAP Suporte a Clientes

SAP LogonAntes de iniciarmos as nossas atividades dentro do SAP R/3, vamos conhecer melhor o sistema. Localize em sua estao de trabalho o cone referente ao aplicativo SAP Logon. Caso o seu desktop no possua o cone disponvel, acesso-o pelo menu iniciar.

ou pelo diretrio: C:\Arquivos de programas\SAP\FrontEnd\SapGui

7

Academia ABAP Suporte a Clientes

Conhecendo o SAP LogonEndereo IPdo servidor de acesso

Ambiente

Nmero do Sistema Endereo do roteador

Sigla do Client

8

Academia ABAP Suporte a Clientes

Configurando o SAP LogonO SAP Logon atualmente recebe a manuteno da nossa equipe de Suporte Tcnico (ramal 4200). Qualquer incluso, excluso ou modificao nestes dados deve imediatamente ser informada a equipe responsvel que providenciar a modificao desejada. Estas modificaes esatro ativas no seu prximo login na rede. Mas, de forma temporria voc pode modificar estes dados da seguinte forma:

Clique em Modificar

9

Academia ABAP Suporte a Clientes

Executando o LogonCom um duplo clique no ambiente desejado, ou pela seleo e boto Logon, temos acesso a tela onde entraremos com o client, usurio e senha desejados.

10

Academia ABAP Suporte a Clientes

Barra de MenusA exemplo dos Menus convencionais, a barra de Menus do SAP R/3 nos indica atalhos para as principais atividades dentro de cada ferramenta e/ou necessidade.

Com um clique simples podemos facilmente escolher a ao desejada.

11

Academia ABAP Suporte a Clientes

Campo de comandoO campo de comando serve como atalho para executarmos o que chamados de transaes. Cada transao executa no sistema uma ao ou uma ferramenta. Como comparativo, podemos dizer que as transaes so cdigos ou senhas que nos do acesso direto as mesmas funcionalidades presentes na Barra de Menu, ou no Menu Favoritos.

12

Academia ABAP Suporte a Clientes

Na ajuda para o campo de comando, temos alguns exemplos de comandos que agregados s transaes convencionais, combinam aes dentro do R/3.

13

Academia ABAP Suporte a Clientes

Barra de BotesNa barra de botes encontramos funes semelhantes funes de um browser de internet, tais como VOLTAR, CANCELAR, SAIR, IMPRIMIR, LOCALIZAR, etc.

14

Academia ABAP Suporte a Clientes

TtuloNo campo de ttulos encontramos o ttulo da ferramenta ou ao que est sendo executada.

15

Academia ABAP Suporte a Clientes

Barra de Botes da aplicaoNa barra de botes da aplicao, encontramos funes especficas para a ao executada.

16

Academia ABAP Suporte a Clientes

Menu favoritosNo menu favoritos, podemos definir atalhos para as principais ferramentas utilizadas por um determinado usurio. Geralmente esta rea definida pelo perfil atribudo ao usurio.

17

Academia ABAP Suporte a Clientes

Barra de mensagensA barra de mensagens a rea onde os aplicativos e ferramentas do SAP R/3 informa o usurio sobre o status de determinada execuo. Esta mensagem pode ser apenas um informativo ou confirmao, um erro ou um aviso.

Servidor de AplicaoNo canto inferior direito, podemos verificar tambm uma srie de informaes referentes ao Sistema, como identificar o Servidor de aplicao.

18

Academia ABAP Suporte a Clientes

Informaes gerais sobre o sistemaAo lado do nome do servidor de aplicao, temos um informativo que pode ser configurado pelo usurio a exibir a informao desejada. Podemos ocultar e exibir esta informao clicando no boto destacado abaixo.

Para configurar qual informao deve ser exibida, basta clicar no boto destacado a seguir e selecionar a informao.

19

ProgramasAcademia ABAP Suporte a Clientes

Academia ABAP Suporte a Clientes

Introduo

Antes de iniciarmos o estudo dos Reports, devemos entender primeiro o conceito de Report dentro do SAP. Apesar do nome indicar que so relatrios, Report tem uma abrangncia maior do que isso. Devemos entend-los como programas, que

so capazes de fazer muito mais coisas do que exibir relatrios.

21

Academia ABAP Suporte a Clientes

Ambiente de trabalhoO ambiente de trabalho para criar os objetos ABAP, chama-se ABAP Workbench (pelo menu do SAP Ferramentas -> ABAP Workbench ou transao S001), nele podemos verificar todos os objetos relacionados a um programa (Repository Browser), acessar os objetos do dicionrio de dados do SAP (Dictionary), criar/editar fontes do ABAP (Editor ABAP), criar funes (Function Builder), desenhar telas para os programas ABAP (Screen Painter) e por fim criar menus para inserir nas telas dos programas (Menu Painter). Cdigos das transaes associadas s opes do ABAP Workbench:Opo Repository Browser Dictionary Editor ABAP Function Builder Screen Painter Menu Painter Transao SE80 SE11 SE38 SE37 SE51 SE41

22

Academia ABAP Suporte a Clientes

Editor ABAP (SE38)No editor ABAP, alm de digitar o cdigo fonte do programa, possvel tambm efetuar outras tarefas e adicionar outros objetos inerentes sua execuo.

23

Academia ABAP Suporte a Clientes

Sub-objetos associados a um programa ABAP:Texto fonte: Atravs desta opo acionamos o editor de programas ABAP.Variantes: Definem-se os valores pr-definidos para os parmetros de execuo de um programa ABAP. Os parmetros de um programa so definidos pelos comandos Parameters e Select-options do ABAP. Atributos: Definem-se os atributos de programa, como classe de desenvolvimento, ttulo, categoria, status, aplicao, etc. Documentao: Texto com uma descrio breve do que o programa executa e as suas condies necessrias para execuo. Elementos de texto: Definem-se os textos que sero relacionados s mensagens, rtulos de parmetros do programa e ttulos e nome de colunas para o relatrio gerado pelo programa.

24

Academia ABAP Suporte a Clientes

Barra de botes da transao

Criar/Exibir/Modificar Variantes Executar com Variante Debug do programa Renomeia o programa Cria um novo programa baseado no programa selecionado Exclui o programa selecionado Mostra os objetos do sistema que esto sendo utilizados pelo programa Determinao de ambiente Lista de utilizaes de programa Executar programa Ativar a verso do programa Verificao da sintaxe do programa

25

Academia ABAP Suporte a Clientes

Criando um programa ReportNomes de desenvolvimento sempre devem iniciar com as letras Z ou Y.

Clicar em criar

Informe o ttulo e a Informar nome do programa. categoria p/ o programa e grave.

26

Academia ABAP Suporte a Clientes

Atribuir uma

classe dedesenvolvimento e gravar.

Criar uma

request p/o programa.

27

Academia ABAP Suporte a ClientesA aparncia do editor no difere muito de um editor de texto bem simples, onde se possvel escrever linhas de comando e lgica.

28

Academia ABAP Suporte a Clientes

Estrutura do Programa ABAPREPORT ZTESTE .

************************************************************************** * Declarao de TABELAS, ESTRUTURAS ou VIEWS. ************************************************************************** TABLES .************************************************************************** * DATA DEFINITIONS ************************************************************************** - Constants CONTANTS: TYPE VALUE . - Types TYPES: BEGIN OF , LIKE , TYPE , END OF .

29

Academia ABAP Suporte a Clientes

- Internal Tables

DATA: TYPE OCCURS WITH HEADER LINE. DATA: BEGIN OF , LIKE , TYPE , END OF .- Globale variables DATA: TYPE , LIKE . - Tela de seleo SELECTION-SCREEN BEGIN OF BLOCK WITH FRAME TITLE TEXT-. SELECT-OPTIONS: FOR OBLIGATORY DEFAULT . PARAMETER: LIKE , RADIOBITTON GROUP DEFAULT X, AS CHECKBOX DEFAULT X. SELECTION-SCREEN END OF BLOCK .30

Academia ABAP Suporte a Clientes

Eventos dentro de um programa Report- AT SELECTION-SCREEN OUTPUT. Executado antes de aparecer a tela de seleo. Utilizado para fazer qualquer tipo de tratamento da tela de seleo. - INITIALIZATION. Executado antes de aparecer a tela de seleo. Este bloco do evento permite que voc ajuste os valores de defeito que podem somente ser determinados no runtime. - START-OF-SELECTION. o primeiro evento para dados processando e gerando uma lista. chamado pelo sistema runtime de ABAP assim que voc deixar a tela padro da seleo. Utilizado para seleo dos dados. - END-OF-SELECTION. Evento utilizado para tratamento dos dados selecionados. - TOP-OF-PAGE. Evento utilizado para impresso do cabealho.31

Academia ABAP Suporte a Clientes

- END-OF-PAGE. Utilizado para impresso do rodap. - AT USER-COMMAND. Este evento executado quando h uma ao do usurio. - AT LINE-SELECTION. Este evento executado quando o usurio clica em uma linha do relatrio.

32

Academia ABAP Suporte a Clientes

Comandos bsicos ABAPMove --> Mover. Move-corresponding --> Move para os campos correspondentes. Write --> Escrever. Uline --> Aciona um linha horizontal. Skip --> Saltar linha. Occurs --> Controle de registro na tabela. Delimita as linhas da tabela, para melhorar a performance do programa. E000 --> Esta expresso usada para mensagem de erro. I000 --> Esta expresso usada para mensagem de informao. W000 --> Esta expresso usada para mensagem de aviso. Vline --> " Insere uma linha vertical". " ou * --> Forma de comentar um programa [ ] --> Compara o contedo total da tabela. = --> Atribui/compara valor.33

Academia ABAP Suporte a Clientes

--> Sinal de diferente.Format Color 1 --> Insere uma nova cor que selecionada pelo numero.

Format Intensified off --> Desabilita o formato padro da letra.Format Intensifiel on --> Ativa o formato padro. Is Initial --> Comparao do vazio.... testa se a tabela interna esta vazia...no IF Refresh --> Limpa todo o contedo da tabela interna.

Clear --> Limpa/apaga contedo da varivel, estrutura, cabealho da tabela interna.Parameter --> "so os texts boxes" --> entrada de dados. Default --> Padro. At First --> Primeiro registro da tabela.

At New --> Primeiro registro da quebrar.At Last --> Ultimo registro da quebrar. At End Of --> Ultimo registro da quebra. Concatenate --> Concatena dois ou mais strings.

New-Page --> Abrir um nova pagina.

34

Academia ABAP Suporte a Clientes

Standard Page Heading --> Desabilita cabealho padro. Append --> Grava efetivamente na tabela interna os dados que esto em seu cabealho. Collect --> Grava registros como o APPEND, efetuando a somatria dos campos numricos. Insert --> Inserir dados de uma tabela interna em tabela. Delete --> Apaga/exclui dados de uma tabela. Modify --> Altera dado de uma tabela interna. Update --> Altera dado de uma tabela transparente. Describe --> Mostra o total do registro na tabela. Condense --> Comando que serve para juntar as palavras de forma ordenada. Ex: Impresso. Loop. Endloop --> Comando execuo. " Varre o banco de dados" utilizado para varre a tabela interna. Perform --> Com o comando perform executamos uma rotina que esta fora do fluxo normal do programa.35

Academia ABAP Suporte a Clientes

Form. Endform. --> Rotina que esta fora do fluxo normal do programa. Search FOR . --> Procura uma seqncia de string em uma outra. SHIFT LEFT DELETING LEADING SPACE. --> Elimina os espaos em branco no incio da string.

SHIFT RIGHT DELETING TRAILING . --> Elimina a string2 no final da string1.SPLIT AT INTO --> Separar String de uma varivel por um determinado separador. Translate using '.,-->Troca de caracteres.

On Change of . Endon. --> A cada troca de campo fazer tais aes.

36

Academia ABAP Suporte a Clientes

Utilizando o comando Select para acessar as tabelas do R/3a) Select * from... ..

Endselect

Quando no existe restrio alguma, ocorrendo uma varredura seqencial dos registros da tabela. Afeta o runtime quando se utiliza tabelas grandes.b) Select * fromwhereeq. L todos os registros da tabela especificada, onde o campo igual ao contedo especificado. Deve-se sempre especificar as colunas para no afetar o runtime. c) Select * from where between and . Ex. Field1 = 100 e field2 = 500. Pega inclusive o 100 e o 500. Trabalha com o range. d) Select * from where like _R%.

_ = a primeira letra no importaR = a segunda deve ser R % no importa a seqncia.37

Academia ABAP Suporte a Clientes

e) Select * from where in (123, 1000).Especificando se o field table 123 ou 1000. f) Select * from where < table field> in < internal table>. Ex: data: begin of itab occurs 10,

Sign(1), option(2), low like sflight-price, high like sflight-price,end of itab. Ranges: itab for sflight-table. Move: I to itab-sign, bt to itab-option, 500to itab-low, 1000 to itab-high.

Append itab. Move: I to itab-sign, btto itab-option, 440 to itab-low.Append itab. g) 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.38

Academia ABAP Suporte a Clientes

h) Select * from < table> by passing buffer. Para ler diretamente de uma tabela original i) Select * from appending table < internal table>. L os registros e os inclui (sem sobrepor) em um internal table. j) Select... from into table < internal table>. A estrutura da internal table deve corresponder estrutura da tabela que est sendo acessada. L os registros em conjunto e os coloca dentro de uma internal table. mais rpido que ler individualmente atravs de um loop. k) Select ... into corresponding fields of table . Neste caso, no 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 no exigem endselect. l) Select appending corresponding fields of table < itab>. L e grava, sem sobrepor os dados em uma internal table que possua nomes idnticos aos nomes da tabela que est sendo lida.39

Academia ABAP Suporte a Clientesm) Select single * from where... eq . Toda vez que o select single * utilizado a chave primria completa deve ser especificada. Se a chave no for qualificada, receber uma mensagem de warning e afetar a performance. n) Select ... into (, ,) from where... L as colunas especificadas a1 e a2. Aps into devero ser especificadas as reas de trabalho auxiliares (f1, f2). O nmero de colunas dever ser igual ao numero de workareas especificadas. o) Select max (campo) min (campo)

avg (campo)count (*) from < table> into (...,,). Where Avg e sum : somente para campos alfanumricos. Sem usar o endselect.40

Academia ABAP Suporte a Clientesp) Select * from where price in itab.

q) Select * from into . 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.

r) Select * from for all entries in < internal table> wherecampo1 = < conteudo> and campo 2 = < conteudo> Define-se uma internal table. Alimenta-se os campos desta internal table(move e append). No select campo1 e campo 2 sero os campos definidos e alimentados na internal table.41

Academia ABAP Suporte a Clientes

s) Select Min (campo1) Max (campo1) into (campo, min, max)

from group by campo.Todos os campos que devem ser mostrados na lista, precisa-se especificar aps a clusula group by. (campo, max e min so campos auxiliares).

Se o nome do database no conhecido at runtime, no se pode especificar a clusula group by).

42

Academia ABAP Suporte a Clientes

Variveis do Sistema (tabela SYST)Sy-datum --> Varivel data. Sy-uzeit --> Varivel hora.

Sy-uname --> Varivel nome. Sy-subrc --> Se a expresso for verdadeira " ele confirma ". Valor de retorna de acordo com determinada instruo do ABAP. Sy-langu --> Linguagem Padro. Sy-pagno --> Insere nmero de paginas. Sy-tabix --> Contador da tabela interna, Apontador, Cursor.

Obs: Todas as variveis do sistema esto na tabela SYST.

43

Academia ABAP Suporte a Clientes

Exemplo de programa* Com o comando REPORT so definidas as caractersticas bsicas para um programa ABAP, * como o nome do programa, a classe de mensagens utilizada, o tamanho da folha de *impresso, etc.

REPORT Z_ACADEMIA_ABAP NO STANDARD PAGE HEADING LINE-SIZE 170 LINE-COUNT 65 MESSAGE-ID ZSADUP RESERVE 8 LINES. no exibe o cabealho padro de Report define o tamanho da linha em 170 caracteres define o nmero de linhas por pgina define a classe de mensagens pelo menos 8 linhas sero impressas na lt. pg

44

Academia ABAP Suporte a Clientes*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Declarao de tabelas do sistema*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Com o comando TABLES so definidas as tabelas do dicionrio de dados * que sero utilizadas no programa TABLES: T001W, J_1BAGT. " Tabela de centros "Descrio de CFOP

*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Declarao dos tipos de campos*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Na declarao de tipos de campos so definidas as caractersticas de um campo de *uma estrutura que ir compor a estrutura de uma tabela interna. Usa-se isso qdo *declaramos vrias tabelas internas com a mesma estrutura TYPES: BEGIN OF T_T001W, CENTRO LIKE T001W-WERKS, DESCRICAO LIKE T001W-NAME1, END OF T_T001W. "Centro "Descrio centro

45

Academia ABAP Suporte a Clientes*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Declarao de tabelas Internas*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Tabelas internas so objetos que somente existem durante a execuo do programa. *Elas servem para armazenar os dados selecionados a partir do banco de dados e assim *manusear os dados selecionados dentro do programa. DATA: I_T001W TYPE TABLE OF T_T001W WITH NON-UNIQUE KEY CENTRO

WITH HEADER LINE.DATA: BEGIN OF I_CFOP OCCURS 100, CFOP LIKE J_1BAGT-CFOP, OCCURS indica o nmero de registros na tabela interna. usado para reservar

DESCCFOP LIKE J_1BAGT-CFOTXT, esse espao na memria e otimiz-la

END OF I_CFOP.*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Declarao de parmetros*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Com o comando SELECT-OPTIONS podemos montar parmetros com lista de * valores a partir de campos do banco de dados SELECT-OPTIONS: S_CENTRO FOR T001W-WERKS.46

Academia ABAP Suporte a Clientes

* Com o comando PARAMETERS, cria-se parmetros de seleo que permitem a *entrada de apenas um valor. Eles podem receber um valor, como o Select-Option, mas *tambm podem ser Radiobuttos e tambm checkbox PARAMETERS: P_1 RADIOBUTTON GROUP CURS, P_2 RADIOBUTTON GROUP CURS, P_3 RADIOBUTTON GROUP SRUC, P_4 RADIOBUTTON GROUP SRUC, Com o comando Radiobutton, cria-se botes para a seleo de 1 ou outro parmetro. O comando GROUP XXX identifica quais parmetros fazem parte do grupo. Neste exemplo, temos 2 grupos distintos, o CURS e o SRUC. P_5 AS CHECKBOX.*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Constantes*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

CONSTANTS: C_X(1) TYPE C VALUE 'X'.

"Constante X

47

Academia ABAP Suporte a Clientes*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Variveis*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

DATA: v_cfop like j_1bagt-cfop, v_nome(15) type c, v_contador type n. * Na tela de seleo

Declara uma varivel do tipo Cdigo de CFOP Nome Contador de linhas

*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------* *-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Podemos inserir uma lgica p/ verificao dos parmetros inseridos na tela de seleo

AT SELECTION-SCREEN.

IF S_CENTRO IS INITIAL.MESSAGE E001(ZA). ENDIF.* Se o centro estiver vazio exibe mensagem de erro. Todas as mensagens de erro *dentro da lgica da tela de seleo, fazem o programa ficar parado na tela de seleo. *Nas demais partes do programa, a mensagem de erro faz o programa terminar sua *execuo. Utilizamos uma classe de mensagem diferente da especificada no comando *REPORT. Se no especificar a classe de mensagens, ele assuma a classe definida no *Report. Se a classe no estiver definida,d erro. 48

Academia ABAP Suporte a Clientes*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

AT LINE-SELECTION.*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Qdo o usurio selecionar uma linha*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

AT USER-COMMAND.*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Qdo o usurio apertar um boto*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

TOP-OF-PAGE.*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

*Inserir aqui as informaes que se deseja que apaream no cabealho do relatrio WRITE:/ 10 Cabealho do meu primeiro programa ABAP. escreve na posio 10

ULINE at 10(40).END-OF-PAGE.

Comeando na posio 10 e com tamanho 40.

*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------* *-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

*Inserir aqui as informaes que se deseja que apaream no rodap do relatrio ULINE. WRITE:/ As informaes continuam na prxima pgina.49

Academia ABAP Suporte a Clientes*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Inicio do programa*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* O evento START-OF-SELECTION determina que o algoritmo do programa * inicia neste ponto, sua utilizao obrigatria. START-OF-SELECTION. * Com o comando PERFORM executamos uma rotina que est fora do fluxo * normal do programa PERFORM ACESSANDO_CFOP. * Com o comando SELECT buscamos a informaes do banco de dados a partir * dos parmetros de seleo SELECT WERKS NAME1 FROM T001W INTO TABLE I_T001W WHERE WERKS IN S_CENTRO. cd do centro descrio da tabela T001W inserindo na tabela interna I_T001W onde o centro esteja dentro dos parmetros informados50

Academia ABAP Suporte a Clientes

* Testando se a execuo do comando SELECT foi bem sucedida IF SY-SUBRC NE 0. * Com a varivel de sistema SY-SUBRC sempre poderemos testar se o * comando ABAP foi executado com sucesso ou no. MESSAGE I015 WITH 'Erro no comando SELECT'. * Com o comando EXIT neste ponto termina-se a execuo do programa EXIT. ENDIF.

IF P_1 EQ C_X. MESSAGE I015 WITH 'Ensinando a fazer mensagens' 'de informao'. ELSEIF P_2 EQ C_X. MESSAGE E015 WITH 'Ensinando a fazer mensagens' 'de erro'. ENDIF.51

Academia ABAP Suporte a Clientes* Para ler/manusear os registros selecionados no comando SELECT devem utilizar * o comando LOOP que far a leitura seqencial dos registros na tabela interna LOOP AT I_T001W. WRITE: / TEXT-031, I_T001W-CENTRO, " HEADER LINE (Campo centro)

TEXT-042, I_T001W-DESCRICAO. " HEADER LINE (Campo descrio) * Como modificar o contedo de um campo de uma tabela interna durante a * execuo de um programa * Primeiro: Alterar o contedo do campo i_t001w-descricao = 'Texto de alterao'. * Segundo: Utilizar o comando MODIFY para gravar a alterao na tabela interna MODIFY i_t001w. ENDLOOP. * Com o READ fazemos a leitura de um registro na tabela interna com uma chave especfica. READ TABLE I_T001W WITH KEY CENTRO = '1700' BINARY SEARCH.52

Academia ABAP Suporte a ClientesIF SY-SUBRC NE 0. MESSAGE I015 WITH 'Registro no encontrado'. ELSE. *Ao usar ":" no comando WRITE entende-se que sero impressas vrias strings na mesma *linha, a "/" que aparece indica salto de linha antes de escrever os dados na tela/relatrio. WRITE: / I_T001W. * Insere uma linha de traos na tela. ULINE. ENDIF. * Acessando um determinado registro na tabela interna baseado no ndice do mesmo. READ TABLE I_T001W INDEX 8. IF SY-SUBRC NE 0. MESSAGE I015 WITH 'Registro no encontrado'. ELSE. WRITE I_T001W. ULINE. ENDIF.

53

Academia ABAP Suporte a Clientes* Comando para limpar o HEADER LINE CLEAR I_T001W.

* Apendando (anexando) registros em outra tabela internaLOOP AT I_T001W. * Utilizando o comando CASE para verificar o valor de um campo ou varivel CASE I_T001W-CENTRO. WHEN '1010'. I_TAPP-CENTRO = I_T001W-CENTRO. I_TAPP-DESCRICAO = I_T001W-DESCRICAO. APPEND I_TAPP. WHEN '1650'. * Com o comando MOVE-CORRESPONDING movemos os campos correspondentes em entre duas tabelas, ou seja, move-se o campo i_t001w-centro para i_tapp-centro. MOVE-CORRESPONDING I_T001W TO I_TAPP. APPEND I_TAPP. WHEN OTHERS. "Testando se o valor = 1010

ENDCASE.ENDLOOP. 54

Academia ABAP Suporte a Clientes* Insere um BREAK-POINT fixo no cdigo do programa. BREAK-POINT.

*Com o comando REFRESH apagamos todos os registros da tabela interna, mas no *se apaga o HEADER LINE da mesma. REFRESH I_TAPP. CLEAR I_TAPP. "Limpando o HEADER LINE

* A instruo IS INITIAL no comando IF, testa se a tabela interna esta vazia.Se testar *usando apenas o nome da tabela i_tapp sem os colchetes estarei testando o *contedo do HEADER LINE. IF I_TAPP[] IS INITIAL. WRITE: / 'Tabela esta vazia'.

ENDIF.

* Sorteando (classificando) os registros da tabela interna SORT I_T001W BY DESCRICAO DESCENDING. * O evento END-OF-SELECTION determina o fim do fluxo do programa END-OF-SELECTION. 55

Academia ABAP Suporte a Clientes

*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Sesso de Forms*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------* *-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Definio da sub-rotina ACESSANDO_CFOP*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

FORM ACESSANDO_CFOP.

SELECT CFOP CFOTXT FROM J_1BAGTINTO I_CFOP. ENDSELECT. IF SY-SUBRC NE 0.

MESSAGE E015 WITH 'Tabela CFOP vazia'.EXIT. ENDIF. WRITE: / ===>,Form ACESSANDO_CFOP foi acionado,****. Fim do Form ACESSANDO_CFOP56

ENDFORM.

Academia ABAP Suporte a Clientes*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

* Definio da sub-rotina ACESSANDO_CFOP_COM_COMANDO_A*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*

FORM acessando_cfop_com_comando_a USING v_cfop. * Essa sub-rotina utiliza um parmetro que passado. Portanto, existe o comando USING. *V_CFOP no precisa ser declarada, pois est na declarao da sub-rotina. Se *especificarmos um tipo (v_cfop LIKE J_1BAGT-CFOP ), s aceitar parmetros desse *tipo. Se no especificarmos, aceita qualquer parmetro. Se esse parmetro tiver que ser *alterado, usa-se o comando CHANGING. *O comando AT dentro de um LOOP nos permite controlar o fluxo dos dados.

LOOP AT i_t001w.

* Quando o primeiro registro da tabela seja lido AT FIRST. WRITE: / Inicio dos registros da tabela i_t001w. ENDAT.

57

Academia ABAP Suporte a Clientes

*Sempre que o valor do campo mudar acionar esta ao AT NEW WERKS.

WRITE: / Mudana do valor campo, WERKS.ENDAT

*Quando o ltimo registro da tabela seja lido

AT LAST.WRITE: / Fim dos registros da tabela i_t001w. ENDAT.

ENDFORM.

58

Academia ABAP Suporte a Clientes

ExercciosDescrio Tcnica do Relatrio:Este relatrio deve listar todas as Notas Fiscais a partir dos parmetros de seleo informados pelo usurio. O programa deve permitir ao usurio optar em visualizar o relatrio em tela ou enviar os dados diretamente para a impressora. Dever ter uma linha de total geral no final do relatrio, em destaque, com a somatria dos montante para cada nota fiscal.

Nota: Uma nota fiscal pode conter vrios itens, mas o relatrio dever conter apenas uma linha por nota fiscal, portanto devemos prever na lgica do programa uma somatria dos montantes de cada item para que possamos obter o montante total da nota fiscal.

Critrio de Seleo:Selecionar todas as notas fiscais que tenham tipo de nota fiscal igual ao informado pelo usurio na tela de parmetros e que tenham sido criadas no ms e ano que tambm sero informados pelo usurio.59

Academia ABAP Suporte a Clientes Parmetros:Tipo de Nota Fiscal (J_1BNFDOC-NTYPE) Ms (Type C de 2 posies)

Ano (Type C de 4 posies)

Tabelas:Devero ser acessadas as seguintes tabelas: j_1bnfdoc, j_1bnflin, j_1bnfstx, vbak, vbrp, lips. "Cabealho da nota fiscal "Partidas individuais da nota fiscal "Nota fiscal: imposto por item "Documento de vendas: dados de cabealho "Documento de faturamento: dados de item "Documento VD: remessa: dados de item

60

Academia ABAP Suporte a Clientes

REPORT ZCORES

format color 1 inverse. write: 'Academia ABAP 2006'. format inverse off.

format color 2 intensified. write: / 'Academia ABAP 2006'. format intensified off.

61

DebugAcademia ABAP Suporte a Clientes

Academia ABAP Suporte a Clientes

O que o Debug?A ferramenta Debug permite ao programador analisar os valores atribudos a cada varivel que compe o programa em tempo de execuo. Para visualizarmos isso na prtica, vamos utilizar o programa de exemplo abaixo: REPORT demo_log_expr_bits . DATA: text(1) TYPE c VALUE 'C', hex(1) TYPE x, i TYPE i. hex = 0. DO 256 TIMES. i = hex. IF text O hex. WRITE: / hex, i. ENDIF. hex = hex + 1. ENDDO.63

Academia ABAP Suporte a Clientes

Ativando o DebugExistem trs maneiras de ativarmos o debug: com o comando /h na caixa de transaes; pelo boto STOP na barra de ferramentas, o ponto de parada ser atribudo na linha atual do cursor; e pelo menu: Sistema > Utilitrios > Depurao, similar a primeira opo

64

Academia ABAP Suporte a Clientes

VERIFIQUE SE DEBUG ESTA ATIVADO E EXECUTE O PROGRAMA

65

Academia ABAP Suporte a Clientes

Ponteiro da linha de comando a ser executada

Na sesso Campos, temos os valores unitrios de cada varivel.

66

Academia ABAP Suporte a Clientes

Comandos no DebugJ dentro da ferramenta debug temos as seguintes opes de processamento: Executa linha a linha o programa (Step-by-Step). Executa o bloco atual. (loop, case, if, etc) Executa subprograma atual. (include, funo, etc) Executa o programa diretamente

Em todos os casos, o programa executado e havendo a presena de um ponto de parada em sua execuo, o programa paralisado.

67

Academia ABAP Suporte a Clientes

Pressione F8

68

Academia ABAP Suporte a Clientes

PONTO DE PARADA DEFINIDO

69

Academia ABAP Suporte a Clientes

WatchpointO Watchpoint um ponto de parada definido por uma determinada condio no programa.

CLIQUE NO BOTO WATCHPOINT

Defina aqui as condies de para desejadas. Podemos utilizar uma condio de valor, ou de comparao com outra varivel.

70

Academia ABAP Suporte a Clientes

A PARADA FOI DEFINIDA QUANDO hex MAIOR OU IGUAL A 40

71

Academia ABAP Suporte a Clientes

Double click na tabela interna

72

Academia ABAP Suporte a Clientes

Double click no nome do campo para exibir componente da tabela interna

73

Academia ABAP Suporte a Clientes

Double click para exibir

74

Academia ABAP Suporte a Clientes

Todos os dados da tabela interna

75

Academia ABAP Suporte a Clientes

Valor de retorno, valor de retorno aps instrues ABAP Linha de exibio Tabelas internas, ndice de linha atual Nmero total de linhas da tabela processadas

76

Academia ABAP Suporte a Clientes

Indica a linha de programa

Indica o programa atual

77

Academia ABAP Suporte a Clientes

Manipulando valores de variveis em tempo de execuo

Numero = 20

78

Academia ABAP Suporte a Clientes

Preencher contedo campo com outro valor Clique no boto lpis para alterar resultado

79

Academia ABAP Suporte a Clientes

Numero = 0

80

Academia ABAP Suporte a Clientes

Exibir todos os ponto de parada definida

81

Academia ABAP Suporte a Clientes

Aqui mostra todos os ponto de parada e a linha que foi definida

82

Data Dictionary (BD)Academia ABAP Suporte a Clientes

Academia ABAP Suporte a Clientes

O que o Data Dictionary?O dicionrio de dados do ABAP/4 (DD) uma fonte central de informaes provenientes do sistema gerenciador de dados do SAP. Sua principal funo suportar a criao e o gerenciamento das definies de dados, tambm conhecidas como meta dados.

84

Academia ABAP Suporte a Clientes

Conceitos de Bancos de Dados RelacionaisModelo Entidade-Relacionamento Modelo desenvolvido para facilitar o projeto de banco de dados, permitindo a especificao de um esquema que represente a estrutura lgica global de um banco de dados. Entidade: um objeto que existe e distinguvel de outros objetos, ou seja, identifica o agrupamento de objetos do mesmo tipo. Exemplos: Clientes, Bancos, Agncias, Contas-Corrente. Atributos: So os qualificadores de uma entidade, isto , representam no modelo o que uma entidade pretende ser. Exemplos: Nome, RG, CPF, Endereo, Nmero Conta, Nmero Agncia, Nmero Banco

85

Academia ABAP Suporte a Clientes

Conceitos de Bancos de Dados Relacionais cont.Domnio: Conjunto de valores permissveis para um atributo. Exemplo: Estado Civil, Sexo, Cor, Meses do Ano. Relacionamento: a associao entre duas entidades, ou seja, representa a maneira como duas entidades esto relacionadas ou ligadas. Exemplos: Conta-Corrente de um Cliente, Agncias de um Banco, Contas-Corrente de uma Agncia. Restries de Mapeamento: Representam o modo como as diferentes entidades de um modelo se relacionam. Determinadas pela cardinalidade dos relacionamentos entre as entidades.

86

Academia ABAP Suporte a Clientes

Tipos de RelacionamentoUm-para-Um: Uma ocorrncia da Entidade A est relacionada com uma e apenas uma ocorrncia da Entidade B. Um-para-N: Uma ocorrncia da Entidade A est relacionada com uma ou vrias ocorrncias da Entidade B. N-para-Um: Vrias ocorrncias da Entidade A esto relacionadas com apenas uma ocorrncia da Entidade B. N-para-N: Vrias ocorrncias da Entidade A est relacionada com vrias ocorrncias da Entidade B. Modelo Relacional

87

Academia ABAP Suporte a Clientes

O que um Banco de Dados Relacional?Um banco de Dados Relacional a implementao fsica do Modelo EntidadeRelacionamento e traduz concretamente o que o modelo conceitual procura representar. Consiste em uma coleo de tabelas cada uma das quais associada a um nome nico e que possuem relacionamentos entre si. Tabelas representam fisicamente as Entidades.

Cada tabela possui uma estrutura similar quilo que pretende a representar, isto , tabelas so formadas de linhas que por sua vez so formadas por colunas. Colunas representam fisicamente os Atributos.A cada linha da tabela chamamos de Ocorrncia e o conjunto de ocorrncias pode ou no estar relacionado com ocorrncias de outras tabelas.

88

Academia ABAP Suporte a Clientes

Como distinguir as ocorrncias umas das outras?Utilizando o conceito de Chave Primria!! Chave Primria: Conjunto de atributos que garante a unicidade de cada ocorrncia da tabela. Exemplos: RG, CPF, Nmero Chassis. Normalizao: Processo de reconhecimento da chave primria

89

Academia ABAP Suporte a Clientes

Como representar os relacionamentos entre tabelas?Transferindo a chave primria de uma tabela para a outra!! Chave Estrangeira: Quando a chave primria de uma tabela um atributo em outra(s) tabela(s).

90

Academia ABAP Suporte a Clientes

Representao Grfica do Relacionamento de Tabelas DER( Diagrama de Entidade e Relacionamento)

91

Academia ABAP Suporte a Clientes

Como Utilizar o Data Dictionary?Entre na transao SE11

92

Academia ABAP Suporte a Clientes

Nesta transao voc ter as seguintes opes:Tabelas: Definir a estrutura das tabelas transparentes onde os dados sero armazenados fisicamente. Vises: Definir relacionamentos entre tabelas transparentes para facilitar o acesso ao banco de dados, geralmente so criadas para substituir select joins que durante a execuo do programa degradam a performance do mesmo. Categoria de dados: Opta pela criao de Elementos de Dados, Estruturas ou Categoria de Tabelas. Domnio: Definir atributos tcnicos que sero atribudos a um elemento de dados. Objetos de bloqueio: Definir os bloqueio de acesso aos dados no banco de dados.

Ajuda p/ pesquisa: Definio dos objetos de match-code que sero utilizados nas telas do SAP93

Academia ABAP Suporte a Clientes

Criando uma tabela1 - Selecione a opo Tabela Banco de Dados 2 - Entre com o nome da tabela iniciado com a letra Z

Entre na transao SE11

3 - Clique no Boto Criar

94

Academia ABAP Suporte a Clientes

1 - Insira a descrio da tabela

4 - Selecione a aba Campos

2 - Escolha a classe de entrega ser utilizada

3 - Selecione o flag de permisso de atualizao

95

Academia ABAP Suporte a Clientes

Nome do campo

Indicao de chave primria Indica a obrigatoriedade de preenchimento do campo

Elemento de Dados Comprimento do Campo Mostra o tipo do campo

Descrio do campo

96

Academia ABAP Suporte a Clientes

Criando um Elemento de Dados

Dar um duplo clique no nome do Elemento de Dados a ser criado

97

Academia ABAP Suporte a Clientes

Clique em Sim

98

Academia ABAP Suporte a Clientes

1 - Descrio do Elemento de Dados

3 - Clicar na aba de denominao de campo

2 - Nome do Domnio desejado

99

Academia ABAP Suporte a Clientes

Preencher as denominaes do campo

100

Academia ABAP Suporte a Clientes

Criando um Domnio

Duplo click sobre o nome do domnio a ser criado

101

Academia ABAP Suporte a Clientes

Clicar em Sim

102

Academia ABAP Suporte a Clientes

1 - Descrio do Domnio

4 - Se precisar definir um range de valores vlidos para o campo clique na aba da rea de Valores.Esta funcionalidade mais utilizada para campos do tipo Flag ou de parametrizao

2 - Selecione a Categoria de Dados

3 Caso este campo no seja preenchido automaticamente, defina o nmero de posies do Campo

103

Academia ABAP Suporte a Clientes

Neste campo estar a descrio para estes valores.

Neste campo podese inserir os valores fixos para este campo

Pode-se inserir o nome da tabela onde podem estar guardados os valores fixos do campo

104

Academia ABAP Suporte a Clientes

Feito este processo 1 Clique no boto salvar

3 - No existindo inconsistncias clicar neste boto para ativar o domnio criado

2 Clique neste boto para verificar se existem inconsistncias no domnio criado

105

Academia ABAP Suporte a Clientes

Salvando e ativando o Elemento de Dados

Feito este processo 1 Clique no boto salvar

3 - No existindo inconsistncias clicar neste boto para ativar o Elemento de Dados criado

2 Clique neste boto para verificar se existem inconsistncias no Elemento de Dados

Depois de criar e ativar o Domnio o prximo passo a ativao do Elemento de Dados.106

Academia ABAP Suporte a Clientes

Opes tcnicas

Pode-se observar o aparecimento da Categoria de Dados, do comprimento e Descrio do campo aps a criao do Elemento de Dados e do Domnio do mesmo. Agora devemos definir as opes tcnicas da tabela

107

Academia ABAP Suporte a Clientes

4 - Salvar

3 - Verificar as inconsistncias

1 - Informar o tipo de Dados que a tabela ir armazenar

2 - Informar o tamanho previsto da tabela

108

Academia ABAP Suporte a Clientes

Salvando e ativando a tabela

Aps definir e salvar as opes tcnicas s falta salvar e ativar a tabela

1 - Verificar as inconsistncias

2 - No havendo inconsistncias ative a tabela

109

Academia ABAP Suporte a Clientes

Exerccios1 Crie uma tabela de clientes contendo os seguintes campos: Cdigo do Cliente - LIFNR Nome do Cliente - NAME1 CNPJ Endereo CEP Telefone E-MAIL - STCD2 - STRAS - PSTLZ - TELF1 - AD_SMTPADR

OBS: Utilize os elementos de dados Standard que esto ao lado dos campos 2 - Altere a tabela criada trocando os elementos de dados Standard por elementos desenvolvidos por voc.

110

Academia ABAP Suporte a Clientes

Atualizador Automtico de Tabela a maneira mais simples de inserir e modificar dados em uma tabela do Data Dictionary.

Este recurso muito utilizado para pequenos cadastros de dados em tabelas de parametrizaes (configuraes) de algumas transaes ou tabelas de verificao para o domnio de determinado campo.

111

Academia ABAP Suporte a Clientes

Criando um Atualizador Automtico de Tabela

Para criao do atualizador de tabelas necessrio ter em mos um grupo de funes ou criar um. Na transao SE11 adicione a tabela para qual voc deseja criar o atualizador de tabelas.

112

Academia ABAP Suporte a Clientes

Selecionar no Menu Utilitrios a opo Gerador de Atualizao de Tabelas

113

Academia ABAP Suporte a Clientes

Utilizando o Atualizador de TabelaPara utilizar o atualizador de tabela e cadastrar dados na mesma entre na transao SM30 1 - Informe o nome da tabela em que pretende incluir ou alterar dados 2 - Selecione restries a opo sem

3 - Clique no boto Atualizar

114

Academia ABAP Suporte a Clientes

Criao de Estruturas de Dados (Work area)1 - Selecione a opo Categoria de Dados

2 - Entre com o nome da Estrutura iniciado com a letra Z

3 - Clique no Boto Criar

115

Academia ABAP Suporte a Clientes

Selecione a opo Estrutura

116

Academia ABAP Suporte a Clientes

Descrio para a estrutura Descrio campo do

Comprimento Campo Elemento de Dados

do

Mostra o tipo do campo

Nome do campo

117

Academia ABAP Suporte a Clientes

2 - No havendo inconsistncias s ativar a tabela.

1 - Verificar se h inconsistncias

118

Academia ABAP Suporte a Clientes

Exerccio

4 Crie uma estrutura de dados (Work Area) baseada na tabela de clientes criada anteriormente.

119

Academia ABAP Suporte a Clientes

Vises uma maneira de visualizar dados de duas ou mais tabelas dentro do Data Dictionary.

Usamos o termo viso para referenciar qualquer relao que no faz parte do modelo conceitual que mostrada ao usurio como uma relao virtual.

Vises so um mecanismo til para a simplificao de consultas ao Data Dictionary.

120

Academia ABAP Suporte a Clientes

Criando de VisesEntre na transao SE111 - Selecione a opo Viso

2 - Entre com o nome da Viso iniciado com a letra Z

3 - Clique no Boto Criar

121

Academia ABAP Suporte a Clientes

1 - Selecione a opo Viso de Banco de Dados

2 - Clique no boto Aceitar

122

Academia ABAP Suporte a Clientes

1 - Insira uma descrio para Viso

2 - Insira o nome das tabelas escolhidas 3 - Insira as condies de seleo para visualizar os dados

123

Academia ABAP Suporte a Clientes

3 - Insira o nome do campo na tabela

2 - Insira o nome da tabela

1 - Insira o nome do campo da viso124

Academia ABAP Suporte a Clientes

Clique na aba critrios de seleo

Insira uma condio para seleo do registro na tabela

125

Academia ABAP Suporte a Clientes

2 - No havendo inconsistncias ative a Viso

1 - Verifique se h inconsistncias na Viso

126

Academia ABAP Suporte a Clientes

Exerccio

5 Crie uma Viso a partir das tabelas VBAK ( Cabealho do documento de vendas ) e VBAP ( Itens do documento de vendas )

127

Mdulos de FunoAcademia ABAP Suporte a Clientes

Academia ABAP Suporte a Clientes

O que so Mdulos de funo?- Mdulos de Funo so subrotinas externas com uma interface transparente. A interface considerada transparente porque ele no parte da declarao do programa ABAP para a poro executvel do mdulo de funo. A interface pode ser mantida independentemente do cdigo. - Os Mdulos de Funo so unidades de modularizao com nomes especficos que podem ser chamados a partir de qualquer programa em todo o sistema de R/3. Eles armazenam o cdigo que utilizado por mais de um programa.

- Mdulos de funo so seqncia de dados externas - voc no os escreve em um programa que os chamam.

129

Academia ABAP Suporte a Clientes

Chamadas de Mdulos de Funo- cada mdulo de funo pertence a um grupo de funo. Um grupo de funo

uma coleo de programas que tem uma estrutura pr-definida. Todos os nomes de programas dentro do grupo contm o ID do grupo de funo de quatro caracteres. - quando voc chama um mdulo de funo, o sistema baixa a entrada do grupo de funo dentro da rea de memria ligando um programa de chamada. - os mdulos de funo em um grupo de funo tm uma idia principal em comum. Por exemplo, todos os mdulos de funo em grupo de funo SCAL executam clculos de data.

130

Academia ABAP Suporte a Clientes

Criando Grupo de FunoPela transao SE80

Clicar em Processar Objeto

131

Academia ABAP Suporte a Clientes

Nome e descrioAdicione no Campo Obrigatrio o Grupo de Funes que dever ser criado anteriormente e um Texto Breve do que executa a Funo.Adicionar nome do grupo a ser criado

Adicionar uma descrio para o Grupo e Salvar

Clicar em Criar (F5)132

Academia ABAP Suporte a Clientes

Classe de desenvolvimento e request

Selecione uma classe de desenvolvimento

Salvar (Enter)

Criar Ordem (F8)133

Academia ABAP Suporte a Clientes

Criando a requestAdicionar uma descrio para a request

Aparecer a tela com o nmero da request

Clicar em Salvar

Clicar em Avanar (Enter)

134

Academia ABAP Suporte a Clientes

Ativando o grupo de funes

Clicar em Ativar (Ctrl+F3)

135

Academia ABAP Suporte a Clientes

Criando Mdulo de FunoPara criar mdulos de funo, voc usa o construtor de funo, uma das ferramentas de referncia de trabalho do ABAP. Transao: SE37Crie um nome para a funo

Clique em Criar

Adicione o nome do Grupo de Funo criado anteriormente, ou j existente

Clique em Gravar136

Academia ABAP Suporte a Clientes

Incluindo os parmetros de importao- Na Aba Caracterstica, aparecer na Classificao o seu Grupo de Funes, juntamente com a sua descrio, e o seu texto breve da tela anterior.- No Tipo de Execuo dever estar flegado o Mdulo de Funo Normal, pois a de Acesso Remoto s dever ser flegada caso for uma RFC.

Aba Caractersticas

137

Academia ABAP Suporte a Clientes

- Na Aba Importao, dever ser colocado (no obrigatrio) os dados que sero importados para a Funo (Nome Parmetro, Atributo(like ou type) Tipo Referncia) o Texto breve aparecer assim que estes campo forem preenchidos e dado Enter, para a prxima linha. Obs.: Para Criao de RFC o tributo ser somente Type o Checkbox Opcional e Transferncia de Valor devem estar flegados. - Na Aba Exportao ser passada o valor que deve retorna para o Programa depois que forem feitas todas as selees feitas na funo. O preenchimento idntico ao da Aba Importao. Obs.: Na RFC o checkbox Transferncia dever estar flegado. - Na Aba Texto fonte ser o local que ser desenvolvido a lgica para atender a funo. Obs: Repare que na Interface local aparece todos os parmetros que foram inseridos nas Abas anteriores, mostrando toda a Estrutura da Funo.138

Academia ABAP Suporte a Clientes

- Na Aba Modificao, somente de for para ser alterado o valor de algum campo, caso seja necessrio, pois sempre que o programa for executado haver a modificao. - Na Aba Tabelas, podero (no obrigatrio) ser inseridas as tabelas internas que sero utilizada no programa (texto fonte) (declaradas desta forma ela traz a tabela inteira uma estrutura, caso necessite poucos campos aconselhvel declarar dentro do texto fonte a tabela interno contendo somente os campos que sero utilizados (sempre com campos chaves juntos), questo de performance). - Na Aba Excees, somente colocar o retorno dos erros da funo (no obrigatrio, mas aconselhvel, pois a no utilizao do sy-subrc na funo ela sempre retornar 0, fazendo com que o SAP entenda que est tudo OK). No Local de Exceo, colocar os campos que possam retornar erros. No Texto Breve, colocar a descrio do erro.

139

Academia ABAP Suporte a Clientes

Na aba Importao insira parmetros que sero importados para a funo.

140

Academia ABAP Suporte a Clientes

Incluindo os parmetros de exportao

Na aba Exportao insira parmetros que sero retornados pela funo.

141

Academia ABAP Suporte a Clientes

Incluindo a codificao

Na aba Texto Fonte insira a codificao da funo. Repare que os parmetros de importao e exportao j esto na chamada da funo.

A codificao deve ser inserida entre as declaraes FUNCTION e ENDFUNCTION.

142

Academia ABAP Suporte a Clientes

Ativando o mdulo de funoGravar

Verificar

Ativar

Avanar

143

Academia ABAP Suporte a Clientes

Testando o mdulo de funo- Depois de terminado e ativado um mdulo de funo, voc pode testar no construtor de funo, permitindo especificar os parmetros de IMPORTAO. O resultado transferido aos parmetros de EXPORTAO. - Voc pode usar a funo construtor teste para testar mdulos de funo com parmetros de mesa.

144

Academia ABAP Suporte a Clientes

Testando o mdulo de funo

Clique em testar/executar (F8)

Funo est ativa

145

Academia ABAP Suporte a Clientes

Ser apresentada a tela onde mostrar os parmetros que esto sendo passados para o cdigo da funo, no exemplo foram inseridos valores Default

Clique em Executar (F8)

146

Academia ABAP Suporte a Clientes

Valor passado para o parmetro de exportao depois de passar pelos tratamentos da funo

147

Academia ABAP Suporte a Clientes

Executando o mdulo de funo a partir de um programa- O mdulo de funo pode ser executado a partir de um programa caso ele esteja ativo no R/3. - podemos utilizar a funo Modelo para inclu-lo no report.

- o sistema gera uma declarao CALL FUNCTION , junto com a interface do mdulo de funo, e insere isto no programa a partir da posio atual do cursor.- descomentar os parmetros a serem utilizados preenchendo com valores, referncias, tabelas internas.

148

Academia ABAP Suporte a Clientes

Executando o mdulo de funo a partir de um programa

Em um report clicar em Modelo para utilizar o padro da chamada da funo

149

Academia ABAP Suporte a Clientes

Adicionar o nome da funo criada

Avanar

150

Academia ABAP Suporte a Clientes

A funo criada automaticamente. Devemos incluir os parmetros e adicionar as variveis que passaro os valores para a funo.

151

Academia ABAP Suporte a Clientes

Execute o programa e adicionar os valores que sero passados para a funo

152

Academia ABAP Suporte a Clientes

Resultado exportado pela funo e impresso na tela

153

Academia ABAP Suporte a Clientes Exemplo: Report que chama a funo que multiplica dois nmeros:REPORT Z_REPORT_ACADEMIA. *----------------------------------------------------------------------* Variveis *----------------------------------------------------------------------DATA num3 TYPE i. *----------------------------------------------------------------------* Tela de Seleo *----------------------------------------------------------------------SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-000. parameters: num1 type i obligatory, num2 type i obligatory. SELECTION-SCREEN END OF BLOCK bl1. if num1 is initial and num2 is initial. message i000(ZCLL) with 'Digitar valores para os campos!!!'. else. *----------------------------------------------------------------------* Chamada da Funo *----------------------------------------------------------------------CALL FUNCTION 'Z_FUNCAO_ACADEMIA' EXPORTING P1 = num1 P2 = num2 IMPORTING P3 = num3. *----------------------------------------------------------------------* Impresso do valor retornado pela funo na tela. *----------------------------------------------------------------------write:/ 'Nmero gerado pela funo Z_FUNCAO_ACADEMIA =', num3 . endif.

154

Academia ABAP Suporte a Clientes Exemplo: Exemplos utilizando uma Funo StandardMONTH_NAMES_GET : Retorna uma tabela interna com o nome dos meses.

Nesta funo passamos como parmetro uma tabela interna onde sero armazenados os nomes dos meses.

155

Academia ABAP Suporte a Clientes

Na aba Excees so passados parmetros de verificao.

156

Academia ABAP Suporte a Clientes

Informamos o idioma (PT = portugus) e a funo nos retornar a descrio dos meses para o idioma informado

Tabela interna com o resultado passado pela funo

157

Academia ABAP Suporte a Clientes

Resultado dentro da tabela interna

158

Academia ABAP Suporte a Clientes

Pop-upFunes Pop-ups so funes que dependem diretamente de uma ao do usurio para ento processar o resultado desta interao. POPUP_TO_CONFIRM_STEP Cria um box de mensagem com confirmao.

Pop-up executado na transao SE37.

159

Academia ABAP Suporte a Clientes

Exerccios1 Crie uma funo que ir listar os materiais do tipo FERT. Os dados para seleo sero os seguintes: MARA-MATNR N do material

MARA-ERSDA Data de criaoMAKT-MAKTX Texto breve do material Passos: A- Criar o grupo de funo com o nome ZGRP_GRUPOXX onde XX o nmero do seu grupo. B- Criar a funo com o nome Z_FUNCAO_GRUPOXX. C- Inserir cdigo fonte para seleo dos dados. D- Testar a funo criada na transao SE37.

160

Academia ABAP Suporte a Clientes

2 Criar um programa report que utilize a funo que voc acabou de criar utilizando um pop-up que indique se deseja mostrar ou no a lista de materiais encontrados na tela. 3 Criar um programa report que passe para a funo que ir ser criada o nmero do material e o centro, a funo ir verificar nas tabelas a descrio do material e se ele existe para o determinado centro e ir retornar para o programa onde ser impresso na tela. Tela de seleo:

Nmero do material: MARA-MATNRCentro: MARC-WERKS Para funo passar: - Exporting: Os campos da tela de seleo

- Importing: uma varivel que ir retornar a descrio do material e outra varivel que ir retornar a mensagem se existe ou no o material e o centro nas tabelas.- Tables: it_mara, it_marc, it_makt.

161

InterfacesAcademia ABAP Suporte a Clientes

Academia ABAP Suporte a Clientes

IntroduoO ABAP/4 nos proporciona a opo de importar e exportar arquivos para a estao de trabalho e tambm para um servidor afim de integrar o Sistema ERP a um Sistema Legado. Para os casos de importao ou exportao nas estaes de trabalho so utilizadas funes, que devem ser chamadas no cdigo ABAP. J para os casos de importao ou exportao nos servidores, utilizado comandos dentro do cdigo ABAP.

163

Academia ABAP Suporte a Clientes

Funo DownloadA funo Download possibilita a importao de um arquivo LOCAL para a rea de memria do R/3.Exemplo de funo: CALL FUNCTION 'WS_DOWNLOAD' EXPORTING BIN_FILESIZE = WC_NUMBYTES FILENAME = CC_ARQ FILETYPE = 'BIN' TABLES DATA_TAB = T_TLINE EXCEPTIONS FILE_OPEN_ERROR = 1 FILE_WRITE_ERROR = 2 INVALID_FILESIZE = 3 INVALID_TYPE = 4 NO_BATCH = 5 UNKNOWN_ERROR = 6 INVALID_TABLE_WIDTH = 7 GUI_REFUSE_FILETRANSFER = 8 CUSTOMER_ERROR = 9 OTHERS = 10.164

Academia ABAP Suporte a Clientes

Funo UploadA exemplo da funo Download, a funo Upload utilizada somente para arquivos LOCAIS e possibilita a exportao de informaes do R/3.Exemplo de funo:CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = cc_arq FILETYPE = 'BIN' TRUNCLEN = '255' IMPORTING FILELENGTH = TAB_LINES TABLES DATA_TAB = OBJBIN.

165

Academia ABAP Suporte a Clientes

DatasetO comando Dataset, tem por caractersitica bsica os mesmos princpios das funes Down/Upload, porm deve ser utilizada sempre que manipularmos arquivos em servidores e/ou processamentos em background. * Abre ou cria o arquivo open dataset v_file_name_sap for output in binary mode. * Preenche o arquivo com os dados transfer wa_exit_file to v_file_name_sap length 188. * Fecha o arquivo close dataset v_file_name_sap.

166

Academia ABAP Suporte a Clientes

Exerccios1. Criar um programa que os dados EKPO (campos EBELN, EBELP, MATNR, NETPR), buscando por nmero do pedido de compra (campo EBELN) e com o dados obtidos, execute a gerao de um arquivo *.TXT para a estao de trabalho. 2. Utilizar a mesma lgica do exerccio anterior, porm, gerando um arquivo no servidor. 3. Com o arquivo gerado e gravado na estao de trabalho, conforme o exerccio anterior, executar o upload no mesmo e apresentar os dados nesse arquivo.

167

Call Transaction & Batch InputAcademia ABAP Suporte a Clientes

Academia ABAP Suporte a Clientes

H trs maneiras de se realizar automaes de processos dentro do R/3 via ABAP: Call-Transaction, Batch-Input e Direct-Input. Estas automaes utilizam uma Communication) ou BDC Session. tcnica chamada BDC (Batch Data

Os programas desenvolvidos para automatizar os processos carregaro uma tabela de BDC que submeter os dados e telas de BDC na transao atravs do CALL-TRANSACTION ou BATCH-INPUT.Para ambos os modos necessita-se identificar as telas, campos e comandos que sero usados na transao escolhida na seqncia correta e sem erros. Podemos nomear esta identificao das telas, campos e comandos como mapeamento de telas ou SHDB, e podemos obt-lo atravs da transao de mesmo nome SHDB.

169

Academia ABAP Suporte a Clientes

Mapeamento de telas: SHDBVamos mapear a transao VA02.

Clique em Nova Gravao

170

Academia ABAP Suporte a Clientes

1. Digitar o nome do registro 2. Digitar o nome da transao

3. Clique em Executar Registro

171

Academia ABAP Suporte a Clientes

No exemplo acima foi utilizada a transao VA02, que altera dados de uma Ordem de Venda. A partir disso, deve-se executar as atividades necessrias para serem mapeados os campos e telas utilizadas.Ao final desta atividade, gerado a seguinte tela:

Com o mapeamento em mos, pode-se ento executar o tratamentos dos dados e a codificao para a carga dos dados.172

Academia ABAP Suporte a Clientes

Tabela (estrutura BDC)A tabela BDC uma tabela interna com uma estrutura especfica no qual preenchida para ser enviada para a sesso batch input. Esta estrutura se chama BDCDATA e tem os seguintes campos:

Campo Program Dynpro Dynbegin Fnam Fval

Tipo Char(40) Numc(4) Char(1) Char(132) Char(132)

Descrio Nome do programa da transao Nmero da tela da transao Indicador de uma nova tela Nome do campo da tela Valor a ser colocado no campo

173

Academia ABAP Suporte a Clientes Com os dados obtidos no SHDB, o preenchimento da tabela interna no cdigo ABAP a seguinte:REPORT ZXXXXXXX.

DATA: BEGIN OF TBDC OCCURS 100. INCLUDE STRUCTURE BDCDATA. DATA: END OF TBDC.

* Incio do programa principal MOVE SAPMF02K MOVE 0100 MOVE X TO TBDC-PROGRAM.

TO TBDC-DYNPRO. TO TBDC-DYNBEGIN.

APPEND TBDC. MOVE RF02K-LIFNR TO TBDC-FNAM. MOVE 0010010 APPEND TBDC. MOVE RF02K-EKORG TO TBDC-FNAM. MOVE CNTL APPEND TBDC. * E assim por diante at que a tabela esteja completa TO TBDC-FVAL. TO TBDC-FVAL.

174

Academia ABAP Suporte a Clientes

Call TransactionO comando CALL TRANSACTION possibilita o processamento de uma tabela BDC imediatamente pelo sistema. Os dados da tabela BDC so utilizados para executar a transao e o return code deste comando nos mostra se a transao foi executada com sucesso ou no. A sintaxe deste comando : CALL TRANSACTION trans [USING bdctab MODE mode]. Os modos para executar este comando so:

A Mostra todas as telas E Mostra apenas telas com erros N No mostra as telas

Na adio do return code, podemos utilizar as variveis de sistema para recuperar a mensagem que o SAP enviou ao trmino do processamento. As variveis mais utilizadas so: SY-MSGID, SY-MSGV1, SY-MSGV2, SY-MSGV3 e SY-MSGV4.175

Academia ABAP Suporte a Clientes

Batch InputOutra maneira para processar uma sesso de BDC submetendo-a ao sistema via processamento batch. Com este mtodo, vrias transaes podem ser executadas pelo SAP mas, ao contrrio do CALL TRANSACTION, estas transaes no sero executadas imediatamente (on-line), mas sim estas sero colocadas em uma pasta de Batch Input que pode ser executada na transao SM35 ou agendada para rodar em um dia e uma hora desejada. Utiliza-se trs mdulos de funes que devem ser executados para este tipo de processamento: BDC_OPEN_GROUP: esta funo abre a sesso de BDC e necessita ser chamada antes de qualquer processamento. BDC_INSERT: esta funo chamada para cada transao no processamento Batch. BDC_CLOSE_GROUP: esta funo deve ser chamada aps todo processamento para que a pasta de processamento Batch seja criada.176

Academia ABAP Suporte a Clientes Funo BDC_OPEN_GROUP Os seguintes parmetros so passados para a funo: CLIENT Cliente do SAP que ser processada a sesso GROUP Nome para a pasta de Batch input (no precisa ser nico) HOLDDATE Suspende o processamento da pasta de Batch input at a data especificada KEEP Mantem a pasta de Batch Input aps o processamento USER Nome de usurio que executar o Batch Input. Funo BDC_INSERT Os seguintes parmetros so passados para a funo: TCODE Cdigo da transao na qual ser executada a tabela BDC DYNPROTAB Nome da tabela interna utilizada para gerar a pasta de Batch

Funo BDC_CLOSE_GROUP No existem parmetros a serem passados para esta funo.

177

EnhancementsAcademia ABAP - Suporte a Clientes

Academia ABAP Suporte a Clientes

O que so Enhancements?Enhancements so ampliaes que o Sistema SAP R/3 permite ao cliente (no caso aquele que comprou o sistema) criar lgicas adicionais para o seu negocio em diversos pontos definidos pela prpria SAP. A grosso modo so pequenos buracos onde podemos inserir cdigos abaps para realizar tarefas adicionais. Ex: Validao de Campos, gravar dados em tabelas adicionais, aumentar campos de uma tabela standard.

179

Academia ABAP Suporte a Clientes

Tipos de EnhancementsTable enhancements Field-exit User-exit Menu-exit Screen-Exit BADI

BTE ( Business transaction events )

180

Academia ABAP Suporte a Clientes

Field-ExitSo validaes de campos, cdigos que podem ser inseridos em validao de campos de qualquer tela de programas on-line do sistema SAP R/3. So funes que recebem o contedo digitado do campo e podem retornar mensagens de erro ou at um valor formatado no campo.

181

Academia ABAP Suporte a Clientes

Field-Exit (requisitos )Verificar se o parmetro abap/fieldexit esta como Yes no perfil da instancia SAP (transao RZ10)

182

Academia ABAP Suporte a Clientes

Selecionar atualizao ampliada e clicar em Exibir

183

Academia ABAP Suporte a Clientes

O parmetro deve estar na lista e com valor Yes

184

Academia ABAP Suporte a Clientes

Caso o parmetro no esteja setado no sistema corretamente, solicitar para a equipe Basis setar o mesmo. Isso implicara no shutdown do Sistema R/3, para que no reinicio o mesmo assuma os novos parmetros. Caso os parmetros estejam setados corretamente j podemos criar field-exits no sistema. Este parmetro implica que o sistema a toda tela on-line carregada ira buscar dados nas tabelas TDDIR e TDDIRS para saber se existe field-exits ativas para os campos segundo elemento de dados.

185

Academia ABAP Suporte a Clientes

Field-Exit (Grupo de funes)Como field-exits so funes teremos que criar um Grupo de funes ou associar h um existente.

Criando um Grupo de funes via transao SE80

186

Academia ABAP Suporte a Clientes

Inserir texto breve Clicar em gravar

187

Academia ABAP Suporte a Clientes

Boto direito Ativar

Para ativar o grupo criado selecione-o via transao SE80 Clique com boto direito no mesmo, aparecera um menu, clicar em ativar

188

Academia ABAP Suporte a Clientes

Criando Field-ExitPara criar uma field-exit temos que conhecer o campo da tela.Verificar se o campo foi criado com referencia ao dictionary (se no a field-exit no funciona). Anotar programa e tela para amarrar a field-exit

189

Academia ABAP Suporte a Clientes

Levantando as caractersticas do campoVerificando campo ( Ex: transao XK02, tela controle, campo LFA1-STCD1 )

Na transao XK02Informar fornecedor, clicar controle,

190

Academia ABAP Suporte a Clientes

Campo Desejado LFA1-STCD1 Selecionar campo e pressionar F1

191

Academia ABAP Suporte a Clientes

Clicar em Informaes tcnicas

192

Academia ABAP Suporte a Clientes

Anotar programa e tela e o nome do elemento de dados

193

Academia ABAP Suporte a Clientes

Para verificar se o campo da tela foi criado com referencia ao dictionary Dar duplo clique no numero da tela

194

Academia ABAP Suporte a Clientes

Clicar em Layout

195

Academia ABAP Suporte a Clientes

Dar duplo clique sobre o campo

196

Academia ABAP Suporte a Clientes

Verificar Fleg de referencia ao dictionary

197

Academia ABAP Suporte a Clientes Aps todas verificaes para verificar de viabilidade de criao da field-exit para um determinado campo, podemos iniciar a criao da field-exit.

Na transao CMOD, digitar no campo comand line PRFB

198

Academia ABAP Suporte a Clientes

199

Academia ABAP Suporte a Clientes

Informar elemento de dados do campo

200

Academia ABAP Suporte a Clientes

Clicar em Criar

201

Academia ABAP Suporte a Clientes

Informar grupo de funes e texto breve para funo da field-exit

202

Academia ABAP Suporte a Clientes

Codigo exemplo:Para validao de CGC Obs: No esquecer de ativar objeto

203

Academia ABAP Suporte a Clientes

Novamente na CMOD selecionar o elemento de dados e clicar em atribuir programa a tela

204

Academia ABAP Suporte a Clientes

Informar dados do campo: tela e programa Clicar em Gravar

205

Academia ABAP Suporte a Clientes

Selecionar novamente o elemento de dados e clicar em ativar

206

Academia ABAP Suporte a Clientes

Exerccios Field-ExitEx1: Criar uma field-exit para o elemento de dados RPMKR, programa SAPMF02D tela 7126. referente as transaes XD01,XD02 campo mercado regional. s dever ser permitido entrada de dados com a primeira letra M.

207

Academia ABAP Suporte a Clientes

User-ExitSo espaos, definidos pela SAP onde voc pode inserir lgicas adicionais dentro de um ponto especifico no processo de negcios.Podemos considerar user-exit: Forms adicionais diretamente dentro do cdigo standard (utilizado geralmente no modulo SD) Function-exit (exit de funo dentro de uma ampliao) Exit de Regra de substituio Exit de ajuda de pesquisa

Obs: Abordaremos neste curso apenas function-exits.

208

Academia ABAP Suporte a Clientes

Criando function-exitsNa transao SMOD ( busca ampliao apropriada para o problema )

F4

209

Academia ABAP Suporte a Clientes

Busca por nome

Busca por aplicao

vamos buscar por aplicao

210

Academia ABAP Suporte a Clientes

ampliao encolhida

211

Academia ABAP Suporte a Clientes

212

Academia ABAP Suporte a Clientes

Objetos da ampliao

Nesta ampliao temos apenas uma function-exit

213

Academia ABAP Suporte a Clientes

Para utilizar a ampliao devemos criar um projeto de exit ( transao CMOD )

214

Academia ABAP Suporte a Clientes

inserir um texto descritivo

215

Academia ABAP Suporte a Clientes

216

Academia ABAP Suporte a Clientes

217

Academia ABAP Suporte a Clientes

218

Academia ABAP Suporte a Clientes

duplo clique

219

Academia ABAP Suporte a Clientes

220

Academia ABAP Suporte a Clientes

Cdigo de exemplo que verifica se j existe algum fornecedor ativo com o mesmo CNPJ cadastrado.

Ativar e voltar

221

Academia ABAP Suporte a Clientes

voltar

222

Academia ABAP Suporte a Clientes

Ativar

223

Academia ABAP Suporte a Clientes

Quando estiver verde quer disser que esta ativo, com isso o sistema ira chamar a funo para realizar a consistncia criada no momento de salvar o fornecedor ( transaes XK01 ou XK02 )

para este caso, pois cada ampliao trata um pondo especifico no processo de negocio.

224

Academia ABAP Suporte a Clientes

Exerccio User-ExitEx1: criar user-exit com a ampliao MBCF0002 utilizar a funo EXIT_SAPMM07M_001 para mudar texto do segmento do documento de material Obs: Voc pode testar esta function-exit na transao MB1B.

225

EnhancementsAcademia ABAP - Suporte a Clientes

Academia ABAP Suporte a Clientes

O que so Change Requests?Ordens (Change Requests): Recurso atravs do qual um conjunto de objetos C.D. (Client Dependent) ou C.I. (Client Independent) que podem ser transferidos de um client para outro ou de uma instncia para outra. Utiliza-se ordens para segurana na alterao de objetos j existentes, sejam eles standards do SAP ou customizados, e para efetuar controle de verses destes objetos. A nomenclatura das ordens controlada pelo prprio SAP, que promove a criao do cdigo do transporte, no momento em que a manuteno de objetos especficos exige que o mesmo seja associado a uma ordem.

227

Academia ABAP Suporte a Clientes

Padro para composio do nmeroGerao de Arquivo de Controle (Interno SAP) Nmero do transporte

AF1K900109Instncia Objeto SAP (Interno SAP)

228

Academia ABAP Suporte a Clientes

Requests locais e transportveis

TransportvelLocal

229

Academia ABAP Suporte a Clientes

Ordem transportvel: Alteraes transportveis para objetos do ABAP/4 Development Workbench so gravados em ordens transportveis. Isto permite que as ordens possam ser enviadas ao demais ambientes do SAP, cada ordem gerada para um objeto ABAP/4 consiste em uma nova verso para este objeto, permitindo assim comparar, verificar e consolidar as alteraes entre os ambientes de desenvolvimento e produo.

Ordem Local: Alteraes no transportveis para objetos do ABAP/4 Development Workbench so gravados em ordens locais. Isto garante que as ordens esto sujeitas ao mesmo tipo de controle aplicado aos objetos transportveis. Da mesma forma, quando uma ordem local liberada so criadas verses para o objeto.

230

Academia ABAP Suporte a Clientes

Tarefa e Objetos

Composio de uma Request

Task

Objetos Agrupados

231

Academia ABAP Suporte a Clientes

Uma ordem criada por um determinado usurio garante que os objetos a ele associados ficam reservados para tal usurio e somente sero liberados no momento que a ordem for encerrada. Quando uma ordem ainda permanece associado a um usurio, dizemos que ele est com o status de Modifiable. Quando uma ordem encerrada, deixa de estar associado a um usurio e passa a ter o status de Released (liberada), ou seja, os objetos a ela associados so liberados para alterao por outros usurios.

Enquanto uma ordem possui o status Modifiable, pode-se manipular seus objetos livrevente, mudar o usurio responsvel transferindo a responsabilidade, ou simplesmente eliminar a ordem, liberando assim seus objetos, ao passo que uma ordem liberada algo imutvel.232

Academia ABAP Suporte a Clientes

Transaes teisTransao SE01 Permite verificar o contedo das ordens (objetos) e sua Log de transporte (sucessos, erros ou warnings) para os outros clientes e instncias. Transao SE09 Permite verificar as ordens de objetos Client Independent (Workbench Organizer) criados por um determinado usurio, bem como efetuar o Release de tasks e da ordem em si. Transao SE10 Permite verificar os transportes de objetos Client Dependent e Client Independent (Customizing Organizer) criados por um determinado usurio, bem como efetuar o Release de tasks e do transporte em si.

233

Academia ABAP Suporte a Clientes

Logs de TransportePodemos acompanhar o transporte de todas as requests que foram liberadas

Clicando no boto de transportes podemos acompanhar todas as requests do tipo Desenvolvimento ou Correo.

234

Academia ABAP Suporte a Clientes

Manuteno em objetos transportveisToda alterao em objetos do R/3, deve gerar uma requests do tipo Reparao onde a verso modificada do objeto ser atribuda e no somente as modificaes realizadas.

235

Academia ABAP Suporte a Clientes

Localizando RequestsPara localizar requests no sistema, bata acessar pelo menu Ordem/tarefa Procurar Ordens. Aqui podemos efetuar pesquisas das request do sistema.

236

Academia ABAP Suporte a Clientes

Para uma busca mais refinada, podemos utilizar de uma ferramenta disponvel na Tela, selecionando os tipos de change request que sero pesquisados. os tipos de change request que sero pesquisados.

237

Academia ABAP Suporte a Clientes

ExercciosManuteno de transportes 1. Tools ABAP Workbench Overview Workbench Organizer (ou SE09) Obs: SE09 apenas C.I.; SE10 C.D. ou C.I.. 2. Display. Obs: diferena entre transportvel e local 3. Abrir uma ordem (request). 4. Abrir a Tarefa (Task). Obs: visualizar objetos 5. Posicionar o cursor na Task e pressionar o boto Release. 6. Completar o item : &T_Description& acrescentando uma breve descrio do que foi feito na request 7. Salvar e voltar para a tela anterior. 8. Perceba que a Task mudou de cor. 9. Posicionar o cursor na ordem e pressionar Release. 10. Perceba que o ordem mudou de cor. 11. Voltar para a tela anterior. 12. Clicar em Release e desativar Modifiable para ver apenas as ordens liberadas.

238