Academia Abap

December 8, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Academia Abap...

Description

 

 Academia – SAP/ABAP R3

Academia ABAP

 

Aluno: ________________________ ____________________________________ ________________________ ______________ __ Instrutor: Ronaldo Nogueira - [email protected] r [email protected] .br

© by BBKO Consulting

1

 

 Academia – SAP/ABAP R3

Índice CAPÍTULO 1 – MYSAP E ERP RP ________________________________ __________________________________________________ __________________ 3  CAPÍTULO 2 – CONCEITO DE BANCO DE DADOS RELACIONAL _______________ 9  CAPÍTULO 3 – DICIONÁRIO DE DADOS ________________________________ _____________________________________ _____ 10  CAPÍTULO 4 – ABAP OPEN SQL ____________________________________________ ________________________________ ____________ 36  CAPÍTULO 5 – TELA DE SELEÇÃO SELEÇÃO ________________________________ __________________________________________ __________ 47  CAPÍTULO 6 – LISTAS _____________________________________________________ 54  CAPÍTULO 7 – L LISTAS ISTAS SECUNDÁRIAS ______________________________________ ________________________________ ______ 64  CAPÍTULO 8 – MODULARIZ MODULARIZAÇÃO AÇÃO ________________________________ __________________________________________ __________ 73  CAPÍTULO 9 – DATA TRANSFER________________________________ TRANSFER____________________________________________ ____________ 80  CAPÍTULO 10 – PROGRAMAÇÃO ON-LINE ON-LINE __________________________________ 95  APÊNDICE A – PROGRAMAÇÃO ON-LINE________________________________ __________________________________ __ 128  OS COMPONENTES PRINCIPAIS DE UM DIALOG PROGRAM (O N-LINE) __________________ 128 SCREEN PAINTER - ABAP/4 _________________________________________________ 128 COMUNICAÇÃO: TELA ABAP/4 MODULE POOL  ________________________________ 128 DEFININDO O LAYOUT (GRAPHICAL SCREEN PAINTER ) _____________________________ 128 VISUALIZAÇÕES DE LISTAS DE CAMPO (FIELD LIST VIEWS) _________________________ 130 DEFININDO O CONTROLE DO FLUXO ________________________________ ____________________________________________ ____________ 130 PROCESSANDO O MODULE POOL ________________________________ ____________________________________________ ____________ 130 DEFININDO CAMPOS NO MODULE  POOL ______________________________________ 131 DEFININDO CHAMADAS (CÓDIGOS DE TRANSAÇÃO) _______________________________ 131 CHECAGEM AUTOMÁTICA DE CAMPO DE E NTRADA  ________________________________ 131 CHECANDO CAMPO DE ENTRADA NO MODULE POOL COM DIÁLOGO DE ERRO __________ 132 CHECANDO GRUPO DE CAMPOS _______________________________________________ ________________________________ _______________ 132 LENDO CÓDIGOS DE FUNÇÃO EM PROGRAMAS  ___________________________________ 133 SEQÜÊNCIA DINÂMICA DE TELA: OVERVIEW ______________________________________ _______________________________ _____ 133 A RÓXIMA TELA A DINAMICAMENTE   _________________________________ MJUSTANDO   _________________________________________________ ENU PAINTERP - OVERVIEW DEFININDO A I NTERFACE I ________________________________ ___________________________________________________ ___________________ DEFININDO A I NTERFACE II __________________________________________________ DEFINIÇÃO AUTOMÁTICA DE ÍCONES PARA TECLAS DE FUNÇÃO _______________________ _____________________ DEFININDO MENUS DE ÁREA ________________________________ _________________________________________________ _________________

© by BBKO Consulting

133 133 133 134 134 134

2

 

 Academia – SAP/ABAP R3  

Capítulo 1 – my m ySAP ERP

• • • • •

O que é o mySAP ERP ? Funções do mySAP ERP . Arqu Ar quititet etu ura trê rêss ca cama mada das. s. Lan and dscape pe.. Sisste Si tema ma de Tr Tran ansspo port rte. e.

2

 

O que é o mySAP ERP ?

• O my mySA SAP P ER ERP P é um conjun conjunto to integr integrado ado de aplicativos para tratar o processamento de dados de grandes gran des corporações. • Foi desenvolvido na Alemanha pela empresa SAP (Sy (Syst stems ems Appli pplicat cation ionss and Pro Produc ducts ts for dat dataa pro proces cessin singgAplicativos e produtos de sistemas para processamento de dados). 3

 

© by BBKO Consulting

3

 

 Academia – SAP/ABAP R3

Funções Fun ções mySAP mySAP Busin Business ess Suite Suite

BASIS 4

 

Oferece uma solução integrada de aplicativos empresariais. Todos os módulos de aplicativos do mySAP ERP 2005 (ECC 6.0 Atual) são escritos em ABAP (Advanced Business Application Programing), que é interpretado pelo Application Server que fica localizado na camada SAP NetWeaver, que por sua vez, são executadas no sistema Operacional. (SAP NetWeaver – é como um sistema operacional para o mySAP ERP 2005 (ECC 6.0). Ele fica entre o código ABAP e o sistema operacional.).

Módulos Localizados no MySAP ERP MM (Materials Management – Gerenciamento de Materiais) SD (Sales and Distribution – Vendas e Distribuição) FI (Financial Accounting – Contabilidade Financeira) PP (Production Planning – Planejamento da Produção) HR (Human Resources – Recursos Humanos) WF (Workflow – Fluxo de Trabalho) PS (Project System – Sistema de Projeto) e outros.

© by BBKO Consulting

4

 

 Academia – SAP/ABAP R3  

Papéis e Responsabilidades

Basiss – Responsável pela instalação do ERP e configurações do mesmo Basi (ex. impressoras, links, administração de usuários e etc.) ABAP – Programador  Funcionais – Responsável pela parametrização e adequação dos processos de um determinado módulo.

5

© by BBKO Consulting

5

 

 Academia – SAP/ABAP R3

 Arquitetura 3 camadas camadas Cliente/Servidor  Cliente/Servidor 

5

 

O Sistema R/3 é baseado na arquitetura cliente/servidor com 3 camadas: Servidor de dados, servidor de aplicações e servidor de apresentação.  A arquitetura de 3 (três) camadas faz o sistema si stema facilmente escalável. Para adicionar usuários, você precisa instalar mais servidores de apresentação. Você pode também aumentar a eficiência do todo o sistema adicionando mais servidores de aplicação associados aos seus work processes. Servidor de aplicativos consiste em um dispatcher e múltiplos processos de trabalho (work process). Todas as solicitações provenientes de servidores de apresentação são dirigidas primeiro ao dispatcher. O dispatcher grava-as primeiro na camada do dispatcher. O dispatcher extrai as solicitações da camada utilizando o algoritmo primeiro a entrar, primeiro a sair (FIFO). Cada solicitação é então alocada para o primeiro work process disponível. Um work process trata uma solicitação por vez. Tipo de processo D (Dialog) V (Update) B (Background) S (Spool) E (Enqueue) M (Message) G (Gateway)

© by BBKO Consulting

Tipo de solicitação de trabalho Solicitações de diálogo. Solicitações para atualizar dados no banco de dados. Trabalhos de segundo plano. Imprime solicitações do spool. Solicitações de bloqueio lógico. Roteia as msgs. entre os serv. de aplicativo dentro do sistema R/3. Afunila as mensagens dentro e fora do sistema R/3.

6

 

 Academia – SAP/ABAP R3

Syste Sys tem m Lan Landsc dscape ape Sistema de Desenvolvimento

Sistema de QA

PROD

QTST

DEV

Client Copy

Client Copy

MAST

Sistema de Produção

Client Transport

Client Transport

MAST Client Copy

Client Copy

SBOX

Client-indep. Customizing Repository Objects

TRAI

Workbench Request

Client-indep. Customizing Repository Objects

Workbench Request

Client-indep. Customizing Repository Objects 6

© by BBKO Consulting

 

7

 

 Academia – SAP/ABAP R3

Workbench Workbe nch Org Organ aniz izer er e o Sistema Sistema de de Transporte

7

 

O Workbench Organizer permite ao usuário desenvolver o software de maneira organizada. O Sistema de transporte prove a execução do transporte. Os objetos de repositório são conectados para o sistema de transporte pela classe de desenvolvimento e associações com change requests. Depois que as requests foram liberadas no sistema de desenvolvimento, ela é então transportada para a rota pré determinada: sistema de qualidade ou para o sistema de produção.

© by BBKO Consulting

8

 

 Academia – SAP/ABAP R3

Capítulo 2 – Conceito Co nceito de Banco de Dados Relacional

Conceito de Banc Ba nco o de Dad Dados os Relacional

 

8

Conceito de Banco de Dados • • • • •

Campo Registro Coluna Tabela Unicida Un icidade de de de Regist Registro ro – Chav Chave e Primar Primaria ia (PK) (PK) e Cha Chave ve  Alternativa (AK) • Re Relac lacio iona namen mento to – Cha Chave ve Estr Estran ange geira ira (FK (FK)) • Índice

9

 

© by BBKO Consulting

9

 

 Academia – SAP/ABAP R3

Capítulo 3 – Dicionário de Dados

Dici Di cion onár ário io de Dado Dadoss

8

© by BBKO Consulting

 

10

 

 Academia – SAP/ABAP R3

Dicionário de Dados • Domínio • Ele lem mento de Dados • Campos • Regis isttros • Tabelas  – Transparentes  – Interna

9

 

O Dicionário Abap permite um gerenciamento central de todas as definições de dados usada no sistema R/3 No Dicionário você pode criar tipos definidos pelo usuário (data elements, estruturas e table types). Objetos de banco de dados, tais como tabelas e views de banco de dados, também podem ser definidas no Dicionário  ABAP e criada com estas definições no banco de dados. O Dicionário ABAP também provê um número de serviço que apóiam o desenvolvimento de programas. exemplo, lock dede tabelas, search help (F4) e ajuda de campo (F1 help) Por usados nos campos uma tela.

© by BBKO Consulting

11

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Ti Tipo poss no Dicionário ABAP

10

 

11

 

Dicionário de Dados - Tip Tipo o de Dad Dados os mais utilizados Tipo CHAR DEC DATS TIMS

Descrição String de caractere (máximo de 255 caracteres) Valores decimais Campo Date Campo Time

INT1, INT2, INT4 Valores inteir inteiros os NUMC Campo de caractere que pode conter apenas numéricos

© by BBKO Consulting

12

 

 Academia – SAP/ABAP R3

Dicionário de Dados Tipos de Dados ABAP - 

Tipos de Dados

T1 TYPE I.

DATA D1 TYPE T1

DATA D3 TYPE T1 VALUE 123, 123,

T2(5) T2(5) TYPE P.

DATA D5 TYPE T2 VALUE ‘1.23’

DATA D6 TYPE T2 T2..

Grupo de Tipos 12

 

Data types:  Apenas descrição do ‘type’ Não ocupa memória Caracteriza os atributos técnicos de todos os data objects que possuem um type especificado Data Objects: É uma concreta representação do type Cada data object tem um type específico e ocupa espaço em memória

© by BBKO Consulting

13

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Obj Objeto etoss Básico Básico no Dicionário Tabela 2

Tabela 1 Campo

.... .... Valo Valor_ r_co comp mpra ra ... ... Material

Uma tabela é composta de campos

Elemento de Dados

MATNR

Domínio MATNR

.. .... ..

Campo Va Valo lor_ r_ve vend nda a ... Material

Elemento de Dados Para criar um Campo, você precisa de um Elemento de Dados

Uma definição de elemento de dados exige um domínio

MATNR

Domínio MATNR

13

 

Os objetos básicos do Dicionário ABAP são: tabelas, data elements e domínios Domínio descreve os atributos técnicos dos campos das tabelas (ex: tipo, tamanho do campo), enquanto os data elements contém a definição semântica (descrição curta)

© by BBKO Consulting

14

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Dom Domíni ínio o Transação SE11

14

 

Dica:  ao criar a tabela e seus data elements, associar a mesma Change Request, para não dar problema durante o transporte de Desenvolvimento  para QA 

© by BBKO Consulting

15

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Dom Domíni ínio o Transação SE11

15

 

16

 

Dicionário de Dados - Cri Criar ar Elemen Elemento to de Dados Transação SE11

© by BBKO Consulting

16

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Elemen Elemento to de Dados Transação SE11

17

 

18

 

Dicionário de Dados - Cri Criar ar Elemen Elemento to de Dados Transação SE11

© by BBKO Consulting

17

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Elemen Elemento to de Dados Transação SE11

19

 

23

 

Dicionário de Dados - Tipos de Tabe Tabelas las no R/3 • Estrutu turras - Uma estrutura (categoria estruturada) estruturada) é composta por componentes (campos). Os componentes são tipificados. - As estruturas são em particular utilizadas para definir os dados dado s na interface de pools pools de módul módulos os e telas, telas, assim como para atribuir o tipo aos parâmetros de módulos de função.

