53
Desenvolvimentos e modificações em ABAP Instrutor: Aparecido Pereira Borges [email protected]

SD_18_Userexits

Embed Size (px)

DESCRIPTION

Abap_Funcional

Citation preview

Page 1: SD_18_Userexits

Desenvolvimentos e modificações em ABAP

Instrutor: Aparecido Pereira Borges

[email protected]

Page 2: SD_18_Userexits

Modificações

Page 3: SD_18_Userexits

Modificações

Alterações no sistema SAP:

Buscar solução OSSBuscar solução OSS

Enhancements (Ampliações)Enhancements (Ampliações)

Desenvolvimento de programa para complementar o standardDesenvolvimento de programa para complementar o standard

Solicitação de um novo enhancement para SAPSolicitação de um novo enhancement para SAP

Copia de programa standardCopia de programa standard

Alteração de programa standardAlteração de programa standard

CustomizingCustomizing

Page 4: SD_18_Userexits

Cópia de programa standard - Considerações

Modificações

1 - Por ser uma cópia, as alterações não irão afetar os outros países.

2 - Não terá as correções de OSS ou Hot Packages

3 - Durante a aplicação dos Hot Packages, pode haver a necessidade de refazer a cópia. (Com certeza, terá que ser analisada / testada)

4 - Durante o upgrade, a cópia deverá ser refeita, para adaptar-se às mudanças da nova versão. Dependendo das mudanças do upgrade, a alteração pode não ser mais aplicável

5 - A SAP não se responsabiliza por cópias de programas. Portanto, perde-se o suporte da SAP para este programa.

6- Deve ser considerado como último recurso

Page 5: SD_18_Userexits

Modificações

Alteração de programa standard - Considerações

1 - Deverá passar por avaliação e aprovação dos Process e Development experts.

2 - As alterações irão afetar os outros países.

3 - Durante a aplicação dos Hot Packages, há a possibilidade da SAP apagar esta alteração (sobreposição de programa). Neste caso, será necessário refazer a alteração. Independente disso, ela terá que ser analisada / testada

4 - Durante o upgrade, a alteração deverá ser refeita, para adaptar-se às mudanças da nova versão. Dependendo das mudanças do upgrade, a alteração pode não ser mais aplicável.

5 - A SAP não se responsabiliza por programas alterados. Portanto, perde-se o suporte da SAP para este programa.

6- Não deve ser considerado como opção de solução

Page 6: SD_18_Userexits

ModificaçõesCriação de programa complementar - Exemplo: É necessário incluir a organização de vendas na tela de seleção da transação VKM4

Page 7: SD_18_Userexits

ModificaçõesCriação de programa complementar - Solução do exemplo: Foi criado um programa ABAP que busca todos os pedidos de uma org. vendas e transporta os seus números para a VKM4 no campo “Documento SD”

Programa ABAP

Pedidos

VKM4

Número de documentos

Page 8: SD_18_Userexits

Enhancements

Page 9: SD_18_Userexits

EnhancementsEnhancements (Ampliações), são aberturas do sistema disponibilizadas pela SAP para fazer customização nos programas, telas, menus e tabelas.

1 - Se desenvolvida corretamente, as alterações não irão afetar os outros países.

2 - A aplicação de Hot Packages não irá apagar as alterações

3 - Durante o upgrade, a alteração não será apagada pela SAP, porém será necessário analisa-la / testa-la.

4 - A alteração é feita em uma área permitida pela SAP. Portanto, o suporte SAP para o programa está mantido.

Page 10: SD_18_Userexits

Tipos de enhancements -

1 - Customer exit

•Function module exit•Screen exit•Menu exit•Include tables

2 - User exit (SD)

3 - Field exit

4 - Table enhancements

5 - Text enhancements

6 - Fórmulas, requerimentos, controle de cópias (SD, MM, LIS, SOP)

7 - BTE - Business Transaction Events (FI)

Enhancements

Page 11: SD_18_Userexits

Enhancements - Customer exit

Page 12: SD_18_Userexits

Enhancements - Customer exitFunction module exit- São function modules criadas pela SAP, onde pode ser implementada a rotina adicional necessária.

Instrução 1Instrução 2

