Ir para o conteúdo

Guia de Execução SAP BAPI 3.3

Visão Geral

Este guia descreve o processo de execução dos módulos de função SAP BAPI do Vinyl. O que é BAPI?

A tecnologia BAPI (Business Application Programming Interface) é a principal tecnologia API disponível para os clientes lerem e atualizarem dados, que podem ser chamados de dentro do SAP ou externamente usando o protocolo RFC e a tecnologia ALE/IDoc (https://wiki.scn.sap.com/wiki/display/ABAP/BAPI?original_fqdn=wiki.sdn.sap.com&BAPI-Introduction).

BAPIs são definidos no SAP Business Object Repository (BOR) como métodos de tipos de objetos de negócios SAP que executam funções de negócios específicas. Eles são implementados como módulos de função habilitada para RFC (Remote Function Call) e são criado no Function Builder do ABAP Workbench.

Requisitos de Vinyl

Um pacote de software Vinyl incluindo os componentes SAP adicionais deve ser instalado em sua instância para conectar-se ao SAP e executar BAPIs. O nome do arquivo zip do Vinyl incluirá ThirdPartySAP no final da versão (ou seja, Vinyl-3.3.21255ThirdPartySAP.zip). Este pacote possui DLLs SAP (Dynamic Link Libraries) na pasta Vinyl/Bin que são necessárias para conectar-se ao SAP a partir do Vinyl.

Fonte de Dados SAP em Vinyl

É assumida uma fonte de dados SAP em sua instância do Vinyl vinculada à fonte de dados de onde você deseja chamar o BAPI. Se você não configurou uma fonte de dados SAP, consulte esta documentação e configure uma!

Interface gráfica do usuário, texto, descrição do aplicativo gerada automaticamente

BAPIs em Vinyl

O Vinyl utiliza a compilação de tabelas temporárias locais para passar dados ao SAP por meio da execução BAPI. Cada componente da função BAPI é representado por uma tabela intermediária e colunas que contêm valores para os dados correspondentes que o módulo espera. Além das colunas de parâmetros BAPI, o Vinyl depende da definição de colunas específicas que vinculam todas as tabelas intermediárias durante a execução.

Essas colunas específicas do Vinyl são prefixadas com '_' e não são enviadas ao SAP, pois sua finalidade é exclusivamente para preparar a execução do Vinyl. Quando os dados estão preparados e prontos para execução do BAPI, uma ação específica (que será esclarecida abaixo) é chamada e executa o BAPI com o _id coluna determinando qual conjunto de registros será passado.

Nota

Os logs de banco de dados do App Server publicarão cada uma das conexões e execuções SAP, juntamente com dados de parâmetros específicos do BAPI.

Criando Tabelas BAPI de Preparação Local

As tabelas intermediárias podem ser criadas manualmente ou importando a estrutura BAPI por meio da funcionalidade Import Pattern na fonte de dados SAP

Se você decidir criar as tabelas de teste manualmente, você deve ter um entendimento adequado da estrutura e dos parâmetros que o BAPI que você deseja executar possui. A estrutura é crucial para permitir que o Vinyl execute o BAPI.

BAPIs podem ter parâmetros de importação (dados a serem transferidos do Vinyl para SAP) e parâmetros de exportação (dados a serem transferidos do SAP de volta para o Vinyl). BAPIs podem ter uma estrutura pai/filho onde o componente pai contém o nível mais alto de dados e o(s) componente(s) filho(s) mantém um nível mais baixo de dados. A maioria dos BAPIs também terá um /RETURN componente filho que exporta quaisquer mensagens (com êxito ou erros) que fornecerão confirmação ou ajudarão o usuário a diagnosticar e resolver problemas.

Uma tabela de teste para os componentes pai e filho é criada em sua fonte de dados local, onde o nome da tabela filho é prefixado com o nome da tabela pai (ou seja, tabela de teste pai chamada BAPI_PO_CREATE1, tabela intermediária filha chamada BAPI_PO_CREATE1/POHEADER).

Para criação de coluna na tabela intermediária:

  1. Crie _id coluna e defina-o como tipo de dados UUID. Marcar como PK e AutoGenerate.

  2. Se a tabela intermediária for um componente filho, em seguida crie _ParentId coluna e defina-a como UUID. Defina o relacionamento muitos para um com a tabela pai onde a coluna primária _Id links para coluna secundária _ParentId.

  3. A seguir, se a ordem de execução dos registros for crítica, adicione a coluna _index onde um valor de indexação pode ser mantido e referenciado durante a execução.

  4. Em seguida, adicione quaisquer colunas FK locais ou informações úteis de auditoria, prefixadas com _, isso ajudará a referenciar os registros em seu modelo de dados para os registros da tabela BAPI. (ou seja, _POHeaderID nos permitirá consultar dados preparados BAPI com base em um registro de pedido local, _ExecutedOn para rastrear o histórico)

  5. Depois que as colunas específicas do Vinyl forem adicionadas, crie todas as colunas relacionadas ao BAPI refletindo os parâmetros de importação e exportação na função (ou seja, PURCHASEORDER, PO_ITEM, DELIVERY_DATE, QUANTITY, etc.)

Executando BAPI

Para invocar a conformidade dos dados da tabela de preparação e a execução do BAPI sobre RFC, você utilizará uma ação em um evento de objeto de negócios/tabela.

Na versão 2.7 e superior, há uma Ação do Tipo RFC e quatro opções:

  1. BAPI_OBJCL_CHANGE

  2. BAPI_OBJCL_CREATE

  3. BAPI_OBJCL_DELETE

  4. BAPI_TRANSACTION_COMMIT

No Vinyl versão 2.6 e anteriores, a ação usada é do tipo Plugin e chamada Execute BAPI e adicionada ao evento Insert de uma tabela de gatilho recém-criada.

A tabela de gatilhos pode ter qualquer nome (ou seja, BAPITrigger), mas o plug-in exige que colunas específicas sejam definidas para referência durante a execução. Essas colunas são:

anexo

  • BAPITriggerID é um newUUID().

  • SourceDataSourceID é o DataSourceID da fonte de dados local onde residem as tabelas intermediárias.

  • TargetDatasSourceID é o DatasourceID da fonte de dados SAP onde o BAPI será executado.

  • FunctionModule são os nomes dos módulos de função BAPI que você deseja acionar, separados por vírgulas. (BAPI_TRANSACTION_COMMIT está listado como o último módulo, pois confirma as ações BAPI anteriores.)

  • _Id é o FK para a tabela intermediária BAPI e determina qual conjunto de registros será passado para execução

Exemplos de Módulos de Função BAPI

Abaixo estão alguns dos muitos BAPIs que podem ser executados no Vinyl. O componente pai do BAPI é listado por número e cada um dos componentes filhos está listado abaixo dele.

  1. BAPI_PO_CREATE1: Usado para criar um novo pedido de compra

    • /POHEADER, /POHEADERX, /POITEM, /POITEMX, /POSCHEDULE, /POSCHEDULEX, /POCOND, /POCONDX, /POEXPIMPITEM, /POEXPIMPITEMX, /POTEXTHEADER, /EXTENSIONIN
  2. BAPI_PO_CHANGE: usado para atualizar valores em um pedido de compra existente.

    • /POHEADER, /POHEADERX, /POITEM, /POITEMX, /POSCHEDULE, /POSCHEDULEX, /POCOND, /POCONDX, /POEXPIMPITEM, /POEXPIMPITEMX, /POTEXTHEADER, /EXTENSIONIN, /POPARTNER
  3. BAPI_PO_RELEASE: Usado para liberar um PO após manipulá-lo.

  4. BAPI_PO_GETDETAIL: usado para recuperar os valores de notas de cabeçalho e texto no pedido de compra.

    • _PO_GETDETAIL/RETURN, PO_HEADER_TEXTS
  5. BAPI_SALESORDER_CREATEFROMDAT2: Usado para criar pedidos de vendas

    • /ORDER_HEADER_IN, /ORDER_PARTNERS, /ORDER_ITEMS_IN, /ORDER_SCHEDULES_IN, /RETURN
  6. BAPI_CONTRACT_CREATEFROMDATA: Usado para criar contratos

    • /CONTRACT_HEADER_IN, /CONTRACT_PARTNERS, /CONTRACT_PARTNERS, /CONTRACT_ITEMS_IN
  7. BAPI_EXCHANGERATE_GETDETAIL: Usado para recuperar taxas de câmbio.

  8. Z_ADAPT_DATA_EXTRACT: uma função personalizada usada para extrair informações do plano de investimento.