Wednesday, April 9, 2008

Transacciones para Queries

Hola!

Después de un largo tiempo, vuelvo a publicar un nuevo consejo.

En este caso les comento cómo crear una transacción para queries creados mediante las transacciones SQ01 y SQ02 (no sirve para la SQVI - no se pueden transportar estos queries de manera prolija).
Para transportar los queries, lo correcto es crear una transacción y luego transportar la transacción. La forma de crear la transacción no es buscando el nombre del programa que genera el query y asignarlo a la transacción, sino utilizando el tipo de transacción "Transacción de Parámetros" para la transacción "START_REPORT". Marcamos el tilde "Omitir imagen inicial" y usamos los siguientes valores de propuesta para los campos de la dynpro:

D_SREPOVARI-REPORT-> Nombre del Grupo de Usuarios del Query
D_SREPOVARI-EXTDREPORT-> Nombre del query
D_SREPOVARI-REPORTTYPE = "AQ" (de ABAP Query)

Hay que tener en cuenta el ámbito funcional con el que se creó el query. El mismo está en la transacción SQ01 en Entorno->Ambitos Funcionales.
Existen 2 posibiidades:
  • Ambito estándar
  • Ambito Global
En general se debe usar el segundo porque es mejor para poder transportar todos los objetos del query. Dependiendo del ámbito funcional, el parámetro D_SREPOVARI-REPORT varía.
Para el ámbito estándar, se pone directamente el nombre del grupo de usuarios; pero para ámbito global se debe poner una G (g mayúscula) en la posición 12 de la variable D_SREPOVARI-REPORT. Si no hacen esto, aparecerá un mensaje diciendo que no existe el grupo de usuarios.

Esta forma de crear transacciones para queries es la correcta porque si ponemos el nombre del programa directamente, nos va a traer problemas a la hora de transportar la transacción porque el nombre del programa generado por el query depende del ambiente y mandante.

Si tienen alguna dudao sugerencia, por favor escríbanme un comentario!