BAPI son módulos de funciones habilitados para RFC. La diferencia entre RFC y BAPI son los objetos de negocio. Usted crea objetos de negocio y luego los registra en su BOR (Repositorio de Objetos de Negocio), los cuales pueden ser accedidos fuera del sistema SAP utilizando otras aplicaciones (No SAP) como VB o JAVA. En este caso, solo especifica el objeto de negocio y su método desde el sistema externo. En BAPI no hay una llamada directa al sistema. Mientras que RFC sí son llamadas directas al sistema. Algunas BAPIs proporcionan funciones básicas y pueden ser utilizadas para la mayoría de los tipos de objetos de negocio de SAP. Estas BAPIs deben implementarse de la misma manera para todos los tipos de objetos de negocio. Las BAPIs estandarizadas son más fáciles de usar y evitan que los usuarios tengan que lidiar con una variedad de BAPIs diferentes. Siempre que sea posible, se debe utilizar una BAPI estandarizada en lugar de una BAPI individual.
BAPI
BAPI significa Interfaz de Programación de Aplicaciones de Negocio.
Una BAPI es un módulo de función habilitado para acceso remoto, es decir, puede ser invocado desde programas remotos como programas JAVA independientes, interfaces web, etc. Puede hacer que su módulo de función esté habilitado para acceso remoto en los atributos del módulo de función, pero una BAPI son módulos de función estándar de SAP proporcionados por SAP para acceso remoto. También forman parte del Repositorio de Objetos de Negocio (BOR).
Algunas BAPIs proporcionan funciones básicas y pueden ser utilizadas para la mayoría de los tipos de objetos de negocio de SAP. Estas BAPIs deben implementarse de la misma manera para todos los tipos de objetos de negocio. Las BAPIs estandarizadas son más fáciles de usar y evitan que los usuarios tengan que lidiar con una variedad de BAPIs diferentes. Siempre que sea posible, se debe utilizar una BAPI estandarizada en lugar de una BAPI individual.
Consulta estos enlaces:
http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html
http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
http://www.sap-img.com/fu033.htm
http://www.sap-img.com/abap/ale-bapi.htm
Llamada de Función Remota:
RFC es un protocolo de interfaz de SAP. Basado en CPI-C, simplifica considerablemente la programación de procesos de comunicación entre sistemas. Los RFCs le permiten llamar y ejecutar funciones predefinidas en un sistema remoto, o incluso en el mismo sistema. Los RFCs gestionan el proceso de comunicación, la transferencia de parámetros y el manejo de errores.
Los módulos de función son elementos de modularización en el lenguaje de programación ABAP. Encapsulan alguna función que puede ser reutilizada. Proporcionan una interfaz o firma a través de la cual pasar datos hacia y desde el módulo de función. Un RFC es un módulo de función habilitado para acceso remoto. Todo lo que necesita hacer es activar la bandera en la pestaña de atributos del módulo de función y tendrá un RFC.
Una BAPI no es más que un módulo de función. Las BAPIs generalmente contienen la lógica para alguna función de negocio, como "Crear Orden de Venta" o "Cambiar Orden de Compra". Nuevamente, proporcionan una interfaz para pasar datos hacia y desde la BAPI. Nunca verá "Excepciones" en una BAPI, ya que están diseñadas para ser llamadas desde otros sistemas y es posible que no puedan manejar excepciones. Además, nunca verá un cambio en la firma de una BAPI. Si SAP siente la necesidad de cambiar la firma de la BAPI, entonces creará una nueva BAPI.
Ejemplo:
BAPI_SALESORDER_CREATEFROMDAT1 y BAPI_SALESORDER_CREATEFROMDAT2. No cambiarán la firma, pero crearán una nueva e incorporarán el cambio.
Módulos de Función --> Un fragmento de código reutilizable.
Ej. SD_DATETIME_DIFFERENCE.
BAPI --> Módulos de función utilizados para un alto tráfico o para transacciones de facturación.
Ej. GL_POSTING_POST.