Saltar al contenido

Diferencia entre BADI Classic y BADI Basado en Kernel

Un Usuario hizo la siguiente pregunta

Hola a todos,

Quiero saber cuál es la diferencia entre basado en kernel y badi

BADI clásico,

¿Qué es un punto de mejora en BADI?

Gracias,

Shyam

8 respuestas

  • Hola,

    Mira estos enlaces:

    obtendrá una respuesta a sus preguntas.

    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9cd334f3-0a01-0010-d884-f56120039915

    Sobre

    Adil

  • Ex miembro

    Hola Shyam,

    Las diferencias básicas están entre BADI Classic y Kernal.

    El antiguo BADI usaba el clásico para mezclar la selección de implementación y los modos de llamada en la misma instrucción CALL MODE. Los ejecutivos solo se pueden seleccionar en tiempo de ejecución por la razón anterior y porque el manejo de BADI solo se puede obtener de una llamada por otro método simplemente pasando el nombre de BADI.

    Debido al nuevo Kernel-BADI, los ejecutivos de BADI activos se incluyen en la carga de manejo de BADI en el momento de la compilación y el criterio de filtrado se extiende como declaraciones IF. Es por eso que los nuevos Kernel-BADIu2019s son mucho más rápidos que los clásicos-BADIu2019s.

    Sobre,

    Jesuvin

  • Ex miembro

    Él lo consiguió.

  • Hola Shyam,

    Badi clásico:
    1. Sin ‘backclass completa’ (si la implementación activa no está presente en badi, esta implementación de clase se activará por defecto).
    2. Se generará una interfaz y una clase predeterminadas de forma predeterminada (no es necesario que se indique explícitamente).
    3. El método de llamada es llamar a un badi clásico.
    4. Es lento (bcz usando cl_exithandler ~ get_instance colocaremos instantáneamente el objeto para el badi).

    Kernal Badi (Filtro Badi):
    1. La ‘clase de respaldo’ está presente, evitará que el programa se descargue si no hay una implementación activa en la clase.
    2. Debemos indicar la interfaz, clase manual.
    3. La sintaxis para llamar a Kernal badi es la palabra clave “Encuentra Badi y llama a Badi”.
    4. Es rápido (bcz al usar la palabra clave get_badi agregaremos instantáneamente el objeto para el badi).

    Sobre,

    Nomitha

  • Hola,

    Hasta donde yo sé, comparto las diferencias entre los núcleos y el badi clásico.

    badi clásico:

    1. El código T para crear el clásico badi es se18, dale un nombre a badi y ve a la utilidad -> crea un badi clásico

    2.En SAP genera automáticamente el nombre y la interfaz de la clase badi clásica.

    ej .: ZIF_EX_ .

    Puede aplicar la definición badi en el código de transacción Se-19. Al usar estos códigos T, crea la aplicación o edita la aplicación.

    4.En badi clásico, es poco probable que dé alguna implementación para volcarlo (¿la definición de badi es verificar si ciertos métodos están en la clase o no?).

    5. La sintaxis es para llamar al clásico badi

    modo de llamada CL_EXITHANDLER => get_instance (debe llamar a un patrón en. PROPÓSITO APROBADO) y proporcionar el nombre clásico badi y dar la variable de parámetro del objeto (es decir, referencia de interfaz)

    Kernal Badi:

    1. se18 es el código T para crear un kernel badi y proporciona el lugar de mejora.

    2.En kernal badi no proporciona la interfaz y el nombre de la clase automáticamente que puede crear manualmente.

    3. Puede crear la implementación del kernel badi solo en puntos de mejora. No es necesario pasar a se19 para la implementación.

    4. La sintaxis de un programa de informes Badi de Kernal

    Get badi

    llama badi -> .

    5. Para evitar el volcado corto en kernal badi usamos la clase de respaldo.

    Gracias y saludos

    P.kiran kumar reddy

  • Hola Shyam,

    Un lugar de mejora significa crear un lugar determinado donde podamos agregar nuestro código personalizado

    Gracias y saludos

    Snehal Tandale

    badi1.png
    (15,0 kB)

    • Diferencias en las cosas BAdI
      1. Para los BAdI clásicos, crea un objeto BAdI llamando a un modo de fábrica y haciendo referencia a él a través de una interfaz BAdI: variable de referencia de tipo.
      2. Para los BadI nuevos, cree un objeto BAdI con la instrucción ABAP GET BADI como un identificador para las llamadas a los métodos BAdI y haga referencia a él con una variable de referencia de tipo BAdI. Un ejemplo de una clase interna BAdI es un objeto BAdI que es invisible para el mundo exterior.
    • Reenviar valores de comparación para filtrar
      1. Para los BAdI clásicos, los valores de filtro se almacenan en una estructura y se ejecutan con la llamada de los métodos BAdI.
      2. Para los nuevos BAdI, los valores de comparación de los filtros utilizados para buscar la implementación se ejecutan cuando se crea el objeto BAdI con la instrucción GET BADI.

    Gracias y Saludos

    Varun