‎2007 Feb 05 9:11 PM
I am working on User Exit... I want the user exit to be in active status for me and couple more people and inactive to rest of guys... how to acheive it....
‎2007 Feb 05 9:20 PM
Just check for sy-uname in the code for the list of user's need access
& for rest it will skip the logic
‎2007 Feb 05 9:38 PM
So is this a valid code
IF SY-TCODE = 'MM01'
IF SY-UNAME = 'ABC' OR 'XYZ'.
CODE.
ENDIF
ENDIF.
‎2007 Feb 05 9:41 PM
Hi,
Yes..Check the sy-uname for the users that you want the user exit to execute..
IF SY-TCODE = 'MM01'.
IF SY-UNAME = 'ABC' OR <b>SY-UNAME =</b> 'XYZ'.
<b>CODE.</b>
ENDIF
ENDIF.
Thanks,
Naren
‎2007 Feb 05 9:52 PM
I DEVELOPED THE BELOW CODE FOR VALIDATING SERIAL NUMBER IN MB31.
TO CHECK WHETHER ENTERED SERIAL NUMBER CONTAINS ANY ALPHABETS
IF SERNR CA SY-ABCDE.
MESSAGE E398(00) WITH 'ENTER A VALID SERIAL NUMBER WITH NO ALPHABETS'.
ENDIF.
DATA: I_EQUI LIKE EQUI.
DATA: I_SERNR LIKE EQUI-SERNR.
DATA: I_LENGTH TYPE I.
I_SERNR = SERNR.
SHIFT I_SERNR LEFT DELETING LEADING '0'.
CHECKING THE LENGTH OF ENTERED SERIAL NUMBER
I_LENGTH = STRLEN( I_SERNR ).
IF
I_LENGTH GT 9 OR I_LENGTH LT 9.
MESSAGE E398(00) WITH 'INVALID LENGTH'.
EXIT.
ENDIF.
DATA: SERNR LIKE EQUI-SERNR.
DATA: MATNR TYPE MATNR.
TO CHECK THERE ARE NO DUPLICATE SERIAL EXISTS
IF SY-TCODE = 'MB31'.
SELECT SINGLE * FROM EQUI INTO I_EQUI
WHERE EQTYP = 'S'
AND MATNR = MATNR
AND SERNR = SERNR.
IF SY-SUBRC EQ 0.
MESSAGE E398(00) WITH 'SERIAL NUMBER ALREADY EXISTS'.
ELSE.
CHECKING THE FORMAT OF THE ENTERED SERIAL NUMBER COMPLIES WITH TELEFLEX STANDARDS
IF I_SERNR0(1) = '2' OR I_SERNR0(1) = '3' OR I_SERNR+0(1) = '6'.
DATA : I_MONTH(2),
: I_YEAR(2).
CLEAR: I_MONTH,
I_YEAR.
I_YEAR = sy-datum+2(2) - 1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = I_YEAR
IMPORTING
OUTPUT = I_YEAR.
IF I_SERNR1(2) = sy-datum2(2) OR I_SERNR+1(2) = I_YEAR.
IF I_SERNR1(2) = I_YEAR AND I_SERNR3(2) NE '12'.
MESSAGE E398(00) WITH 'INVALID YEAR/MONTH'.
ENDIF.
IF ( ( SY-DATUM4(2) = '01' ) AND ( I_SERNR1(2) = SY-DATUM+2(2) ) ).
I_MONTH = '12'.
ELSE.
I_MONTH = sy-datum+4(2) - 1.
ENDIF.
IF
SY-DATUM4(2) = '01' AND I_SERNR1(2) = I_YEAR.
I_MONTH = '12'.
ELSE.
I_MONTH = sy-datum+4(2) - 1.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = I_MONTH
IMPORTING
OUTPUT = I_MONTH.
IF I_SERNR3(2) = sy-datum4(2) OR I_SERNR+3(2) = I_MONTH.
IF I_SERNR5(4) GT '0000' AND I_SERNR5(4) LT '9999'.
ELSE.
MESSAGE E398(00) WITH 'PLEASE ENTER RANGE WITHIN 0000 AND 9999'.
ENDIF.
ELSE.
MESSAGE E398(00) WITH 'INVALID YEAR/MONTH'.
ENDIF.
ELSE.
MESSAGE E398(00) WITH 'INVALID YEAR/MONTH'.
ENDIF.
ELSE.
MESSAGE E398(00) WITH 'INVALID MANUFACTURING SITE'.
ENDIF.
ENDIF.
ELSE.
TO CHECK WHETHER USER ENTERS EXISTING SERIAL NUMBER.
SELECT SINGLE * FROM EQUI INTO I_EQUI
WHERE EQTYP = 'S'
AND MATNR = MATNR
AND SERNR = SERNR.
IF SY-SUBRC NE 0.
MESSAGE E398(00) WITH 'PLEASE ENTER A VALID SERIAL NUMBER'.
ENDIF.
ENDIF.
<b>NOW I NEED TO ADD COUPLE OF MORE LINES SUCH THAT IN TRANSACTION "MB1C" AND USER IS 'ABC' , 'XYZ' I HAVE TO ACCEPT THE ENTERED SERIAL NUMBER AND SKIP THE VALIDATION....
HOW CAN I ACHEIVE IT..</b>
‎2007 Feb 05 9:59 PM
Hi,
Do this check marked in bold...
<b>CHECK SY-TCODE <> 'MBC1' AND SY-NAME <> 'ABC'
AND SY-UNAME <> 'XYZ'.</b>
DATA: I_EQUI LIKE EQUI.
DATA: I_SERNR LIKE EQUI-SERNR.
DATA: I_LENGTH TYPE I.
I_SERNR = SERNR.
SHIFT I_SERNR LEFT DELETING LEADING '0'.
CHECKING THE LENGTH OF ENTERED SERIAL NUMBER
I_LENGTH = STRLEN( I_SERNR ).
....
....
....
Thanks,
Naren