¿Qué es SAP BAPI?

Que es BAPI

SAP BAPI (Interfaz de programación de aplicaciones comerciales) es una interfaz estándar para el modelo de objeto comercial. BAPI es el método principal para que el código del cliente y las aplicaciones de terceros interactúen con SAP. BAPI encapsula las capas internas del modelo de objeto comercial de SAP para garantizar que todas las comprobaciones de lógica comercial, verificación y autorización se ejecuten correctamente al acceder o cambiar objetos comerciales.
Es la API empresarial.

La interfaz tiene un concepto de encapsulación, bueno, es hora de escribir una ola de conceptos.
De lo contrario, lo he olvidado todo.

Antes de hablar sobre la interfaz, echemos un vistazo a qué es el objeto. Recuerdo vagamente que se enseñó en la clase de Java, pero solo tenemos unas pocas clases de Java. Solo recuerda algunas palabras: basado en objetos. . .

Cual es el objeto

objeto, un objeto tiene estados y comportamientos relacionados . Los objetos en desarrollo se usan generalmente para referirse a (más exactamente para modelar) objetos en el mundo real. Estos conceptos son fáciles de entender al reflejar los objetos de la vida diaria en el mundo del desarrollo. En el mundo real, tú y yo somos todos objetos independientes, ambos seres humanos, con alturas y pesos geométricos, comiendo tres comidas al día y cinco comidas al día, y haciendo lo que hacen todos los días.
Entonces, el objeto en este mundo del software, tiene que expresar su estado y comportamiento. Aquí presentaremos el concepto de encapsulación de datos.

Mirando hacia arriba, nuestros coches eléctricos y teléfonos móviles son todos objetos que nos rodean. Mientras sea un objeto, tiene dos características: estado y comportamiento. Antes de empezar a pensar en la programación basada en objetos, considere el objeto real: estado del vehículo eléctrico: blanco, dos ruedas, con maletero. Comportamiento: aceleración, frenado, desaceleración, marcha atrás (no). Piense en usted ahora, alrededor, en lo que puede ver, en qué estado se encuentra y qué comportamiento (función) se puede realizar. Piénselo, el mundo colorido es complejo y diverso, algunas cosas tienen más funciones y otras tienen menos funciones. Su estuche de gafas solo puede abrirse y cerrarse, y abrirse y cerrarse. Puede encender, apagar, pausar y ajustar el volumen de sus auriculares. Y tu móvil, es complicado, ya contiene demasiados componentes, cada uno con muchas funciones, es imposible hablar un rato de eso.

Bueno, veámoslo de nuevo. Usamos campos para representar varios estados y métodos para representar varios comportamientos. En otras palabras, un objeto almacena su estado en campos y usa métodos para expresar su comportamiento.
Los campos y métodos también se denominan variable y función en algunos casos, y ambos significan lo mismo. Los métodos se ejecutan en función del estado del objeto y son el mecanismo principal para que el objeto interactúe con los objetos externos. Es decir, lo que hizo e interactuó con los demás solo puede ser a través de sus acciones. La encapsulación de objetos significa que el estado interno de un objeto está oculto y que todas las interacciones deben realizarse a través de los métodos del objeto . Este es el principio básico de la programación basada en objetos.

Específicamente, ¿cómo es? Primero proporcione un estado de objeto y luego proporcione una forma de cambiar el estado. Veamos también nuestro coche eléctrico, el estado que se está dando actualmente: velocidad actual, marcha actual. Entonces puedo cambiar mi estado actual acelerando y cambiando de marcha. Además, la velocidad máxima del nuevo estándar nacional es de 25 km / h, que está estipulada, no importa qué tan rápido aumente la velocidad, no puedo superar esta velocidad. Es decir, mi método de aceleración es limitado y debe ser inferior a 25. Esto significa que la interacción con el exterior a veces está limitada por el estado interno.

¿Cuáles son los beneficios de los métodos de escritura en objetos? Es decir, para vincular el método al objeto, se obtienen los siguientes beneficios:
1. Modularidad: el código fuente de un objeto se puede escribir y mantener independientemente del código fuente de otros objetos. Una vez que se crea un objeto, se puede transferir fácilmente dentro del sistema.

2. Ocultación de información: al interactuar únicamente con el método del objeto, los detalles de su implementación interna se mantienen ocultos al mundo exterior.

3. Reutilización de código: si un objeto ya existe (tal vez escrito por otro desarrollador de software), puede utilizar el objeto en el programa. Esto permite a los expertos implementar / probar / depurar objetos complejos específicos de tareas, y luego puede confiar en que estos objetos se ejecutarán en su propio código.

