PasswortReset funktional über ODataService implementieren

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

PasswortReset funktional über ODataService implementieren

Beitrag von ABAP_Newbie1993 (ForumUser / 2 / 0 / 0 ) »
Hallo,

ich bin relativ neu in ABAP und habe im Vorfeld nur ein umfassendes Tutorial zu ABAP gemacht.

Leider hilft mir das nicht so weiter bei meiner neuen Aufgabe. Ich soll die Website fürs Passwortzurücksetzen neu gestalten und dabei soll ich die Methoden get_entity und update_entity implementieren. Einen entsprechenden OData-Service gibt es schon. Dictionary structures habe ich schon erstellt und get_entity gestern auch. Meine Frage ist jetzt, ob meine implementierte Methode für update_entity soweit korrekt ist. Habe mich an einer anderen Methode, die auch die Entität aktualisiert orientiert:

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.
Muss zusätzlich noch die Methode ONACTIONCHANGEPW im Web-Dynpro-Component implementieren. Diese ich jedoch im Main-View bereits vorhanden. Was genau fehlt denn da noch?

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.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: PasswortReset funktional über ODataService implementiere

Beitrag von sapyard (ForumUser / 31 / 5 / 2 ) »
SELECT SINGLE * FROM ZUCC_PASSWORTRES WHERE initialpw = @ls_key_tab-VALUE INTO CORRESPONDING FIELDS OF @er_entity.

er_entity = husherhash.

Why are you overwriting your er_entity with husherhash?

On the top you are populating from table. Later you are over-writing it with some other value?

Is that correct?
Thanking you.

With Regards,
Raju.
----------------------
Raju Shrestha
www.sapyard.com
----------------------

Re: PasswortReset funktional über ODataService implementiere

Beitrag von ABAP_Newbie1993 (ForumUser / 2 / 0 / 0 ) »
Yes, it is correct. I am passing the value to er_entity.

Seite 1 von 1

Vergleichbare Themen

7
Antw.
2852
Views
Funktionsbaustein implementieren
von Gerrit » 06.03.2018 19:47 • Verfasst in ABAP® für Anfänger
2
Antw.
3851
Views
1
Antw.
364
Views
Internal SAP BADIs implementieren?
von retsch » 07.06.2023 10:54 • Verfasst in ABAP® für Anfänger
4
Antw.
1807
Views
Neue Berichte in SAP Menu implementieren
von Skydizer » 09.02.2007 08:53 • Verfasst in Financials
5
Antw.
2729
Views
Automatisiertes Testen und Implementieren von UML-Diagrammen
von LGiesken » 02.08.2018 08:43 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.