• Tab abelas elas Tran ransp spar arent entes es - Uma tabela transparente transparente tem relacionamento um-para-um com uma tabela no banco de dados. - Nós criamos somente tabelas transparentes

© by BBKO Consulting

18

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Tipos de Tabe Tabelas las no R/3 • Tab abel elas as de Poo ooll - Uma tabela de pool tem um relacionamento de muitos-para-um com uma tabela no banco de dados. Para uma tabela no banco de dados, há muitas tabelas tabelas no Dicionário. Dicionário.

• Tab abela elas s de Cl Clu ust ster  er  - Uma tabela de Cluster tem um relacionamento de muitos-paraum com uma tabela no no banco de dados. Para uma tabela no banco de dados, há muitas tabelas no Dicionário. Dicionário. Muitas tabelas de cluster de cluster são armazenadas em uma única tabela no banco de dados chamada de cluster de tabelas. Os clusters de tabela armazenam dados de várias tabelas baseadas nos campos de chave primária que elas têm em comum. 24

 

Dicionário de Dados - Criar Tabela Transparente Transação SE11

21

© by BBKO Consulting

3

19

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Criar Tabela Transparente Pasta “Características”

22

 

27

 

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Pasta “Entrega e Atualização”

© by BBKO Consulting

20

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Pasta “Campos”

24

 

O primeiro campo de uma tabela sempre deve ser o mandante; O campo Num_documento, utiliza o data element ‘ZNUM_DOCUMENTO’ O Campo Usuario, utiliza o data element ‘UNAME’ O Campo Data, utiliza o data element ‘DATUM’ O Campo Material, utiliza o data element ‘MATNR’ O Campo Valor, utiliza o data element ‘BWERT’ O Campo Quantidade, utiliza u tiliza o data element ‘BSTMG’ O Campo Material possui check table, ou seja durante qualquer manutenção da tabela Y, é checado existe na tabela MestreZdeouMaterial (MARA)se o material gravado nesta tabela,

© by BBKO Consulting

21

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Pasta “Entrs. Possíveis/Verificações”

25

 

26

 

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Pasta “Campos Moeda/Quant.”

Para campos do tipo moeda (valores) e quantidade, é necessário definir tabela e campo de referência. © by BBKO Consulting

22

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Chec Ch eckk Tab Table le no Campo Campo Mater Materia iall

27

 

28

 

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Chec Ch eckk Tab Table le no Campo Campo Mater Materia iall

© by BBKO Consulting

23

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Chec Ch eckk Tab Table le no Campo Campo Mater Materia iall

29

-

 

Atribuir uma mensagem de erro para para este check table. Neste caso ffoi oi criada uma classe de mensagem mensagem ZCURSO_00, com número de mensagem 001, através da Transação SE91

© by BBKO Consulting

24

 

 Academia – SAP/ABAP R3  

Dicionário Dicioná rio de Dados Dados - Cha Chaves ves Primárias e Estrangeira Chave Ch ave Prim Primária ária

Chave Cha ve Sec Secundá undária ria / Alter lternati nativa va

Chave Cha ve Est Estrangé rangéira ira

34

 

31

 

Dicionário Dicionár io de Dados - Chav Chaves es – Primárias e Estrangeira Tabela ZFUNC Mand

CodFunc Cod Cod Depto Depto Nome

Salario

Area

Campos Chaves Chave Check Che ck Tabl Tablee Chave Primária Estrangeira

Check Che ck Table ZDEPTO Mand

CodDepto

Fone

Fax

Campos Chaves Chave Primária

© by BBKO Consulting

25

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Configurações Técnicas

32

© by BBKO Consulting

 

26

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente Opções Técnicas

33

 

Opções Técnicas: Data Class – Define a área física do banco de dados, na qual a tabela deve ser armazenada (no Oracle é o tablespace). Size category – Define o tamanho do armazenamento esperado para esta tabela no banco de dados. Buffering – define se e como a tabela deve ser ‘bufferizada’. Logging – Modificações na entrada da tabela são armazenadas, mas também tem que setar o parâmetro ‘rec/client’ (pode provocar ‘gargalos’ no sistema (devido a esses adicionais acessos).

© by BBKO Consulting

27

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Tab Tabela ela Transparente  Ativar Tabela

34

 

 Ao selecionar o ícone ativar no ABAP Dicitionary, a tabela transparente é automaticamente criada no banco de dados. A tabela no banco de dados possui o mesmo nome da tabela no ABAP Dictionary. O campo tem também os mesmos nomes e os tipos do campo no ABAP Dicitionary são convertidos para os tipos de dados correspondentes no sistema do banco de dados.

© by BBKO Consulting

28

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Estru Estrutu tura ra

35

 

36

 

Dicionário de Dados - Cri Criar ar Estru Estrutu tura ra

© by BBKO Consulting

29

 

 Academia – SAP/ABAP R3

Dicionário de Dados - Cri Criar ar Estru Estrutu tura ra Pasta “Componentes”

37

 

Na criação da estrutura não precisa definir o mandante, pois armazena os dados somente em tempo de execução.

Dicionário de Dados - Cri Criar ar Estru Estrutu tura ra Pasta “Campos moeda/quantidade”

38

© by BBKO Consulting

 

30

 

 Academia – SAP/ABAP R3

Tabela Interna

43

 

Tabela Tab ela Interna Interna - Con Conceito ceito

Áreas de memória chamadas “Tabelas Internas”, são utilizada para realizar alguns processamentos p rocessamentos no ABAP. Nessas áreas de memória são alocados dados que existem (ou existirão) apenas em tempo de execução ex ecução do programa, e que podem variar de uma execução para outra ou ainda durante a mesma execução.

44

© by BBKO Consulting

 

31

 

 Academia – SAP/ABAP R3

Tabela Tab ela Interna Interna - Con Conceito ceito No dia-a-dia do programador p rogramador as tabelas internas têm um papel fundamental, pois é através delas que que se manipula a maior parte dos dados de um programa. Além disso, são de fácil manuseio, sendo sua declaração (de tipos, estrutur es trutura) a) e atribuição de conteúdo conteúdo (valores) muito muito simples. É possível, por exemplo, declarar uma tabela interna com a mesma estrutura (tipos, campos, etc.) de uma tabela do banco de dados (físico – tabelas transparentes), e, através de um comando “SELECT”, copiar todo o conteúdo da tabela do banco de dados para a tabela interna.

45

Dicas - Tabe Tabela la Intern Internaa - Conc Conceito eito As tabelas internas possuem uma área de trabalho chamada Header” (cabeçalho), que permite o acesso e uso mais flexível dos registros da mesma. O comando “LOOP”, por exemplo, ao “varrer/ler” “varrer/ler” uma tabela interna interna registro a registro, envia o registro corrente corrente para o “Header”, permitindo que o programador manipule esse registro de diversas maneiras. Exemplo: Imprimí-los Imprimí-los na tela(comando tela(comando WRITE), WRITE), utilizando utilizando seus campos para executar cálculos, comparar valores, etc. 46

© by BBKO Consulting

32

 

 Academia – SAP/ABAP R3

Dicas - Fiel Field d Stri String ng x Tabela Inter Interna na

Fiel Fi eld d Str String ing Cod Cliente Nome

Cidade

Ru a Rua

Bairro

Cidade

Rua

Bairro

Tabela Interna Cod Cliente Nome

47

 

© by BBKO Consulting

33

 

 Academia – SAP/ABAP R3

Dicas - Field Field Stri String ng e Tabela Inter Interna na Declarando Tabelas Internas * Declaração de Tipos TY PE PES : be kunnr gin gi of type_clientes, ku nnr TYPE kna1 na1-ku -kunnr nnr, , name1 TYPE kna1-name1 , addrnr addrn r TYPE kna1 kna1-addr -addrnr, nr, end o f type_clientes.

* Declaração de Tabelas I nternas Data : tg_clientes TYPE TABLE OF type_clientes.

49

 

Dicas - Tabela Interna

Operações em tabelas internas: Exemplos: Utilizando a tabela interna T_CLIENTES:

1.READ TABLE TG_CLIENTES INTO ST_CLIENTES INDEX 2. READ TABL T ABLE E TG_CLIENTES INTO ST_CLIENTES WITH KEY ku kunn nnrr = v_codcli.

2.LOOP 2. LOOP at tg tg_cl _client ientes es INTO st_c st_client lientes es . ... ENDLOOP ENDLOOP.. 3.ST_CLIENTES-name1 = ‘Phonecell telefoni 3.ST_CLIENTES-name1 telefonia a celular’. MODIFY tg_clientes FROM st_clientes WHERE kunnr = vg_co vg_codcli dcliente. ente.

4.DELETE 4. DELETE tg_clientes WHERE kunnr = vg_codclient vg_codcliente. e.

5.APPEND 5. APPEND st cl cliien ente tes s TO t

© by BBKO Consulting

clientes.

50

 

34

 

 Academia – SAP/ABAP R3

Dicas - Tabela Interna Operações em tabelas internas: Exemplos: Utilizando a tabela interna TG_CLIENTES:

6. COLLECT st_clientes INTO tg_clientes. 7. SORT tg_clientes BY kunnr name name1 1 . ( Orden Ordena a a tabel tabela a inter interna) na) 8. CLEAR st_clientes. (Limpa todo o conteúdo da estrutura) 9. REFRESH tg_clientes.(Deleta todos os registros registros da tabela interna, porem o espaço de memória ainda fica ocupada) 10.FREE 10. FREE tg_clientes. Deleta todos os registros da tabela tabela interna, limpa a memória) 11. DESCRIBE TABLE tg_clientes LINES vg_linhas (carrega o número número de registros da tabela interna na variáve l vg_linhas)

51

 

Dicas - Tabela Inter Interna na – APPEN PPEND D X COLLECT Inclui a estrutura ou como uma nova entrada na tabela interna ou adiciona numa entrada já existente desde que tenha a mesma estrutura. Soma os campos do tipo P,I e F)

-Grava o conteúdo da estrutura no fim da tabela interna

 APPEND

COLLECT

Cod Func

Cod Depto Depto

Salário

Cod Func

Cod Depto Depto

Salário

9944

HR

1000,00

9944

HR

1000,00

9944

HR

1000,00

9944

HR

1000,00

9933

INFO

500,00

9933

INFO

500,00

0100

FINAN

2000,00

0100

FINAN

2000,00

2000,00 52

© by BBKO Consulting

35

 

 Academia – SAP/ABAP R3

Capítulo 4 – ABAP Open SQL

Open SQL

47

 

 ABAP Open SQL - Acessando a

base de dados • SELECT • INSERT • DELETE • UPDATE • MODIFY

48

© by BBKO Consulting

 

36

 

 Academia – SAP/ABAP R3

 ABAP Open SQL – Selec Selectt – Sin Sintax tax

SELECT matnr  INTO TABLE tg_mara FROM mara WHERE WHER E matnr = p_matnr. p_matnr.

Campos Selecionado Selecionados s Destino dos dados (Tabela Interna) Origem dos dados (Tabela Transparente) Condição para a seleção dos dados

