Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivos
1. 2. Ter uma viso do que o software de gesto SAP R/3. Ter uma viso geral das ferramentas de desenvolvimento do SAP R/3.
1. 2. 3. 4. 5. 6. 7. 8. 9.
3. 4.
ABAP Dictionary Open SQL Report (Listas e ALV) Tabela Interna BDC CT/ BI BAPI Module Pool SAPScript Outras funcionalidades
Ter uma viso geral das principais tabelas e mdulos do R/3 Ter uma viso geral do ambiente de projetos e postura de consultor.
SD MM PP
SAP R/3
FI CO AM
Novos Termos
SAP: Empresa alem construtora do R/3 e outros coligados. R/3: Sistema de Gesto Empresarial: Integrao de Dados. Segurana da informao. Atualizao de informaes em tempo real. Unificao do banco de dados
ABAP/4: Linguagem de programao nativa do R/3 Mdulos: MM, SD, FI, CO, PP .... reas de funcionalidades do R/3
O R/3 cdigo aberto, pode ser alterado, s que a SAP marca os programas com uma chave de registro de alterao e deixa de dar garantia na funcionalidade e integridade de banco.
O objeto fica reservado em uma request, atravs de um usurio, pode ser alterado enquanto o status = modificvel, aps status = release no pode mais ser alterado
Transaes: SE01 ( Objetos, Status), SE09 (Objetos ABAP / Liberao), SE10 (Customizing / Liberao)
Restries de Mapeamento: Representam o modo como as diferentes entidades de um modelo se relacionam. Determinadas pela cardinalidade dos relacionamentos entre as entidades.
I - campos numricos sem decimais, contadores, etc. P campos numricos com decimais, quantidade e moeda. Tomar cuidado com clculos feitos entre campos com nmero de casas decimais diferentes. C campo alfa, mais utilizado para conter textos, pode conter nmeros e at efetuar clculos, mas no usual. N campo alfa, utilizado para conter nmeros sem decimais e preenchidos com zero a esquerda. D campo data, armazenado no banco de dados no formato AAAAMMDD, mostrado em tela de acordo com a customizao de cada usurio, permite-se fazer contas do tipo 20041201 + 31 = 20050101. T - campo hora, armazenado no banco de dados no formato HHMMSS, mostrado em tela de acordo com a customizao de cada usurio.
1 - Estrutura: consiste em vrios campos com tipos de dados elementares e tem tamanho fixo. (array)
3 Tabela Interna: uma estrutura que pode variar em tamanho, no que diz respeito a linhas. (matriz)
Exemplos: TYPES: number TYPE i, length TYPE p DECIMAL 2, code(3) TYPE c. TYPES: BEGIN OF <estrutura>, <campos>.. END OF <estrutura>.
Referncia: Conceito LIKE : Eu utilizo o comando LIKE na criao de um tipo de dados dentro do programa ABAP para referenciar diretamente o objeto a um tipo de dados do Dicionrio de Dados ABAP, isto muito utilizado, pois, se eu estou trabalhando com um campo que reflexo de um campo que j existe em uma tabela transparente eu no preciso descobrir o tipo e tamanho do campo para defini-lo no programa basta eu referenci-lo utilizando LIKE.
Dicionrio de Dados:
Dvidas?!?
SELECTION-SCREEN BEGIN OF BLOCK bloco3 WITH FRAME TITLE text-003. PARAMETER: p_num1 TYPE i, p_sin(1) TYPE c, p_num2 TYPE i. PARAMETER: P_MATNR LIKE MARA-MATNR. SELECTION-SCREEN end of BLOCK bloco3.
FOR: Para a opo Select-options utilizasse FOR no lugar do LIKE. TABLES: O Comando tables, disponibiliza a estrutura da tabela do banco de dados, para ser utilizada dentro do programa, obrigatria essa disponibilizao quando a tabela vai ser utilizada no FOR.
Utilizao no SELECT: para utilizao no comando select, usa-se o comparativo IN e automaticamente ele j entende o tipo de comparao a fazer, caso o campo esteja em branco ele busca todos os registros. Where MATNR IN S_MATNR.
Utilizao no SELECT: para utilizao no comando select, usa-se o comparativo IN e automaticamente ele j entende o tipo de comparao a fazer, caso o campo esteja em branco ele busca todos os registros.
CASE p_sin. WHEN '+'. v_num = p_num1 + p_num2. WHEN '-'. v_num = p_num1 + p_num2. WHEN OTHERS. ENDCASE.
Detalhes: No trmino de toda instruo ABAP, deve ter um ponto final, para evitar repeties pode-se utilizar : aps o comando e , separando as instrues, mas, deve terminar com . Quando me referencio a uma string utilizo aspas simples.
I
Alguns Exemplos EXEMPLO 1 REPORT ZEXP0001. WRITE: '111111'. WRITE: '222222', '333333'. WRITE: /'111111'. WRITE: 15 '333333'. WRITE: / TEXT-001. ULINE. ULINE 8(6). SKIP. SKIP 2. WRITE : 8 SY-LANGU. WRITE : / SY-DATUM UNDER SY-LANGU.
EXEMPLO 2 REPORT ZEXC0002 NO STANDARD PAGE HEADING. WRITE 'PAG 1'. NEW-PAGE. WRITE 'PAG 2'. TOP-OF-PAGE. WRITE : 'EXEMPLO 2 - CURSO ABAP/4', 80 'Page', SY-PAGNO. ULINE.
Editor ABAP
Dvidas?!?
Campos de sistema: Os dois principais campos de sistema envolvidos em operaes do Open SQL so o SY-SUBRC, que retorna zero caso a operao tenha sido bem-sucedida, e o SY-DBCNT, que retorna o nmero de registros afetados pelo comando.
TABLES: SFLIGHT. DATA: T_SFLIGHT LIKE SFLIGHT. SELECT CARRID CONNID FLDATE SEATSOCC FROM SFLIGHT INTO TABLE T_SFLIGHT.
IF NOT itab[] IS INITIAL. se itab no est vazia SELECT * FROM dtab FOR ALL ENTRIES in itab where campo = itab-campo ENDIF.
WHERE <condies>: A clusula WHERE especifica as condies de busca. Por exemplo, WHERE CARRID = AA faz com que apenas os registros em que o campo CARRID tenha contedo igual a AA sejam retornados
Exemplo:
INSERT <tabela1>. IF SY-SUBRC = 0. INSERT <tabela2>. IF SY-SUBRC = 0. COMMIT WORK. ELSE. ROLLBACK WORK. ENDIF. ENDIF.
Open SQL
Dvidas?!?
Exemplo:
REPORT ZSELECT00 . TABLES: SPFLI, SFLIGHT. SELECT * FROM SPFLI. WRITE: / SPFLI-CARRID, SPFLI-CONNID, SPFLI-CITYFROM, SPFLI-AIRPFROM, SPFLI-CITYTO, SPFLI-AIRPTO. ENDSELECT.
Transformar o campo num HOTSPOT para uso em listas com drilldown. Exemplo:
WRITE: / SPFLI-CARRID COLOR COL_KEY INTENSIFIED OFF HOTSPOT CENTERED.
Mudar o posicionamento dos campos com WRITE AT. A opo COLOR admite qualquer uma das cores padro do R/3, disponveis na transao LIBS: Exemplo:
WRITE: /10(5) SPFLI-CARRID COLOR COL_KEY INTENSIFIED OFF HOTSPOT.
WRITE: /20(6) SFLIGHT-FLDATE, SFLIGHT-CURRENCY, 'Sem CURRENCY:', (12) SFLIGHT-PAYMENTSUM, 'Com CURRENCY:', (12) SFLIGHT-PAYMENTSUM CURRENCY SFLIGHT-CURRENCY. Um trecho do report seria: 150420 ITL Sem CURRENCY: 683.231,44 Com CURRENCY: 68.323.144 130520 ITL Sem CURRENCY: 318.202,60 Com CURRENCY: 31.820.260
WRITE: SFLIGHT-CARRID, SFLIGHT-CONNID, SFLIGHT-FLDATE, SFLIGHTSEATSOCC. HIDE: SFLIGHT-CARRID, SFLIGHT-CONNID, SFLIGHT-FLDATE. AT LINE-SELECTION. SELECT * FROM SBOOK WHERE CARRID = SFLIGHT-CARRID AND CONNID = SFLIGHT-CONNID AND FLDATE = SFLIGHT-FLDATE.
Report/Listas
Dvidas?!?
Modularizao
Todo programa ABAP estruturado e desenvolvido para ser processado em bloco Blocos de processamentos que so chamados pelo sistema Blocos de Eventos Mdulos de Dilogo
Blocos de processamentos que so chamados pelo programa. Sub-rotinas Mdulos de funo Mtodos
Modularizao
INCLUDES Programa do tipo include, pode se modularizar um programa utilizando cdigos fontes no executveis chamados includes e chama-se esses cdigos de dentro do programa principal. comumente usado para declaraes de variveis em programas muito extensos
Sub-rotina - FORM Para estruturar nossos programas, utilizamos os blocos de processamentos controlados pelo nosso pr[oprio programa os FORMs, delimitamos as rotinas de processamentos em pequenos grupos, o que facilita a manuteno de nosso cdigo. Podemos passar e receber valores para essas rotinas.
START... PERFORM TESTE123. END.... FORM TESTE123. <cdigo fonte com a rotina desejada> ENDFORM
Modularizao
Mdulos de Funes So rotinas de processamento externas e independentes de programa, ficam amarradas a um grupo de funes e tem o seu cdigo desenvolvidos em includes,podem ser chamadas por <n> programas diferentes, tambm trabalham com passagem de parmetros e de tabelas, e com excees (erros no processamento). Praticamente pouco se cria em matria de funes, o que mais fazemos utilizar as funes prontas disponibilizadas pela SAP
Modularizao
Blocos de Eventos. Os blocos de eventos so controlados pelo sistema e s valem para programas do tipo executvel. Abaixo vemos os principais: REPORT... INICIALIZATION. Primeiro passo a ser executado no programa, antes da tela de seleo e antes da lgica de processamento. AT SELECTION-SCREEN. Executa logo aps sair da tela de seleo, utilizado para fazer tratamentos de obrigatoriedade de campos e similares. TOP-OF-PAGE. Executa quando encontrado o primeiro comando WRITE dentro da lgica principal, utilizado para colocar cabealho, textos que devem sair em todas as pginas. END-OF-PAGE. Informaes que apaream no rodap do relatrio
OBS: essas informaes s aparecero se o tamanho da pgina estiver definido no comando REPORT e somente qdo houver quebra de pgina. Caso contrrio, no aparecer
Modularizao
START-OF-SELECTION. Entre o START-OF-SELECTION e o END-OF-SELECTION, se encontra a lgica principal do programa, quando programamos de uma forma estruturada colocamos aqui apenas chamadas de sub-rotinas, para evitar poluio de cdigo.
Ex: START-OF-SELECTION. PERFORM seleciona_dados. PERFORM tratamento_interno. PERFORM impressao_dados. PERFORM gera_arquivos. END-OF-SELECTION.
AT LINE-SELECTION. Somente executado se o usurio der um duplo click em uma linha mostrada no relatrio, ou marcar a linha e pedir para ver detalhe, utilizada para listas interativas, drill-down. AT USER-COMMAND. Somente executado se o usurio der um click em algum objeto do menu, utilizado para listas com botes de interao.
Modularizao
Dvidas?!?
OBS: Os comandos DELETE e MODIFY quando usados de forma incorreta fora do loop at e sem a indicao do INDEX, ocasiona Short Dump.
Tabela Interna
Dvidas?!?