Mostrando entradas con la etiqueta How To SAP. Mostrar todas las entradas
Mostrando entradas con la etiqueta How To SAP. Mostrar todas las entradas

Saltear autorizaciones en SAP - parte IV

Seguimos con la seguidilla de hacks para SAP. Después de haber leído los capítulos I, II y III, llega el momento de que vean este capítulo donde verán   Muchas veces se encontrarán en situaciones en las que necesitan modificar o agregar campos en una tabla y (lógicamente) carecen de autorización para hacerlo. Algunos se preguntarán en qué caso pueden requerir algo así y la respuesta está inclusive en varias notas de SAP, porque allí nos piden que creemos, borremos o modifiquemos una entrada y al no tener los permisos eso se vuelve un trastorno.

Modificando los datos de una tabla SAP

Hasta no hace mucho la manera más simple de modificar una tabla en SAP era ingresando a la transacción SE16N y poner en la zona de ingreso de transacciones &SAP_EDIT y listo tenían disponible la modificación de la tabla. Eso se cumplía en prácticamente cualquier R/3 - ECC. 

También podían poner /h para activar el debugguer de la transacción y cambiar en la variable CODE el valor SHOW por EDIT o INSR y listo.


Esa forma pueden probarla, pero si tienen un sistema nuevo es muy probable que eso no lo pueda hacer.

Ahora se complicó un poco más y no solo extendieron el debug a realizar sino que los valores no son tan intuitivos.

Ahora los pasos son los siguientes:

1- Ingreso a la transacción SE16
2- Selecciono la tabla a modificar y visualizo los datos.
3- Marco el registro que quiero modificar.
4- Activo el modo debug poniendo /H en la caja de diálogo.
5- Presiono el botón Show (símbolo de los anteojos) 
6- Se abre la pantalla de debug.
7- Debemos llegar en el debug hasta la siguiente sentencia:

Buscar sentencia l_okcode = ok_code







8- Por defecto les aparecerá el siguietne valor:


Dependiendo de lo que quieran realizar deberán poner los siguientes valores:

Para insertar/Actualizar = ANVO
Para borrar                  = DEL5

Aclaración importante: 
Desde todoSAP promovemos el aprendizaje pero no nos hacemos responsables por el buen o mal uso que le den los usuarios a estas técnicas.

Saltear autorizaciones en SAP - parte III

Después de mucho tiempo vuelvo a escribir sobre como saltear autorizaciones SAP (skip sap authorization). Hace un tiempo había escrito 2 artículos explicando como saltear de manera básica algunas autorizaciones de SAP, (saltando autorizaciones parte II y saltear autorizaciones parte I) pero obviamente SAP y los administradores van aprendiendo y cada vez van limitando más los accesos para evitar vulnerabilidades, pero siempre por el momento siguen existiendo muchas maneras de saltar autorizaciones.

Accediendo a transacciones SAP sin autorización

En el primer capítulo habíamos menciona utilizar la función RS_HDSYS_CALL_TC_VARIANT, pero como comentaba inicialmente SAP la fue complicando y ya no es siempre útil esta transacción. Esto se debe a que si ustedes debuguean el acceso a la transacción llega un momento donde ingresa a un método que no puede ser debugueado y en el cual no tendrán la posibilidad de cambiar ningún tipo de valor, por lo tanto tendrán un inevitable mensaje de No tiene autorización a la transacción XXXX.

No contento con eso comencé a investigar hasta que di en la tecla con una nueva función llamada CALL_TRANSACTION_AUTH, al menos por ahora no encontré ninguna transacción que no pueda ejecutar con dicha función

Esa transacción sirve para conocer si un usuario tiene autorización o no a una transacción pero esconde una sentencia que permite que puedas saltear dicha autorización.
Si observan el código muestra lo siguiente:

FUNCTION CALL_TRANSACTION_AUTH .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(TCODE) LIKE  SY-TCODE
*"       EXCEPTIONS
*"              NOT_AUTHORIZED
*"----------------------------------------------------------------------
  AUTHORITY-CHECK OBJECT 'S_TCODE'
           ID 'TCD' FIELD TCODE.
  IF SY-SUBRC NE 0.
    MESSAGE I077(S#) WITH TCODE RAISING NOT_AUTHORIZED.
  ENDIF.
  CALL TRANSACTION TCODE.
ENDFUNCTION.

Por lo tanto es tan simple como cambiar sy-subrc a 0 y habrán podido acceder.

Aclaración importante: 
Desde todoSAP promovemos el aprendizaje pero no nos hacemos responsables por el buen o mal uso que le den los usuarios a estas técnicas.

Cómo debuguear una rutina de inicio - How to debug start rutine?

Aunque el título hable de cómo debuguear una rutina de inicio en realidad sirve para cualquier tipo de rutina dentro de una transformación.

A veces nos encontramos en un entorno productivo en el cual no se puede agregar código nuevo como para poner una sentencia break-point o break user. Además siempre nos pasa que cuando utilizamos la opción simulación con debug nos cuesta dar con la sentencia correcta.

Para realizar este debug tienen que:

1- Ingresar a la transacción RSA1
2- Doble click en la tansformación.
3- Ir a la siguiente opción:

SAP BW

4- Allí verán el programa generado G****

SAP BW - Transformation

5- Allí buscan el código generado y presionan el botón de breakpoint:

6- Ahora van al DTP y lo ejecutan en modo simulación:


7- Listo ya pueden ejecutar y ver que está haciendo exactamente su rutina en la transformación.


Cómo cambiar de titular una orden de transporte SAP

Muchas veces nos encontramos con que necesitamos liberar una orden, pero al estar tomada por otro usuario no tenemos la autorización para hacerlo, o existe otra persona a cargo de la liberación de las órdenes u otra persona tiene que seguir trabajando sobre la misma.

Existe una manera muy simple de resolver este problema.

Para ello vamos a seguir los siguientes pasos:

1- Ingresamos a la transacción SE10 para la búsqueda de órdenes pertenecientes a ese usuario



2- Una vez encontrada la orden nos posicionamos sobre la misma y presionamos el siguiente botón marcado  en la imagen siguiente:


3- Seleccionamos el nuevo propietario de la orden

De esa manera ya tienen la orden asignada al usuario que ustedes requieren.

Publi