BPC Script logic for Dummies…

Cuando comencé en BPC no encontraba mucha información sobre los Scripts Logics, y sin querer me encontré con un blog que me cambio la vida, por lo cual lo quiero compartir para los que estamos en el mundo SAP BPC.

Aunque tengo una larga experiencia con BPC, si alguien me pide que escriba un script Logic, es posible que no escriba ese código en 10 minutos. No es un problema de mi conocimiento, pero escribir una secuencia de comandos requiere que la lógica entienda sus requisitos financieros y el conocimiento de su aplicación, como el ID de miembro de la cuenta y el nombre de las propiedades.

Hay algunos documentos y archivos de ayuda sobre la lógica del script y HTG, pero los usuarios finales pueden sentir que no es fácil. Estoy de acuerdo con eso, pero si entiendes su estructura y concepto, puedo garantizar que puedes leer y comprender lo que significa y cuál es el propósito de esa lógica de script. Además de eso, es posible habilitarlo para modificarlo o crearlo. Es lo mismo que no es fácil escribir un libro, pero leer un libro es una historia diferente.

Vamos a aprenderlo paso a paso.

Comprende 3 partes lógicas.

Logic es un motor de script especial y consta de 3 partes. Scoping, cálculo (crear / registrar) y escritura.

1. Alcance

BPC se basa en NW BI o MSAS que tiene una gran cantidad de datos. Por lo tanto, si no especifica el alcance, tomará mucho tiempo leer los datos.
Digamos que necesita calcular 2011.JAN, datos reales y solo una cuenta como ‘Ventas externas descontadas’ basada en las Ventas externas.

¿Cómo podemos analizar esto desde una gran base de datos?

La respuesta es….  * XDIM_MEMBERSET

* XDIM_MEMBERSET está utilizando los datos de alcance para cada dimensión.

Aquí está la gramática de XDIM_MEMBERSET.

* XDIM_MEMBERSET <DIMENSIONNAME> = <MEMBERNAME 1>, <MEMBERNAME 2> … <MEMBERNAME n>

Ahora, veamos el alcance de arriba.

Para el alcance 2011.JAN, * XDIM_MEMBERSET TIMEDIM = 2011.JAN
Para el alcance real, * XDIM_MEMBERSET CATEGORYDIM = ACTUAL
Para el alcance de las ventas externas, * XDIM_MEMBERSET ACCOUNTDIM = EXTSALES
(Nota: necesitamos realizar un alcance de ventas externas porque las ventas externas con descuento se calcularán en función de las ventas externas.)

2. Ahora, acabamos de finalizar el alcance por lo que es hora de calcular (crear) datos.

A diferencia de otros motores de script, no existe una variable temporal en el motor de script lógico, por lo que creará un registro que tenga la misma estructura de tabla de hechos y reemplazará o cambiará su valor por el comando ‘* REC’. (Nota: * REC significa ‘Grabar’.)

Aquí está la gramática de la declaración * REC

*REC [([FACTOR | EXPRESIÓN = {Expresión} [, {dim1} = {miembro}, {dim2} =?)]

Usando esa gramática, podemos hacer nuestra secuencia de comandos como a continuación.

*REC (FACTOR = 0.9, ACCOUNT = “DISCOUNT_EXTSALES”)
Lo que significa multiplicar por 0.9 al registro de ámbito actual y reemplazar al miembro de la cuenta con DiSCOUNT_EXTSALES

Aquí hay un ejemplo de lo que sucede con la declaración anterior.

<Scoped record>
EXTSALES, 2011.JAN, ACTUAL, 10000

<Registro generado>
DISCOUNT_EXTSALES, 2011.JAN, ACTUAL, 9000

¿Qué sucede si desea colocar el registro generado en la categoría PRESUPUESTO?

Entonces la declaración debería ser

* REC (FACTOR = 0.9, ACCOUNT = “DISCOUNT_EXTSALES”, CATEGORY = ” PRESUPUESTO “)

Ahora quiere poner 80% de valor en PRONÓSTICO al mismo tiempo. ¿Qué debemos hacer?
Podemos usar otra declaración * REC al mismo tiempo.

*REC (FACTOR = 0.9, ACCOUNT = “DISCOUNT_EXTSALES”, CATEGORY = ” BUDGET “)
*REC (FACTOR = 0.8, ACCOUNT = “DISCOUNT_EXTSALES”, CATEGORY = ” PRONOSTICO “)

   <Scoped record>
EXTSALES, 2011.JAN, ACTUAL, 10000

  <Registro generado>
DISCOUNT_EXTSALES, 2011.JAN, BUDGET9000

         DISCOUNT_EXTSALES, 2011.JAN, FORECAST8000

¿Es más fácil? eso espero 

Por favor, tenga en cuenta debajo de la regla.

  • Cada instrucción REC genera UN nuevo registro.
  • Cada registro fuente puede generar tantos registros como desee.
    • Significa que tiene un alcance de 1 registro, pero puede crear múltiples registros usando esto.
  • La traducción de moneda es el mejor ejemplo porque necesita múltiples monedas convertidas utilizando un registro de moneda local.
  • Por lo tanto, puedes imaginar que habrá múltiples declaraciones * REC
    en su lógica de script de conversión de moneda.
  • La celda de destino puede ser la misma. Todos los valores serán acumulados.
  • La sentencia *REC generará un nuevo registro, por lo que no importa, aunque el destino sea el mismo.

3. Como paso final, necesitamos escribir datos en la base de datos.

La declaración del script es realmente simple.

*COMMIT

Afortunadamente, no tiene ningún parámetro. Solo usa * COMMIT.

Cuando el motor de script BPC ejecuta * COMMIT, se publicarán los registros generados serán aplicados, utilizando el motor de envío BPC, que es el mismo motor que envía datos del libro de trabajo de Excel.

Revisamos tres partes principales de la secuencia de comandos del script Logic en BPC.

Fuente: https://blogs.sap.com/2011/05/24/bpc-script-logic-for-dummies-part-1/

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog de WordPress.com.

Subir ↑

A %d blogueros les gusta esto: