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 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_node( name = wd_this->wdctx_radio ).
index = lo_nd_radio->get_lead_selection_index( ).
CASE index.
WHEN 1.
WHEN 2.
ENDCASE.
DATA index TYPE i.
lo_nd_radio = wd_context->get_child_node( name = 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.
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
TYPES: ty_dd07v TYPE STANDARD TABLE OF dd07v.
DATA: it_valores TYPE ty_dd07v,
wa_valores TYPE LINE OF ty_dd07v.
REFRESH: it_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.
DATA: it_valores TYPE ty_dd07v,
wa_valores TYPE LINE OF ty_dd07v.
REFRESH: it_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
DATA: lv_nivel(5) TYPE 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'.
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 ).
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.
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:
Suscribirse a:
Entradas (Atom)
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 ...

-
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 ...
-
Ejecutamos el programa RSCPSETEDITOR por la transacción SE38 y tildamos (para activar)o destildamos (para desactivar) las opciones de SAPsc...
-
TYPES : ty_dd07v TYPE STANDARD TABLE OF dd07v . DATA : it_valores TYPE ty_dd07v , wa_valores TYPE LINE OF t...