Call Customer-Function '001'Exporting ...Importing ...

Instrução 3...Instrução 800

Call Customer Function '002'Exporting ...Importing ...

Instrução 1Instrução 2

Call Customer-Function '001'Exporting ...Importing ...

Instrução 3...Instrução 800

Call Customer Function '002'Exporting ...Importing ...

Rotina do ClienteRotina do Cliente

Programa : SAPLL03AFunção: EXIT_SAPLL03A_001

VazioVazio

Função: EXIT_SAPLL03A_002

Page 13: SD_18_Userexits

Enhancements - Customer exit

Screen exit - Permite incluir campos na tela de um programa.

Menú exit - Permite incluir um menú do Cliente em um menú standard.

Include table - Permite incluir campos em tabelas. Esta opção somente pode ser usada se for disponibilizada pela SAP.

Page 14: SD_18_Userexits

Transação CMOD -

Enhancement AEnhancement A

Projeto AProjeto A

CMODCMOD

Componente AComponente A

Projeto BProjeto B

Enhancement BEnhancement B

Enhancement CEnhancement C

Componente BComponente B

Componente CComponente C

Componente DComponente D

Componente FComponente F

Function-exit

Function-exit

Function-exit

Screen-exit

Componente EComponente E Include table

Function-exit

Ativação/ desativação

Documentação SAP

Criado por SAPCriado por ?????

Programas

Enhancements - Customer exit

Page 15: SD_18_Userexits

Nome do projeto

Ativa/desativa o projeto

Importante: Se o projeto estiver desativado, nenhum de seus componentes serão processados.

Enhancement

Documentação criada pelo

Cliente

Enhancements - Customer exitTransação CMOD -

Page 16: SD_18_Userexits

Enhancement

Documentação SAP

Nota: A documentação somente aparece se você fez o login no idioma inglês.

Enhancements - Customer exitTransação CMOD -

Page 17: SD_18_Userexits

Componentes(Function exits)

Enhancements - Customer exitTransação CMOD -

Page 18: SD_18_Userexits

Como procurar um customer exit para um programa standard ?

1 - Procurar nome do programa

Exemplo: ME22

Enhancements - Customer exit

Page 19: SD_18_Userexits

2 - Procurar ampliações (enhancements) para este programa

CMOD

Enhancements - Customer exitComo procurar um customer exit para um programa standard ?

Page 20: SD_18_Userexits

2 - Procurar enhancements (ampliações) para este programa

Nome do programa entre “*”

(asterisco)

Enhancements - Customer exitComo procurar um customer exit para um programa standard ?

Page 21: SD_18_Userexits

3 - Verificar na documentação de cada enhancement (ampliação) se ele atende a necessidade.

Ampliaçõesdisponíveis

Consultar a documentação de cada ampliação.

Lembrete: Fazer login em inglês

Passar o nome da ampliação escolhida para o desenvolvedor.

Algumas documentações do SAP já informam este nome

Enhancements - Customer exitComo procurar um customer exit para um programa standard ?

Page 22: SD_18_Userexits

Enhancements - User exit

Page 23: SD_18_Userexits

Enhancements - User exitUser exit - Está disponível somente para o módulo de SD. Possui a mesma finalidade do customer exit, porém utiliza um método mais antigo. As alterações são feitas diretamente em “Includes” disponibilizados pela SAP. Neste caso não se usa a transação CMOD. Obs.: O módulo SD também possui customer-exits.

Instrução 1Instrução 2

Perform userexit_check_vbak.

Instrução 3...Instrução 800

Perform userexit_save_document.

Instrução 1Instrução 2

Perform userexit_check_vbak.

Instrução 3...Instrução 800

Perform userexit_save_document.

Form userexit_check_vbak.

Rotina_Cliente.

Endform.

Form userexit_check_vbak.

Rotina_Cliente.

Endform.

Programa: SAPMV45AInclude: MV45AFZB

Form userexit_save_document.

Endform.

Form userexit_save_document.

Endform.

Include: MV45AFZZ

Page 24: SD_18_Userexits

Enhancements - User exitUser exit - Como procurar um user-exit ?

1 - Pesquisar todos os programas que pertencem à classe de desenvolvimento “VMOD”

