Category Archive Blog

Byfjourneau

Submit a program and write its report in your program

This post explain how to call another report in your report and how to print it SPOOL in your program.
Read More

Byfjourneau

Show progress indicator


* Show progress indicator
  lw_percentage = ( sy-tabix * 100 ) / gw_nb_total.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = lw_percentage
      text       = 'Message to display in SAP GUI progress bar'.

Byfjourneau

Manage Parameter ID

Get parameter in selection screen :


  IF  p_matnr IS INITIAL.
    GET PARAMETER ID 'MAT' FIELD p_matnr.
  ENDIF.

To set the entered value to parameter ID :


  IF  p_matnr IS NOT INITIAL.
    SET PARAMETER ID 'MAT' FIELD p_matnr.
  ENDIF.

Parameter ID table : TPARA (editable via SM30 transaction).
User parameter ID table : USR05.

Byfjourneau

Check if function exists

You can check if a Function Module exists into table TFDIR (field FUNCNAME).

You can also use code :


CALL FUNCTION 'FUNCTION_EXISTS'
  EXPORTING
    funcname           = 'Function_name'
  EXCEPTIONS
    function_not_exist = 1.

Byfjourneau

Catch exception in ABAP

Code example below :


  DATA : lo_error      TYPE REF TO cx_root,
         lw_mess       TYPE string.

      TRY. " Avoid dump in case of non numerical values...
          lw_1 = ls_initial-zzip * ls_guaranteed-zzmtbur * 10 ** ls_guaranteed-zzrri.
          lw_2 = ls_initial-zzmtbur * 10 ** ls_initial-zzrri.
        CATCH cx_sy_conversion_no_number INTO lo_error.  " Récupérer le type d’erreur a « catcher » en générant un dump par exple. 
          lw_mess = lo_error->get_text( ).
      ENDTRY.

  IF lw_mess IS NOT INITIAL.
        " Display error (lw_mess)
  ENDIF.