Hi,
RFC vs BAPI
1)BAPI son módulos de función habilitados para RFC. La diferencia entre RFC y BAPI
son objetos de negocio. Creas objetos de negocio y luego
los registras en tu BOR (Repositorio de Objetos de Negocio) que puede ser accedido
fuera del sistema SAP usando otras aplicaciones (No-SAP) como VB
o JAVA. en este caso solo especificas el objeto de negocio y su método desde
el sistema externo en BAPI no hay llamada directa al sistema. mientras que RFC son llamadas directas
al sistema. Algunas BAPIs proporcionan funciones básicas y pueden ser utilizadas para la mayoría de tipos de objetos de negocio de SAP.
Estas BAPIs deben ser implementadas 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 diferentes BAPIs. Siempre que sea posible, se debe usar una
BAPI estandarizada en lugar de una BAPI individual.
Las siguientes BAPIs estandarizadas son proporcionadas:
Lectura de instancias de objetos de negocio de SAP
GetList ( ) Con la BAPI GetList puedes seleccionar un rango de claves de objeto
valores, por ejemplo, códigos de empresa y números de material.
La BAPI GetList() es un método de clase.
GetDetail() Con la BAPI GetDetail() se recuperan y devuelven los detalles de una instancia de un
tipo de objeto de negocio de SAP al programa que llama. La
instancia se identifica a través de su clave. La BAPI GetDetail() es un método de instancia. Las BAPIs que pueden crear, cambiar o eliminar instancias de un objeto de negocio
Se deben programar las siguientes BAPIs del mismo tipo de objeto para que
puedan ser llamadas varias veces dentro de una transacción. Por ejemplo, si,
después de crear la orden de venta 1, se crea una segunda orden de venta 2 en
la misma transacción, la segunda llamada de BAPI no debe afectar la coherencia
de la orden de venta 2. Después de completar la transacción con un COMMIT WORK,
ambas órdenes se guardan de manera consistente en la base de datos.
Create( ) y CreateFromData! ( )
Las BAPIs Create() y CreateFromData() crean una instancia de un
tipo de objeto de negocio de SAP, por ejemplo, una orden de compra. Estas BAPIs son métodos de clase.
Change( )
La BAPI Change() cambia una instancia existente de un objeto de negocio de SAP
por ejemplo, una orden de compra. La BAPI Change () es un método de instancia.
Delete( ) y Undelete( ) La BAPI Delete() elimina una instancia de un
tipo de objeto de negocio de SAP de la base de datos o establece una bandera de eliminación.
La BAPI Undelete() elimina una bandera de eliminación. Estas BAPIs son métodos de instancia.
Cancel ( ) A diferencia de la BAPI Delete(), la BAPI Cancel() cancela una instancia
de un tipo de objeto de negocio. La instancia a cancelar permanece en la
base de datos y se crea una instancia adicional que es la que se
cancela en realidad. La BAPI Cancel() es un método de instancia.
Add ( ) y Remove ( ) La BAPI Add agrega un
subobjeto a una instancia existente de objeto y la BAPI y
Remove elimina un subobjeto de una instancia de objeto. Estas BAPIs
son métodos de instancia.
2) No es posible conectar SAP a sistemas No-SAP para recuperar datos
usando solo RFC. RFC puede acceder a SAP desde afuera solo a través de BAPI y
lo mismo es para el acceso viceversa.
3) Cada Objeto BAPI tiene Interfaz, Campos Clave, Atributos, Métodos y
Eventos.
Los Módulos de Función BAPI pueden estar adjuntos a estos Objetos BAPI. El módulo de función
tiene una funcionalidad única mientras que un objeto BAPI puede contener muchas
funcionalidades
rfc vs módulo de función
Módulo de Función: En un módulo de función el paso de datos es por
llamada por referencia en particular el parámetro de tablas tiene que
ser por llamada por referencia pasando memoria.
RFC