Crear variantes de report

domingo, 26 de diciembre de 2010

dir /s

En SAP llamamos variante a una imagen de información fija que podemos introducir en una pantalla de selección de una transacción. Con una variante podemos introducir valores en cada uno de los campos de una pantalla de selección y grabarla para más tarde recuperarla de nuevo a la hora de ejecutar el programa o transacción.


Las variantes se asocian comunmente a reports y listados de SAP. Es más difícil asociarlas a transacciones de pantallas. Para más información sobre este segundo caso consultar un post anterior.

Ya había hablado sobre la posibilidad de utilizar variantes para transacciones estándar de SAP. En este caso, comentaremos en más detalle cómo crear una variante, cómo protegerlas y dónde utilizarlas.

Creación de una variante

  • Vamos a nuestro editor ABAP.
Herramientas / Workbench ABAP / Desarrollo / SE38 - Editor ABAP
  • Seleccionamos
 Objetos parciales / Variantes / Modificar
  • Damos un nombre a nuestra variante (no es necesario que empiece por Z).
  • Marcamos 'Crear' con 'Valores'.
  • Se nos abre la pantalla de selección de nuestro report. Indicamos los valores que queremos dar a cada uno de los campos de la pantalla de selección.
  • Salimos de la pantalla
Pasar a / Back
  • Se nos despliega una ventana donde nos pide si queremos grabar. Por supuesto, le damos una descripción a nuestra variante y decimos que sí queremos grabar.
    Atributos de la variante

Creación de una variante con parámetros

Los valores que grabamos en una variante no necesariamente han de ser fijos. Podemos indicar datos que varíen según el día en que se lanza nuestro report por ejemplo. O incluso podemos hacer que un campo se grabe sin valores o impedir que un usuario pueda introducir valor alguno en un campo. Mejor verlo con un ejemplo.
  • Desde el editor ABAP recuperamos nuestra variante.
  • Marcamos 'Modificar' con 'Atributos'.
    Modificar atributos de variante
  • Desde la pantalla de 'Atributos' podemos modificar los atributos de cada uno de los campos que hay en nuestra pantalla de selección.
    • Proteger campo: marcamos los campos de sociedad para que no se pueda modificar el valor.
    • Suprimir campo: marcamos el campo 'Vía de pago' para que éste no sea visible directamente en la pantalla de selección.
    • Campo obligatorio: marcamos el campo 'característica' para que sea obligatorio introducir un valor para poder ejecutar el report.
    • Variables: creamos una fecha dinámica (D) con el valor del última día del mes. La variante siempre contendrá el valor del último día del mes en el que se lance el report.
      Variante fecha dinámica

      Fecha dinámica el último día del mes
  • Grabamos.

     
  •  El resultado es una pantalla con valores dinámicos.

    Resultado de la variante

Transporte de una variante entre entornos

Por lo general, una variante se puede crear y modificar desde el entorno productivo SAP. Sin embargo, también es posible crear variantes desde entornos de desarrollo y posteriormente transportarlas a entornos productivos. Por supuesto, en este caso las variantes sólo serán modificables desde desarrollo.
Para crear una variante que pueda ser transportada simplemente debemos crearla con un nombre que empiece por CUS&

Variante CUS&

Utilización de variantes

  • En reports. Ejecutamos el report y desde la pantalla de selección seleccionamos
Herramientas / Workbench ABAP / Desarrollo / SE38 - Editor ABAP
Pasar a / Variantes / Traer
  • En transacciones. Podemos hacer que la transacción se inicie directamente con la variante que hemos creado. Para ello, modificamos la transacción Z y en el apartado variante indicamos nuestra variante. De este modo, siempre que ejecutemos la transacción, automáticamente se lanzará con la variante que hayamos adjuntado.
Herramientas / Workbench ABAP / Desarrollo / Otras herramientas / SE93 - Transacciones

Variante en una transacción
  • En jobs de fondo. Cuando lanzamos un report por job de fondo es obligatorio indicar una variante de ejecución. En el momento de crear nuestro job debemos indicar la variante.
Sistema / Servicios / Jobs / Definición job
  • En queries. Al igual que podemos iniciar transacciones con una variante prefijada, también podemos iniciar queries con una variante prefijada.
    Variante en una query
Imagen inicial | *n3wjack's world in pixels

6 comentarios:

  1. Esta excelente amigo. Gracias es de mucha ayuda!!

    ResponderEliminar
  2. Gracias, ya tengo me primer paso... ahora a averiguar como usar la variante desde un Job :)

    ResponderEliminar
  3. Hola Oscar como puedo crear otras opciones para las variables dinámicas, Mi problema es que necesito poner una fecha fija y que la otra si la este cambiado, pero esa opción no existe, ¿sabrás como?

    ResponderEliminar
    Respuestas
    1. Hola Anayancin. Pues nunca me había cruzado con un caso así. Entiendo que no te sirve la utilidad D:cálculo de fecha dinámico que ya habrás mirado al grabar la variante. Así que sólo te queda la opción T:variable de la tabla TVARVC. Para un campo concreto de una variante puedes llenar su información a través dela transacción STVARV. Ésta transacción informa el valor del campo en la tabla TVARVC. Así que lo que se me ocurre es que crees un pequeño programa que actualice los valores de este campo según tus necesidades.

      Eliminar