Tutorial de SAP ABAP BDC (comunicación de datos por lotes)

Introducción a la entrada por lotes

La entrada por lotes se utiliza normalmente para transferir datos desde sistemas que no son R/3 a sistemas R/3 o para transferir datos entre sistemas R/3.

Es una técnica de transferencia de datos que le permite transferir conjuntos de datos automáticamente a pantallas que pertenecen a transacciones y, por tanto, a un sistema SAP. La entrada por lotes está controlada por una sesión de entrada por lotes.

Sesión de entrada por lotes

Agrupa una serie de llamadas de transacciones junto con datos de entrada y acciones del usuario. Se puede utilizar una sesión de entrada por lotes para ejecutar una transacción de diálogo en la entrada por lotes, donde la sesión procesa algunas o todas las pantallas. Las sesiones de entrada por lotes se almacenan en la base de datos como tablas de base de datos y se pueden usar dentro de un programa como tablas internas al acceder a transacciones.

Puntos a tener en cuenta

  • BDI funciona realizando transacciones normales de SAP tal como lo haría un usuario, pero ejecuta la transacción automáticamente.Todas las validaciones de pantalla y la validación de la lógica empresarial se realizarán utilizando la entrada de datos por lotes.
  • Es adecuado para ingresar grandes cantidades de datos.
  • No se requiere interacción manual

Métodos de entrada por lotes

SAP proporciona dos métodos básicos para transferir datos heredados al Sistema R/3.

  1. Método clásico de entrada por lotes.
  2. Método de transacción de llamada.

Método clásico de entrada por lotes

En este método, un programa ABAP/4 lee los datos externos al sistema SAP y los almacena en una sesión de entrada por lotes.

Después de crear la sesión, puede ejecutar la sesión para ejecutar la transacción SAP en ella.

Este método utiliza los módulos de funciones BDC_OPEN, BDC_INSERT y BDC_CLOSE

La sesión de entrada por lotes se puede procesar de 3 maneras

  1. En primer plano
  2. En el fondo
  3. Durante el procesamiento, con indicación de error

Debe procesar las sesiones de entrada por lotes en primer plano o utilizando la pantalla de error si desea probar la transferencia de datos.

Si desea ejecutar la transferencia de datos o probar su rendimiento, debe procesar las sesiones en segundo plano.

Puntos a tener en cuenta sobre el método clásico de entrada por lotes

  • Syncprocesamiento cronoso
  • Transfiera datos para múltiples transacciones.
  • SyncActualización cronosa de la base de datos.
  • Se genera un registro del proceso de entrada por lotes para cada sesión.
  • La sesión no se puede generar en paralelo.

Método de transacción de llamada.

En este método ABAPEl programa /4 utiliza la instrucción CALL TRANSACTION USING para ejecutar una transacción SAP.

Todo el proceso de entrada de lotes se realiza en línea en el programa.

Método de transacción de llamada

Puntos a tener en cuenta:

  • Procesamiento más rápido de datos
  • Asyncprocesamiento cronoso
  • Transfiera datos para una sola transacción.
  • No se genera ningún registro de procesamiento de entrada por lotes.

Procedimientos de entrada por lotes

Procedimientos de entrada por lotes

Normalmente observará lo siguientewing secuencia de pasos para desarrollar la entrada por lotes para su organización

  1. Análisis de los datos heredados. Determine cómo se asignarán los datos que se transferirán a la estructura SAP. También tome nota de las conversiones necesarias de tipo de datos o longitud de datos.
  2. Generar estructuras de datos SAP para usar en programas de exportación.
  3. Exporte los datos a un archivo secuencial. Tenga en cuenta que el formato de caracteres es requerido por los programas de entrada por lotes de SAP predefinidos.
  4. Si no se utilizan los programas BDC proporcionados por SAP, codifique su propio programa de entrada por lotes. Elija un método de entrada por lotes adecuado según la situación.
  5. Procese los datos y agréguelos al Sistema SAP.
  6. Analizar el registro del proceso. Para el método CALL TRANSACTION, donde no se crea un registro adecuado, utilice los mensajes recopilados por su programa.
  7. A partir de los resultados del análisis del proceso, corregir y reprocesar el error.neonosotros datos.

Redacción del programa BDC

Puedes observar lo siguiente.wing proceso para escribir su programa BDC

  1. Analice las transacciones para procesar datos de entrada por lotes.
  2. Decida el método de entrada por lotes que utilizará.
  3. Leer datos de un archivo secuencial
  4. Realizar conversión de datos o verificación de errores.
  5. Almacenar los datos en la estructura de entrada por lotes, BDCDATA.
  6. Genere una sesión de entrada por lotes para la entrada por lotes clásica o procese los datos directamente con la instrucción CALL TRANSACTION USING.

Estructura de datos de entrada por lotes

Declaración de estructura de datos de entrada por lotes

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
Nombre del campo Tipo de Propiedad Longitud Mínima Descripción
PROGRAMA CHAR 8 Grupo de módulos
DYNPRO NÚMERO 4 número dynpro
DINBEGIN CHAR 1 Iniciando un dynpro
FNAM CHAR 35 Nombre del campo
FVAL CHAR 80 Valor del campo

El orden de los campos dentro de los datos de una pantalla en particular no tiene importancia

Puntos a tener en cuenta

  • Al completar los datos de BDC, asegúrese de tener en cuenta la configuración del usuario. Esto es especialmente relevante para completar campos que involucran numbers (Como cantidad, cantidad). Es la configuración del usuario la que decide cuál es el carácter de agrupación para numbers Por ejemplo: un número cincuenta mil se puede escribir como 50,000.00 o 50.000,00 según la configuración del usuario.
  • Condense el campo FVAL para los campos de monto y cantidad para que queden alineados a la izquierda.
  • Tenga en cuenta que todos los campos que está completando a través de BDC deben tratarse como campos de tipo carácter al completar la tabla de datos de BDC.
  • En algunas pantallas, cuando completa valores en un control de tabla usando BDC, debe anotar cuántas filas están presentes en un tamaño predeterminado de la pantalla y codificar tantas filas como sea posible. Si tiene que completar más filas, entonces debe codificar la funcionalidad "Av Pág" como lo haría cuando completa el control de tabla manualmente.
  • La cantidad de líneas que aparecerían en el escenario anterior diferirá según el tamaño de pantalla que utilice el usuario. Por lo tanto, codifique siempre para el tamaño de pantalla estándar y haga que su BDC funcione siempre en el tamaño de pantalla estándar, independientemente del tamaño de pantalla que el usuario mantenga.

Creación de una sesión de entrada por lotes

  1. Abra la sesión de entrada por lotes utilizando el módulo de funciones BDC_OPEN_GROUP.
  2. Para cada transacción en la sesión:
  3. Complete el BDCDATA con valores para todas las pantallas y campos procesados ​​en la transacción.
  4. Transfiera la transacción a la sesión con BDC_INSERT.
  5. Cierre la sesión de entrada por lotes con BDC_CLOSE_GROUP

Grabador de entrada por lotes

El registrador de entrada por lotes (Sistema > Servicios > Entrada por lotes > Registrador) registra las transacciones que se ingresan manualmente y crea una sesión de entrada por lotes que se puede ejecutar later utilizando SM35.

Grabador de entrada por lotes

  • Inicie el registrador de entrada por lotes seleccionando el botón Grabación en la pantalla inicial de entrada por lotes.
  • El nombre de la grabación es un nombre definido por el usuario y puede coincidir con el nombre de la sesión de entrada por lotes que se puede crear a partir de la grabación.
  • Ingrese una transacción de SAP y comience a publicar la transacción.
  • Una vez que haya completado la publicación de una transacción de SAP, elija Obtener transacción y guardar para finalizar la grabación o Siguiente transacción y publicar otra transacción.
  • Una vez que haya guardado la grabación, puede crear una sesión de entrada por lotes a partir de la grabación y/o generar un programa de entrada por lotes a partir de la grabación.
  • La sesión de entrada por lotes que creó ahora se puede analizar como cualquier otra sesión de entrada por lotes.
  • El programa generado por la función del registrador de entrada por lotes es una poderosa herramienta para el programador de la interfaz de datos. Proporciona una base sólida que luego puede modificarse según los requisitos del cliente.