Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

User Exit - Status

Former Member
0 Likes
772

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....

5 REPLIES 5
Read only

Former Member
0 Likes
706

Just check for sy-uname in the code for the list of user's need access

& for rest it will skip the logic

Read only

0 Likes
706

So is this a valid code

IF SY-TCODE = 'MM01'

IF SY-UNAME = 'ABC' OR 'XYZ'.

CODE.

ENDIF

ENDIF.

Read only

Former Member
0 Likes
705

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

Read only

0 Likes
706

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>

Read only

Former Member
0 Likes
705

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