TYPES: BEGIN OF type_mara, matnr TY TYPE PE mara mara-matnr, -matnr, END OF type_mara. TYPES: BEGIN OF type_mara, matnr mat nr TYPE mara mara-ma -matnr tnr,, flag(1) TYPE c, END OF type_mara.

Ex. Declar Declarações ações para tabela interna

DATA tg_mara TYPE TYPE TABLE OF type_mara 55

 

© by BBKO Consulting

37

 

 Academia – SAP/ABAP R3

 ABAP Open SQL - Acesso ao Banco de Dados

Programa ABAP Dicionário ABAP

Open SQL

Banco de Dados

Relatório

49

 

- Para ler os dados das tabelas do banco de dados, você precisa utilizar o comando SELECT - O ABAP contém comandos similares ao do SQL padrão, na qual você pode acessar seu banco de dados. ABAP OPEN SQL tem as seguintes características: - Sintaxe corresponde à sintaxe do SQL padrão - O ABAP SQL é um subconjunto do SQL padrão - O ABAP SQL contém SAP short forms - As tabelas devem ser definidas no Repositório ABAP e tem chave primária.

© by BBKO Consulting

38

 

 Academia – SAP/ABAP R3

 ABAP Open Open SQL - Acesso ao Banco de Dados Acesso de um registro registro – SELE SELECT CT SINGLE SINGLE •Seleciona •Selecion a dados do cliente cliente código 1 0 Report eport ZSQL. ZSQL. Tables: KNA1 Da Data: ta: vg_k vg_kun unnr nr li like ke kna kna11-kun kunnr, nr, vg_name1 vg_nam e1 like kna1kna1-name1, name1, vg_add vg_a ddrnr rnr li like ke kna kna1-a 1-addrn ddrnr. r. “Código do cliente SELECT SINGLE KUNNR NAME1 “Nome ADDRNR “Rua e Nr. INTO (vg_kunnr, vg_name1, vg_addrnr) FROM kna1 “Tabela transparente de clientes WHERE WHERE kun kunnr nr = ‘00000 ‘0000000010 00010’. ’.

Para fazer SELECT SINGLE, SINGLE , você precisa passar como parâmetro na condição ‘‘WHERE WHERE’’ a chave completa da tabela tra nsparente nsparente.. Neste exemplo acima, os campos selecionados foram armazenados em variáveis de memória, declarados no comando ‘DATA ‘ DATA’’

57

 

 ABAP Open Open SQL - Acesso ao Banco de Dados Proces rocessa sa em LOOP – SEL SELECT ECT e END ENDSEL SELEC ECT T * Seleciona os clientes de São Paulo SELECT * FROM kna1 “Tabela de clientes WH WHERE ERE land1 land1 = ‘BR ‘BR’ ’ AND regio reg io = ‘ ‘SP SP’. ’. MOVE-CORRESPONDING kna1 TO st_clientes. APPEND st_cliente st_clientes s TO tg_clientes tg_clientes. . ENDSELECT.

WHERE’’ os d dado ados s Acessa a tabela e a cada registro encontrado, atendendo a condição ‘‘WHERE são movidos para uma tabela interna.

58

© by BBKO Consulting

 

39

 

 Academia – SAP/ABAP R3

 ABAP Open SQL - Acesso ao Banco de Dados Move Mo ve cam campo pos s pa parra ta tabe bella in inte tern rna, a, não não fi fic ca em LO LOO OPI PING NG * Seleciona documentos de venda dos clientes de São Paulo SELECT KNA1~KUNNR “Código do cliente KNA1~NAME1 “Nome VBAK~VBELN “Numero do documento de venda INTO TABLE tg_docvendas FROM kna1 “Tabela de clientes IN INNER NER JOIN JOIN vbak vbak ON vbak~ vbak~ku kunnr nnr = kna1~kun kna1~kunnr nr WHERE WHER E kna1~land1 kna1~land1 = ‘BR’ ‘BR’ AND kna1~r kna1 ~regio egio = ‘SP ‘SP’. ’.

INTO TABLE: Lê os registros da tabela e move para uma tabela interna. Sobrepõe os registros existentes. APPENDING TABLE: não sobrepõe os registros existentes, ele move para o fim da tabela interna.

59

 

 ABAP Open Open SQL - Jo Join in en entre tre Tabel Tabelas as INNER JOIN Tabela Mand

SPRAS

MAKT MATNR

MAKTX

Check Che ck Table Table Campos Chaves Chave Estrangeira Chave Primária

SELECT SELECT INTO FROM INNER INNE R

mara~matnr mara~matn r makt makt~makt ~maktx x TABLE tg_materiais mara JOIN makt ON mak JOIN makt~ma t~matnr tnr = mara~m mara~matn atnr r AN AND D makt~s ma kt~spr pras as = sy-lan sy-langu gu WHERE WHER E mara~matn mara~matnr r = p_matnr p_matnr. .

Check Che ck Table able Mand

MARA

MATNR

Campos Chaves Chave Primária

60

© by BBKO Consulting

 

40

 

 Academia – SAP/ABAP R3

 ABAP Open Open SQL - Jo Join in en entre tre Tabel Tabelas as FOR ALL ENTRIES SELECT matnr INTO TABLE tg_mara FROM mara WHERE matn WHERE matnr r = p_mat p_matnr nr. . IF sy sy-s -subr ubrc c = 0. 0. SELEC SE LECT T matn matnr r ma makt ktx x INTO TABLE tg_makt FROM makt FOR ALL ENTRIES IN tg_mara WHERE WHER E matnr matnr = tg_mara tg_mara-ma -matnr. tnr. ENDIF.

Obs. A Obs.  A tabela interna utilizada utilizada no FOR ALL ENTRIES NUNCA deve estar vazia no momento da seleção. Pois isso irá acarretar acarretar a seleção de todos os registros da tabela utilizada na clausula FROM.

61

 

 ABAP Open SQL - Acesso ao Banco de Dados

 Acesso: Insert TABLES ZTABELA ZTA TAB BELA-MA -MATNR ZT ZTAB ABEL ELAA-CA CAM MPO2 PO2 ZTAB ZTABEL ELAA-CAM CAMPO PO3 3

= ‘1 ‘10 0'. = ‘0 ‘002 02'.'. = ‘INSE ‘INSERT' RT'.

INSERT INTO ZTABELA VALUES ZTABELA.

53

© by BBKO Consulting

41

 

 Academia – SAP/ABAP R3

 ABAP Open SQL - Acesso ao Banco de Dados

 Acesso: Delete TABLES ZTABELA. DELETE FROM ZTABELA WHERE MATNR = ‘10'.

54

 ABAP Open Open SQL - Acesso ao Banco de Dados

 Acesso: Update UPDATE ZTABELA SET CAMP AMPO2 O2 = '0 '002 02‘ ‘ CAMPO3 = ‘UPDATE' WHERE MA TN TNR = ‘ 20 20' .

64

© by BBKO Consulting

42

 

 Academia – SAP/ABAP R3

 ABAP Open Open SQL - Acesso ao Banco de Dados

 Acesso: Modify TABLES ZTABELA. ZT AB ELA -M AT NR ZT AB ELA -CAMP O2 ZT AB ELA -CAMP O3

= ‘30'. = ‘002' . = ‘MODIF Y'.

MODIFY ZTABELA.

Comando MODIFY: ou altera um registro com a chave já existente ou se não existe, adiciona um novo.

65

 

© by BBKO Consulting

43

 

 Academia – SAP/ABAP R3

Tipos de Programas

66

 

Dicas - Tipos de Programas

• Relatórios - O programa consiste em duas telas, telas, a primeira tela é chamada de tela de seleção seleção (selection screen) , nesta tela tela você define define os critérios critérios do relatório e filtros. filtros. A segunda tela é a tela de saída, contém a lista.

(Dialog (Di alog / On-Li On-Line) ne) •- Programas devárias Diálogo O programa pode ter telas, em cada tela você pode ter dados de entrada, saída, botões, botões, table table control...

• Includes

58

© by BBKO Consulting

 

44

 

 Academia – SAP/ABAP R3  

Dicas - Editor ABAP Transação SE38, para Relatórios/Includes

59

 

-Os relatórios consistem em cinco componentes: - Código Fonte - As Características - Os elementos de texto - A documentação - As variantes

© by BBKO Consulting

45

 

 Academia – SAP/ABAP R3

Dicas - Dec Declara larações ções “Bá “Básic sicas” as” nos programas ABAP -

Tables – Defin Tables – Define e tabelas tab elas ou estruturas estru turas com o mesmo nome existent e no Dicionário Dicioná rio d e Dados.

-

Types – Types  – Definiç ão de Tipos Ti pos de Dad os.

-

Data - Define campos, campos, variável variável ou string string de campo. campo. Constants – Constants  – Define um campo/v ariável com valor consta nte, ou sej a, não poderá pode rá ser alterado. alterado.

Exemplo: Reportt Ztest Repor Zteste. e. Tables: Mara. Types: type_ type_campo2( campo2(2) 2) type c, type_documen type_d ocumento to li like ke bsegbseg-ebel ebeln. n. Data: vg_ca vg_campo1 mpo1 type typ type_c e_campo2 ampo2 value ‘XX’, vg_campo2 type type_documento. Constants c_X( c_X(1) 1) type type c value value ‘X ‘X’. ’.

69

 

© by BBKO Consulting

46

 

 Academia – SAP/ABAP R3

Capítulo 5 – Tela de Seleção

Tela Te la de Sel eleç eção ão

63

 

Tela de Seleção

• Tela de Sele leçção • Even enttos da Te Tela la de Se Sele leçção

62

© by BBKO Consulting

 

47

 

 Academia – SAP/ABAP R3

Tela de Seleção - Exemplo de Parameters

63

 

© by BBKO Consulting

48

 

 Academia – SAP/ABAP R3

Tela de Seleção - Exemplo de Select-options

64

 

-Internamente é gerada uma tabela interna so_func com 4 colunas: - SIGN ( I – Include / E – Exclude) - OPTION (EQ,NE,CP,NP,GE,LT,LE,GT, BT ) - LOW ( Intervalo – menor menor valor) - HIGH ( Intervalo – maior valor) -Você pode inicializar os valores do select-option no evento initialization, por exemplo: INITIALIZATION. MOVE: 'I' TO SO_FUNC-SIGN, 'EQ' TO SO_FUNC-OPTION, ’1’ TO SO_FUNC-LOW.  APPEND SO_FUNC.

© by BBKO Consulting

49

 

 Academia – SAP/ABAP R3

Tela de Seleção - Sele Selectio ction-sc n-screen reen em blocos SELECTION-SCREEN BEGIN OF BLOCK ... WITH FRAME ... TITLE title SELECTION-SCREEN END OF BLOCK

SELECTION-SCREEN BEGIN OF BLOCK entre WITH FRAME TITLE text-001. parameters: * Nome Nome do arquivo arquivo entr entrada ada p_arqori p_arqori like rlgrap-filenam rlgrap-filename e obligator obligatory. y. parameters : p_as p_asc c radi radiob obut utto ton n grou group p g1 defa defaul ult t 'X 'X', ', p_dat ra d di io bu bu t tt t on on gr o ou u p g1 .

" Tipo Tipo AS ASC C " Ti ip po DAT

parameters : p_pc p_un p_unix ix

" Ti ip p o PC " Tipo Tipo UN UNIX IX

ra d di io b bu ut tt to on n gr o ou u p g3 de f fa aul t 'X' , radi radiob obut utto ton n grou group p g3. g3.

SELECTION-SCREEN END OF BLOCK entre entre. .

66

 

Tela de Seleção - Eventos da Tela de seleção

67

© by BBKO Consulting

 

50

 

 Academia – SAP/ABAP R3

Tela de Seleção - Eventos em Bloco Repo Report rt Z... Z... Pa Parame rameter ters: s:

p_data p_data like sysy-dat datum um def defaul ault t sy sy-da -datum. tum.

Initialization. p_d a at t a = p _d _dat a – 10.

“Seta valores para a tela de seleção

Start-of-Selection. Write: p_data.

“Início do processamento dos dados

 A seqüência dos eventos eventos no código fonte não tem efeito na na sequencia na qual eles são chamados p pelo elo  ABAP Runtime System

68

 

Dicas

71

© by BBKO Consulting

 

51

 

 Academia – SAP/ABAP R3

Dica cass - Proc Processa essando ndo String Stringss

Example DATA letters(3) TYPE C. MOVE 'abc' TO letters. TRANSLATE letters TO UPPER

CASE.

letters lett ers now has t the he contents contents 'ABC' 'ABC'

Example DATA: letters(20) TYPE C VALUE 'abcabcabcXabc', change(15) chang e(15) TYPE C VALUE VALUE 'aXbaYBab 'aXbaYBabZacZB' ZacZB'. . TRANSLATE letters USING change. letters lett ers now contain contains s 'XaZXaZXaZXX 'XaZXaZXaZXXaZ' aZ'

70

 

Dica cass - Proc Processa essando ndo String Stringss Exemplo DATA NAME (30). NAME(10) = ' Dr.', NAME+10(10) = 'Michael', NAME+20(10) = 'Hofmann'. CONDENSE NAME. WRITE NAME. produces the output: r. Michael Hofmann  D r.

Exemplo: Alinha o material a direita e preenche com zeros a esquerda

SHIFT V_MATNR RIGHT DELETING TRAILING SPACE . REPLACE ' ' WITH '0' INTO V_MATNR.

71

© by BBKO Consulting

 

52

 

 Academia – SAP/ABAP R3

Dica cass – LOOP´s

• DO

... ENDDO

• WHILE

... EN ENDWHILE

• LOOP

... ENDLOOP

• SE SELE LECT CT .. .... EN ENDS DSEL ELE ECT

72

 

53

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Capítulo 6 – Listas

Listas

84

 

Listas • Formatação de Saída das Listas • • • •

Definir o Formato das listas Armazenar Armaz enar Listas Imprimir Listas Controlee de Nível das Listas, utilizando tabela Interna Control

82

 

54

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Formatação das Listas • Pa Parâ râm met etro ross d de e Saí Saída da::  – ......  – Write Format  – New-Page ...

• Eventos  – TOP-OF-PAGE.  – END-OF-PAGE.

• El Elem eme ent ntos os de Te Text xto o  – Text Symbols  – Heading  – Selection texts

• Sy Sysste tem m fi fiel elds ds (t (tab abel ela a Sy Syst st)) 83

 

55

55

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Exemplo dos comandos Report Repo rt Re Rel1 l1. . DATA: DAT A: DATU DATUM M Type Type D, TIME TYPE T. DATUM = SY-DATUM. TIME = SY-UZEIT. WRITE: 5 ‘Data’(001), 20 DATUM DD/MM/YYYY. WRITE: /5 ‘Hor ‘Hora’ a’ (0 (002 02), ), TIME usin ing g edit mask ‘_ _:_ _:_ _’ unde un der r da datu tum m.

84

  -WRITE: -Comando que gera saída de dados no relatório.  WRITE 'Hello, here I am!'.  -Exemplo: WRITE -System fields (tabela SYST):  Alguns campos da tabela SYST são interessantes para uso em - Alguns

reports: -SY-PAGNO: -Números da pagina. -SY-DATUM: -Data atual. -SY-UZEIT: -Hora atual. -SY-UNAME: -Usuário do login.

56

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Exemplo usando ‘Format’ Report Repo rt Re Rel1 l1. . DATA: DAT A: DATU DATUM M Type Type D, TIME TYPE T. DATUM = SY-DATUM. TIME = SY-UZEIT. Format Form at colo color r co col_ l_no norm rmal al. . WRITE: 5 ‘Data’(001), 20 DATUM DD/MM/YYYY. For Fo rma mat t col olor or of off. f. WRITE: /5 ‘Hor ‘Hora’ a’ (0 (002 02), ), TIME usin ing g edit mask ‘_ _:_ _:_ _’ unde un der r da datu tum m.

85

-FORMAT: -Através do FORMAT pode-se manipular o formato dos dados a serem apresentados com WRITE. Pode-se controlar a cor, intensidade, etc.

57

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Exemplo usando ‘New Page’ Com o parâmetro New-Page, você pode forçar uma nova página. O contador de página é ajustado automaticamente automaticamente e o cabeçalho específico específico é exibido. Repo Re DATA: DAT port A: rtDATU DATUM Rel1 Re l1. M.Type Type D, TIME TYPE T. * Nova página NEW_PAGE. Write: /5 ’Usuário’(003), sy-uname, 80 text-001, sy-page. “Página DATUM = SY-DATUM. TIME = SY-UZEIT. Format Form at colo color r co col_ l_no norm rmal al. . WRITE: 5 ‘Data’(001), 20 DATUM DD/MM/YYYY. For Fo rma mat t col olor or of off. f. WRITE: /5 ‘Hor ‘Hora’ a’ (0 (002 02), ), TIME usin ing g edit mask ‘_ _:_ _:_ _’ unde un der r da datu tum m. 86

-NEW-PAGE: -Salta uma pagina do relatório.

58

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Top Top-of-p -of-page age e End-of-pag End-of-pagee Você pode usar o parâmetro NO STANDARD PAGE HEADING no parâmetro do REPORT para desabilitar a linha de cabeçalho do sistema. Se uma nova página é iniciada o sistema chama o evento TOP-OF-PAGE.

Report Rel1 NO STANDARD STANDARD PAGE PAGE HEADING HEADING lineli ne-si ne-co size count ze 132 unt 15. DATA: DAT A: D DATU ATUM M Type Type D, TIME TYPE T. * Nova página TOP-OF-PAGE. Write: /5 ’Usuário’(003), sy-uname, O END-OF-PAGE não ocorre quando a quebra de página 80 text-001, sy-pagno. “Páginafoi chamada por um evento NEW -PAGE. O tamanho da END-OF-PAGE. ULINE. WRITE: /10, TEXT-001. “FIM DE PÁGINA

Página deve ser determinado pelo parâmetro do line-count Para chamar o bloco do processamento do END-OF-PAGE

DATUM = SY-DATUM. TIME = SY-UZEIT. Format colo Format color r co col_n l_nor ormal mal. . WRITE: 5 ‘Data’(001), 20 DATUM DD/MM/YYYY. Skip 2. “Pula duas linhas For Fo rma mat t col olo or of off. f. WRITE: /5 ‘Hor ‘Hora’ a’ (0 (002) 02), , TIME TI ME us usin ing g ed edit it ma mas sk ‘_ _: _:_ _ _:_ _:_ _’ unde un der r da datum tum. .

87

-Eventos: -Eventos são identificados por uma palavra-chave de evento, ou seja, o

próprio nome do evento. Eles terminam onde o bloco do próximo evento começa. O próximo bloco deve ser uma outra palavra-chave de evento, ou algum outro bloco de processamento valido no contexto, como uma sub-rotina ou modulo de dialogo. Os principais eventos para processamento de relatórios são: -INITIALIZATION: -Próprio para inicializar os campos da tela de seleção. E

executado antes da exibição da tela. -START-OF-SELECTION: -Neste evento e colocada a lógica principal da montagem

do relatório. E executado logo apos a tela de seleção. -END-OF-SELECTION: -E executado apos o START-OF-SELECTION, antes da

apresentação da lista.

59

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Armazenar Listas • Você pode armazenar listas resultante de programa

88

 

60

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Enviar diretamente p/ impressora O parâmetro NEW-PAGE NEW-PAGE PRINT ON envia a lista para o SAP spool spool database O parâmetro NO DIALOG desabilita a exibição da tela de parâmetros de impressão. Repo Re port rt re rel3 l3. . NEW-PAGE PRINT ON NO DIALOG DESTINATION ‘LPT1’ IMMEDIATELY ‘X’. ‘X’.

WRITE: / ....

89

 

Listas - Controle de Nível: Tabela Interna •

Ao processar tabelas internas com o comando LOOP, você pode executar processamentos com nível de controle controle,, utilizando tais parâmetros:

-

AT FIRST AT NEW AT END OF AT LAST

Obs.: campo daprimeiro tabela interna nos comandos AT NEW e AT END OF temOque ser o campoutilizado da tabela interna e a mesma deve estar ordenada.

91

 

61

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas - Controle de Nível: Tabela T abela Interna Report Repo rt re rel4 l4. . TABLES KNA1. ... DATA TG_ITAB TYPE TABLE OF TYPE_ITABE. T YPE_ITABE. DATA ST_ITAB TYPE TYPE_ITABE. ... SORT TG_ITAB BY ORT01 NAME1 ADDRNR . LOOP AT TG_ITAB INTO ST_ITAB. AT NEW ORT01. WRITE: / ST_ITAB-OR ST_ITAB-ORT01. T01. ENDAT. AT END OF ORT01. ORT01. ULINE. WRITE: / ST_ITAB-OR ST_ITAB-ORT01. T01. ENDAT. ENDLOOP.

LOOP AT ITAB  AT FIRST.  AT NEW < campo>  AT END OF < campo>  AT LAST. ENDLOOP

... ... ... ...

ENDAT. ENDAT. ENDAT. ENDAT.

Obs.: O campo ORT01 neste exemplo tem que ser o primeiro campo da tabela interna ITAB. 92

 

Listas - Controle de Nível: ON CHANGE Para o comando ON CHANGE o campo da tabela interna não precisa ser o primeiro. TABLES T100. SELECT * FROM T100 WHERE SPRSL = SY-LANGU AND MSGNR < '010' ORDER BY PRIMARY KEY. ON CHANGE OF T100-ARBGB. ULINE. WRITE: / '***', T100-ARBGB, '***'. ENDON. WRITE: / T100-MSGNR, T100-TEXT. ENDSELECT. Report Repor t re rel4 l4. . TABLES KNA1. ... DATA TG_ITAB TYPE TABLE OF TYPE_ITAB. DATA ST_ITAB TYPE TYPE_ITAB. ... SORT TG_ITAB BY ORT01 NAME1 ADDRNR . LOOP AT TG_ITAB INTO ST_ITAB. ON CHANGE ST_ITAB-ORT01. WRITE: / ST_ITAB-ORT01. ENDON. ENDLOOP. 93

 

62

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Dicas

96

 

Dicas - Comando Message Message Messa ge Ennn with () Tipo de mensagens: E – Erro Erro A – Ab Abend end X – Exit (termi (termina na com um short D Dump) ump) W – War Warning ning I – Info Informação rmação S - Suce Sucesso sso No parâmetro “REPORT” “REPORT” pode-se acrescentar o parâmetro “MESSAGE-ID”. “MESSAGE-ID”. Exemplo: REPORT ZSDR0010 NO STANDARD PAGE HEADING LINE-SIZE 132 LINE-COUNT 65 MESSAGE-ID ZSD.

94

 

63

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Capítulo 7 – Listas Secundárias

Listas Lis tas Se Secu cundá ndári rias as

98

 

64

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias

96

 

-O ABAP runtime system : - Exibe a lista básica. A variável de sistema SY-LSIND = 0 (contador de lista) - Neste exemplo, se você “clicar” duas vezes sobre uma linha da lista básica, será exibido detalhes desta linha, isso através do evento “AT-LINE-SELECTION”

65

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - Como selecionar 

97

 

Listas Secundárias - Exemplo do comando HIDE HIDE Line

Hide Area

Line 1

1 2 3

WA_ZFUNC-NUM_ID 0000000001

2

0000000002

3

0000000003

98

 

66

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - Exemplo SY-LSIND = 0

Duplo click na linha do relatório, ou clicar no ícone

SY-LSIND = 1 Traz dados da Lista Secundária

SY-LSIND = variável de sistema de indica o índice da lista corrente

99

67

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - Exemplo

100

 

Listas Secundárias - Lista Secundária com GUI STATUS

Lista Básica

Lista Secundária

101

 

68

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - GU GUII Title Title e GUI GUI Status

102

 

Listas Secundárias - Men Menu u Pai Painte nterr – SE41

103

 

69

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - Menu Painter 

104

 

Listas Secundárias - Gu Guii St Stat atus us (exemplo: LIST)