4. Conectabilidad y facilidad de depuración: si hay un problema con un objeto en particular, simplemente puede eliminarlo de la aplicación y luego insertar otro objeto como reemplazo. Esto es similar a resolver problemas mecánicos en el mundo real. Si el perno está roto, debe reemplazarlo, no toda la máquina.

Cual es la clase

Las llamadas cosas se recopilan por género y las personas se dividen en grupos. Este es realmente un talento para traducir una clase en clase. Hice un modelo y construí N maletas. Todas las maletas son de nuestra categoría. Tienen la misma forma y función. Entonces, digamos que su maleta es una instancia de esta clase de maleta. Todos los objetos se basan en este conjunto de planos que contienen los mismos componentes. Una clase es un plano creado por un solo objeto.


// class Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

Lo anterior es una gramática de Java, basada en la definición del objeto, hay varios estados en la clase: cadencia, velocidad, marcha. También se definen varios métodos: changeCadence, changeGear, speedUp, etc., que definen el comportamiento de interacción con el mundo exterior.
La clase anterior no contiene el método principal . Porque no es una aplicación completa. Es solo un modelo para bicicletas que puede usarse en aplicaciones. Las responsabilidades de crear y usar nuevos objetos de bicicleta están en otras clases.
Hay una clase a continuación que crea dos objetos de bicicleta y hace referencia a sus métodos.

class BicycleDemo {
    public static void main(String[] args) {

        // Create two different Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();

        // Invoke methods on those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();

        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
}

Los resultados de la operación son los siguientes:

cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3

Que es la herencia

Los diferentes tipos de objetos a veces constan de muchos componentes o de las mismas características.
Tomemos las bicicletas clásicas como ejemplo. Las bicicletas de montaña, las bicicletas urbanas y las bicicletas en general tienen algunas de las mismas características, todas tienen atributos, velocidad actual y marcha actual. Entonces tiene que haber algunas características diferentes, o de lo contrario, cómo distinguir los precios. Algunas bicicletas de montaña también tienen velocímetros, luces nocturnas y una placa de cadena. Los coches corrientes tienen que traer una cesta para el coche.
La programación basada en objetos permite que las clases hereden estados y comportamientos compartidos. En otras palabras, como bicicleta, mi hijo tiene bicicletas de montaña, bicicletas de ciudad y bicicletas públicas. En Java, cada clase puede tener una clase principal directa y la clase principal puede tener un número ilimitado de subclases. Utilice se extiende para definir la subclase, seguida de la clase principal que se heredará.

class MountainBike extends Bicycle {

    // 子类新字段和方法new fields and methods defining a mountain bike would go here

}

Los campos y métodos de la clase principal se han heredado, por lo que solo necesita escribir sus propios campos y métodos únicos en la implementación de la subclase.

Cual es la interfaz

Bien, ahora volvamos a lo que es la interfaz. Ahora sabemos que el objeto interactúa con el mundo exterior definiendo sus propios métodos. El método forma la interfaz entre el objeto y el mundo exterior . Al encender el interruptor de encendido de la computadora, obtuvimos interacción con una serie de componentes informáticos envueltos en una carcasa de plástico. Este conmutador es una interfaz.
Una interfaz es un cuerpo vacío de un conjunto de métodos relacionados .

interface Bicycle {

    //  wheel revolutions per minute
    void changeCadence(int newValue);

    void changeGear(int newValue);

    void speedUp(int increment);

    void applyBrakes(int decrement);
}

Para implementar esta interfaz, el nombre de la clase se puede cambiar, por ejemplo, para una bicicleta de una determinada marca: use esta palabra clave en la declaración de la clase: implements

class ACMEBicycle implements Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

