PasswortReset funktional über ODataService implementieren


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

PasswortReset funktional über ODataService implementieren

Beitragvon ABAP_Newbie1993 » 09.08.2017, 15:42

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.
 
ABAP_Newbie1993
ForumUser
 
Beiträge: 2
Registriert: 09.08.2017, 15:33
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: PasswortReset funktional über ODataService implementiere

Beitragvon sapyard » 09.08.2017, 16:42

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
----------------------
sapyard
ForumUser
 
Beiträge: 30
Registriert: 02.07.2017, 02:05
Wohnort: Texas, USA
Dank erhalten: 2 mal
Ich bin: Berater/in

Re: PasswortReset funktional über ODataService implementiere

Beitragvon ABAP_Newbie1993 » 10.08.2017, 15:33

Yes, it is correct. I am passing the value to er_entity.
ABAP_Newbie1993
ForumUser
 
Beiträge: 2
Registriert: 09.08.2017, 15:33
Dank erhalten: 0 mal
Ich bin: Student/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Eclipse-Einstellungen migrieren
vor 11 Stunden von black_adept 1 Antw.
gelöst ALV TREE | Positionsänderung nach Double Click Event
vor 18 Stunden von Lukas R. 2 Antw.
Krypto-Wahn verstehen?
vor 15 Stunden von Moraim 2 Antw.
Beziehungswissen anwenden
Gestern von moo_jo 2 Antw.
gelöst ABAP - Application Log
Gestern von swonny 1 Antw.

  Ähnliche Beiträge beta
SAP GUI 4 HTML bei WAS über ITS?
07.06.2005, 10:32 von Jüüürgen 1 Antw.
C1F5_SPECIFICATIONS_READ über VBA
04.09.2014, 19:32 von Carsten31 2 Antw.
summe uber loop
18.05.2005, 10:14 von Asaph 2 Antw.
Aufruf SM30 über FB
18.08.2006, 13:53 von an4kh4 1 Antw.
Tabellenänderung über SE16N
07.05.2007, 12:32 von mcsteff 9 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!
cron