Datos adicionales en documentos de ventas

lunes, 23 de enero de 2012

El tema de este artículo es cómo añadir nuevos campos no estándar en documentos de ventas. Pues a veces ocurre que nuestro cliente no tiene a su disposición dentro del abanico de campos que le ofrece SAP estándar ciertos campos concretos muy específicos de su negocio.

Pasos

Nuestra empresa necesita crear una numeración adicional y específica para cada uno de los documentos de venta que genera aparte de la que genera SAP estándar. ¿Cómo podemos solucionar este problema?
  • En primer lugar añadimos este campo adicional a nuestra tabla estándar de documentos ventas estándar ‘VBAK’. Para ello creamos añadimos una estructura append adicional.
Herramientas / Workbench ABAP / Desarrollo / SE11 – Diccionario ABAP / Pasar a / Estructura append


  • Damos un nombre nuevo a nuestra estructura ZZ, añadimos el nombre del campo y su tipo y descripción. Activamos y esperamos. Activar la estructura de la tabla VBAK puede requerir bastante tiempo.
  • A continuación modificamos la pantalla que SAP ya tiene preparada para modificaciones específicas de cliente. SAP provee las dynpros 8309 y 8310 para modificaciones de la pantalla de "Datos Adicionales B" que podemos encontrar en cualquier documento de ventas estándar. En algunos casos muy específicos pueden existir problemas en la creación de campos adicionales en estas dynpros. La nota 302497 de SAP explica cómo solucionarlos.
Herramientas / Workbench ABAP / Desarrollo / Interfase de usuario / SE51 – Screen painter


  • Abrimos el layout e insertamos nuestro campo. Activamos.
Pasar a / Ventana secundaria / Campo Dict/Programa (F6)


  • Una vez modificada la pantalla debemos informar el campo. Para eso necesitamos una user exit, por ejemplo la MV45AFZZ. Introducimos nuestro código en la rutina “userexit_save_document_prepare”.
CONCATENATE ‘034’ VBAK-VBELN+1(9) INTO VBAK-ZZNUM.
Herramientas / Workbench ABAP / Desarrollo / SE38 – Editor ABAP
  • En el caso de que queramos hacer modificaciones en el comportamiento de la pantalla antes o después del procesado de datos tenemos las user exits MV45AOZZ (PBO) y MV45AIZZ (PAI).

Resultado

  • Creamos un nuevo pedido de ventas.
Logística / Comercial / Ventas / Pedido / VA01 – Crear
  • Navegamos a la pestaña “Datos adicionales B”. El valor es el conjunto del valor 034 y los nueve últimos dígitos del pedido de ventas SAP.


Para los que deseéis investigar, decir que existe la BADI  BADI_SD_TAB_CUST_H que nos permite realizar lo mismo. Nunca he trabajado con ella, pero cualquier aporte al respecto será bienvenido.

4 comentarios:

  1. Muy bueno la manera como lo explicas, podrias por favor hacer uno similar para agragar datos adicionales a ordenes PM? es decir, para la transacciones IW31 IW32, estare atento a tus comentarios.

    ResponderEliminar
    Respuestas
    1. Quizá te pueda servir de ayuda otro artículo del blog
      http://www.blogdesap.com/2013/02/mas-campos-listado-de-ordenes.html

      Eliminar
    2. Hola! pero existe alguna alternativa como en este caso para añadir un campo directamente sobre la IW31/IW32/IW33. En mi caso, necesitaria habilitar un nuevo campo en dichas transacciones para que complete el usuario, sin importarme que sea mostrado en el reporte, como se especifica en el ejemplo que recomendas a Roel. Gracias!!!

      Eliminar