✒️ABAP / Las BAPIS Por Fabian Geldres Del Carpio

Selector Alummnos / Empresas

ABAP Las BAPIS

ABAP Las BAPIS

Mi primer Batch Input utilizando juego de datos.

Creamos un archivo que cumpla con la estructura de la tabla ZTABLA_USUARIOS

1ro : Declaracion de los datos propios del BI

* Tabla del BI con la estructura de BDCDATA
DATA: BEGIN OF ti_bdc_data OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF ti_bdc_data.

* Estructura del BI
DATA: st_bdc_data TYPE bdcdata.

* Tabla de usuarios
DATA: BEGIN OF ti_archivo OCCURS 0,
dni(8) TYPE c, "Dni
nombre_ape(35) TYPE c, "Nombre y Apellido
estado_usu(1) TYPE c, "Estado del usuario
direccion(30) TYPE c, "Dirección
codigo_postal(4) TYPE c, "Código Postal
f_nacimiento(8) TYPE c, "Fecha Nacimiento
estado_civil(1) TYPE c, "Estado civil
END OF ti_archivo.

DATA: st_archivo LIKE LINE OF ti_archivo.

* Variables
DATA: v_campo(35) TYPE c,
v_indice(2) TYPE c,
v_qid TYPE apq_quid,
v_group TYPE apq_grpn,
v_jobgroup TYPE btcjobgrp,
v_jobname TYPE btcjob,
v_jobcount TYPE btcjobcnt.


2do : Lectura de datos de archivo de entrada.
Ejecutaremos CL_GUI_FRONTEND_SERVICE =>GUI_UPLOAD para levantar la informacion de los usuarios.

*&---------------------------------------------------------------------*
*& Form LEVANTAR_ARCHIVO_ENTRADA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM levantar_archivo_entrada .

DATA: vl_file TYPE string.

IF p_path IS INITIAL.
MESSAGE s000(z_prueba) WITH text-003.
ELSE.

vl_file = p_path.

