You are on page 1of 9

Truco 30.

Validaciones en
Controlling(CO), Finanzas (FI)
, Proyectos(PS).
Publicado el 3 noviembre, 2012

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

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 1 de 9
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

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 2 de 9
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).

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 3 de 9
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.

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 4 de 9
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 “&”.

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 5 de 9
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,

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 6 de 9
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 &).

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 7 de 9
Transporte de la validación: una vez creada la validación y
verificada correctamente en el sistema de desarrollo, la
transportaremos utilizando la transacció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:

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 8 de 9
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.

Anuncios

https://saptricks.wordpress.com/2012/11/03/truco-30-validaciones-en-controllingco-finanzas-fi-proyectosps/ 26/3/18 9C38


Página 9 de 9