SD_18_Userexits

Preview:

DESCRIPTION

Abap_Funcional

Citation preview

Desenvolvimentos e modificações em ABAP

Instrutor: Aparecido Pereira Borges

Aparecidoborges@uol.com.br

Modificações

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

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

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

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

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

Enhancements

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.

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

Enhancements - Customer exit

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

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.

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

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 -

Enhancement

Documentação SAP

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

Enhancements - Customer exitTransação CMOD -

Componentes(Function exits)

Enhancements - Customer exitTransação CMOD -

Como procurar um customer exit para um programa standard ?

1 - Procurar nome do programa

Exemplo: ME22

Enhancements - Customer exit

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

CMOD

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

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

Nome do programa entre “*”

(asterisco)

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

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 ?

Enhancements - User exit

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

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

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

Enhancements - Field exit

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

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

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 ?

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

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

Enhancements - Field exit

Como localizar um field-exit já criado ?

2 - Saltar para tela de field-exits

CMOD

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.

Enhancements - Table enhancement

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”

Enhancements - Table enhancements

Exemplo de uma ampliação na tabela VBAK

Estrutura anexada com a

opção .APPEND

Enhancements - Text enhancement

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

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

Enhancements - Text enhancements

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

Enhancements - Text enhancements

Text enhancement - Consulta de textos já alterados

Enhancements - Text enhancements

Text enhancement - Consulta de textos já alterados

Enhancements - Text enhancements

Posicionar no campo

Alterna entre texto original SAP e texto

modificado

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

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.

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

Enhancements - Fórmulas, requerimentos ...

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

Condição de preço

Valor da condição

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

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

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.

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

Enhancements - BTE

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