105

 

70

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - Barra de Menu

106

 

Listas Secundárias - Barra de Ferramentas da Aplicação

107

 

71

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Listas Secundárias - Menu Standard

108

 

Listas Secundárias - Lista Secundária com GUI STA STATUS TUS REPORT ZTESTE_LISTA_SEC_II . TABLES: mara, makt. TYPES: begin of type_mara, matnr mat nr li like ke mar mara-ma a-matn tnr, r, ersda ers da li like ke mar mara-er a-ersd sda, a, ernam ern am li like ke mar mara-er a-erna nam, m, end of type_mara, begin of type_makt, matnr matn r like makt makt-matn -matnr, r, maktx makt x like makt makt-makt -maktx, x, end of type_makt. DATA: DATA : tg_mar tg_mara a TYPE TABLE TABLE OF TYPE_MARA, TYPE_MARA, st_mar st_m ara a TYP TYPE E TYPE_MARA, TYPE_MAR A, st_mak st_m akt t TUP TUPE E TYPE_MAK TYPE _MAKT. T. select-options select-op tions: : so_ma so_matnr tnr for mara-matnr. mara-matnr. **************************************** * Evento Evento START START-OF-SE -OF-SELECTI LECTION ON **************************************** start-of-selection. set pf-status 'LIST'. set titleb titlebar ar 'L 'LIST' IST'. .

SELECT SELEC T matn matnr r ers ersda da er erna nam m FROM mara INTO TABLE tg_mara WHERE WHER E matnr matnr in so_mat so_matnr. nr. LOOP AT tg_mara tg_mara INTO st_ma st_mara. ra. WRITE: /'Material', t_mara-matnr, t_maraersda, t_mara-ernam. HIDE: tg_mara. ENDLOOP. AT USER-COMMAND. CASE sy-ucomm. WHEN 'TEXTO'. SET pf-status 'LIST' excluding 'TEXTO'. SET titlebar titlebar 'L 'LIS IST1'. T1'. SELECT SELE CT single single matnr matnr maktx INTO ( st_makt-matnr,st_ st_makt-matnr,st_makt-maktx) makt-maktx) FROM makt WHERE WHE RE ma matnr tnr = t_ t_mara mara-ma -matnr tnr AND spras sp ras = 'P 'P '. '. WRITE: WRIT E: 'Material 'Material lista secun secundária' dária', , st_makt-matnr, st_makt-maktx. ENDCASE. 110

 

72

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Capítulo 8 – Modularização M odularização

Modularização

75

 

Modularização • Sub-rotinas • Grupo de Funções • Funções

74

 

73

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Modularização Modulariz ação - Subrotinas

Inicio do Programa

Perform carrega_tab Using Campo 1 Changing tab1

Form carrega_tab Using Campo 1 Changing tab1

....

75

 

Se no programa ABAP uma sub-rotina é chamada por um comando PERFORM, o sistema interrompe o processamento corrente para processar a sub-rotina. Quando a ultima linha da sub-rotina (ENDFORM), é executada, o sistema continua o processamento do programa, após a linha do comando ‘PERFORM’.

74

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Modularização - Chamando por valor e por referência

76

 

Os parâmetros podem ser enviados por referência ou por valor: - Por referencia: o parâmetro destino faz referencia ao endereço do parâmetro origem. - Por valor: Quando a sub-rotina é chamada, uma variável local é criada criada e o conteúdo é copiado, existem dois tipos de chamadas por valor: - chamada por valor: passa apenas os conteúdos - chamada por valor e resultado: passa o conteúdo do campo e toda alteração efetuada no campo, na sub-rotina e passada de volta.

75

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Modularização - Grupo de Função e Função

77

 

Módulo de função são unidades modulares com a interface. A interface pode conter os seguintes elementos: Parâmetros de Importação: são parâmetros passados para o módulo de função. Em geral, estes são associados aos tipos do Dicionário ABAP. Podem ser opcionais. Parâmetros de Exportação: são passados do módulo de função para o programa chamador. Parâmetros de exportação são sempre opcionais. Parâmetros Modificáveis: são passados para o módulo de função e podem ser alterados pela função. Podem ser opcionais. Exceções: São usados para interceptar erros. Se um erro aciona uma exceção na função, esta função pára. Você pode associar números a exceção no programa, na qual são verificados pelos valores do sy-subrc. Cada módulo de função pode conter dados locais e acessar dados globais, pertencentes ao grupo de função.

76

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Modularização - Grupo de Função e Função • Gr Grup upo o de Fu Funç nçõe õess e Fun Funçõ ções es

78

 

- Um grupo de função é um programa ABAP do tipo F, na qual o programa é criado exclusivamente para conter módulos de função. Os módulos de função podem ser chamados de qualquer programa ABAP.

77

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Modularização - Grupo de Função e Função

1. Criar o Grupo de função

2. Associar o módulo de função ao Grupo

Crie grupo de função por ‘assunto’, evite utilizar vários módulos de função num mesmo grupo, pois se alguém estiver codificando um módulo, e você quiser transportar a sua função e eles pertencerem ao mesmo grupo, você só vai conseguir transportar transportar no momento que todos as funções deste grupo estiverem sem erro de sintaxe.

79

Modularização - Exemplo de programa e função

80

78

© by BBKO Consulting

 

 Academia – SAP/ABAP R3  

ALV Grid Grid Co Contro ntroll TYPE-POOLS: slis, kkblo. DATA: tg_fieldcat tg_fieldcat TYPE TABLE TABLE OF slis_t_fieldcat_alv. slis_t_fieldcat_alv. CALL FUNCTION 'REUSE_ALV_G 'REUSE_ALV_GRID_DISPLAY' RID_DISPLAY' EXPORTING i_callbac i_call back_p k_prog rogram ram = 'N 'Nom ome_d e_do_p o_prog rogram rama' a' i_grid_title = 'T 'Teste Re Relatório AL ALV' it_fieldcat

= tg tg_fieldcat[ ]

TABLES t_outtab

= Tabela de Dados

EXCEPTIONS program_error

=1

OTHERS

= 2.

fieldcat-col_pos = '01'. fiel fieldc dcat at-key key = 'X'. 'X'. fieldcat-tabname = 'T_ALV'. fieldcat-fieldname = 'COL_01'. fieldcat-seltext_l = 'Material'. fieldcat-seltext_m = 'Material'. fieldcat-seltext_s = 'Material'. fieldcat-fix_column = 'X'.  Append fieldc at. 119

 

79

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Capítulo 9 – Data Transfer

Trans Tr ansfe ferên rênci cia a de Dado Dadoss

114

 

Transferência de Dados • Proce Process ssan ando do Arq Arqui uivo vo Seq Seqüen üenci cial al • Call all Transac nsacttion • Batch Input

111

 

80

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados Transferência Dados - Abrir e ler arquivo arquivo sequ se quen enci cial al - Inb nbou ound nd

IF p_ p_un unix ix = 'X' 'X'. . OPEN D DATASET ATASET p_arqori FOR INPTU IN text MODE MESSAGE v_msg. v_msg. DO. READ DATASET P_ARQORI INTO T_DATA_LOAD. IF SY-SUBRC NE 0. EXIT. EXIT. ENDIF. APPEND T_DATA_LOAD. ENDDO. ENDIF.

"lê um reg. reg. do arqu arquivo ivo

"fim de arquivo/arq. s/ registros "i "indi ndica ca fi fim m de arq arquivo uivo

112

 

113

 

Transfe Tran sferên rência cia de Dad Dados os - Bi Binar naryy Mo Mode de e Text Te xt Mod ode e

81

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Gerando arquivo Transferência arquivo seqüencial -Outbound

IF P_UNIX EQ 'X'. OPEN DATASET V_ARQSAIDA FOR OUTPUT IN TEXT MODE MESSAGE V_MSG. IF SY-SUBRC NE 0. MESSAGE E001(ZI) WITH V_ARQSAIDA V_MSG. ENDIF. LOOP AT T_SAIDA. TRANSFER T_SAIDA TO V_ARQSAIDA.

ENDLOOP. CLOSE DATASET V_ARQSAIDA.

IF SY-SUBRC NE 0. MESSAGE E011(ZI) WITH V_ARQSAIDA. ENDIF. ELSEIF P_PC EQ 'X'. ..... 114

 

115

 

Transferência de Dados Transferência Dados - Acesso a arquivos externos Entrada Entra da de dad dados os - Inb Inbound ound

Acesso a arquivo externo via PC, utilizar a função: call call fu funct nctio ion n ‘GUI_U ‘GUI_UPL PLOAD OAD' ' exporting filename filetype

= l_filename = v_type

tables data_tab

= t_data_load

exceptions conversion_error file_open_error file_read_error invalid_type no_batch unknown_error in nv va l li i d_ d_t a ab b le le_ w wi i dt dth gui_refuse_filetra gui_refu se_filetransfer nsfer customer_error others

= = = = = = = = = =

1 2 3 4 5 6 7 8 9 10.

Acesso a arquivo externo via UNIX, utilizar os comandos: OPEN DATASET FOR INPUT IN TEXT MODE MESSAGE DO. READ DATASET DATASET P_ARQORI P_ARQORI INTO INTO T_DATA_LOAD. T_DATA_LOAD. "le um reg. reg. do arquivo IF SY-SUBRC NE 0. "fim de arquivo/arq. s/ registros EXIT. "indica fim de arquivo ENDIF. APPEND T_DATA_LOAD. ENDDO.

82

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Acesso a arquivos externos Acesso a arquivo externo via UNIX, utilizar os comandos: OPEN DATASET FOR INPUT IN TEXT MODE MESSAGE DO. READ DATAS DATASET ET P_ARQ P_ARQORI ORI IN INTO TO T_D T_DATA_LO ATA_LOAD. AD. "le um reg. do arquivo arquivo IF SY-SUBRC NE 0. "fim de arquivo/arq. s/ registros EXIT. "indica fim de arquivo ENDIF. APPEND T_DATA_LOAD. ENDDO.

116

 

117

 

Transferência de Dados - Acesso a arquivos externos Saída de dados - Outbou Outbound nd Acesso a arquivo externo via PC, utilizar a função: CALL FUNCTION 'WS_DOWNLOAD' EXPORTING FILENAME = V_ARQSAIDA

TABLES DATA_TAB = T_SAIDA

EXCEPTIONS

OTHERS

= 8.

83

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Acesso a arquivos externos Acesso a arquivo externo via UNIX, utilizar os comandos: CONCATENATE P_PATH 'arq' SY-DATUM SY-UZEIT+0(4) INTO . OPEN DATASET FOR OUTPUT IN TEXT MODE MESSAGE LOOP AT . TRANSFER TO . ENDLOOP. CLOSE DATASET .

118

 

119

 

Transferência de Dado Transferência Dadoss - Transferin Transferindo do Dados Externos SAP ( Host )

Dados Externos

SAP INTERFACES

BANCO SAP

84

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferencia Transfere ncia de Dado Dadoss - Transferindo Dados Externos  Arquivo Seqüêncial Dicionário  ABAP/4

READ DATASET Programa de BAT BATCH CH INPUT

Estrutura Estrutu ra BDCDATA

Tabela BDC INCLUDE STRUCTURE

CALL FUNCTION

FILA

120

 

121

 

Transferência de Dado Transferência Dadoss - Seqüência p/ Batch Input  ABRIR SESSÃO DE BATCH INPUT

INSERIR DADOS DA TRANSAÇÃO

FECHAR SESSÃO DE BATCH INPUT

85

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Entrada e Saída de Dados Atualizando dados Update Z_CONTAS set fornece fornecedor dor = ‘X’ Whe Where re gru grupo po = 1. 1.

Update não deve ser utilizado utilizado para atualizar atualizar dados de tabelas Standard Standard do SAP. Toda ada atualização deve ser feita através transações quecomando garantamCall a integridade base de dados. Esta atualiz atualização açãodas é feita através do Transaction.

