En el ejemplo que se muestra a continuación se ha montado un servicio web a través una función RFC, siguiendo los pasos de anteriores entradas de este blog. El servicio consiste en devolver el identificador de usuario utilizado en el sistema SAP almacenado en la variable de sistema SY-UNAME, despues de realizar el cambio de usuario.
FUNCTION Z_USUARIOS .
*"----------------------------------------------------------------------
*"*"Interfase local
*" EXPORTING
*" VALUE(O_USER) LIKE SY-UNAME
*" EXCEPTIONS
*" ERROR
*"----------------------------------------------------------------------
DATA: username LIKE bapibname-bapibname,
password TYPE bapipwd,
password_state TYPE xupwdstate,
new_username TYPE ususername,
error_table TYPE TABLE OF bapiret2.
* Datos del usuario al que se hará el cambio
username = 'ZUSUARIO_DIALOGO'.
password = 'password'.
* Cambio de usuario de servicio por usuario de diálogo
CALL FUNCTION 'SUSR_INTERNET_USERSWITCH'
EXPORTING
* alias = username
username = username
password = password
IMPORTING
bname_after_switch = new_username
pwdstate = password_state
* PWD_CHANGE_SSO =
TABLES
return = error_table
EXCEPTIONS
current_user_not_servicetyp = 1
more_than_one_mode = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
o_user = sy-uname.
ENDFUNCTION.