Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
fmunozb
Active Participant

Modificaciones del cliente sobre las transacciones VA01, VA02 y VA03

Introducción

En muchas ocasiones en los documentos de ventas del módulos de SD,  se requiere modificaciones como adicionar campos propios del cliente, o modificar características propias de algunas transacciones para que se acoplen a las necesidades del cliente, estos cambios permiten manejar información que es relevante para el cliente pero que el sistema estándar de SAP no soporta, para esta problemática SAP proporciona algunas técnicas que permiten su personalización; para el caso particular de las transacciones VA01, VA02 y VA03 contamos con las técnicas de User Exits, Enhancement Spot y Append. En el presente documento se va a indicar cuales son los pasos que se deben llevar a cabo para poder hacerlo.

Ampliación a las tablas VBAK y VBAP

Para modificar las transacciones de ventas en su cabecera se tiene que ampliar la tabla VBAK, en caso de querer modificar los datos de posición tenemos que ampliar la tabla VBAP. Ejecutamos los siguientes pasos para la tabla VBAK o VBAP según nuestras necesidades.

Para ampliar una tabla estándar se deben llevar a cabo los siguientes pasos:

  1. Ingresar a la transacción SE11 y colocar el nombre de la tabla.
  2. Dar clic en el botón Estr.append (F5), al hacer esto aparece una ventana emergente en la que damos clic en el botón Crear append, el cual está representado con el logo de una hoja.
  3. Posteriormente le damos nombre al include y aca nos aparece una pantalla en la cual colocamos los campos que queremos que aparezcan.

Manejo de los User Exits de ventas

Para poder llevar a cabo la personalización y mejora debemos hacer uso de User Exits, los cuales permiten manipular el documento de ventas. Para visualizar los Exits con que contamos podemos ir a SPRO → Comercial → Adaptación del sistema → Exits de usuario. → Exits de usuario en Ventas, en esta parte damos clic sobre el botón de Documentación y el sistema nos muestra una ayuda donde observamos cuales son los Exit que tenemos a disposición para poder llevar a cabo nuestra mejora.

En ese documento de ayuda se muestran todos los User Exit y la descripción, lo cual nos sirve de guía a la hora de escoger el que necesitemos, por ejemplo, si queremos colocar alguna validación en los campos adicionales que se crean en la tabla VBAK y VBAP, podemos hacer uso del User Exit USEREXIT_SAVE_DOCUMENT_PREPARE.  En la siguiente imagen se observa la descripción.

Ahora bien, como si decidimos modificar este User Exit, debemos buscarlo en el include correspondiente, para este caso pertenece al programa MV45AFZZ, por lo tanto, vamos a la transacción SE80 y colocamos el nombre del programa, cuando hacemos esto vemos que el include MV45AFZZ pertenece al programa SAPMV45A. Dentro de las subrutinas buscamos el User Exit deseado y hacemos la modificación.

Modificación del User Exit escogido

Una vez hemos escogido nuestro User Exit debemos modificarlo, para hacer esto tenemos dos opciones:

Registrando el Objeto

Modificar el Exit registrando en objeto en SAP Marketplace, para lo cual necesitamos tener acceso al SAP Marketplace, por lo general esto es labor del administrador del sistema (BASIS).

Una vez coloquemos la clave de acceso nos paramos en el User Exit a modificar y damos clic en el botón Insertar , y posteriormente adicionamos la lógica que requiera nuestro desarrollo.

Enhancement Point

La segunda opción es usar el Enhancemente Point para hacer la modificación, para esto desde el Editor ABAP damos clic en el botón  Ampliar (Shift+F4) y desde el menú principal vamos a Tratar → Operaciones de Ampliación → Insertar puntos de ampliación implícitos. Esta acción genera dos líneas con comillas sencillas, una al comienzo y otra al final de la subrutina. Ubicamos el cursor en alguna de ellas y vamos en el menú principal a Tratar → Operaciones de Ampliación → Crear Implementación. En este punto aparece la siguiente pantalla:

En esa pantalla da clic en el botón Cod.fuente. Esta acción lleva a la siguiente pantalla:

En esta pantalla se da clic en el botón Crear (F8), donde sale una pantalla donde creamos el punto de ampliación, después de creado lo seleccionamos y al hacer esto en el editor ABAP nos aparece activa la edición y desde allí podemos insertar la lógica necesaria.  

Nota:

Si usamos el User Exit USEREXIT_SAVE_DOCUMENT_PREPARE  contamos con las variables globales VBAK y XVBAP entre otras, solamente nombro las variables VBAK Y XVBAP por que son las que se usan para validar o modificar los campos que se crearon cuando se hizo el append a las  tablas VBAK y VBAP.

Adicionando campos nuevos en los Dynpros

Hasta el momento se ha mostrado como hacer el append a las tablas para adicionar los campos nuevos y como modificar el User Exit que necesitamos para manipular los datos nuevos, o para llevar algún proceso diferente al soportado de manera estándar, ahora voy a mostrar los pasos que se deben llevar a cabo para modificar las pantallas.

Esto es permitido haciendo uso de los Dynpros 8309 y 8459 del programa SAPMV45A, el Dynpro 8309 es usado para la cabecera y el Dynpro 8459 se utiliza para datos de posición, estos Dynpros realmente son subpantallas (subscreen) y corresponden a la pestaña de Datos adicionales B tanto de la cabecera como de la posición.

Solicitar clave de acceso a objeto

Para poder modificar estos dynpros necesitamos solicitar el acceso al siguiente objeto:

Después de obtener el acceso podemos llevar a cabo la modificación en el editor de dynpros (Screen Painter).

Modificación del Dynpro 8309

La modificación de este Dynpro se usa para mostrar información que queremos que salga a nivel de cabecera.

En la imagen se observa que los campos de entrada se crean con el nombre VBAK-<ZZ NOMBRE>, donde <ZZ NOMBRE> es el nombre que le dimos al atributo cuando ampliamos la tabla VBAK.

Modificación del Dynpro 8459

La modificación de este Dynpro se usa para mostrar información que queremos que salga a nivel de posición.

En la imagen se observa que los campos de entrada se crean con el nombre VBAP-<ZZ NOMBRE>, donde <ZZ NOMBRE> es el nombre que le dimos al atributo cuando ampliamos la tabla VBAP.

Conclusiones

El sistema SAP proporciona varias alternativas que permiten mejorar o adecuar el estándar a necesidades particulares de los clientes, haciendo uso de manera adecuada de estas alternativas podemos hacer mejoras importantes, en el caso particular para las transacciones VA01, VA02 y VA03 observamos que el sistema proporciona un buen número de maneras para poder llevar a cabo cambios y mejoras.

5 Comments