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!

Thursday, February 7, 2008

Debuggear procesos de fondo o jobs

Mediante este truco vamos a poder debuggear jobs de la transacción SM37.

Ir a la SM37, seleccionar el job en cuestión e ingresar en la línea de comandos de SAP "JDBG". Una vez ingresado este comando, el sistema abrirá un modo con el debugging para el job.

Esta técnica puede resultarnos muy útil cuando queremos debuggear un job, pero tiene como desventaja que si el job no nos da tiempo para realizar el truco vamos a tener que buscar otra solución. En ese caso, podemos intentar poner un WAIT o un loop infinito si estamos en un ambiente de pruebas...

Comenten si les resultó útil!

Monday, February 4, 2008

Saltear permisos en transacciones

Lo que viene es un truco para poder acceder a transacciones a las que no tenemos autorización.


Desde la transaccion SE37 (Funciones ABAP), ejecutar el módulo de funciones RS_HDSYS_CALL_TC_VARIANT. Ingresar la transacción a la que queremos acceder en el parámetro TCODE y limpiar el parámetro AUTHORITY-CHECK. Presionar F8 para ejecutar la transacción y listo!

Les aconsejo que utilicen esto con cuidado, y NUNCA en un ambiente de producción.

Saludos!

Escriban si les parece útil!