BPC Script logic for Dummies, capítulo 5

script logic

Al igual que otro lenguaje de programa o script, el script lógico también admite la instrucción LOOP. Vamos a ver cómo funciona.

Aquí está la sintaxis de la declaración *FOR *NEXT.

*FOR {variable1} = {set1} [AND {variable2 = {set2}]

{otra declaración …}

*NEXT

Y aquí hay un ejemplo.

*FOR % CURR% = USD, EURO

*REC (FACTOR = 1.1, TIME = 2011.OCT, CURRENCY = % CURR%)

*NEXT

Entonces, ¿cuál es el significado del ejemplo anterior?

1. Establecemos una variable como % CURR%

2. La variable % CURR% será reemplazada por dos valores USD y EURO.

3. La declaración *REC incluye la variable % CURR%.

4. Por lo tanto, se traducirá dos declaraciones como a continuación

porque la declaración *REC existe dentro de la declaración *FOR *NEXT.

*REC (FACTOR = 1.1, TIME = 2011.OCT, MONEDA = USD)

*REC (FACTOR = 1.1, TIME = 2011.OCT, MONEDA = EURO)

Supongamos que la variable %CURR% tiene USD, EURO, CHF, KRW y luego se traducirá de la siguiente manera.

*REC (FACTOR = 1.1, TIME = 2011.OCT, MONEDA = USD)

*REC (FACTOR = 1.1, TIME = 2011.OCT, MONEDA = EURO)

*REC (FACTOR = 1.1, TIEMPO = 2011.OCT, MONEDA = CHF)

*REC (FACTOR = 1.1, TIEMPO = 2011.OCT, MONEDA = KRW)

Alguien puede decir «podemos usar varias líneas de la declaración *REC«.

Por supuesto, es correcto si es simple, pero necesitamos la instrucción *FOR*NEXT porque puede usarse como una forma anidada.

Por ejemplo,

*FOR %YEAR% = 2003,2004,2005

*FOR %MONTH% = ENE, FEB, MAR, APR, MAYO, JUNIO, JULIO, AGOSTO, SEP, OCT, NOV, DIC

*REC (FACTOR = GET(ACCOUNT = » TOT.OVRHEAD «, TIME =» TOT.INP «) / 100, TIME =»% YEAR%.% MONTH% «)

*NEXT

*NEXT

Si el usuario está usando la declaración *REC, el usuario debe escribir 36 declaraciones en lugar de una simple instrucción *FOR *NEXT anterior.

(NOTA: BPC NW admite un FOR – NEXT anidado en la versión 7.5)

Además, el usuario puede usar dos conjuntos de variables como el ejemplo a continuación.

*FOR %X% = 1,2,3 AND %Y% = A, B, C

*REC (FACTOR = 1.5, TIME = %X%, CURRENCY = %Y%)

*NEXT

Entonces, el primer conjunto de variables y el segundo conjunto de variables se combinarán de 1 a 1; entonces será reemplazado como el siguiente ejemplo.

*REC (FACTOR = 1.5, TIME = 1, CURRENCY = A)

*REC (FACTOR = 1.5, TIME = 2, CURRENCY = B)

*REC (FACTOR = 1.5, TIME = 3, CURRENCY = C)

¿Qué sucede si el número de valores no coincide entre la primera y la segunda variable?

Si la primera variable tiene menos valores que la segunda variable,

se ignorarán los valores adicionales de la segunda variable.

Si la primera variable tiene más valores que la segunda variable,

los valores faltantes de la segunda variable se considerarán nulos, así que tenga cuidado de hacer coincidir el número de la variable.

Lo último sobre *FOR*NEXT es usar la variable del conjunto de datos como valores.

Los usuarios pueden usar data_set como %TIME_SET% en lugar de especificar todos los miembros de tiempo.

Esto es muy útil cuando usamos lógica de script con conjunto de datos dinámico.

Por ejemplo, podemos usar

*FOR %MYTIME% = %TIME_SET%

lugar de

*FOR %MYTIME% = 2003.JAN, 2004.JAN, 2005.JAN

Por lo tanto, los usuarios pueden ejecutar la lógica del script dinámicamente en función de los conjuntos de datos pasados.

Fuente: https://blogs.sap.com/2011/10/03/bpc-script-logic-for-dummies-part-5/

BPC Script logic for Dummies, capitulo 1

BPC Script logic for Dummies, capitulo 2

BPC Script logic for Dummies, capítulo 3

BPC Script logic for Dummies, capítulo 4

4 comentarios

Deja una respuesta

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. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.