Skip to Content

Tips SAP ABAP

En este documento quiero almacenar aquellas recomendaciones o sugerencias que sirven de utilidad para llevar a cabo diferentes labores específicas dentro de un sistema SAP.

Insertar registros en tablas usando módulo de función SE16N_INTERFACE

Usando el módulo de función SE16N_INTERFACE se pueden insertar registros en tablas transparentes.

  • Ingresar a la transacción SE37 y colocar el nombre del módulo de función SE16N_INTERFACE.

  • Dar clic en Ejecutar (F8) y diligencial los campos I_TAB, I_EDIT y I_SAPEDIT, donde I_TAB es el nombre de la tabla transparente, I_EDIT y I_SAPEDIT lo que permiten es que la tabla se abra en modo de edición.

  • Luego de darl clic en Ejecutar (F8) y se modifican o crean los datos segun las necesidades

Creación de poblaciones

La creación de poblaciones se hace con la transacción SR10. En lugar de editar la tabla ADRCITY y ADRCITYT lo mejor es insertar los registros usando un LSMW que haga uso de la transacción SR10, en la imagen se muestra la ruta desde la SPRO.

Ejecutar transacciones sin permisos

Existen algunos módulos de función que permiten ejecutar una transacción cuando no se tienen privilegios, estos son:

RS_HDSYS_CALL_TC_VARIANT

C160_TRANSACTION_CALL

TRANSACTION_CALL_VIA_RFC

PLM_PS_EXECUTE_TRANSACTION

Otra manera es usando el modo debugg “/h” y poner break point de comando que se ejecuta cuando se se encuentre la sentencia AUTHORITY-CHECK y cambiar la variable sy-subrc a conveniencia.

Traer listado de proveedores/acreedores

Los siguientes módulos de función extraen información de los proveedores:

BBP_VENDOR_GETLIST: Trae un listado de proveedores, únicamente el código y el nombre.

BBP_VENDOR_GET_DATA2: Trae un listado completo con la información de los proveedores.

Traer listado de clientes/deudores

Los siguientes módulos de función extraen información de los clientes:

BAPI_CUSTOMER_GETLIST: Trae los datos generales del cliente y su dirección

Transportar contenido de una tabla desde la SE09 o SE10

Para transportar el contenido de una tabla entre mandantes desde las SE09 o SE10 se hace de la siguiente forma:

  • Crear una orden de transporte en la transacción SE10

Capture.PNG

  • Se da clic en crear (F6) Capture.PNG y se crea la orden de transporte ya sea de customizing o de workbench, después de creada se da doble clic sobre la orden generada y se crea un nuevo objeto.

Capture.PNG

  • Después de colocar el registro se da doble clic sobre la línea y en la siguiente pantalla que aparece en el campo claves de tablas se coloca un “*”

Capture.PNG

Declarar un objeto de datos (data object) usando un tipo declarado dentro de una clase global

Para declarar un objeto de datos dentro de una clase global, primero se debe crear un data object con referencia a esa clase global, para entender de manera clara la manera de hacerlo seguir el siguiente vínculo el cual lo explica de manera detallada.

http://wiki.scn.sap.com/wiki/display/ABAP/Data+declaration+based+on+data-type+declared+in+Global+class

El contenido del enlace fue creado por Joyjit Ghosh.

Módulos de función para tareas varias

FMCT_WAIT_FOR_UPDATE: Espera un tiempo

C14Z_MESSAGES_SHOW_AS_POPUP: Muestra una ventana emergente con los mensajes obtenidos de la ejecución de un BDC o de una BAPI. En el enlace se puede ver un ejemplo de su uso.

HRCM_STRING_TO_AMOUNT_CONVERT: Convierte un número en cadena de caracteres en un monto.

Código para colocar la misma clave en diferentes mandantes de una misma instancia

   DATA: ls_usr02 TYPE usr02.
SELECT SINGLE FROM usr02 CLIENT SPECIFIED
INTO ls_usr02
WHERE mandt = ‘200’
AND bname = ‘UNAME’.

“Modificarla en 210
ls_usr02
mandt = ‘210’.
UPDATE usr02 CLIENT SPECIFIED FROM ls_usr02.

 

Especificar MS Word como editor en SmartForms y/o SAPScript

Ejecutar el programa RSCPSETEDITOR.

Capture.PNG

Modificar estado orden de transporte

Desde la SE38 se puede ejecutar el reporte RDDIT076, el cual permite modificar el estado de una orden de transporte.

Se da ejecutar y en la siguiente pantalla se da doble clic sobre la orden o tarea, y se edita cambiando el estado de R (Liberado) a D (Modificable).

Nombre del INCLUDE para el método de una clase

Para obtener los nombres de los INCLUDE de una clase se puede usar el módulo de función SEO_CLASS_GET_METHOD_INCLUDES.

 

Modificar código de un programa en cualquier ambiente

Para modificar el código fuente en cualquier ambiente, se deben llevar a cabo los siguientes pasos:

  1. Entrar el módulo de función TRINT_OBJECTS_CHECK_AND_INSERT
  2. Poner un Break Point de sesión en la sentencia  IF   system_client_role  =    ‘P’
  3. Ir al código que queremos modificar y dar clic en editar
  4. Desde el modo Debug, modificar las siguientes variables:
    • system_client_role  = P
    • ls_scurr_setting = X
    • ls_scli_dep = X
  5. Ejecutar el programa (F8)
  6. Hacer la edición deseada
To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

Leave a Reply