Batch input recorder

domingo, 4 de septiembre de 2011

bikes


De vuelta en el blog. Esta vez con la herramienta batch input recorder. Para empezar, decir que llamamos programas de batch input a una serie de programas que se han venido utilizando para la transferencia en masa de información hacia sistemas SAP. A menudo, estos programas se han integrado en otras transacciones estándar como la típica legacy. Sin embargo, si nuestras necesidades no pueden ser cubiertas por herramientas estándar SAP, entonces nosotros mismos tendremos que escribir nuestros programas de batch input. El resultado de la ejecución de un programa de batch input es siempre un juego de datos que podremos procesar posteriormente para realizar la transferencia de información. En este artículo intento explicar cómo la herramienta de grabación de batch inputs puede ayudarnos a crear juegos de datos de batch input sin tener ningún conocimiento de programación ABAP.


Voy a dibujar un escenario sencillo donde queremos actualizar información en SAP a través de una transacción. Por ejemplo, nuestra empresa desea modificar el precio de venta de todos sus materiales a través de la transacción de registros de condición VK12. Por supuesto, si tenemos una base de datos de cientos de materiales la modificación manual puede suponer un trabajo considerable. Por lo tanto, en condiciones normales, lo lógico sería pedir a nuestro desarrollador ABAP que escribiese un programa de batch input que tuviese en cuenta nuestra necesidad. El programa escrito sería capaz de generar un juego de datos que repitiese las pantallas y la transacción cientos de veces (tantas veces como materiales hubiese en nuestra base de datos).

Ahora bien, si no tenemos ningún conocimiento de programación ABAP ni persona que nos pueda ayudar, la herramienta de grabación de batch inputs nos puede ser de gran utilidad a la hora de crear nuestro juego de datos. Por supuesto, sin saber ABAP y en unos sencillos pasos:
  • En primer lugar, vamos a la transacción de grabación de batch inputs SHDB.
  • Creamos una nueva grabación de la transacción VK12 a través del botón ‘Nueva grabación’.
  • Exportamos la grabación a un fichero .txt siguiendo el menú Grabación / Exportar.



  • Copiamos el texto de nuestra grabación tantas veces como materiales tengamos, pero en un nuevo fichero .txt. Al mismo tiempo, modificamos la información. Por ejemplo, si necesitamos modificar el precio de cien materiales, entonces copiaremos el texto cien veces. Tras ello, borraremos y re-escribiremos el código de cada material y del nuevo precio en cada pieza de texto de la grabación. Ya sé lo que estáis pensando, que esto es más fácil de decir que de hacer. Sin embargo, utilizando una sencilla hoja de cálculo y algunas fórmulas puede llegar a ser un proceso sumamente rápido*.
  • A continuación, importamos el nuevo fichero a SAP. Utilizamos para ello el menú Grabación / Importar.


  • Al final, lo que hemos conseguido es generar un nuevo juego de datos de batch input. Lo único que nos queda por hacer es presionar el botón ‘Procesar’ y nuestros datos subirán a SAP como en cualquier batch input.

Como véis, unos sencillos pasos que nos permiten actualizar información en masa sin haber escrito ni una sola línea de código ABAP. Por supuesto, no recomiendo esta herramienta para transferencias de información complejas. Ni tampoco lo recomiendo como sustituto de otras herramientas estándar legacy o bapis. Pero sí puede ser una herramienta interesante para afrontar problemas sencillos si no tenemos conocimientos suficientes de lenguaje ABAP.

*Una ayuda para completar el fichero .txt con la información a subir. Utilizad una hoja de cálculo como Microsoft Excel, numerad aquellos campos que queráis completar y utilizad fórmulas del tipo buscarv o consultav para buscar y reemplazar con la información de vuestra base de datos.

Imagen inicial | loop_oh

1 comentario:

  1. Excelente Blog; yo soy usuario final, pero es importante "el como" cargaron masivamente los datos que tenias en la base de datos "vieja" a el sistema R/3.

    Gracias
    (Nícol)

    ResponderEliminar