martes, 10 de marzo de 2015

Truco 30. Validaciones en Controlling(CO), Finanzas (FI), Proyectos (PS)

Truco 30. Validaciones en Controlling(CO), Finanzas (FI) , Proyectos(PS).

Al igual que Sap nos permite personalizar nuestro sistema sustituyendo determinados valores en los módulos de Finanzas (FI), Controlling(CO), Proyectos (PS), etc. a través de las sustituciones (ver entradas del blog referentes aquí y aquí), Sap nos ofrece otro mecanismo, llamado Validaciones, que nos permite introducir en el comportamiento estándar del sistema nuestras propias comprobaciones y una respuesta del sistema en forma de mensaje (que podrá ser de advertencia, error, información o cancelación).
Básicamente, las validaciones se componen de diferentes pasos que se ejecutan secuencialmente cuando estemos utilizando los módulos implicados. Cuando se cumple la condición de entrada a ejecutar uno de estos pasos, se realiza la verificación indicada. Si la verificación no se cumple, se lanza el mensaje definido en el paso de la validación, con las características indicadas (advertencia, error, etc.). En las validaciones también podemos utilizar la programación (Exits) para realizar comprobaciones complejas donde deseemos utilizar código Abap.
Las transacciones asociadas para la definición de las validaciones son las siguientes:
  1. Controlling: transacción OKC7. Se transportan con la transacción OKE9.
  2. Finanzas: transacción OB28. Se transportan con la transacción GCT9.
  3. Proyectos: transacción OPSI. Se transportan con la transacción GCT9
  4. Todos los módulos: desde la transacción GGB4 también podemos acceder de forma global a las validaciones, además de las disponibles en otros componentes de Sap diferentes a los mencionados (como Activos Fijos, Contabilidad de Centros de Beneficio – Cebes, etc).

Transacción GGB4 para gestionar de forma global validaciones y sustituciones
El uso de las validaciones lo podemos complementar con la utilización de los Sets (se definen en las transacciones GS01/GS02), que nos permiten darle una forma dinámica a estas comprobaciones. Los sets se mantienen en el sistema productivo (no son parametrización), y se pueden utilizar dentro de las verificaciones de forma genérica (haciendo referencia a su nombre). De esta forma, modificando los componentes de un set podemos variar el funcionamiento de una validación sin necesidad de estar tocando la definición de estas y sin necesidad de estar transportando desde Desarrollo a Productivo con cada cambio.

Ejemplo de validación en Finanzas (FI).

Nuestro cliente nos ha pedido una verificación en el sistema de forma que determinadas cuentas contables (lista de cuentas) no puedan ser utilizadas en las contabilizaciones usando una determinada Clase de Documento contable (la clase de documento SA).
Los pasos que vamos a seguir para parametrizar nuestra validación en el sistema son los siguientes:
  • Creación del Set de Cuentas: con la transacción GS01 vamos a crear un conjunto de cuentas que incluya todas las cuentas que queremos incluir en la comprobación. Esto nos permitirá que cualquier cambio en las cuentas a comprobar será tan sencillo como incluir o sacar una cuenta de este grupo, sin necesidad de tocar nada mas en el sistema. Nota: los sets se definen en cada sistema, aunque hay utilidades accesibles desde la misma transacción GS01/Gs02 para hacer un transporte o copia entre diferentes sistemas / mandantes (opción de menú Utilidades –> Transportar).

Creación de un Set de Cuentas (transacción GS01)
  • Creación de la validación: desde la transacción OB28 crearemos una validación del tipo 2 (posición de documento contable, en el campo llamado Evento). En primer lugar crearemos el registro y en segundo lugar, una vez grabado, lo activaremos introduciendo el valor 1 en el campo Grado Actividad. También se pueden crear validaciones a nivel de cabecera de documento contable (Evento 1) o a nivel de documento completo (Evento 3). Crearemos una única validación donde incluiremos los diferentes pasos de comprobación. En esta lugar de la parametrización se indica la sociedad FI para la que queremos que la validación sea efectiva. Podremos tener la misma validación activa en diferentes sociedades FI.
  • Creación del mensaje (texto) que se mostrará en la validación: con la transacción SE91 crearemos un código de mensaje (dentro de una clase de mensaje existente), donde se introducirá el texto del mensaje que querremos mostrar cuando se cumpla la condición de la validación. Dentro del texto se pueden incluir valores variables usando el carácter “&”.

Creación de mensajes (SE91)
  • Creación del paso de validación: crearemos el paso introduciendo los siguientes elementos:
    • Condición:  es la condición previa que se ha de cumplir para que se verifique la validación. Si las condiciones que indicamos aquí no se cumplen, la transacción de contabilización se ejecutará correctamente y no dará ningún mensaje de error. En nuestro ejemplo, hemos indicado la condición:  BSEG-HKONT IN ZCUENTAS_BLOQUEADAS. Esto hará que la verificación solo se va a lanzar si la cuenta contable del asiento esta dentro del set que hemos definido.
    • Verificación: si la condición que indicamos en este lugar no se cumple, entonces se lanzará el mensaje correspondiente determinado en la pestaña Mensaje. En nuestro caso, la condición indicada ha sido  BKPF-BLART <> ‘SA’. Es decir, solo cuando la clase de documento sea SA se lanzará el correspondiente mensaje. Podríamos utilizar un truco que sería introducir en Condición todo aquello que queremos que se cumpla y luego en verificación introducir una condición que nunca se cumpla (por ejemplo “1” = “2”). Esto hará que siempre se lance el mensaje siempre que la condición se cumpla, sin tener en cuenta lo que hay en verificación que nunca se cumple.
  • Mensaje: seleccionamos el mensaje que queremos mostrar (clase de mensaje, número de mensaje y tipo de mensaje). En nuestro caso, es un mensaje de Error. Observar como utilizamos los campos variables que queremos que se muestren en el mensaje (sustituirán al valor &).
  • Transporte de la validación: una vez creada la validación y verificada correctamente en el sistema de desarrollo, la transportaremos utilizando latransacción GCT9.
La validación esta activa en el sistema. Cuando intentamos hacer una contabilización que cumple las condiciones de la validación, nos aparecerá el siguiente mensaje de error:
Al igual que las sustituciones, las validaciones son un recurso que se utiliza con frecuencia en todas las instalaciones Sap. Y una herramienta que nos permite solucionar muchas solicitudes de los usuarios sin necesidad de grandes complejidades.

No hay comentarios:

Publicar un comentario