I have a first parameter which is P_PERNR,
IF I enter It and I push enter the others parameters assigned.
I want the others parameters to be avalaible to modify.
If I use AT SELECTION-SCREEN OUTPUT fto assign the fields :
I can modify them but if I push enter they are overwrited by the fields selected with P_PERNR
If I use AT SELECTION-SCREEN ON P_PERNR to assign the fields :
I can modify them but if I change the parameter P_PERNR I doesn't overwrite the others parameters with the new fields selected with P_PERNR.
Could you help me please?
I joined a copy of my code.
Thanks and regards
AT SELECTION-SCREEN ON p_pernr.
IF NOT p_pernr IS INITIAL.
SELECT SINGLE pernr FROM pa0003
INTO pa0003-pernr
WHERE pernr EQ p_pernr.
IF sy-subrc NE 0.
MESSAGE e319(01) WITH text-e01 p_pernr text-e02.
ENDIF.
Vérification de l'existence du NT user
CLEAR w_userid.
SELECT usrid UP TO 1 ROWS
FROM pa0105
INTO w_userid
WHERE subty EQ '0003'
AND pernr EQ p_pernr
AND endda GT sy-datum.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e319(01) WITH text-e01 p_pernr text-e03.
ENDIF.
Vérification de l'existence de l'addresse mail
CLEAR p_mail.
SELECT usrid_long UP TO 1 ROWS
FROM pa0105
INTO p_mail
WHERE subty EQ '0010'
AND pernr EQ p_pernr
AND endda GT sy-datum.
ENDSELECT.
IF sy-subrc NE 0 OR p_mail IS INITIAL.
MESSAGE e319(01) WITH text-e08 text-e09.
ENDIF.
ELSE.
MESSAGE e319(01) WITH text-e04.
ENDIF.
*AT SELECTION-SCREEN OUTPUT.
SELECT nachn vorna UP TO 1 ROWS
FROM pa0002
INTO (p_nachn, p_vorna)
WHERE pernr = p_pernr.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR p_nachn.
CLEAR p_vorna.
ENDIF.
SELECT usrid_long UP TO 1 ROWS
FROM pa0105
INTO p_mail
WHERE pernr = p_pernr
AND subty = '0010'
AND endda GT sy-datum.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR p_mail.
ENDIF.
Détermination de la start date et de la last date pour l'affectation des roles
Ici cette détermination provisoire ne sert qu'à l'affichage.
SELECT begda endda UP TO 1 ROWS
FROM pa0001
INTO (p_begda, p_endda)
WHERE pernr = p_pernr
ORDER BY begda DESCENDING.
ENDSELECT.
Si la date de début est dans le passé on fixe la date de début en date du jour
IF p_begda LT sy-datum AND NOT p_begda IS INITIAL.
MOVE sy-datum TO p_begda.
ENDIF.
END-OF-SELECTION.