Saltar al contenido

Guía de Ejecución de SAP BAPI

Descripción General

Esta guía describe el proceso de ejecución de módulos de funciones SAP BAPI desde App Builder¿Qué es BAPI?

La tecnología BAPI (Business Application Programming Interface) es la principal tecnología API disponible para que los clientes lean y actualicen datos, que pueden ser llamados desde dentro de SAP o externamente utilizando el protocolo RFC y la tecnología ALE/IDoc (https://wiki.scn.sap.com/wiki/display/ABAP/BAPI?original_fqdn=wiki.sdn.sap.com&BAPI-Introduction).

Las BAPI se definen en el Business Object Repository (BOR) de SAP como métodos de tipos de objetos de negocio de SAP que llevan a cabo funciones de negocio específicas. Se implementan como módulos de función habilitada para RFC (llamada de función remota) y se crean en el Generador de funciones del Workbench ABAP.

App Builder requisitos

A App Builder el paquete de software que incluye los componentes SAP adicionales debe estar instalado en su instancia para conectarse con SAP y ejecutar BAPI. App Builder el nombre del archivo zip incluirá ThirdPartySAP al final de la versión (es decir, App Builder-3.3.21255ThirdPartySAP.zip). Este paquete tiene DLL de SAP (bibliotecas de vínculos dinámicos) en el App Builder carpeta /Bin que es necesaria para conectarse a SAP desde App Builder.

Fuente de Datos SAP en App Builder

Una fuente de datos SAP en su App Builder se asume que la instancia está vinculada a la fuente de datos desde donde desea llamar a BAPI. Si no ha configurado una fuente de datos de SAP, consulte esta documentación y configure una.

Interfaz gráfica de usuario, texto, descripción de la aplicación generada automáticamente

BAPI en App Builder

App Builder utiliza la compilación de tablas de preparación locales para pasar datos a SAP a través de la ejecución de BAPI. Cada componente de la función BAPI está representado por una tabla de preparación y columnas que contienen valores para los datos correspondientes que espera el módulo. Además, las columnas de parámetros BAPI, App Builder se basa en la definición de columnas específicas que enlace todas las tablas de preparación durante la ejecución.

Estos App Builder las columnas específicas tienen el prefijo '_' y no se envían a SAP, ya que su propósito es únicamente preparar la ejecución desde App Builder cuando los datos están preparados y listos para la ejecución de BAPI, se llama a una acción específica (que se aclarará a continuación) y se ejecuta la BAPI con el _id columna que determina qué conjunto de registros se pasará.

Nota

Los registros de la base de datos del servidor de aplicaciones publicarán cada una de las conexiones y ejecuciones de SAP, junto con los datos de parámetros específicos de BAPI.

Creación de Tablas BAPI de Almacenamiento Local

Las tablas de preparación se pueden crear manualmente o importando la estructura BAPI a través de la funcionalidad Importar patrón en la fuente de datos SAP

Si decide crear las tablas de ensayo manualmente, debe comprender adecuadamente la estructura y los parámetros que tiene la BAPI que desea ejecutar. La estructura es crucial para habilitar App Builder para ejecutar la BAPI.

Las BAPI pueden tener parámetros de importación (datos que se transferirán desde App Builder a SAP) y parámetros de exportación (datos que se transferirán de SAP a App Builder). Las BAPI pueden tener una estructura padre/hijo donde el componente padre contiene el nivel más alto de datos y los componentes hijos contienen un nivel más bajo de datos. La mayoría de las BAPI también tendrán una /RETURN componente secundario que exporta cualquier mensaje (exitoso o de error) que proporcionará confirmación o ayudará al usuario a identificar y solucionar problemas.

Se crea una tabla de preparación para los componentes principal y secundario en su fuente de datos local, donde el nombre de la tabla secundaria tiene como prefijo el nombre de la tabla principal (es decir, la tabla de preparación principal se denomina BAPI_PO_CREATE1, tabla de preparación infantil denominada BAPI_PO_CREATE1/POHEADER).

Para la creación de columnas en la tabla de ensayo:

  1. Crear _id columna y configúrela como tipo de datos UUID. Márquela como PK y genere automáticamente.

  2. Si la tabla de preparación es un componente secundario, cree _ParentId columna y configúrela como UUID. Defina la relación de varios a uno con la tabla principal donde la columna principal _Id enlaces a la columna secundaria _ParentId.

  3. A continuación, si el orden de ejecución de los registros es crítico, agregue la columna _index donde se puede almacenar un valor de indexación y hacer referencia a él durante la ejecución.

  4. A continuación, agregue cualquier columna FK local o información de auditoría útil, con el prefijo _, que ayudará a referenciar los registros en su modelo de datos a los registros de la tabla BAPI. (es decir, _POHeaderID nos permitirá consultar datos almacenados en BAPI en función de un registro de PO local, _ExecutedOnpara rastrear el historial)

  5. Después App Builder se agregan columnas específicas y se crean todas las columnas relacionadas con BAPI que reflejan los parámetros de importación y exportación en la función (es decir, ORDEN DE COMPRA, PO_ITEM, FECHA DE ENTREGA, CANTIDAD, etc.)

Ejecución de BAPI

Para invocar la compilación de datos de la tabla de ensayo y la ejecución de BAPI sobre RFC, utilizará una acción en un evento de tabla/objeto comercial.

Hay una acción de tipo RFC y cuatro opciones:

  1. BAPI_OBJCL_CHANGE

  2. BAPI_OBJCL_CREATE

  3. BAPI_OBJCL_DELETE

  4. BAPI_TRANSACTION_COMMIT

En App Builder versión 2.6 y anteriores, la acción utilizada es del tipo Plugin y se llama Execute BAPI y se agrega al evento Insert de una tabla de desencadenadores recién creada.

La tabla de desencadenadores puede tener cualquier nombre (es decir, BAPITrigger), pero el complemento requiere que se definan columnas específicas para hacer referencia durante la ejecución. Estas columnas son:

adjunto

  • BAPITriggerID es un nuevoUUID().

  • SourceDataSourceID es el DataSourceID de la fuente de datos local donde residen las tablas de ensayo.

  • TargetDatasSourceID es el DatasourceID de la fuente de datos de SAP donde se ejecutará la BAPI.

  • FunctionModule son los nombres de los módulos de función BAPI que desea activar, separados por comas. (BAPI_TRANSACTION_COMMIT aparece como el último módulo, ya que confirma las acciones BAPI anteriores).

  • _Id es la clave principal de la tabla de preparación BAPI y determina qué conjunto de registros se pasará a la ejecución.

Ejemplos de Módulos de Funciones BAPI

A continuación se muestran algunas de las muchas BAPI que se pueden ejecutar desde App Builder el componente principal de la BAPI se enumera por número y cada uno de los componentes secundarios se enumeran debajo de él.

  1. BAPI_PO_CREATE1: Se utiliza para crear una nueva orden de compra

    • /POHEADER, /POHEADERX, /POITEM, /POITEMX, /POSCHEDULE, /POSCHEDULEX, /POCOND, /POCONDX, /POEXPIMPITEM, /POEXPIMPITEMX, /POTEXTHEADER, /EXTENSIONIN
  2. BAPI_PO_CHANGE: Se utiliza para actualizar valores en una orden de compra existente.

    • /POHEADER, /POHEADERX, /POITEM, /POITEMX, /POSCHEDULE, /POSCHEDULEX, /POCOND, /POCONDX, /POEXPIMPITEM, /POEXPIMPITEMX, /POTEXTHEADER, /EXTENSIONIN, /POPARTNER
  3. BAPI_PO_RELEASE: Se utiliza para liberar una orden de compra después de manipularla.

  4. BAPI_PO_GETDETAIL: Se utiliza para recuperar las notas de encabezado y los valores de texto en la orden de compra.

    • _PO_GETDETAIL/RETURN, PO_HEADER_TEXTS
  5. BAPI_SALESORDER_CREATEFROMDAT2: Se utiliza para crear órdenes de venta

    • /ORDER_HEADER_IN, /ORDER_PARTNERS, /ORDER_ITEMS_IN, /ORDER_SCHEDULES_IN, /RETURN
  6. BAPI_CONTRACT_CREATEFROMDATA: Se utiliza para crear contratos

    • /CONTRACT_HEADER_IN, /CONTRACT_PARTNERS, /CONTRACT_PARTNERS, /CONTRACT_ITEMS_IN
  7. BAPI_EXCHANGERATE_GETDETAIL: Se utiliza para recuperar los tipos de cambio de divisas.

  8. Z_ADAPT_DATA_EXTRACT: Una función personalizada utilizada para extraer información del plan de inversión.