Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
fmunozb
Active Participant




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.

Existe un módulo de función llamado AUTH_CHECK_TCODE, se coloca un Watchpoint en el objeto de datos sy-subrc, y si cambia a 4 o diferente de 0, modificarlos y dejarlo en 0.

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




  • Se da clic en crear (F6) 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.




  • 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 "*"



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+cla...

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.


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_s-curr_setting = X

    • ls_s-cli_dep = X



  5. Ejecutar el programa (F8)

  6. Hacer la edición deseada


Buscar sentencias en el código fuente dentro de programas


Por medio del reporte RPR_ABAP_SOURCE_SCAN se puede hacer búsqueda de sentencias en el código de los programas ABAP que uno desee, acorde a los filtros de entrada.




 

Extender el tiempo de ejecución de un programa


Cuando se quiera extender el tiempo de ejecución de un programa se puede hacer de tres formas:

  • Sentencia commit:


COMMIT WORK.

  • Módulo de función TH_REDISPATCH:


CALL FUNCTION 'TH_REDISPATCH'
EXPORTING
check_runtime = 0.

  • Módulo de función SAPGUI_PROGRESS_INDICATOR:


CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = sy-index.

 

Descargar un programa


Cuando se quiera descargar un programa ABAP se puede hacer uso del reporte REPTRAN desde la transacción SE38.

 

Reinicializar memoria intermedia de un ALV


Cuando en el ALV de la clase CL_SALV_TABLE no aparezcan las opciones de menú creadas o trabaje de manera inconsistente se debe ejecutar el programa BALVBUFDEL desde la SE38.

 

Enlaces de interés


2 Comments
Labels in this area