Call Trans Transactio action n WA_BDCDATA-PROGRAM WA_BDCDAT A-PROGRAM = 'SAPMS38M'. “Informa o nome/numero nome/numero da tela WA_BDCDATA-D YNPRO = '0100'. WA_BDCDATA-DYNBEGIN = 'X'. APPEND WA_BDCDATA TO BDCDATA. CLEAR WA_BDCDATA. WA_BDCDA WA_B DCDATA-FN TA-FNAM AM = 'RS38M-PRO 'RS38M-PROGRAM GRAMM'. M'. “Preenc “Preenche he campo campos s da tela WA_BDCDATA-F VAL = PROGRAM. APPEND WA_BDCDATA TO BDCDATA. ... * Chama Chama a trans transaçã ação o com os os da dados dos de de tel tela a e cam campo pos s def defin inido idos s

CALL TRANSACTION 'SE38'

USING BDCDATA MODE 'N' MESSAGES INTO ITAB.

122

 

123

 

Transferência de Dados - Entrada e Saída de Dados Para melhor organizar um p programa rograma que u utiliza tiliza Call Transaction normalmente são criadas funções para preencher a tabela de dados da transação (BDCDATA). **************************************************************** * Rotinas para criação da t_bdc **************************************************************** FORM BDC_DYNPRO USING PROGRAM DYNPRO. CLEAR T_BDC. T_BDC-PROGRAM = PROGRAM. T_BDC-DYNPRO = DYNPRO. T_BDC-DYNBEGIN = 'X'. APPEND T_BDC. ENDFORM. ******************************************** FORM BDC_FIELD USING FNAM FVAL. IF FVAL ''. CLEAR T_BDC. T_BDC-FNAM = FNAM. T_BDC-FVAL = FVAL. APPEND T_BDC. ENDIF. ENDFORM.

86

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Entrada e Saída de Dados ********************************************************************** * FORM CALL_TRANSACTION ********************************************************************** FORM CALL_TRANSACTION TABLES T_BDC_DATA USING W_TCODE. CALL TRANSACTION W_TCODE USING T_BDC_DATA MODE 'N' UPDATE 'S' MESSAGES INTO T_MESS. IF SY-SUBRC NE 0. LOOP AT T_MESS. PERFORM BDC_MESSAGE. WRITE: / W_MESS. ENDLOOP. ENDIF. CLEAR: T_MESS, T_BDC. REFRESH: T_MESS, T_BDC. ENDFORM.

" CALL_TRANSACTIO N

********************************************************************** * FORM BDC_MESSAGE ********************************************************************** FORM BDC_MESSAGE. CLEAR W_MESS.

124

 

125

 

Transferência de Dados - Entrada e Saída de Dados SELECT SINGLE WHERE AND AND

* FROM T100 SPRSL = 'P' ARBGB = T_MESS-MSGID MSGNR = T_MESS-MSGNR.

W_MESS = T100-TEXT. STRAUX4 = T_MESS-MSGV1. REPLACE '&' WITH STRAUX4 INTO W_MESS. CONDENSE W_MESS. STRAUX4 = T_MESS-MSGV2. REPLACE '&' WITH STRAUX4 INTO W_MESS. CONDENSE W_MESS. STRAUX4 = T_MESS-MSGV3. REPLACE '&' WITH STRAUX4 INTO W_MESS. CONDENSE W_MESS. STRAUX4 = T_MESS-MSGV4. REPLACE '&' WITH STRAUX4 INTO W_MESS. CONDENSE W_MESS. ENDFORM.

87

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Entrada e Saída de Dados Exem Exempl plo o de códi código go para para cham chamad ada a de Call Call Tr Tran ansa sact ctio ion n a par parti tir r da das s funç funçõ ões criada iadas s : ... PERFORM BDC_DYNPRO USING 'SAPMM07I' '0721'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'. “Salvar PERFORM BDC_FIELD USING 'BDC_CURSOR' 'ISEGMATNR(01)'. PERFORM CALL_TRANSACTION CALL_TRANSACTION TABLES T_BDC USING 'MI01'. O nome nome do ca camp mpo o n na a te tela la pode pode se ser r ve veri rifi fica cado do clic clican ando do-s -se e F1 sobr sobre e o c cam ampo po a ace cess ssan ando do a op opçã ção o Inf Inform ormaçõ ações es Técnic Técnicas. as. O nome ome do Denomi nominaç nação ão do camp campo o pa para ra bat batch ch i inp nput. ut. campo encontra-se em De Al Além ém do dos s c ca ampo pos s de t tel ela a exi xis stem dois cam ampo pos s especi eciais : BDC_CURSOR BDC_CUR SOR : P Para ara i indi ndica ca a pos posiç ição ão do cu curso rsor r BDC_ BDC_OK OKC CODE ODE : Para Para indi indica car r a oper operaç ação ão a r rea eali liza zar r ap após ós o preenc pre enchi himen mento to da tel tela a. 126

 

127

 

Transferência de Dados - Entrada e Saída de Dados Batch Input O pro progra grama cria ria uma pas pasta ou arqu rquivo ivo con onte ten ndo os dad ados os da tabe tabela la BDC_ BDC_DA DATA TA ( (me mesm sma a util utiliz izad ada a no C Cal all l Tra Trans nsac acti tion on). ). Es Esta ta se será rá pr proc oces essa sada da post poster erio iorm rmen ente te at atra ravé vés s da tr tran ansa saçã ção o SM SM35 35. . CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP USER KEEP HOLDDATE

= = = =

NOMEPASTA USER KEEP HOLDDATE.

CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = TCODE TABLES DYNPROTAB = T_BDCDATA T_BDCDATA. .

CALL FUNCTION 'BDC_CLOSE_GROUP'.

88

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Programa Inbound • Pass Passos os para para cr criar iar prog program rama a In Inboun bound d  – Executar a transação transação SHDB: • Juntamente Juntamente com o Funcional Funcional executar executar a transação transação desejada desejada e preencher preencher os campos necessários

 – Após mapear os campos campos necessários, definir o layout do arquivo .txt de entrada  – Criar a especificação técnica  – Criar o programa programa de Inbound

Obs: Segue exemplo: transação MM02 (alteração de material) onde vamos apenas alterar a descrição dos materiais

128

Transferência de Dados - Transação SHDB

129

 

89

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Transação SHDB

130

 

131

 

Transferência de Dados - Transação SHDB

90

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Transação SHDB

132

 

133

 

Transferência de Dados - Transação SHDB

91

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Transação SHDB

134

 

135

 

Transferência de Dados - Layout do arquivo de entrada  Arquivo .txt de entrada (para este exemplo do SHDB, S HDB, executado): Seq Campo

Tipo

1–

Cód Código do mate materi rial al

– char char 18 po posi siçõ ções es,, al alin inha hado do a es esqu quer erda da

2–

Descrição do Materi rial al

– char 40 pos osiiçõe õess

92

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - Tela com parâmetros de Batch Input

136

 

137

 

Transferência de Dados - SM35Executar pasta de Batch Input

93

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Transferência de Dados - SM35

138

 

- Tem tr três ês opções de executar a pasta: Processamento visível (Foreground visualizando as telas), Oculto (background), Exibir só erros (quando ocorrer erro mostra a tela) -Quando executa a pasta Batch Input em foreground, significa que está rodando a transação com todos os dados mapeados no programa, preenchidos, apenas teclar < ENTER >. - Caso queira ca cancelar ncelar o processamento em foreground do registro regis tro corrente, digitar no campo de comando < /n>. - Caso queira cancelar o processamento em foreground, digitar no campo de comando < /bend>

94

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Capítulo 10 – Programação On-Line

Progra Pro gramaç mação ão OnOn-Li Line ne

143

 

95

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Module-pool • Pa Part rtes es de uma uma tel tela a

 Atributos Da Tela

Screen Num Screen Number  ber  Short Description Screen Screen type Nex Nextt Screen ...

Layout Da Tela

Screen Num Screen Number  ber  Short Description Scr Screen een type Nex Nextt Screen ...

 Atributos dos campos

Field Name Name Type Length ...

Controle do Fluxo Process Process Before Before Outpu Output. t. Module Clear-ok_code.

Controle do Fluxo Proce Process ss After After Input Input Module User_Comma User_Command_0100 nd_0100

140

 

Os principais processos de criar uma tela: - Especificar as suas propriedades (Atributos da tela) - Especificar o layout (Editor Fullscreen) - Definir os atributos dos elementos da tela (Field List) - Programar o seu fluxo lógico - O Fluxo lógico é dividido em dois eventos para cada tela: - O PROCESS BEFORE OUTPUT evento (PBO), é executado antes da tela ser apresentada. - O PROCESS AFTER INPUT evento (PAI), é executado após o usuário ter acionado algum botão ou disparado algum evento na tela anteriormente apresentada.

96

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criação de um Dial Di alog og Pr Prog ogram ram

Código Código do do Cliente Cliente

Nome Nome Endereço Endereço

141

 

- Dialog Program que mostrará dados do Cliente. - Neste exemplo, a primeira tela, o usuário entrará com código do funcionário. (chave da tabela), e na segunda tela, será mostrado o conteúdo dos campos referentes à tabela ao funcionário.

97

© by BBKO Consulting

 

 Academia – SAP/ABAP R3  

Programação On-line – Chamada dinâmica da próxima tela Tela 100 Próxima tela 200

PBO

PAI

Module ... Set Screen Screen 300. Leave Leave Screen Screen.. Endmodule.

Tela 300 Próxima tela 400

PBO

PAI

Module ... Set Screen Screen 0. Leave Leav e Scree Screen. n. Endmodule.

O comando SET SCREEN sobrepõe temporariamente o atributo ‘próxim ‘próxima a tela’. Para executar a chamada a outra tela em um único programa pode ser feito desta forma: “LEAVE TO SCREEN < nnnn>”

O comando SET SCREEN 0 e LEAVE Screen volta para a tela que chamou, chamou, no caso tela 300. 142

 

98

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Programa Lógico

143

 

Você pode definir um campo campo OK_CODE como um campo da tela. Nest Neste e campo conterá o código de função do botão selecionado na tela. Para evitar erros de campo OK_CODE não inicializado, você deve criar um campo auxiliar que salva o conteúdo do OK_CODE e então você inicializa o campo OK_CODE e ‘trabalha’ com o campo auxiliar.

99

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Di Dialo alog g Pro Progra gram m  – Seq Ações Sequência de Ações Action sequence PROCESS BEFORE OUTPUT.   MODULE  A . PROCESS AFTER INPUT.   MODULE B.

Screen Painter 

Execute module A Data transport from ABAP/4 to screen work area Send Send screen ENTER Data transport from screen to ABAP/4 ABAP/4 work area Execute module B

ã

144

 

- Quando todos os módulos do PBO terminarem a execução, os conteúdos dos campos na Work Área do ABAP são copiados para a Work Área da tela em nomes idênticos. - Antes do PAI ser processado, os conteúdos dos campos na Work Área da tela são copiados para a Work Área do ABAP em nomes idênticos.

100

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Atributos da tela Modificações Dinâmicas em Telas

Change Display

A B

Change Display

A B

output field

input and output field

ã

146

 

- Podem ser feitas mudanças temporárias em certos atributos de campos. Ex.: Fazer com que um campo com atributo de display somente, seja alterado para receber entrada de digitação etc. - Esta facilidade faz com que possam ser utilizadas as mesmas telas, somente com a alteração dos atributos dos seus campos, desta forma a quantidade de telas é reduzida consideravelmente.

101

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Atributos da tela Atributos modificábeis da tabela SCREEN SCREEN-NAME SCREEN-GROUP1 SCREEN-GROUP2 SCREEN-GROUP3 SCREEN-GROUP4

Field name Modification group 1 Modification group 2 Modification group 3 Modification group 4

SCREEN-REQUIRED

Required field

SCREEN-INPUT

Input field

SCREEN-OUTPUT

Output field

SCREEN-INTENSIFIED

Highlighted field

SCREEN-INVISIBLE

Invisible field

SCREEN-LENGTH

Field length

SCREEN-ACTIVE

Active field

SCREEN-DISPLAY_3D

3-dimensional field

SCREEN-VALUE_HELP

Field with value help

SCREEN-REQUEST

