SAP – BAdis – Business add-ins – Abap

Publicado: 10 de junho de 2014 em Abap

BAdis são melhorias para a versão padrão do sistema. Elas podem ser inseridas no sistema SAP para acomodar as necessidades específicas dos utilizadores e serem incluídas no fornecimento Standard. Algumas indústrias específicas muitas vezes exigem funções especiais, a SAP permite que você crie estas funções pré-definidas em seu software utilizando os Business Add-ins.

Para criar uma BAdi siga os seguintes passos:

  1. Entre na transação SE18.
  2. Crie um novo Enhancement Spot chamado: ZDA_BADI_SPOT.
  3. No ícone criar BAdi, crie uma BAdi de nome ZDA_BADI.
  4. Desmarque a opção Multiple Use de sua BAdi:

    ZDA_BADI

    ZDA_BADI

  5. Salve sua BAdi e expanda seu conteúdo.
  6. Clique em interface e insira uma nova interface de nome ZAD_BADI_INTERFACE.
  7. Na aba métodos crie um novo método de instancia chamado GET_DADOS e insira uma descrição de sua escolha:

    Método

    Método

  8. Crie os Parâmetros para sua Interface de acordo com a figura abaixo:

    Parametros

    Parâmetros

  9. Salve e Ative a sua BAdi.
  10. De volta a tela principal da transação SE18, em modo de alteração cheque a opção CALL FALLBACK IF NO IMPLEMENTATION IS EXECUTED, insira o nome da classe como ZDA_CLASSE e salve:

    Classe

    Classe

  11. Você será levado ao Class Builder e verá que sua classe herdou os métodos da interface criada logo acima, dê um duplo clique no método e preencha seu código com o método descrito logo abaixo.
  12. Salve e ative sua classe.
  13. Na transação SE38 crie um programa chamado Z_PROG_BADI e utilize o código abaixo para testar sua BAdi.

Exemplo:

Neste exemplo criamos uma BAdi e a utilizamos em um programa Abap.

Obs: BAdis não devem ser confundidas com BAPIs, existe um post de exemplo de uma BAPI neste site que possui quase a mesma funcionalidade deste exemplo, e modificando a instrução SELECT deste método podemos deixar as funcionalidades idênticas, entretanto BAdis e BAPIs são utilizadas para propósitos diferentes em um sistema SAP.

Abap

Método da classe – ZDA_CLASSE

method ZDA_BADI_INTERFACE~GET_DADOS.

  Select * From SFLIGHT
    INTO TABLE TFLIGHT
    WHERE carrid EQ carrid AND
          connid EQ connid AND
          fldate EQ fldate.

endmethod.

Programa – Z_PROG_BADI

*&---------------------------------------------------------------------*
*& Report  Z_PROG_BADI
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& BAdis - Business Add Ins
*&---------------------------------------------------------------------*

REPORT  Z_PROG_BADI.

* Exemplo de entrada de dados na tabela SFLIGHT
*    airlineid       = 'LH'
*   connectionid    = '0401'
*    flightdate      = '07.03.2014'

* Cria parametros
PARAMETERS:
  empresa TYPE scarr-carrid,   " Airline code
  conexao TYPE sflight-connid, " Connection number
  data    TYPE sflight-fldate. " Flight date

* Declara variaveis
DATA:
t_flight TYPE STANDARD TABLE OF sflight,
dados    LIKE LINE OF t_flight,
badi_flight TYPE REF TO zda_badi.

* Incia seleção
START-OF-SELECTION.

* Acessa objeto Badi
  GET BADI badi_flight.

* Chama BADI
  CALL BADI badi_flight->get_dados
    EXPORTING
      carrid  = empresa
      connid  = conexao
      fldate  = data
    RECEIVING
      tflight = t_flight.

* Imprime dados
  LOOP AT t_flight INTO dados.
    WRITE:
    / dados-carrid,
      dados-connid,
      dados-fldate,
      dados-price,
      dados-PLANETYPE,
      dados-CURRENCY.
  ENDLOOP.
Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s