SE80

Includes que contém user-exits

Page 25: SD_18_Userexits

Enhancements - User exitUser exit - Como procurar um user-exit ?

2 - Cada include possui várias rotinas de user-exit. Cada rotina possui uma breve descrição de sua finalidade. Existe pouca documentação SAP para este tipo de user-exit.

Include MV45AFZZ

Page 26: SD_18_Userexits

Enhancements - Field exit

Page 27: SD_18_Userexits

Enhancements - Field exitField exit - Rotina disponibilizada para fazer tratamento em um campo específico da tela.

•Está disponível para todos os campos de qualquer tela (Module Pools) com referência a um elemento de dados (ver F1/F9).

•Campos protegidos para digitação não possuem field-exit.

FIELD-EXITFIELD-EXITPROGRAMAPROGRAMA

Page 28: SD_18_Userexits

Enhancements - Field exit

1 - Obrigar digitação de um campo

2 - Consistir campos

3 - Alterar o conteúdo digitado•Adicionar máscara (99.999.999/9999-99, 99999-999 ...)•Converter para maiúsculas / minúsculas•Completar com zeros•Alinhar para esquerda / direita, centralizar•Converter código para nome•Etc.

4 - Definir valor default

5 - Verificar se o conteúdo digitado existe em uma tabela

6 - Verificar autorizações

O que pode ser feito ? - sugestões

Page 29: SD_18_Userexits

Enhancements - Field exit

1 - Exibir mensagens “I” (informação) ou “W” (advertência). Somente é permitido usar mensagens “E” (erro).

2 - Chamar outra tela, matchcode ou tela de aviso/confirmação.

3 - Mudar atributo de campo obrigatório para opcional.

O que NÃO pode ser feito ?

Page 30: SD_18_Userexits

Enhancements - Field exit

Field-exit x User-exit/Customer exit

Field-exitField-exit

Início

Instrução 1Instrução 2

Perform xxxxx

Instrução 3

Call customer

Início

Instrução 1Instrução 2

Perform xxxxx

Instrução 3

Call customer

Campo A

Field-exitField-exit

User-exitUser-exit

Customer exit

Customer exit

Campo B

Mensagem

Mensagem

Campos

Programa

Page 31: SD_18_Userexits

Enhancements - Field exit

Como localizar um field-exit já criado ?

Exemplo: ME21

1 - Identificar o elemento de dados do campo e o nome do programa/ nr. tela

Page 32: SD_18_Userexits

Enhancements - Field exit

Como localizar um field-exit já criado ?

2 - Saltar para tela de field-exits

CMOD

Page 33: SD_18_Userexits

Enhancements - Field exit

Como localizar um field-exit já criado ?

3 - Marcar o elemento de dados desejado e visualizar o programa.

Visualiza o programa do

Field-exit

Marcar

Nesta tela estão todos os field exits já criados para o Ambiente do cliente. Outros field-exits poderão ser acrescentados.

Page 34: SD_18_Userexits

Enhancements - Table enhancement

Page 35: SD_18_Userexits

Enhancements - Table enhancementsTable enhancement - Permite adicionar campos em tabelas/estruturas standard.

A adição não é feita diretamente na tabela standard. É necessário criar uma estrutura e então anexá-la a tabela. O SAP anexa esta estrutura com a opção “.APPEND”

Page 36: SD_18_Userexits

Enhancements - Table enhancements

Exemplo de uma ampliação na tabela VBAK

Estrutura anexada com a

opção .APPEND

Page 37: SD_18_Userexits

Enhancements - Text enhancement

Page 38: SD_18_Userexits

Enhancements - Text enhancementsText enhancement - Permite alterar a descrição de campos (ou sua documentação - F1) nas transações SAP.

Page 39: SD_18_Userexits

Enhancements - Text enhancements

Text enhancement - Alteração de descrição de campos

1 - Obter o nome do elemento de dados do campo (F1/F9)

2 - Utilizar a transação CMODDigitar o Idioma e

elemento de dados do campo

Page 40: SD_18_Userexits

Enhancements - Text enhancements

Text enhancement - Alteração de descrição de campos

Page 41: SD_18_Userexits