* Se abre el archivo de entrada para lectura
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = vl_file
filetype = 'ASC'
has_field_separator = ''
CHANGING
data_tab = ti_archivo[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.

IF sy-subrc NE 0.
MESSAGE e000(z_prueba) WITH text-004.
ENDIF.

IF ti_archivo[] IS INITIAL.
MESSAGE s000(z_prueba) WITH text-005.
ENDIF.

ENDIF.

ENDFORM. " LEVANTAR_ARCHIVO_ENTRADA



3ro : Apertura de la sesion del juego de datos.
Utilizaremos la funcion BDC_OPEN_GROUP especificando el Mandante ,Grupo y usuarios


*&---------------------------------------------------------------------*
*& Form APERTURA_JD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM apertura_jd.

v_group = sy-repid.

CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = v_group
keep = 'X'
user = sy-uname
IMPORTING
qid = v_qid
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


ENDFORM. " APERTURA_JD



4to : Cargar la tabla BDC_DATA.
Utilizamos la subrutina BDC_FIELD.


*&---------------------------------------------------------------------*
*& Form CARGO_TABLA_BDCDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM cargo_tabla_bdcdata .

CLEAR ti_bdc_data.
REFRESH ti_bdc_data.

* Ingreso a la Primer pantalla y presiono boton de mantenimiento
PERFORM bdc_field USING 'X' 'SAPMSVMA' '0100'.
PERFORM bdc_field USING ' ' 'VIEWNAME' 'ZTABLA_USUARIOS'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=UPD'.

* Presiono boton de nuevas entradas
PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=NEWL'.

* Cargo datos del usuario
PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'.

LOOP AT ti_archivo INTO st_archivo.

ADD 1 TO v_indice.
* Completo ceros a la izquierda de v_indice
PERFORM completo_ceros_izq.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-DNI(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-dni.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-NOMBRE_APE(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-nombre_ape.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-ESTADO_USU(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-estado_usu.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-DIRECCION(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-direccion.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-CODIGO_POSTAL(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-codigo_postal.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-F_NACIMIENTO(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-f_nacimiento.

CLEAR v_campo.
CONCATENATE 'ZTABLA_USUARIOS-ESTADO_CIVIL(' v_indice ')' INTO v_campo.
PERFORM bdc_field USING ' ' v_campo st_archivo-estado_civil.

ENDLOOP.

* Grabo los Registros
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=SAVE'.

* Cierro la segunda pantalla
PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=ENDE'.

* Cierro la primer pantalla
PERFORM bdc_field USING 'X' 'SAPMSVMA' '0100'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '/EENDE'.
ENDFORM. " CARGO_TABLA_BDCDATA

*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
FORM bdc_field USING dyn_begin TYPE c
campo1
campo2.
CLEAR st_bdc_data.

IF dyn_begin = 'X'.
st_bdc_data-program = campo1.
st_bdc_data-dynpro = campo2.
st_bdc_data-dynbegin = dyn_begin.
ELSE.
st_bdc_data-fnam = campo1.
st_bdc_data-fval = campo2.
ENDIF.

APPEND st_bdc_data TO ti_bdc_data.

ENDFORM. " bdc_field



5to : Insercion del juego de datos

Utilizaremos la funcion BDC_INSERT

*&---------------------------------------------------------------------*
*& Form INSERTAR_JD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM insertar_jd .

CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'SM30'
TABLES
dynprotab = ti_bdc_data
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM. " INSERTAR_JD



6to : Cierre de la sesion de juego de datos.

Utilizaremos la funcion BDC_CLOSE GROUP

*&---------------------------------------------------------------------*
*& Form CERRAR_JD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM cerrar_jd .

CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM. " CERRAR_JD



6mo : Ejecucion del juego de datos.
Ingresamos a la SM35 , Seleccionamos el juego de datos. y lo ejecutamos presionando Ejecutar (Process)





Marcamos la opcion Invisible (BACKGROUND) y seleccionamos Ejecutar (Process)



La sesion cambiara de status dependiendo el resultado de la ejecucion.





Diferencias CALL TRANSACTION y JUEGO DE DATOS

CALL TRANSACTION es sincrono es decir Online , se transfieren datos a una sola transaccion en cada CALL TRANSACTION , no se generan LOGS
JUEGO DE DATOS es ASRINCRONO es decir de fondo, se transfieren datos a multiples transacciones , Se generan LOGS por cada sesion



Utilizacion del programa RSBDCBTC para la ejecucion del juego de datos.

Podemos ejecutar el juego de datos de forma ONLINE mediante la ejecucion del programa estandar RSBDCBTC. Para ello vamos a tener que crear un J JOB, submitir la ejecucion del programa RSBDCBTC

SUBMIT rsbdcbtc
USER sy-uname
VIA JOB v_jobgroup
NUMBER v_jobcount
WITH queue_id = v_qid
WITH mappe = v_jobgroup
WITH modus = 'N' "No display
WITH logall = ''
AND RETURN.

Si vamos a la SM35 vemos que se ejecuto sin la necesidad de hacerlo manualmente.



 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Fabian Samir Geldres Del Carpio, en su ámbito de estudios para el Curso SAP ABAP.

SAP Senior

Fabian Samir Geldres Del Carpio

Profesión: Computación E Informatica - Peru - Legajo: XT66M

✒️Autor de: 51 Publicaciones Académicas

🎓Cursando Actualmente: Carrera Consultor SAP PP

🎓Egresado del módulo:

Certificación Académica de Fabian Geldres

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Las BAPIS" de la mano de nuestros alumnos.

SAP Expert


El resumen de Las BAPIS (Business Application Programming Interfaces) se enfoca en su rol como interfaces estándar de SAP para la interacción y la carga de datos, ofreciendo una alternativa moderna a los Batch Inputs. 1. Definición y Características Las BAPIS (Business Application Programming Interfaces) son métodos estandarizados que permiten realizar acciones sobre los objetos de negocios de SAP, como crear un pedido o realizar un movimiento de mercancías,. Las características fundamentales de las BAPIS son: Son métodos de un objeto de negocio de SAP. Están definidas como módulos de funciones RFC (Remote Function Call). Evitan las ventanas de diálogo...

Acceder a esta publicación

Creado y Compartido por: Gabriel José Luces González

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


Las BAPIS en SAP Definición y Características de las BAPIS BAPI significa Business Application Programming Interfaces. Son métodos estandarizados para realizar acciones sobre objetos de negocio en SAP, como crear pedidos, equipos, o movimientos de mercancías. Se implementan como módulos de funciones RFC y son usadas en la integración entre componentes SAP y externos. Permiten evitar las ventanas de diálogo, lo que facilita la automatización y migración de datos. Los objetos de negocio de SAP, similares a clases de POO, pueden visualizarse en el repositorio BOR usando la transacción SWO1. Las BAPIs permiten generar reportes, crear objetos en SAP, comunicarse...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

¿Qué es una BAPI? · Business Application Programming Interface. · Son módulos de función RFC estandarizados que permiten acceder y manipular objetos de negocio de SAP (ej: crear orden de compra, cliente, material). Características: · Son métodos de objetos de negocio (visibles en SWO1). · Son RFC → se pueden llamar desde fuera de SAP. · No muestran pantallas (diálogo). · Usan validaciones estándar. Ventajas sobre Batch Input: · Más estables ante upgrades. · Más rápidas y eficientes. · Permiten integración con otros sistemas. Desventajas: · Difícil encontrar la BAPI...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: Las BAPIs (Business Application Programming Interfaces) son métodos estándar de SAP para interactuar con objetos de negocio (crear pedidos, gestionar materiales, etc.). Funcionan como módulos RFC y ofrecen una alternativa robusta a los Batch Inputs para integraciones y migraciones. Conceptos Clave BAPI: Módulo función RFC que ejecuta acciones sobre objetos de negocio (ej: BAPI_USER_GET_DETAIL). Objeto de Negocio (BOR): Entidad con atributos, métodos y eventos (ej: BUS2032 para pedidos de venta). RFC (Remote Function Call): Protocolo para comunicación entre sistemas. Transacción SWO1: Accede al Business Object Repository...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



Las BAPIs (Business Application Programming Interfaces) son interfaces estandarizadas proporcionadas por SAP para permitir la integración de procesos empresariales con otras aplicaciones, tanto dentro como fuera del entorno SAP. Estas interfaces están disponibles a través del Business Object Repository (BOR) y representan funciones que se pueden ejecutar de manera remota a través del protocolo RFC (Remote Function Call). Su objetivo principal es permitir el acceso estructurado, seguro y consistente a funcionalidades del sistema SAP desde sistemas externos o desde otros módulos del propio SAP. Una BAPI es esencialmente una función de negocio encapsulada que pertenece a un objeto de negocio SAP (por ejemplo,...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Las BAPIS 1 Qué es una BAPI? Una BAPI (Business Application Programming Interface) es una interfaz estándar de SAP que permite interactuar de forma controlada con los objetos de negocio del sistema, como pedidos, equipos, materiales, entre otros. Las BAPIs son métodos predefinidos que facilitan la creación, modificación, consulta o eliminación de datos dentro de SAP, respetando todas las validaciones estándar del sistema. Son métodos de objetos de negocio de SAP. Están implementadas como módulos de funciones RFC (Remote Function Call). Permiten ejecutar procesos sin necesidad de mostrar pantallas o ventanas de diálogo. Se utilizan tanto para integraciones...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

BAPI (Business Application Programming Interfases) metodos estandarizados que permiten acciones sobre objetos de negocios, como crear pedido, equipo o movimiento de mercancias entre otros son interfaces, piezas de codigo con forma de modulos de funciones, se usan para integracion entre componentes, asi como con externos los procesos hechos en batch input se pueden hacer con BAPIS se pueden crear en la SE37 sus caracteristicas: *metodos de un objeto de negocio *estan definidas como modulos RFC *evitan ventanas de dialogo en el procesamiento objetos de negocio son similares a las clases de la prog orientada a objetos, osea serie de atributos, metodos, eventos y campos clave los objetos de negocio se ven en repositorio (BOR-Business Object Repository)...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Es un método estandarizado que nos permiten realizar acciones sobre los objetos de negocio de SAP, como pueden ser un pedido, un equipo, hacer un movimiento de mercancías, etc. Debido a que las BAPIS son generalmente estándar de SAP, utilizando BAPIS, nos aseguramos que los programas que desarrollemos, serán compatibles con las versiones futuras de SAP. Esto no ocurre con los batch input, ya que entre las distintas versiones de SAP, es común que se modifiquen las pantallas de las transacciones, por lo tanto la ejecución del Batch Input fallará. Por otro lado, presentan la dificultad de saber como completar los parámetros de entrada necesarios para llevar a cabo la actualización en...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Que es un BAPI: Sus siglas significan Business Applicationg Interfas. Son metosdos estandarizados que nos permitenreakizar acciones sobre los objetos de negocios de SAP, como puede ser, crear un pedido, crear un equipo o hacer un movimiento de mercancias, entre muchisimos otros. Son las interfaces estándar de SAP, con esto nos referimos en concreto a que son piezas de código en forma de módulo de funciones, usadas en la integración entre componentes de SAP, asi como son componentes externos. Todo los procesos que hasta ahora haciamos mediante um Batch Input pueden hacerse mediante la ejecución de BAPIS. Todas las BAPIS tiene una serie de caracteristicas en común: Son metodos de un objeto de negocio...

Acceder a esta publicación

Creado y Compartido por: Javier Miguel Angel Barcelo / Disponibilidad Laboral: PartTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

BAPI: BUSINESS APPLKICATION PROGRAMMING INTERFACES, son métodos estandarizados que nos permiten realizar acciones sobre los objetos de negocio de SAP, como pueden ser, crear un pedido, crear un equipo o hacer un movimiento de mercancías, entre muchísimos otros. Son las interfaces estándar de SAP, con esto nos referimos en concreto a que son piezas de código en forma de módulos de funciones usadas en la integración entre componentes de SAP, así como con componentes externos. Todos los procesos que hasta ahora hacíamos mediante un Batch Input pueden hacerse mediante la ejecución de Bapis. Todas las Bapis tienen una serie de características en común: - Son métodos...

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:


🔎Googlear en CVOSOFT:
Googlear: "ABAP - Las BAPIS"

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!