Input exists (PAI only)

ã

146

 

- Os campos da tela e seus respectivos atributos são armazenados automaticamente em uma tabela interna (do sistema) chamada SCREEN. - A tabela SCREEN é inicializada com os campos definidos no Caiem Pointer e tem seus campos reinicializados a cada execução do PBO. - Para determinar o campo que você deve alterar um ou mais atributos, você precisa ler o campo SCREEN-NAME e os campos SCREEN-GROUP1 até SCREEN-GROUP4, através de um Loop na tabela SCREEN. - As funções standard são automaticamente associadas.

102

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Atributos do campo na tela Atributos do campo – Grupos de Modificação

Screen Painter 

Field list: Modification groups Fie ld name

Gr1 Gr2 Gr3 Gr4

SPFLI_ITAB-CONNID SPFLI_ITAB-CITYFROM SPFLI_ITAB-CITYTO ...

SEL SEL SEL

...

ã

147

 

- Você pode associar um campo a quatro diferentes grupos. Os nomes dos grupos podem ter até 3 caracteres e podem ser definidos livremente.

103

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Modificação em telas Modificações Dinâmicas em Telas - Programa Screen Painter  PROCESS BEFORE OUTPUT.   .   .   .   MODULE MODIFY_SCREEN.   .   .   .  MODULE MODIFY_SCREEN MODIFY_SCREEN OUTPUT.  

...

LOOP AT SCREEN.   IF SCREEN-GROUP1          

ABAP/4

SCREEN-INPUT SCREEN-INPUT = ENDIF. IF SCREEN-NAME SSC SC SCREEN-ACTIVE ENDIF. SCREEN. REEN.  MODIFY SC

 = 'SEL'.  1 1. =  ' SFLIGHT-CARRID = 0.

'.

  ENDLOOP. ENDMODULE.

ã

148

 

- O código (programa) para alterar dinamicamente os atributos dos campos devem ser executados no evento PBO. - As mudanças devem ser feitas dentro de um Loop na tabela SCREEN, e somente desta forma.(Não é possível o acesso via READ TABLE...). - As mudanças feitas são realmente ativadas após o comando MODIFY SCREEN.

104

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Condição na chamada dos Modules - Se quiser que o module seja chamado somente se o conteúdo do campo foi alterado do seu valor inicial. PROCESS AFTER INPUT. FIELD Module Verifica_Campo ca_Campo ON INPUT. INPUT.

Module Verifica_Campo ... message messag e E ... ... Endmodule.

- Dentro do bloco bloco CHAIN, você deve usar o ON CHAIN-INPUT, o module é então chamado se o conteúdo de uma das telas foi alterado do valor inicial. PROCESS AFTER INPUT. CHAIN. FIELD , ... < campo n> Module Verifica_Campo Verifica_Campo ON CHAIN-INPUT CHAIN-INPUT.. ENDCHAIN.

Module Verifica_Campo ... message messag e E ... ... Endmodule.

150

 

150

 

Programação On-line - Condição na chamada dos Modules - Se quiser que o module seja chamado somente se o conteúdo do campo foi alterado do seu valor inicial. PROCESS AFTER INPUT. FIELD Module Verifica_Campo ca_Campo ON INPUT. INPUT.

Module Verifica_Campo ... message messag e E ... ... Endmodule.

- Dentro do bloco bloco CHAIN, você deve usar o ON CHAIN-INPUT, o module é então chamado se o conteúdo de uma das telas foi alterado do valor inicial. PROCESS AFTER INPUT. CHAIN. FIELD , ... < campo n> CHAIN-INPUT.. Module Verifica_Campo Verifica_Campo ON CHAIN-INPUT ENDCHAIN.

Module Verifica_Campo ... message messag e E ... ... Endmodule.

105

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Condição na chamada dos Modules - Se adiciona adicionarr o parâmetro ON REQUES REQUEST T no module module,, o module some somente nte é chamad chamado o se o usuário digitar um novo valor neste campo PROCESS AFTER INPUT. FIELD Module Verifica_Campo ON REQUEST. REQUEST.

Module Verifica_Campo ... message messa ge E ... ... Endmodule.

- Dentro do bloco bloco CHAIN, você deve usar o ON CHAIN-REQUEST, o module é então chamado se o usuário alterou o conteúdo de um dos c ampos dentro do bloco CHAIN. PROCESS AFTER INPUT. CHAIN. FIELD , ... < campo n> CHAIN-REQUEST.. Module Verifica_Campo Verifica_Campo ON CHAIN-REQUEST ENDCHAIN.

Module Verifica_Campo ... message messa ge E ... ... Endmodule.

151

 

152

 

Programação On-line - Condição na chamada dos Modules - O parâmetro adicional adicional AT EXIT-COMMAND, faz com que o module seja processado antes antes das verificações automáticas de entrada de dados.

PROCESS AFTER INPUT. Module exit AT exit AT EXIT-COMMAND. EXIT-COMMAND.

Module EXIT Input. Case ok_code. when ‘CANCEL ‘CANCEL’.’. clear ok_code ok_code.. leave leav e to scre screen en 0. when ‘EXI when ‘EXIT’. T’. leave progra program. m. Endcase. Endmodule.

106

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar Dialog Pro rogr gram am – SE SE80 80

153

 

- Crie o seu programa (ABAP Module Pool) no Development Workbench (SE80) seguindo a regra de nomenclatura abaixo: O nome deverá iniciar com as letras SAP.  A quarta posição do nome do programa deverá ser sempre M (Module Pool).  A quinta posição, no caso de programas customizáveis deverá ser Z ou Y, (como nos programas reports, iniciados obrigatoriamente com essas letras). Escolha a opção TOP Include, pois desta forma, será criado o include que será utilizado para a declaração dos dados globais. Se você utilizar os includes, o sistema automaticamente sugerirá os nomes para eles, seguindo uma regra particular, de acordo com o nome do programa principal (module pool) e com um determinado sufixo, o qual facilitará a sua identificação dentro do programa. Exemplo: O nome do TOP Include para um programa Module Pool cujo nome é SAPMZSD001 será MZSD001TOP.

107

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Cria Dialog Program

154

 

-Nos atributos do programa, você define o Título, categoria e a aplicação. Categoria é Module Pool e Aplicação é BASE

108

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar tela em Dialog Dia log Pro Progra gram m

155

 

- Criar tela no Dialog Program: Posicionar o cursor no nome do programa e clicar o botão direto do mouse

109

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar tela em Dialog Program 1 - Digitar Digitar o numero numero da tela

156

 

110

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar tela Dialog Program

157

 

- Nos atributos da tela, digitar a descrição da tela. - Escolha a opção NORMAL, e especifique o número da próxima tela (se necessário, no momento da execução, o sistema desviará para o número da tela indicado nesse campo, caso esteja preenchido).

111

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar tela Dialog Program Clica no ícone

158

 

- Para desenhar telas, utilize o Screen Painter. - A interface do Screen Painter Gráfico contém funções easy-to-use para definição de diversos elementos da tela (ex: campos de entrada/saída, labels, boxes, botões, etc). Você escolhe cada elemento e os posiciona na tela utilizando o mouse. - Para deletar elementos da tela, é necessário selecionar cada elemento com o mouse (foco) e pressionar delete. - É possível também mover os elementos el ementos gráficos pela tela, somente clicando e arrastando o mesmo. -Na tela acima para digitar a constante ‘Código do Funcionário’ utilizamos o ícone

e digitamos esta literal no campo

para digitar o campo variável utilizamos o ícone ferramentas.

e da barra de

112

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Exemplo: Criar tela 200

159

 

-Duplo click no campo variável e então aparece a janela de atributos do campo, no nome do campo, foi digitado o nome de uma tabela e campo, então digita enter e aparece uma pergunta se este campo está associado ao Dicionário. - No nosso exemplo este campo está associado ao dicionário, através desta table ZFUNC01. - Não esquecer de ativar a tela.

113

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar tela – Declarar ariáveis

160

 

- No processamento do diálogo, os dados são passados entre as telas e programas ABAP durante a execução. O sistema efetua a comunicação automaticamente, mas é necessário que seja utilizado o nome idêntico dos campos nas telas e no module pool. - Defina os dados globais no TOP include. Para que todas as telas possam “enxergá-lo”.

114

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar Tela – Criar Modules

161

 

-Observe no exemplo acima que ‘clicando’ na tela 100, aparece o fluxo lógico da tela 0100 (PBO e PAI). - Os modules e estão stão comentados, caso utilize, tirar os comentários e os modules serão criados em includes. - Durante o processo de criação dos módulos PAI e/ou PBO, você vo cê pode associá-los aos includes desejados ou deixar que o sistema automaticamente faça isto por você. Neste caso os módulos no PBO serão criados nos includes com o sufixo I01  (xxxxxI01), e os do PAI, nos includes com sufixo O01  (xxxxxO01). - Nos Flow Logics não são permitidos palavras reservadas (IF, PERFORM, WHILE etc) da mesma forma em que são permitidos nos programas. O Flow Logic, embora se pareça muito com o programa (o editor é o mesmo), não tem o mesmo comportamento. Ele é usado basicamente para ordenar o processamento da tela, e para isso são criados os MODULES, que têm uma função análoga à do PERFORM. - Para criarmos um MODULE, escreva o seu nome no flow logic no lugar desejado e efetue um double-click. O sistema criará uma sub-rotina iniciando com MODULE e terminando com ENDMODULE no include apropriado. Isto pode ser facilmente observado efetuando uma navegação pelo include. - Se não existirem includes, o sistema poderá criar um (se você permitir) ou poderá incluir a sub-rotina no programa principal (o que aliás, não é recomendado).

115

© by BBKO Consulting

 

 Academia – SAP/ABAP R3 -Tirar das linhas o comentário e atribuir algum código ao GUI status e ao GUI title, no exemplo acima foi atribuído o ‘0100’.

Programação On-line - Criar Modules

162

 

163

 

Programação On-line - Criar Modules

116

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - GUI Tit Title le e GUI GUI Status

168

 

- Usa-se o Menu Painter para definir funções na tela em um status particular e associá-los a um apropriado menu, a saber: menu bar, standard toolbar e application toolbar. - Pode-se também definir um título para a tela. - Em geral, define-se um menu bar para cada dialog program e associa-se esse menu bar a um status. Para todos os status, define-se qual função estará ativa/inativa. - Cada alteração nos status (menus) deve ser seguida de uma re-geração da tela completa. - Para associar um status e um título a uma tela, isto deve ser feito no seu PBO, usando o comando SET PF-STATUS e SET TITLEBAR, respectivamente.

117

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criação de GUI Status

165

 

166

 

Programação On-line - Criar GUI Status – Barra de Menu

118

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar GUI Status – Barra de Botões

167

 

-Você pode criar botões associados aos ‘Códigos’ criados na Barra de Menu ou não. cria botões, você pode associar a uma tecla de função - Quando

119

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Criar GUI Title

168

 

-Você pode usar até nove variáveis no título. Veja abaixo o Module chamando o titlebar ‘CONS’ passando a variável código do funcionário.

120

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Fluxo Lógico – tela 100

169

Código dos Modules, acima:

 

121

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Fluxo Lógico – tela 100

169

Código dos Modules, acima:

 

122

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Fluxo Lógico – tela 200

170

-Segue

 

123

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Fluxo Lógico – tela 200

170

-Segue

 

124

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Organização do Programa

Sub-Rotinas PAI PBO Declarações Globais

171

 

172

 

Criar transação para On-Line

125

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Criar transação para On-Line

173

 

- Para executar programa tipo ‘M’ (Module Pool) você deve criar pelo menos uma transação.

126

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Programação On-line - Transação  – ZFUNC01 – tela 100

174

 

175

 

Programação On-line - Tela 200 Consulta

127

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Apêndice A – Programação On-Line

Os Componentes Principais de um Dialog Program (On-line)  Você telas. usa o Screen Paiter e o Menu Painter para criar e desenhar telas modelas e programas de  Você define o processamento lógico no module pool do programa ABAP/4 ABAP/4 . Estruturas de dados são definidas no Dicionário ABAP/4. Você pode acessar esses estruturas do programa ABAP/4 e quando define campos de tela. O processador de diálogo controla o fluxo do seus programa diálogo.

