Debuggear Workflow ABAP y procesos de fondo

Es muy sencillo. Dejar un bucle infinito en el llamado de uno de los metodos o funciones que pasen por el WorkFlow por ejemplo:

WHILE EQ 0.

ENDWHILE.

Luego ejecutamos el Workflow y ese proceso estará "colgado". Para verlo, vamos a la transacción  SM50 y tocamos el proceso que está en ejecución y en el menú Gestión - Programa - Debugging:


Índice de un radio Webdynpro ABAP

DATA lo_nd_radio TYPE REF TO if_wd_context_node.
DATA index TYPE i.

lo_nd_radio wd_context->get_child_nodename wd_this->wdctx_radio ).
index lo_nd_radio->get_lead_selection_index).

CASE index.
  WHEN 1.
  WHEN 2.
ENDCASE.

Llamar a un action cómo método en WebDynpro ABAP

DATA lo_event       TYPE REF TO cl_wd_custom_event.
DATA lt_parameters  TYPE wdr_event_parameter_list.
DATA ls_parameters  LIKE LINE OF lt_parameters.

CREATE OBJECT lo_event
  EXPORTING
    name       'ON_ACTION'
    parameters lt_parameters.

CALL METHOD wd_this->onactionNOMBRE_DEL_ACTION
  EXPORTING
    wdevent lo_event.

Leer textos de un dominio ABAP

 TYPESty_dd07v   TYPE STANDARD TABLE OF dd07v.

  DATA:  it_valores TYPE ty_dd07v,
         wa_valores TYPE LINE OF ty_dd07v.

  REFRESHit_valores.

*  Valores del Dominio
  CALL FUNCTION 'DD_DOMVALUES_GET'
    EXPORTING
      domname        'STTRG'
      text           'X'
      langu          sy-langu
    TABLES
      dd07v_tab      it_valores
    EXCEPTIONS
      wrong_textflag 1
      OTHERS         2.



Ejecutar transancciones SAP sin autorización (sólo con debug)

En el programa LSEUKF01 buscar el llamado a la función CALL FUNCTION 'AUTH_CHECK_TCODE'  colocar un break-point y ejecutar la transacción a la que no tenemos acceso:     




Cambiar el sy-subrc por 0 y listo.

Variables a memoria SAP ABAP

DATAlv_nivel(5TYPE c,
            p_nivel(5)  TYPE c.

lv_nivel 'SUP'.

* Enviar a memoria variable nivel
EXPORT nivel FROM lv_nivel TO MEMORY ID 'nivel'

* Importar datos de memoria
IMPORT nivel TO p_nivel FROM MEMORY ID 'nivel'.
FREE MEMORY ID 'nivel'.

2 maneras de leer Infotipo 41 - Datos de Fecha


Opción 1: 

Con la función HR_ECM_GET_DATETYP_FROM_IT0041.


Opción 2:

LOOP AT gen_p0041 WHERE begda LE dhf_date
                    AND endda GE dhf_date.

  DO 12 TIMES

    VARYING i0041-type FROM gen_p0041-dar01 NEXT gen_p0041-dar02
    VARYING i0041-date FROM gen_p0041-dat01 NEXT gen_p0041-dat02.
   
    CHECK i0041-type   EQ hdate.
   
    dhf_hire i0041-date.

    EXIT.

  ENDDO.
ENDLOOP.

Campos Obligatorios WebDynpro

En el método WDDOBEFOREACTION de la vista con campos obligatorios:


  DATA lo_view_controller TYPE REF TO if_wd_view_controller.
  lo_view_controller ?= wd_this->wd_get_api).
  cl_wd_dynamic_tool=>check_mandatory_attr_on_view(
  EXPORTING
  view_controller lo_view_controller
  display_messages abap_true ).

Obtener MOLGA Webdynpro

Para leer el MOLGA en una Webdynpro y evitar un error, usar esta función:

call function 'HR_GET_MOLGA_FROM_ORGDATA'
exporting
bukrs = p0001-bukrs
werks = p0001-werks
importing
molga = lv_molga
exceptions
no_entry_in_t500p = 1
others = 2.

Activar / Desactivar Word en Smartforms y Sapscript

Ejecutamos el programa RSCPSETEDITOR por la transacción SE38 y tildamos (para activar)o destildamos (para desactivar) las opciones de SAPscript o Smart Forms.



Activamos y cerramos por completo Sap Logon, al abrir nuevamente tendremos activado o desactivada el editor de word en los smartforms:



Función para ejecutar transacción SAP sin autorización

En la transacción SE37, llamamos a la función  RS_HDSYS_CALL_TC_VARIANT la cual nos permitirá ejecutar una transacción a la que no tengamos autorización sólo dejando vacío el campo AUTHORITY_CHECK:


Debuggear Workflow ABAP y procesos de fondo

Es muy sencillo. Dejar un bucle infinito en el llamado de uno de los metodos o funciones que pasen por el WorkFlow por ejemplo: WHILE  0 ...