Ratios Virtuales



Quería crear el blog de acuerdo al nivel de dificultad de los artículos, comenzando desde lo mas básico, pero mientras ordeno las ideas sigue pasando el tiempo y no escribo nada, así que decidí mejor ir colocando los artículos así como vayan saliendo.
Aprovechando que un colega necesitaba algo de ayuda hace poco con este tema, hoy comentaremos uno de las opciones mas útiles a la hora de construir consultas y que no todos los consultores de BI manejan, sobretodo porque se requiere cierto nivel de programación. El tema en cuestión es Características y Ratios Virtuales.

Las características y Ratios Virtuales nos sirven para determinar el valor de un infoobjeto, realizar un cálculo, en tiempo de ejecución; esto es, al momento de ejecutar la consulta. Un ejemplo muy práctico es cuando requerimos que el valor de un ratio sea determinado de acuerdo a las variables ingresadas por el usuario; es decir, el valor a determinar depende de los valores de entrada de la consulta, por lo cual no es posible almacenarlo con anterioridad en el infoprovider.

Dicho esto, vayamos al grano.

1.- Primera parte, yo la llamo preparación.

A.- Antes que nada, se crean las características y/o ratios virtuales de manera normal, como un infoobjeto común y corriente.

B.- Si no existe el proyecto de ampliación para características y Ratios Virtuales, crear uno agregando como ampliación RSR00002.

Pantalla 1.

B.1.- En componentes, se debe haber creado dos entradas:

Pantalla 2.


2.- Segunda parte, llamémosla Definición.

Ingresamos al primer componente del proyecto (EXIT_SAPMRSRU_001).

Pantalla 3.

Hay que modificar tres programas (también se podría directamente desde la Tx. SE38), vayamos por partes:

A.- Primero seleccionamos del Menú "Pasar a"-> "Datos Globales".


Pantalla 4.


B.- Pulsamos doble-click sobre zxrsrtop.


Pantalla 5.


C.- Aquí se deben agregar todos los datos (características y ratios) involucrados en el cálculo, tanto los que serán modificados, como los que serán solo leídos.

La manera de agregarlo es como se muestra en la pantalla anterior:
g_pos_cubo_infoobjeto por cada infoobjeto a utilizar.


D.- Regresamos dos veces hasta llegar nuevamente a la pantalla 3.


E.- Pulsamos doble-click sobre ZXRSRU02.

Pantalla 6.

F.- Aquí definimos como será usado cada infoobjeto:
A tomar en cuenta:

Primero va la instrucción "CASE i_s_rkb1d-infocube."

Luego "WHEN 'cubo'." con el nombre del cubo para el cual se calculará el valor del ratio o característica.

Para el caso de las características que solo le leerán, se colocan las siguientes instrucciones:
l_s_chanm-chanm = 'característica'.
l_s_chanm-mode = rrke_c_mode-read.
APPEND l_s_chanm TO e_t_chanm.

Para las características cuyo valor será modificado (características virtuales, si las hay):
l_s_chanm-chanm = 'característica'.
l_s_chanm-mode = RRKE_C_MODE-NO_SELECTION.
append l_s_chanm to e_t_chanm.

Para los ratios a ser leídos y/o calculados:
APPEND 'ratio1' TO e_t_kyfnm.
APPEND 'ratio2' TO e_t_kyfnm.
...
APPEND 'ratioN' TO e_t_kyfnm.


G.- Regresamos a la pantalla anterior.


3.- Tercera parte, Programación.


A.- Ahora vamos al tercer y ultimo programa, seleccionando del Menú “Pasar a” -> “Programa de control”.

Pantalla 7.

B.- Pulsamos doble-click sobre ZXRSRZZZ.


Pantalla 8.


C.- Aquí incluimos nuestra programación.

A considerar:
a.- Todos los infoobjetos a usar se definen primero como FIELD-SYMBOLS con la instrucción:



b.- Luego se usa la instrucción



c.- Se genera el código necesario, los datos a usar en el código son los FIELD-SYMBOLS creados, por ejemplo:



No hay comentarios: