SAP Tutorial 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 lo tanto, a un SAP sistema. 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 operaciones normales. SAP transacciones 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 Proporcionan dos métodos básicos para transferir datos heredados al Sistema R/3.
- Método clásico de entrada por lotes.
- 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 SAP Sistema y tiendas en una sesión de entrada por lotes.
Después de crear la sesión, puede ejecutar la sesión para ejecutar el SAP transacción en el mismo.
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
- En primer plano
- En el fondo
- 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 un SAP transacción.
Todo el proceso de entrada de lotes se realiza en línea en el programa.
Puntos a tener en cuenta:
- Procesamiento más rápido de datos
- Procesamiento asincrónico
- Transfiera datos para una sola transacción.
- No se genera ningún registro de procesamiento de entrada por lotes.
Procedimientos de entrada por lotes
Normalmente, observará la siguiente secuencia de pasos para desarrollar Batch Input para su organización
- Análisis de los datos heredados. Determine cómo se asignarán los datos que se van a transferir al SAP Estructura. También tome nota de las conversiones necesarias de tipo de datos o longitud de datos.
- Generar SAP Estructuras de datos para usar en programas de exportación.
- Exporte los datos a un archivo secuencial. Tenga en cuenta que el formato de caracteres es requerido por predefinidos SAP programas de entrada por lotes.
- Si SAP Los programas BDC suministrados no se utilizan, codifique su propio programa de entrada por lotes. Elija un método de entrada por lotes adecuado según la situación.
- Procese los datos y agréguelos al SAP System.
- 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.
- A partir de los resultados del análisis del proceso, corregir y reprocesar los datos erróneos.
Redacción del programa BDC
Puede observar el siguiente proceso para escribir su programa BDC
- Analice las transacciones para procesar datos de entrada por lotes.
- Decida el método de entrada por lotes que utilizará.
- Leer datos de un archivo secuencial
- Realizar conversión de datos o verificación de errores.
- Almacenar los datos en la estructura de entrada por lotes, BDCDATA.
- 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 | Type | 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 números (como cantidad, monto). Es la configuración del usuario la que decide cuál es el carácter de agrupación de los números. 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
- Abra la sesión de entrada por lotes utilizando el módulo de funciones BDC_OPEN_GROUP.
- Para cada transacción en la sesión:
- Complete el BDCDATA con valores para todas las pantallas y campos procesados en la transacción.
- Transfiera la transacción a la sesión con BDC_INSERT.
- 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 > Grabador) registra las transacciones que se ingresan manualmente y crea una sesión de entrada por lotes que se puede ejecutar más tarde utilizando SM35.
- 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 un SAP transacción y comenzar a registrar la transacción.
- Después de haber terminado de publicar un SAP transacción, puede elegir 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.