13 de octubre de 2010

Centros de beneficios multidimensionales en SAP B1


Cuando se desean analizar los costes de una empresa, uno de los conceptos más utilizados son los Centros de beneficio (también conocidos como centros de coste). SAP B1 permite asignar un centro de beneficio a cada apunte contable, incluso con carácter retroactivo una vez esté registrado dicho apunte. Además, también se pueden definir Normas de reparto para repartir proporcionalmente los costes de un mismo apunte entre diferentes centros.

Sin embargo, algunas empresas desean tener una estructura de centros de beneficio con más de una dimensión, opción que no está disponible de manera estándar en SAP B1.

Alternativa

Existe una manera sencilla y que no requiere ninguna inversión en desarrollos externos para poder disponer de 2 dimensiones en nuestros centros de beneficio. Para ello sólo hace falta definir un patrón en los códigos de los centros en el cual queden separados nuestras 2 dimensiones de análisis.

Imaginemos una empresa que desea analizar sus costes según 2 criterios: el departamento interno y la campaña comercial. En ese caso podríamos definir los códigos de los centros de beneficio como XX/YY, donde XX sería el departamento e YY sería la campaña, utilizando como separador el carácter "/".

Con esta estructura, podríamos asignar un apunte únicamente a un departamento, a una campaña o a ambos:

  • Si utilizamos el centro 01/00, estaríamos registrando el coste en el departamento 01, sin tener en cuenta la campaña.
  • Si utilizamos el centro 00/71, estaríamos registrando el coste en la campaña 71, sin tener en cuenta el departamento.
  • Si utilizamos el centro 02/53, estaríamos registrando el coste en el departamento 02 y la campaña 53.

Con este tipo de centros de beneficio y combinados con las normas de reparto, podremos disponer de unos costes bidimensionales sin necesidad de realizar modificaciones en el programa.

Análisis contable

SAP B1 nos permite filtrar por centro de beneficio en muchos de los informes estándar de los que dispone. Así pues, con estos informes podemos saber los datos de las imputaciones analizadas según nuestros 2 criterios, departamento y campaña. Si lo que queremos es realizar un análisis únicamente de 1 dimensión, deberemos utilizar las consultas de usuario, que nos permitirán definir cláusulas condicionales más avanzadas para filtrar los datos.

A continuación os dejo con una consulta simple que nos permite saber, en un determinado periodo de tiempo, los apuntes asociados a un departamento, independientemente de la campaña.

SELECT T0.[TransId], T0.[RefDate], T0.[Debit], T0.[Credit], T0.[LineMemo], T0.[ProfitCode] FROM JDT1 T0 WHERE (T0.[RefDate]>[%1] AND T0.[RefDate]<[%2]) AND LEFT(T0.ProfitCode,2)=[%3]

Para hacer lo mismo con una campaña, bastaría con substituir el LEFT(T0.ProfitCode,2) por RIGHT(T0.ProfitCode,2).

Añadir más dimensiones

La solución presentada en este post se puede extender a varias dimensiones, dividiendo el código del centro de beneficio en tantas partes como se desee. La única limitación que tenemos es la del tamaño máximo del código de los centros de beneficio, que SAP B1 fija en 8 caracteres. Así pues podríamos definir que cada dimensión ocupa 2 caracteres, y tener un código de 4 dimensiones del tipo WWXXYYZZ (sin carácteres separadores). Para realizar el análisis detallado de las dimensiones XX e YY deberemos usar las cláusulas de SQL MID(T0.ProfitCode,3,2) y MID(T0.ProfitCode,5,2) respectivamente.

No hay comentarios:

Publicar un comentario