jueves, 1 de septiembre de 2016

abap select options

Una de las cosas por las que decidí estudiar informática fue poder simplificar la vida de la gente. Creo que es muy importante mejorar la vida a los usuarios y hoy traigo un método muy simple y que seguro que la gran mayoría ya conocéis, pero que en mi opinión, creo que se podría explotar más. 

En las líneas de código siguientes podemos ver dos ejemplos, uno para fechas y otro para restaurar un parámetro de usuario.


INITIALIZATION.
" con las siguientes líneas hacemos que el parametro de selección s_fecha tenga puesto por defecto el año en curso"
  concatenate sy-datum(4'0101' into s_fecha-low.
  concatenate sy-datum(4'1231' into s_fecha-high.
  APPEND s_fecha.
  sy-title 'Informe proyectos'.

   DATA lt_user_params TYPE STANDARD TABLE OF usparam.
" con la siguiente llamada recuperamos los parámetros del usuario lanza la transacción"
  CALL FUNCTION 'SUSR_USER_PARAMETERS_GET'
    EXPORTING
      user_name           syst-uname
      with_text              'X'
    TABLES
      user_parameters   lt_user_params
    EXCEPTIONS
      user_name_not_exist 1.
  datals_user_param  LIKE LINE OF lt_user_params.
" en este usuario tiene en el parámetro WRK su centro"
  READ TABLE lt_user_params into ls_user_param WITH KEY parid 'WRK'.
  if sy-subrc 0.
" asignamos para el parámetro s_centro el centro que tenga el usuario en sus parámetros de usuario"
    s_centro-low ls_user_param-parva.
    append s_centro.
  endif. 

 
Con casos como este podemos hacer que el usuario cuando entra a una transacción no tenga que rellenar nada y entre directamente para ejecutar la transacción. Estas cosas las podemos hacer con las variantes, pero las variantes hay que seleccionarlas y con este método el usuario no tiene que hacer nada y por otro lado no podemos garantizar que todos los usuarios tienen conocimiento de las variantes y que hacen un buen uso de ellas.