Enhancements - Text enhancements

Text enhancement - Consulta de textos já alterados

Page 42: SD_18_Userexits

Enhancements - Text enhancements

Text enhancement - Consulta de textos já alterados

Page 43: SD_18_Userexits

Enhancements - Text enhancements

Posicionar no campo

Alterna entre texto original SAP e texto

modificado

Page 44: SD_18_Userexits

Enhancements - Fórmulas, Requerimentos, Controle de Cópias

Page 45: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

São rotinas ABAP que complementam as configurações (customizing) de:

•Esquemas de determinação de preço (pricing SD/MM)

•Regras de atualização de dados reais em estruturas LIS (Logistic Information System) ou SOP (Sales & Operations Planning)

Fórmula - Rotina para calcular/converter valores ou quantidades.

Requerimento - Definição de pré-requisitos para a execução de uma rotina subsequente.

Controle de cópia - Determinação de regras para cópia de dados entre documentos Na criação de um documento com referência a outro, pode-se modificar o conteúdo de alguns campos durante a cópia.

Page 46: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

Fórmulas e requerimentos - Exemplo 1, atualização de uma estrutura SOP / LIS

Req 1Req 1Atualizar estruturaAtualizar estrutura

Form 1Form 1 S701

Req 2Req 2Atualizar estruturaAtualizar estrutura

S702

Atualizar estruturaAtualizar estrutura

Form 1Form 1 S703

S701

S702

S703

VF01

(Criação de

faturas)

VF01

(Criação de

faturas)

Update rules (Regras de atualização)

Fatura

Req xReq x

Form xForm x

= Requerimento

= Fórmula

Page 47: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

Fórmulas e requerimentos - Exemplo 2, Pricing (MM/SD)

Condição de preço

Valor da condição

Page 48: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

Fórmulas e requerimentos - Exemplo 2, Pricing (MM/SD)

Req 1Req 1 Criar condição

Criar condição

ZBPR

INDX

ICMI

VF01

ou

ME21

VF01

ou

ME21

Rotina de Pricing (Determinação de preço)

Criar condição

Criar condição Form 1Form 1

Criar condição

Criar condição

Criar condição

Criar condição Form 2Form 2

Criar condição

Criar condição

Req 2Req 2

Req 3Req 3

ZENC

FOBX

ZBPRZBPR123.456,78123.456,78

INDXINDX456,78456,78

ZENCZENC0,000,00

ICMIICMI3.456,783.456,78

Tela de Pricing

Page 49: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

Controle de cópia - Exemplo 1, Criação de fatura

Copiardados

Copiardados

Req 1Req 1

Copiardados

Copiardados

Cabeçalho

VF01 (Criação de fatura)

Remessa

Item 1

Item 2 Req 1Req 1

Copiardados

Copiardados

Copiardados

CopiardadosItem 3 Req 1Req 1

Controle cópia 1Controle cópia 1 CabeçalhoCabeçalho

Item 1Item 1

Item 2Item 2

Fatura

Page 50: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

Transação VOFM - Transação para consulta e criação de novas rotinas. (Controle de cópia e Requerimentos/Fórmulas para pricing).

Requerimento para controle

de cópia

Controle de cópia Requerimentos

Fórmulas

1 - A SAP já disponibiliza várias rotinas prontas.2 - Novas rotinas devem ser criadas com numeração de 900 a 999.

Page 51: SD_18_Userexits

Enhancements - Fórmulas, requerimentos ...

Transação MC1B/MC1D - Transações para consulta e criação de novas rotinas para Update Rules (LIS / SOP)

1 - A SAP já disponibiliza várias rotinas prontas.2 - Novas rotinas devem ser criadas com numeração de 900 a 999.

MC1B MC1D

Requerimentos Fórmulas

Page 52: SD_18_Userexits

Enhancements - BTE

Page 53: SD_18_Userexits

Enhancements - BTE

BTE - (Business Transaction Events) Enhancement criado pela SAP principalmente para o módulo de FI. Permite processar rotinas do Cliente quando um evento é disparado.

A tabela TBE01 contém alguns eventos pre-determinados pela SAP.

Número do evento

Exemplo de Function Module

de para tratar este evento