En varias entradas anteriores del blog vimos varias formas de personalizar el maestro de clientes.
- Chequeos personalizados: usando la ampliación SAPMF02D (CMOD), podiamos añadir nuestra propias verificaciones en la creación o modificación de clientes. Por ejemplo, control de NIF duplicados, verificación de valores o chequeo de dependencias entre ellos, etc. Ver información completa en el enlace.
- Inicializar valores por defecto al crear un cliente: en una entrada posterior hablamos de la forma de poder dar valores por defecto en la creación de los clientes, utilizando la Badi CUSTOMER_ADD_DATA. Utilizando el método PRESET_VALUES_CCODE podemos inicializar valores a nivel de sociedad y con el método PRESET_VALUES_SAREA podemos inicializar valores a nivel de organización de ventas. Ver información en el enlace.
Esto es muy útil, pues nos permite definir valores por defecto en la condición de pago, via de pago, grupo de tesoreria, etc, por ejemplo, al crear un cliente (por grupo de cuentas, por país, etc). En la badi tenemos disponible la información introducida hasta el momento por el usuario (KNA1, KNB1 o KNVV) y podemos hacer las inicializaciones deseadas.
Añadir campos adicionales en el maestro de clientes
Si lo que necesitamos es añadir nuestros propios campos en el maestro de clientes, podemos utilizar igualmente la Badi CUSTOMER_ADD_DATA, en combinación con la badi CUSTOMER_ADD_DATA_CS. Con esta ultima gestionamos añadir las pantallas en la transacción, en combinación con la otra BADI donde gestionamos la gestión de los datos.
Os recomiendo la lectura del blog saptechnical.com , donde se explica paso por paso todas las tareas de programación a realizar para realizar la ampliación. En mi ejemplo, siguiendo las indicaciones, he añadido una nueva sección de datos (aparecerá un botón en la parte superior de la pantalla, debajo del titulo).
Al seleccionarlo, nos llevará nuestra pantalla de datos propios, donde incluiremos los campos necesarios.
En la Badis, con la ayuda de un abaper, incluiremos la lógica de comprobación de los datos así como el guardado en la base de datos (como una extensión de las tablas de cliente o en tablas Z).
En cualquier caso, antes de ampliar el maestro recomiendo utilizar los campos disponibles en el estándar (que son muchos), incluso utilizar el sistema de clasificación, que también nos permite definir campos a completar en el maestro sin necesidad de programar (utilizando las clases).
En la imagen podéis ver la asignación de una clase sencilla con dos características al cliente para indicar información adicional. Sin necesidad de programar y con búsquedas disponibles en el estándar por defecto. Hablaremos de esto en una próxima entrada el blog.
Verificación de clientes utilizando los mensajes estándar
Para terminar, como bien nos explica Anupa Wijesinghe en su blog, y para completar las posibilidades de personalización, existe una forma estándar de controlar algunas situaciones relacionadas con el maestro de clientes, sin necesidad de programar. En la ruta de customizing Logística en general –> Interlocutor comercial –> Clientes –> Control –> Modificar control mensajes para maestro deudores.
Existe una gran cantidad de mensajes que se pueden configurar, pero me han parecido especialmente interesantes los que nos permiten controlar la duplicidad de identificador fiscal ( mensajes 272 o 273) o la duplicidad de direcciones (que nos puede avisar de la duplicidad de un cliente, mensaje 145).
Para el ejemplo, he configurado el mensaje 145 como activado (tipo de mensaje I, se mostrará un pop-up). Al crear un cliente nuevo o modificar uno ya existente, si existen uno o varios clientes con la misma dirección (nombre, domicilio, etc), el sistema muestra un aviso y nos enseña la lista de los clientes con los mismos valores.
Una funcionalidad interesante, aunque limitada si queremos lógicas de comprobación más complejas. En ese caso, utilizaremos las opciones descritas anteriormente.
Espero que os sea de utilidad.
Bibliografía:
http://www.learnsaptips.com/2020/01/message-control-settings-for-customer.html
http://saptechnical.com/Tutorials/ABAP/XD01/XD01.htm
http://abaperitos.blogspot.com/2009/03/badis-programacion-abap.html
https://www.apprisia.com/blog/sap-abap/learn-how-to-enhance-xd02-in-5-simple-steps-2/