Die Anmeldung am Webfrontend kann mit der Kurz-ID (nur altes Webfrontend) mit der e-Mail-Adresse oder dem User-Namen (nur neues Webfrontend V2) durchgeführt werden. Am Webfrontend werden die möglichen Optionen nacheinander geprüft. Es besteht theoretisch die Möglichkeit, User-Daten nicht eindeutig anzulegen. Beispiel: ID User-name E-Mail 4711 Horst1 horst@mail 4712 host@mail hosrt2@mail 4713 4711 horst3@mail
/GIB/CL_DCV_WEB_USER METHOD check_data. DATA: ls_double TYPE /gib/dcvt010, lf_dummy TYPE c, lr_msg TYPE REF TO /gib/cl_dcv_error_msg. DATA: lf_email TYPE /gib/dcvt010-email, "hw11355 lf_objectid TYPE /gib/dcvt010-objectid. "hw11355 FIELD-SYMBOLS: <ls_data> TYPE /gib/dcvt010v_s. ASSIGN mr_data->* TO <ls_data>. er_result = super->check_data( ). CREATE OBJECT lr_msg. *# email vorhanden? IF <ls_data>-email = space. MESSAGE w166 WITH <ls_data>-username INTO lf_dummy. lr_msg->sy_set( ). er_result->add_error( ir_msg = lr_msg if_fieldname = 'EMAIL' ). ENDIF. *# doublette? *#11355 * SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double "#EC CI_NOORDER * WHERE email = <ls_data>-email * AND username <> <ls_data>-username. lf_email = <ls_data>-email. TRANSLATE lf_email TO UPPER CASE. SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double "#EC CI_NOORDER WHERE ( email = <ls_data>-email OR username = lf_email "in upper case OR username = <ls_data>-objectid ) AND username <> <ls_data>-username . IF sy-subrc <> 0. lf_email = <ls_data>-username. "existing email as new username TRANSLATE lf_email TO LOWER CASE. SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double "#EC CI_NOORDER WHERE email = lf_email AND username <> <ls_data>-username . ENDIF. IF sy-subrc <> 0 AND <ls_data>-username CO '0123456789 '. "existing ID as new username lf_objectid = <ls_data>-username. SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double "#EC CI_NOORDER WHERE objectid = lf_objectid AND username <> <ls_data>-username . ENDIF. *##113555 IF sy-subrc = 0. MESSAGE e165 WITH ls_double-email ls_double-username <ls_data>-username INTO lf_dummy. lr_msg->sy_set( ). er_result->add_error( ir_msg = lr_msg if_fieldname = 'EMAIL' ). ENDIF. ENDMETHOD.