Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
Programa de Treinamento
BSICO 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
INTERMEDIRIO 1 SAP Script Query ALV Vises / Tabelas JOB SAP Notes
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.
Introduo ao R/3
Academia ABAP - Suporte a Clientes
SAP Logon
Antes 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.
Ambiente
Sigla do Client
Clique em Modificar
Executando o Logon
Com 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
Barra de Menus
A 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.
11
Campo de comando
O 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
Na ajuda para o campo de comando, temos alguns exemplos de comandos que agregados s transaes convencionais, combinam aes dentro do R/3.
13
Barra de Botes
Na barra de botes encontramos funes semelhantes funes de um browser de internet, tais como VOLTAR, CANCELAR, SAIR, IMPRIMIR, LOCALIZAR, etc.
14
Ttulo
No campo de ttulos encontramos o ttulo da ferramenta ou ao que est sendo executada.
15
16
Menu favoritos
No menu favoritos, podemos definir atalhos para as principais ferramentas utilizadas por um determinado usurio. Geralmente esta rea definida pelo perfil atribudo ao usurio.
17
Barra de mensagens
A 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 Aplicao
No canto inferior direito, podemos verificar tambm uma srie de informaes referentes ao Sistema, como identificar o Servidor de aplicao.
18
Para configurar qual informao deve ser exibida, basta clicar no boto destacado a seguir e selecionar a informao.
19
Programas
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
21
Ambiente de trabalho
O 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
23
24
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
Clicar em criar
26
Atribuir uma
classe de
desenvolvimento e gravar.
Criar uma
request p/
o programa.
27
28
29
- Internal Tables
DATA: <nome_itab> TYPE <nome_type> OCCURS <n> WITH HEADER LINE. DATA: BEGIN OF <nome_itab>, <nome_campo> LIKE <tabela-campo>, <nome_campo> TYPE <tipo-campo>, END OF <nome_itab>.
- Globale variables DATA: <var> TYPE <tipo_var>, <var1> LIKE <tabela-campo>. - Tela de seleo SELECTION-SCREEN BEGIN OF BLOCK <xxx> WITH FRAME TITLE TEXT-<xxx>. SELECT-OPTIONS: <nome_so> FOR <tabela-campo> OBLIGATORY DEFAULT <xxx>. PARAMETER: <nome_par> LIKE <tabela-campo>, <nome_rb> RADIOBITTON GROUP <G1> DEFAULT X, <nome_ckb> AS CHECKBOX DEFAULT X. SELECTION-SCREEN END OF BLOCK <xxx>.
30
- 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
34
Standard Page Heading --> Desabilita cabealho padro. Append --> Grava efetivamente na tabela interna os dados que esto em seu cabealho. Collect <tab> --> 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
Form. Endform. --> Rotina que esta fora do fluxo normal do programa. Search <string2> FOR <string1>. --> Procura uma seqncia de string em uma outra. SHIFT <STRING> LEFT DELETING LEADING SPACE. --> Elimina os espaos em branco no incio da string.
SHIFT <STRING1> RIGHT DELETING TRAILING <STRING2>. --> Elimina a string2 no final da string1.
SPLIT <STRING1> AT <SEP> INTO <STRING2> <STRING3> --> Separar String de uma varivel por um determinado separador. Translate <VAR> using '.,-->Troca de caracteres.
On Change of <campo>. Endon. --> A cada troca de campo fazer tais aes.
36
Endselect
Quando no existe restrio alguma, ocorrendo uma varredura seqencial dos registros da tabela. Afeta o runtime quando se utiliza tabelas grandes.
b) Select * from<tabela>where<campo>eq<contedo>. 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 <table> where <field table> between <field1> and <field2>. Ex. Field1 = 100 e field2 = 500. Pega inclusive o 100 e o 500. Trabalha com o range. d) Select * from <table> where <table field> like _R%.
Classifica a tabela interna numa rea auxiliar sem afetar a tabela original. Evitar o uso de sorts dentro de um select.
38
h) Select * from < table> by passing buffer. Para ler diretamente de uma tabela original i) Select * from <table> appending table < internal table>. L os registros e os inclui (sem sobrepor) em um internal table. j) Select... from <table> 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 <itab>. 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
avg (campo)
count (*) from < table> into (...,,). Where Avg e sum : somente para campos alfanumricos. Sem usar o endselect.
40
q) Select * from <tabela> into <workarea> . Ex. Data: begin of wa, Line (100), End of wa. Parameters: tabname(10) default SPFLI. Especificando o nome da tabela em tempo dinamicamente no select statement sempre consome mais tempo no processamento.
r) Select * from <table> for all entries in < internal table> where
campo1 = < 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
s) Select <campo> Min (campo1) Max (campo1) into (campo, min, max)
42
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.
43
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
* 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
*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
* 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
* 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
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
* 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
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
"Constante X
47
* Variveis
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
DATA: v_cfop like j_1bagt-cfop, v_nome(15) type c, v_contador type n. * Na tela de seleo
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------* *-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
* 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
AT LINE-SELECTION.
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
AT USER-COMMAND.
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
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.
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------* *-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
*Inserir aqui as informaes que se deseja que apaream no rodap do relatrio ULINE. WRITE:/ As informaes continuam na prxima pgina.
49
* 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 informados
50
* 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
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
53
ENDCASE.
ENDLOOP. 54
*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
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
* Sesso de Forms
*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------* *-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*
FORM ACESSANDO_CFOP.
ENDFORM.
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
AT LAST.
WRITE: / Fim dos registros da tabela i_t001w. ENDAT.
ENDFORM.
58
Exerccios
Descrio 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
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
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
Debug
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
Ativando o Debug
Existem 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
65
66
Comandos no Debug
J dentro da ferramenta debug temos as seguintes opes de processamento: <F5> <F6> <F7> <F8> 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
Pressione F8
68
69
Watchpoint
O Watchpoint um ponto de parada definido por uma determinada condio no programa.
Defina aqui as condies de para desejadas. Podemos utilizar uma condio de valor, ou de comparao com outra varivel.
70
71
72
73
74
75
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
77
Numero = 20
78
Preencher contedo campo com outro valor Clique no boto lpis para alterar resultado
79
Numero = 0
80
81
82
84
85
86
Tipos de Relacionamento
Um-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
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
89
90
91
92
Ajuda p/ pesquisa: Definio dos objetos de match-code que sero utilizados nas telas do SAP
93
94
95
Nome do campo
Descrio do campo
96
97
Clique em Sim
98
99
100
Criando um Domnio
101
Clicar em Sim
102
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
3 Caso este campo no seja preenchido automaticamente, defina o nmero de posies do Campo
103
Pode-se inserir o nome da tabela onde podem estar guardados os valores fixos do campo
104
105
3 - No existindo inconsistncias clicar neste boto para ativar o Elemento de Dados criado
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
4 - Salvar
3 - Verificar as inconsistncias
108
1 - Verificar as inconsistncias
109
Exerccios
1 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
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
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
113
114
115
116
do
Nome do campo
117
1 - Verificar se h inconsistncias
118
Exerccio
4 Crie uma estrutura de dados (Work Area) baseada na tabela de clientes criada anteriormente.
119
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.
120
Criando de Vises
Entre na transao SE11
1 - Selecione a opo Viso
121
122
2 - Insira o nome das tabelas escolhidas 3 - Insira as condies de seleo para visualizar os dados
123
125
126
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 Funo
Academia ABAP Suporte a Clientes
- Mdulos de funo so seqncia de dados externas - voc no os escreve em um programa que os chamam.
129
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
131
Nome e descrio
Adicione 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
Salvar (Enter)
Criando a request
Adicionar uma descrio para a request
Clicar em Salvar
134
135
Clique em Criar
Clique em Gravar
136
Aba Caractersticas
137
- 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
- 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
140
141
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.
142
Verificar
Ativar
Avanar
143
144
145
Ser apresentada a tela onde mostrar os parmetros que esto sendo passados para o cdigo da funo, no exemplo foram inseridos valores Default
146
Valor passado para o parmetro de exportao depois de passar pelos tratamentos da funo
147
- o sistema gera uma declarao CALL FUNCTION <nome de mdulo de funo>, 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
149
Avanar
150
A funo criada automaticamente. Devemos incluir os parmetros e adicionar as variveis que passaro os valores para a funo.
151
152
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 Standard
MONTH_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
156
Informamos o idioma (PT = portugus) e a funo nos retornar a descrio dos meses para o idioma informado
157
158
Pop-up
Funes 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.
159
Exerccios
1 Crie uma funo que ir listar os materiais do tipo FERT. Os dados para seleo sero os seguintes: MARA-MATNR N do material
160
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:
- 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
Interfaces
Academia ABAP Suporte a Clientes
Introduo
O 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
Funo Download
A 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
Funo Upload
A 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
Dataset
O 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
Exerccios
1. 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
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
170
171
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
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.
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
Call Transaction
O 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:
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
Batch Input
Outra 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
177
Enhancements
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
Tipos de Enhancements
Table enhancements Field-exit User-exit Menu-exit Screen-Exit BADI
180
Field-Exit
So 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
Field-Exit (requisitos )
Verificar se o parmetro abap/fieldexit esta como Yes no perfil da instancia SAP (transao RZ10)
182
183
184
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
186
187
Para ativar o grupo criado selecione-o via transao SE80 Clique com boto direito no mesmo, aparecera um menu, clicar em ativar
188
Criando Field-Exit
Para 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
Na transao XK02
Informar fornecedor, clicar controle, <pressionar enter>
190
191
192
193
Para verificar se o campo da tela foi criado com referencia ao dictionary Dar duplo clique no numero da tela
194
Clicar em Layout
195
196
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.
198
199
200
Clicar em Criar
201
202
Codigo exemplo:
Para validao de CGC Obs: No esquecer de ativar objeto
203
204
205
206
Exerccios Field-Exit
Ex1: 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
User-Exit
So 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
208
Criando function-exits
Na transao SMOD ( busca ampliao apropriada para o problema )
F4
209
210
ampliao encolhida
211
212
Objetos da ampliao
213
214
215
216
217
218
duplo clique
219
220
Cdigo de exemplo que verifica se j existe algum fornecedor ativo com o mesmo CNPJ cadastrado.
Ativar e voltar
221
voltar
222
Ativar
223
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
Exerccio User-Exit
Ex1: 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
Enhancements
Academia ABAP - Suporte a Clientes
227
AF1K900109
Instncia Objeto SAP (Interno SAP)
228
Transportvel
Local
229
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
Tarefa e Objetos
Task
Objetos Agrupados
231
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
Transaes teis
Transao 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
Logs de Transporte
Podemos 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
235
Localizando Requests
Para localizar requests no sistema, bata acessar pelo menu Ordem/tarefa Procurar Ordens. Aqui podemos efetuar pesquisas das request do sistema.
236
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
Exerccios
Manuteno 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