Screen Painter - ABAP/4 Para criar uma tela, siga os seguintes passos: o  Defina as características básicas da tela (screen atributes) o  Projete um layout de tela (in full screen editor) o  Defina os atributos dos campos (field list) o  Escreva o fluxo lógico da tela (programa) Os componentes do ou programa ABAP/4 mais importantes são encontrados seguintesdata) objetos: o  Global data Estruturas do Dicionário Dici onário no programa include TOP nos (declarações ( declarações o  Module PBO (Process Before Output – Processos antes de Apresentar a Tela) o  Module PAI (Process After Input – Processos após Entrada de Dados) o  Sub-rotinas (se necessário)

Comunicação: Tela

ABAP/4 module Pool

O fluxo lógico da tela é dividido em dois eventos para cada tela: o  O evento PBO é executado antes da tela ser apresentada. o  O evento PAI é executado após o usuário pressionar ENTER. O sistema processa os módulos de evento numa seqüência Em cada módulo, o controle passa do processador de diálogo para o processador ABAP/4. Depois do processamento, o controle é retornado para o processador de diálogo. Quando módulos do são PBOcopiados forem processados, o conteúdo dos nome campos área trabalho todos (workos área) ABAP/4 para os campos de mesmo da da área de de trabalho (work área) da tela.  Antes do módulo PAI é processado. O conteúdo dos campos na área de trabalho da tela tela (work área) são copiados co piados para campos de mesmo nome na área de trabalho (work ( work área) ABAP/4.

Definindo o Layout (Graphical Screen Painter) Para projetar telas, você usa o Screen Painter.  A interface do Graphical Screen Painter contém funções funções fáceis de usar para definir definir os vários elementos da tela (ex.: campos de entrada e saída, campos textos, caixas, etc.). Você escolhe cada elemento da tela e posiciona na tela usando o mouse. Para deletar elementos da tela, você seleciona o elemento com o mouse e então escolhe Delete . Para mover elementos da tela, você usa o mouse para arrastar o elemento para a posição desejada.

© by BBKO Consulting

128

 

 Academia – SAP/ABAP R3 Note:: Note

Na versão 3.0, a Graphical Screen Painter é suportada pelo W Windows indows NT, Windows 9x e UNIX. Se você está usando outro sistema operacional, você usa a Alphanumeric Screen Painter.

129

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

 Visualizaçõess de Listas de Campo (Fi  Visualizaçõe (Field eld List Views) Views) ü ü ü ü

       

Field types Texts/templates General attributes Display attributes

ü   Modification groups ü   Matchcode/reference

Há seis visualizações de listas de campos para manutenção dos atributos dos dos campos da tela.  Alternativamente, você pode defini-los defini-los de uma das listas. Manutenção de atributos atributos para um campo também é possível po ssível no fullscreen editor.  Você pode descobrir o correspondente do tipo de dado externo para o tipo de dado interno (ex.: tipos de dados ABAP/4) pela referida documentação da palavra chave TABLES no ABAP/4. Exemplos são os seguintes: Tipo de dados do dicionário ABAP/4 CHAR NUMC

Tipo de dados no ABAP/4 C N

Definindo o controle do fluxo PORCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE READ_SPFLI.

 Você especifica a definição de seus Módulos de comandos comandos na lógica do fluxo. Se você escolhe um módulo mó dulo com duplo clique, o sistema cria os comandos adequados MODULE ... ENDMODULE no programa include apropriado. Este é conhecido como navegação adiantada. Se não existe o programa include, o sistema criará um se você permitir. Ele também insere um comando INCLUDE no programa principal.

Processando o MODULE POOL MODULE INITIALIZE OUTPUT. CLEAR SPFLI. ENDMODULE. MODULE READ_SPFLI INPUT. SELECT SINGLE * FROM SPFLI WHERE CARRID = SPFLI-CARRID S PFLI-CARRID AND CONNID = SPFLI-CONNID. . . . ENDMODULE.

Os comandos do ABAP/4 do MODULE para PBO contém uma adição OUTPUT, quando os comandos do módulo for do módulo PAI contém uma adição INPUT.

130

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Definindo campos no MODULE POOL Top include MTALATOP PROGRAM SAPMTALA. TABLES: SPFLI. DATA: ... .

OU GLOBAL DATA DATA: ... .

No processamento de diálogo, o dado é passado entre as telas e o processamento do programa  ABAP/4. O sistema executa executa esta comunicação automaticamente, automaticamente, mas você deve usar nomes idênticos nas telas e no MODULE POOL. Defina os campos relevantes como dados globais no programa include TOP. Para fazer isso, você processa o programa include como um todo ou relacionando seções de dados globais ou estruturas do Dicionário. Mesmo que, o programa include TOP está implicitamente no controle.

Definindo chamadas (Códigos de Transação) STMP

Programs SAPMTALA

Create Escolher

Transactions Código de Transação Tipo de Transação Continue Transaction code text Program Screen number

TALA  TALA   X  X  Dialog transaction  transaction  TALA TALA  Test     Test SAPMTALA   SAPMTALA 100   100

 Você pode iniciar um programa de diálogo ABAP/4 ABAP/4 (transação) com um específico código de transação. Tansações customizadas devem começar com Z ou Y. O sistema cria suas especificações na tabela TSTC (ao invés de criar uma transação na lista de objetos, você pode dar manutenção na tabela você mesmo)

Checagem automática de campo de Entrada  Após o usuário ter finalizado uma tela (ex. (ex. ter entrado dados e pressionado a tecla ENTER ou ter acionado alguma outra função), masnúmero antes dos módulos doautomáticas. PAI serem processados, o processador de diálogo executa um de checagens

O primeiro destes s ser certificado são os campos requeridos na entrada de dados.

131

© by BBKO Consulting

 

 Academia – SAP/ABAP R3  

Uma chave estrangeira é executada somente se um campo da tela se referir a um campo do Dicionário pela qual a checagem da tabela tem de estar definida e o atributo apropriado tem de estar selecionado. Em algum momento, a funcionalidade F4 é ativada. Isso significa que é possível a entrada de dados para um campo. Ex.: a chave de valores da tabela de checagem – são apresentadas.

Checando campo de entrada no MODULE POOL com diálogo de erro PROCESS AFTER INPUT. FIELD MODULE .

MODULE module INPUT. . . . MESSAGE E... . ENDMODULE.

Se você quer checar valores de entrada no MODULE POOL e iniciar um diálogo de erro de um resultado negativo,é executado você usa osomente FIELD FIELD com a especificado adição MODULE. Isto significa relevante módulo scomando omente para o campo no comando FIELD.que o Se o módulo resulta numa mensagem de erro (E) ou warning (W), a tela é reapresentada sem o processamento dos módulos PBO. O texto da mensagem é apresentado e somente o campo checado por este módulo é apresentado para entrada de dados novamente. Note que somente o comando FIELD é responsável por fazer a leitura do campo para entrada novamente. Se você formular uma mensagem num m módulo ódulo sem chamar o módul móduloo no comando FIELD, a mensagem é apresentada, mas o campo não é lido l ido para entrada de dados novamente.

Checando Grupo de Campos PROCESS AFTER INPUT. CHAIN. FIELD: screen field1, screen field2, ... screen fieldn. MODULE module. ENDCHAIN. MODULE module INPUT. ... MESSAGE E ... . ENDMODULE.

Se você quer checar muitos campos para entrada de dados dados novamente no evento de um erro de diálogo, você deve especificar todos no comando FIELD e concatenar estes junto com o comando MODULE para checagem no CHAIN. Um campo pode ser s er usado em diferentes CHAINs. Note que oumcomando FIELDmodificado não somente faz aoleitura para entrada de dados novamente. Qualquer dos campos durante processamento do PAI somente se torna visíveis

no evento do erro se eles são também especificados no comando FIELD do referido CHAIN.

© by BBKO Consulting

132

 

 Academia – SAP/ABAP R3  

Lendo Códigos de Função em Programas Cada botão deve ter um código de função Quando o usuário pressionar o botão, o módulo PAI é acionado. Quando o usuário chama uma função (pelo significado do botão, menu de entrada ou tecla de função), o código de função aparece no campo que você entra no na lista de campo que os atributos pré-definidos de tamanho 4 e formato OK. Isto é conhecido como campo de OK code. Poder reagir a um código de função no module mo dule pool do ABAP/4, você define um identificador nomeado Ok code. Este contém o código da função atual depois do campo ter sido transportado.  Você está recomendado a usar uma versão de backup do campo de okcode para evitar enviar uma tela que já tem um código códi go de função.

Seqüência Dinâmica de Tela: Overview O verview  Você pode modificar uma seqüência de tela dinamicamente dinamicamente por o  Usando SET SCREEN para atualizar a próxima tela temporariamente o  Usando CALL SCREEN para inserir um processamento de uma ou mais telas antes da tela atual. O processamento da tela atual continua com os comandos após esta chamada.

 Ajustando a Próxima Próxima Tela Din Dinamicamente amicamente O comando SET SCREEN nnnn altera temporariamente a próxima tela.  A tela nnnn deve ter uma tela no mesmo module pool.  A próxima tela é processada depois depois da tela atual, a menos que você termine a tela tela atual com o comando LEAVE SCREEN. Se você quer encerrar a tela atual e ir diretamente diretamente para a próxima tela num único passo, você pode usar o comando LEAVE TO SCREEN nnn. nnn.

Menu Painter - Overview  Você usa o Menu Painter para definir funções na tela no no stautus particular e determina-a determina-ass para a barra de menus própria. Para cada status, você define que as funções de menu estão ativas ou inativas.

Definindo a Interface I Numa request, o sistema propõe valores padrões para barra de menu e define a tecla de função, mas você pode modificar isso. Barras de menu podem conter até oito menus. Você pode definir até seis destes, mas os menus System e Help são adicionados automaticamente pelo sistema. Um único menu contém até 15 entradas, incluindo as funções e suas descrições, nomes de submenus e linhas li nhas separadoras.  Você poderia especificar também todas as funções funções que são ativadas num status como ativa na barra de menu.

133

© by BBKO Consulting

 

 Academia – SAP/ABAP R3

Definindo a Interface II  Você determina as funções ativas que um usuário provavelmente provavelmente mais precisa no situação atual atual para a barra de botões. Antes de você fazer isso, o código de função deve ser determinado para uma tecla de função.  Você determina códigos de função para teclas de função função pelas entradas destas em “Configurações Recomendadas Recomendadas de Teclas de Funções” ou “Seções de Teclas de Função Definidas Livremente”   . O sistema automaticamente define as teclas de função no padrão barra de ferramentas para teclas de função especial. es pecial.

Definição Automática de Ícones para Teclas de Função Tecla de Função Enter F11 F3 Shift+F3 F12 Ctrl+P Ctrl+F Ctrl+G Ctrl+Screen up Screen up Screen down Ctrl+Screen down F1

Significado Enter Salvar Voltar Sair (programa) Cancelar (tela) Imprimir Pesquisar Continuar Pesquisando Primeira Página Página Anterior Próxima Página Última Página Help

Icon (Símbolo) “ticado” Pasta Seta p/ a esquerda Seta p/ cima X” Impressora Binóculo Binóculo “+” Página com seta dupla Página com seta p/ cima Página com seta p/ baixo Página com seta dupla Interrogação

O sistema define automaticamente códigos de função que você define na barra de ferramentas padrão para teclas de função especial. Para descobrir quais definições aplicadas para as funções no status atual, clique no termo “Barra de Ferramentas Padrão”. 

Definindo Menus de Área Quando for dar manutenção em Menus de Área (que são desenvolvimentos de objetos de

classes), você usa uma versão especial do Menu Painter. Aqui, você define os códigos de transação para programas diálogos chamados ao invés i nvés de especificar códigos de função. Esses códigos de transação não têm tipos especiais de função. Eles trabalham como CALL TRANSACTION.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF