Método de actualización dinámica del filtro DTP / Variable Bex / Variable de filtro en DTP

Palabras clave involucradas en este artículo:
Salida de cliente
Variable OLAP
Bex Variable
TVARVC

La cuestión es la siguiente:
tenemos muchos clientes, lo que resulta en una gran cantidad de DTP. Además, las DTP de diferentes clientes a veces tienen que elaborarse de forma colectiva.
En este momento, si hay más de diez valores de filtro en DTP, no podemos cambiarlos uno por uno. Cámbielo a un valor fijo y tendrá que cambiarlo más tarde.

En este momento se utilizarán variables. Echemos un vistazo a los siguientes ejemplos:

a Proceso de transferencia El proceso de transferencia de datos se utiliza para definir cómo se transfieren los datos. Luego, puede filtrar los datos requeridos. Por supuesto, las condiciones del filtro las definimos nosotros mismos. Además de hacer un valor de filtro estático, que es una constante, por ejemplo, solo filtrar el último mes y solo filtrar qué país, también podemos proporcionar dinámicamente el valor de filtro, es decir, no escribirlo en el filtro. . .
Como puede ver a continuación, puede hacer clic en el filtro, 2 puede completar las constantes usted mismo, 3 cuadrados amarillos son variables, 4 cuadrados azules son rutinas.
Inserte la descripción de la imagen aquí

Rutina de DTP

Supongamos que existe un escenario como el siguiente: al
comienzo de cada mes, quiero ejecutar la descripción general de datos del mes anterior. Es decir, los datos de mi proveedor de información se ejecutan una vez al comienzo del mes para extraer los datos del mes anterior. ¿Cómo se cumplieron los datos del mes pasado?
Usemos este filtro de fiscper como un ejemplo para ver:
Inserte la descripción de la imagen aquí
Habrá un código generado automáticamente en la rutina, y luego vamos a completar> la
Inserte la descripción de la imagen aquí
siguiente variante de año fiscal es completar el que use.
Inserte la descripción de la imagen aquí
Llame al siguiente módulo de función:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
OK, luego guarde la rutina, active DTP y finalmente ejecútelo para ver. Las funciones principales se encuentran en este módulo de funciones. Tenga en cuenta que el valor automático de fiscper este campo de filtro es el mes anterior.
Inserte la descripción de la imagen aquí
Finalmente, configure una cadena de procesamiento, ejecute este DTP el primer día de cada mes y obtenga los datos del mes anterior.

Acerca de la introducción de la variante del año fiscal, haga clic aquí .

Variable OLAP

Otra forma es utilizar variables OLAP.
Estaba en el recuadro amarillo junto a la rutina.
Inserte la descripción de la imagen aquí
Este también puede ser el mismo escenario de aplicación que antes. Por ejemplo, los datos que queremos extraer son un período anterior al período actual. Ven y corre una vez al mes.
Este escenario también se puede extender a otros campos, como el campo de la semana, los datos de la semana anterior a la ejecución semanal.
Primero, debe crear una variable OLAP para el campo de filtro y luego mejorarla en la exportación del cliente, y luego se puede usar en DTP.

Crear variables OLAP

Esto está integrado en las herramientas de modelado de BW, la anterior es el diseñador de consultas.
Busque el campo de valor del filtro, haga clic con el botón derecho en la nueva variable y asigne un nombre nuevo.
Inserte la descripción de la imagen aquí
A través de la salida del cliente para tratar.
Inserte la descripción de la imagen aquí
Tenga en cuenta que la entrada lista aquí está marcada de forma predeterminada, pero usamos código para asignar valores, por lo que no es necesario marcar esto para preparar los valores de entrada. Es mejor cambiar la descripción también, no la cambiaré aquí.
Inserte la descripción de la imagen aquí
Entonces ve a escribir código.
CMOD a su código de salida de cliente, porque el filtro DTP debe llamar al código. Entonces i_step = 0 es el primer paso.

// A code block
IF i_step eq 0 
   and  i_varnm eq '0FISCPER'.
   DATA : i_date type SCAL-DATE,
               o_fscper type  /BI0/OIFISCPER.
CASE i_vnam.
  WHEN ‘DTP_TEST'.
  CLEAR l_s_range.
  l_s_range-sign = 'I'.
  l_s_range-opt = 'EQ'.
  i_date = sy-datum.
  CALL FUNCTION ’GET_PREVIOUS_MONTH'
  EXPORTING 
  date = I_DATE
  IMPORTING
  month = o_fscper.
  l_s_range - low = o_fscper.
  APPEND l_s_range TO e_t_range.
  ENDCASE.
  ENDIF.

Guarde y active esta salida.
Luego puede volver a DTP y luego seleccionar la variable OLAP del filtro y completar la variable que creó.
La realización de DTP recuperará directamente los datos del mes anterior.

Programa ABAP

Este método también proviene de variable. La diferencia es que lo anterior se escribe directamente a partir de la dinámica en el código para determinar el valor de filtro que desea, esto se puede llamar función Ejecute DTP de acuerdo con el valor de entrada.
Este método es adecuado para DTP que cambia dinámicamente el valor del filtro, es decir, no es necesariamente el valor del mes pasado o la semana pasada, sino el valor que quiero rellenar, y finalmente se extraen los datos por qué valor.
La premisa es que debes tener un lugar para ingresar tu valor, y luego lo llamaré de acuerdo con el código.

Esto debe tener en cuenta esta tabla: TVARVC Ver: TVARVC La
Inserte la descripción de la imagen aquí
tabla TVARVC se puede cambiar y se pueden completar los nombres de las variables. Este nombre de variable no es el otro nombre de variable.
Lo que queremos almacenar en esta tabla puede ser una variable que personalicemos. El punto variable puede ser un archivo, un valor único o un rango de valores. Tome nuestro período como ejemplo. Este es un rango de valores de tiempo. Y es un rango de valores que se puede cambiar en cualquier momento.
Inserte la descripción de la imagen aquí
En otras palabras, después de definir también la variable FISCPER, necesito escribir un fragmento de código para llamar al valor dinámico de esta variable en TVARVC.
¿Cómo lo escribo?

  METHOD DTP_TEST.

    DATA: ls_tvarvc TYPE tvarvc.
    SELECT SINGLE *
    FROM tvarvc
    INTO ls_tvarvc
    WHERE name = '*_DTP_FILTER'. //TVARVC里面的变量的名字

    l_s_range-low  = ls_tvarvc-low. //变量的区间低值
    l_s_range-high = ls_tvarvc-high.
    l_s_range-sign = 'I'.
    l_s_range-opt  = 'BT'.
    APPEND l_s_range TO e_t_range.

  ENDMETHOD.

Bien, ese es el final aquí. Es una comprensión simple.
Profundiza más tarde.

Supongo que te gusta

Origin blog.csdn.net/weixin_45689053/article/details/111573811
Recomendado
Clasificación