   // The compiler will now require that methods
   // changeCadence, changeGear, speedUp, and applyBrakes
   // all be implemented. Compilation will fail if those
   // methods are missing from this class.

    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

La implementación de una interfaz puede hacer que el comportamiento que la clase promete proporcionar sea más formal. La interfaz forma un contrato entre la clase y el mundo exterior, que el compilador hace cumplir en el momento de la compilación. Si su clase declara implementar una interfaz, todos los métodos definidos por la interfaz deben aparecer en su código fuente antes de que la clase pueda compilarse con éxito.

Para compilar realmente la clase ACMEBicycle, debe agregar la palabra clave pública al comienzo del método de interfaz implementado.

Que es el paquete

Es un espacio de nombres que organiza un conjunto de clases e interfaces. Al igual que una carpeta, un programa puede tener miles de clases, por lo que ponemos las clases y las interfaces de la misma clase en una. Fácil de encontrar.
Las bibliotecas de clases son muchos paquetes. La plataforma Java proporciona muchas bibliotecas de clases, llamadas API, interfaces de programación de aplicaciones.
Sus paquetes son las tareas más habituales de la programación general. Por ejemplo, los objetos de cadena contienen el estado y el comportamiento de las cadenas; los objetos de archivo permiten a los programadores crear, eliminar, verificar, comparar o modificar fácilmente archivos en el sistema de archivos; los objetos de sockets permiten crear y utilizar sockets de red; botones de control de varios objetos GUI y casillas de verificación y todo lo relacionado con la interfaz gráfica de usuario. En realidad, hay miles de clases para elegir. Podemos centrarnos en el diseño de aplicaciones específicas en lugar de en la infraestructura necesaria para que funcione.

Cómo usar BAPI

BAPI se implementa en forma de un módulo de funciones para llamar al código interno de SAP. Dependiendo del conjunto de BAPI utilizado, puede llamar al modelo de objeto de negocio definido mediante el marco de procesamiento de objetos de negocio (no sé qué es), o llamar al modelo antiguo definido mediante programas, tablas y módulos de función.
BAPI expone una interfaz formal y estable. Los clientes y los desarrolladores de código de terceros pueden utilizarlos para acceder a los objetos de negocio de SAP y establecer interfaces con ellos. SAP también garantiza que este método siempre estará disponible en el futuro.
También hay otras interfaces para acceder a tablas básicas de SAP y módulos funcionales, programas y clases que no son de BAPI. Pero SAP no garantiza que el código siempre estará disponible en el futuro, o que el objeto al que se accede siempre existirá.
El uso de interfaces que no son BAPI como las anteriores provocará que se cambie la firma del módulo de función interno, habrá problemas menores o parches menores durante el proceso de actualización, lo que invalidará el código basado en la interfaz de la cubierta.

BAPI solo se puede usar después de su lanzamiento, lo que significa que SAP especifica que estas interfaces están disponibles y garantiza la estabilidad en el futuro. Puede comprobar el estado de la versión consultando la "Fecha de la versión" en la sección "Propiedades" del módulo de funciones BAPI. Si este campo está en blanco, significa que SAP no ha liberado la BAPI y no debe utilizarse.
Para utilizar BAPI en el lenguaje de programación de aplicaciones empresariales avanzadas (ABAP), los desarrolladores utilizan la función de llamada de ABAP para llamar al módulo de funciones. Además, la mayoría de los bapis admiten el control remoto, lo que significa que se pueden llamar a través de una llamada de función remota (RFC), servicios web o el conector Java de SAP.
Inserte la descripción de la imagen aquí
En cada producto de SAP basado en la plataforma ABAP, hay algunos bapis que pueden automatizar completamente la mayoría de los procesos comerciales. La documentación de cada producto de SAP proporciona información sobre las BAPI disponibles. Busque módulos funcionales que comiencen con BAPI en SE37 y se80 o ABAP para Eclipse para encontrar información relevante.

Cada módulo de función BAPI debe tener una documentación extensa en varios idiomas, a la que se puede acceder a través de la opción de documentación del módulo de función en SE37. Es muy importante leer la documentación con atención, porque la estructura y el comportamiento de los bapi varían mucho, y en ocasiones funcionan de forma inesperada o fallan sin satisfacer sus necesidades y muestran mensajes de error ocultos.
Inserte la descripción de la imagen aquí
Muchas BAPI tienen estructuras complejas que imitan la estructura del objeto empresarial subyacente. Como se muestra en la figura anterior, el BAPI utilizado para modificar la dirección de un socio comercial contiene múltiples estructuras de importación y una gran cantidad de parámetros de tabla, estos parámetros pueden pasar información adicional hacia y desde BAPI.
Los dos parámetros importantes de la figura son ADDRESSDATA y ADDRESSDATA_X. Este tipo de emparejamiento es un tipo típico de bapi, donde la segunda estructura es un conjunto de banderas que indican con precisión qué campos deben actualizarse.

Debido a que bapi se implementa como un módulo de funciones, no son adecuados para clases, métodos y paradigmas de interfaz de programación orientada a objetos (OOP) ABAP. No obstante, generalmente se implementan de manera orientada a objetos porque son las interfaces de los objetos comerciales de SAP.
En ABAP, estos módulos de función se pueden llamar desde programas, módulos de función o clases. Por lo general, es mejor encapsular las llamadas BAPI en objetos de acceso a datos (DAO), que son clases que encapsulan las llamadas BAPI. Si lo hace, puede usar una versión simulada de DAO para pruebas unitarias, lo que permite separar la prueba del código del desarrollador de la prueba de la llamada BAPI en sí.

Supongo que te gusta

Origin blog.csdn.net/weixin_45689053/article/details/110072922
Recomendado
Clasificación