Wednesday, December 26, 2007

Tip - Activar las funciones de precios de la VOFM

Este va a ser un post corto, pero muy útil.

Alguna vez les pasó que crean una rutina de precios o algún otro objeto de la VOFM para el esquema de SD, lo prueban en el entorno de desarrollo y cuando lo transportan a QA o Producción les da un DUMP o no funciona?

Bueno... la solución puede ser esta: ejecutar el reporte RV80HGEN en el sistema destino.

Este reporte lo que hace es "activar" las rutinas de la VOFM en el sistema en el que se ejecuta; esto es necesario para que funcionen estas funciones.

Otra solución es agregar en la orden de transporte un objeto R3TR XPRA RV80HGEN y esto hará que cuando se transporte la orden, se ejecute automáticamente el reporte en el sistema destino.

En esta ocasión les voy a pasar la dirección de un foro en la que pueden hacer todo tipo de preguntas y que intentaré contestar con la mayor brevedad posible:

Foro Programación SAP ABAP

Friday, December 7, 2007

BTE's - Business Transaction Events

Las BTE's, o Business Transaction Events son un tipo de extensión del sistema SAP. A diferencia de las BADI's, únicamente se puede modificar código con las BTE's; no es posible modificar dynpros o menúes.
Las BTE's están basadas en Módulos de Funciones y Productos, a diferencia de las BADI's que están basadas en objetos.
Al implementar una BTE, se debe crear una interfase para el módulo de funciones de la BTE. De esta manera, el sistema leé una tabla Z y llama dinámicamente la función implementada por el cliente.
Existe 2 tipos de interfases:
- Interfases de Publicación y Suscripción
- Interfases de Proceso

Las interfases de Publicación y Suscripción brindan información sobre eventos en particular, como la creación o la modificación de un documento. Por otro lado, las interfases de proceso se utilizan para reemplazar la lógica estándar de SAP por lógica de cliente.

En este link vas a encontrar más información acercar de las BTE's y todo lo relacionado con la programación ABAP:

Business Transaction Events - BTE's

Thursday, November 15, 2007

Tipos de Transacciones SAP

Por pedido del público, voy a hacer un resumen de los tipos de transacciones en SAP:

Transacciones de Diálogo

Son las transacciones más comunes dentro del estándar de SAP. Estas transacciones están ligadas a una Dynpro (pantalla) de un programa ABAP. Al llamar a estas transacciones, se carga el programa ABAP y se llama a la Dynpro. De esta manera, una transacción de diálogo llama a una secuencia de pantallas más que a un programa. Sólo durante la lógica de las pantallas se llaman efectivamente los módulos de diálogo del programa. De hecho, se pueden asignar diferentes transacciones de diálogo al mismo programa.


Transacciones de Parámetros

Estas transacciones son llamadas a otras transacciones existentes con parámetros de entrada. Es decir que son llamadas a transacciones con parámetros definidos, pudiendo omitir la pantalla inicial de la transacción original.


Transacciones de Variantes

Son transacciones ya existentes llamadas con una variante anteriormente creada. Al acceder a una transacción de variante, se ejecuta la transacción subyacente con la variante en cuestión. En las variantes se pueden definir valores para los diferentes valores de las diferentes pantallas, cambiar los atributos de los elementos de pantalla, etc. Las transacciones de variante se mantienen con la transacción SHD0.


Transacciones de Reporte

Son transacciones que llaman a un Reporte ABAP. La transacción se debe mapear con la pantalla de selección de un programa ejecutable. Internamente, cuando se llama a este tipo de transacciones el sistema ejecuta un SUBMIT al programa ejecutable.


Transacciones Orientadas a Objetos (OO Transactions)

Este tipo de transacciones apareció en la versión 6.10 de SAP. La transacción está linkeada a un método de una clase local o global. Cuando se llama a la transacción se carga el programa correspondiente.

En el siguiente link tiene más información acerca de las transacciones, tipos programas y ejemplos de código ABAP:

Ejemplos de ABAP

Sunday, November 4, 2007

BADI's (Business ADd Ins)

Las BADI's (Business ADd Ins) son un nuevo tipo de extensión al sistema SAP basado en ABAP Objetcs. El objetivo de los mismos es cumplir con los requerimientos del cliente permitiendo agregar nuevas funcionalidades dentro del código estándar de SAP.
De la misma manera que con los User Exit's, las BADI's tienen dos vistas: la de definición y la de implementación. Mediante la transacción SE18 accedemos a la Definición de las BADI's. Allí se puede ver las características de la misma: parámetros de entrada, salida, tipo de BADI, etc. En la Implementación de la BADI, a la que se accede mediante la transacción SE19, se pueden ver todas las implementaciones que existan de una BADI determinada.

La definición de las BADI's viene definida en el sistema estándar (muy pocas veces es necesario crear una nueva definición para una BADI). En la definición se indica si la BADI es de implementación simple (se puede utilizar sólo una vez, como los User Exits) o múltiple (pueden existir varias implementaciones activas de la misma BADI en el mismo sistema). Además, se pueden definir filtros para la ejecución de la misma permitiendo de esta forma tener diferentes procesos para, por ejemplo, países diferentes. Esto le permite a SAP poder utilizar las BADI's para realizar localizaciones del sistema; por eso es que el sistema estándar ya incluye varias implementaciones de BADI's.

Mediante las implementaciones de BADI's también se pueden hacer aplicaciones para negocios específicos (papeleras, petroleras, químicas, etc). Esto hace que las BADI's sean muy útiles. Esto es así porque a diferencia de los User Exits las BADI's poseen una arquitectura Multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones específicas para industrias, etc); los User Exits son doble capa únicamente (SAP y soluciones de cliente).

En www.todoabap.com.ar van a encontrar métodos para encontrar las BADI's de una transacción o programa.

Wednesday, October 31, 2007

BAPI's

Bueno... les voy a explicar cómo funcionan las BAPI's en SAP ABAP.

Las BAPI's son funciones que sirven para realizar acciones sobre los objetos de negocios de SAP. Son en realidad métodos de los objetos de negocios, y gracias a ellos podemos realizar cargas evitando utilizar Batch Inputs por Call Transaction.


Básicamente son funciones como cualquier otra función en ABAP, así que poseen las mismas características: parámetros de entrada, de salida, tablas, excepciones...

Por lo general cuando se hace un modificación de un objeto con una BAPI es necesario realizar un COMMIT explícito mediante la función BAPI_TRANSACTION_COMMIT. Si quieren probar si una función les sirve para cargar algún dato en particular, pueden utilizar la transacción SE37 e ir al menú Módulo de Funciones->Verificar->Secuencias Test. Allí se pueden encadenar funciones, de manera de poder ejecutar primero la BAPI y después la función BAPI_TRANSACTION_COMMIT para probar si efectivamente el dato que necesitan cargar es cargado por la BAPI que estén probando.

En www.todoabap.com.ar tiene muchos ejemplos de cómo utilizar BAPI's y también BADI's, User Exits tradicionales, funcionesm el ABAP Workbench, etc.

Monday, October 22, 2007

Programación en ABAP - SAP

Hola! En este blog vamos a discutir sobre las técnicas de programación en SAP ABAP. Todos los que deseen participar con sugerencias, consejos, links interesantes para explorar son invitados a hacerlo.
Para todos los que quieran conocer algo más de este lenguaje de programación utilizado en el sistema SAP les paso el siguiente link en donde encontrarán mucha información útil sobre ABAP, Enhancementes (las nuevas ampliaciones de SAP a partir de la versión 6.0), BAPI's, BADI's, User Exits y mucho más...

www.todoabap.com.ar.

Por favor, no dejen de participar en este blog para que podamos ayudarnos mutuamente con los problemas que nos puedan surgir en el mundo ABAP.