Code: Alles auswählen.
method ZUCC_PASSWORTRES_UPDATE_ENTITY.
"Declare variables
DATA: husherhash type C,
initialpw type String,
ls_key_tab type /iwbep/s_mgw_name_value_pair.
ls_key_tab = it_key_tab[ 4 ].
"Get the current HUserHash and update it
io_data_provider->READ_ENTRY_DATA( IMPORTING ES_DATA = HUSHERHASH ) .
me->update_list = husherhash.
"Select initialpw out of table zresetpwdhuser
select single * from ZUCC_PASSWORTRES where initialpw = @ls_key_tab-value into corresponding fields of @er_entity.
er_entity = husherhash.
endmethod.
Code: Alles auswählen.
method ONACTIONCHANGEPW .
DATA lo_nd_huser TYPE REF TO if_wd_context_node.
DATA lo_el_huser TYPE REF TO if_wd_context_element.
DATA ls_huser TYPE wd_this->element_huser.
DATA lv_huser TYPE wd_this->element_huser-huser.
* navigate from <CONTEXT> to <HUSER> via lead selection
lo_nd_huser = wd_context->get_child_node( name = wd_this->wdctx_huser ).
* get element via lead selection
lo_el_huser = lo_nd_huser->get_element( ).
* get single attribute
lo_el_huser->get_attribute(
EXPORTING
name = `HUSER`
IMPORTING
value = lv_huser ).
*Sprache auf den Huser setzen
DATA person TYPE REF TO zcl_person.
person = zcl_person_wrapper=>get_person( lv_huser ).
" sy-langu = person->get_language( ).
*Eingegebene Passwörter auslesen
DATA lv_passwort TYPE wd_this->Element_huser-passwort.
DATA lv_passwortwdh TYPE wd_this->Element_huser-passwort.
*Passwörter aus Eingabefeldern einlesen
* navigate from <CONTEXT> to <HUSER> via lead selection
lo_nd_huser = wd_context->get_child_node( name = wd_this->wdctx_huser ).
* get element via lead selection
lo_el_huser = lo_nd_huser->get_element( ).
* get single attribute
lo_el_huser->get_attribute(
EXPORTING
name = `PASSWORT`
IMPORTING
value = lv_passwort ).
lo_el_huser->get_attribute(
EXPORTING
name = `PASSWORTWDH`
IMPORTING
value = lv_passwortwdh ).
*checken ob passwörter gleich sind, sonst Fehlermeldung
if lv_passwort <> lv_passwortwdh.
* get message manager
data lo_api_controller type ref to if_wd_controller.
data lo_message_manager type ref to if_wd_message_manager.
*Aufruf des otr textes
class CL_BSP_RUNTIME definition load.
DATA OTR_TEXT_PWD1 TYPE STRING.
OTR_TEXT_PWD1 = CL_BSP_RUNTIME=>GET_OTR_TEXT(
ALIAS = 'ZUCC_WEB_FRONTENDS/PWD1' ).
lo_api_controller ?= wd_This->Wd_Get_Api( ).
CALL METHOD lo_api_controller->GET_MESSAGE_MANAGER
RECEIVING
MESSAGE_MANAGER = lo_message_manager.
* report message
CALL METHOD lo_message_manager->REPORT_ERROR_MESSAGE
EXPORTING
MESSAGE_TEXT = OTR_TEXT_PWD1
* PARAMS =
* MSG_USER_DATA =
* IS_PERMANENT = ABAP_FALSE
* SCOPE_PERMANENT_MSG = CO_MSG_SCOPE_CONTROLLER
* VIEW =
* SHOW_AS_POPUP =
* CONTROLLER_PERMANENT_MSG =
* MSG_INDEX =
* CANCEL_NAVIGATION =
* ENABLE_MESSAGE_NAVIGATION =
* COMPONENT =
* RECEIVING
* MESSAGE_ID =
.
***Passwortfelder bei falscher Eingabe leeren
* navigate from <CONTEXT> to <HUSER> via lead selection
lo_nd_huser = wd_context->get_child_node( name = wd_this->wdctx_huser ).
* get element via lead selection
lo_el_huser = lo_nd_huser->get_element( ).
* set single attribute
lo_el_huser->set_attribute(
name = `PASSWORT`
value = '' ).
* set single attribute
lo_el_huser->set_attribute(
name = `PASSWORTWDH`
value = '' ).
else. "Passwort ändern und gegebenfalls bei Fehlercode diesen ausgeben
DATA lo_COMPONENTCONTROLLER TYPE REF TO IG_COMPONENTCONTROLLER .
lo_COMPONENTCONTROLLER = wd_this->get_componentcontroller_ctr( ).
lo_componentcontroller->setnewpw(
).
endif.
*Auslesen des Fehlermeldungscodes welcher in setnewpw gespeichert wurde
DATA lv_fehlermeldungcode TYPE wd_this->Element_huser-fehlermeldungcode.
* navigate from <CONTEXT> to <HUSER> via lead selection
lo_nd_huser = wd_context->get_child_node( name = wd_this->wdctx_huser ).
* get element via lead selection
lo_el_huser = lo_nd_huser->get_element( ).
* get single attribute
lo_el_huser->get_attribute(
EXPORTING
name = `FEHLERMELDUNGCODE`
IMPORTING
value = lv_fehlermeldungcode ).
if lv_fehlermeldungcode = 'S'.
wd_this->fire_op_pwd_reset_success_plg( ).
endif.
endmethod.