Go Back   Wiki NewForum > Career Forum (Documents/Tutorials/Advice) > Tech Forum & Tutorial > SAP Forum > SAP ABAP HR Forum

Sponsored Links

SAP ABAP HR Forum End-to-End Implementation Process

Reply
Views: 572 Source: CNN18.com, India-Forums, TellyChakkar, India, Times of India, Youtube, BollywoodLife, Rediff  
Thread Tools Rate Thread Display Modes
  #1  
Old 05-22-2009, 06:26 AM
bholus7 bholus7 is offline
Banned
 
Join Date:
Apr 2009
Posts: 1,322
Default Pop a Message to specific SAP users

Pop a Message to specific SAP
users



REPORT ZPOPUP NO STANDARD PAGE HEADING.
INCLUDE .

DATA: BEGIN OF USR_TABL OCCURS 0.
INCLUDE STRUCTURE UINFO.
DATA: END OF USR_TABL.

DATA: L_LENGTH TYPE I,
T_ABAPLIST LIKE ABAPLIST OCCURS 0 WITH HEADER LINE,
BEGIN OF T_USER OCCURS 0,
COUNTER TYPE I,
SELECTION TYPE C,
MANDT LIKE SY-MANDT,
BNAME LIKE SY-UNAME,
NAME_FIRST LIKE V_ADRP_CP-NAME_FIRST,
NAME_LAST LIKE V_ADRP_CP-NAME_LAST,
DEPARTMENT LIKE V_ADRP_CP-DEPARTMENT,
TEL_NUMBER LIKE V_ADRP_CP-TEL_NUMBER,
END OF T_USER,
L_CLIENT LIKE SY-MANDT,
L_USERID LIKE UINFO-BNAME,
L_OPCODE TYPE X,
L_FUNCT_CODE(1) TYPE C,
L_TEST(200) TYPE C.

L_OPCODE = 2.
CALL 'ThUsrInfo' ID 'OPCODE' FIELD L_OPCODE
ID 'TAB' FIELD USR_TABL-*SYS*.

CLEAR T_USER. REFRESH T_USER.
LOOP AT USR_TABL.
T_USER-MANDT = USR_TABL-MANDT.
T_USER-BNAME = USR_TABL-BNAME.
APPEND T_USER.
ENDLOOP.

SORT T_USER.
DELETE ADJACENT DUPLICATES FROM T_USER.
LOOP AT T_USER.
T_USER-COUNTER = SY-TABIX.
SELECT V~NAME_FIRST

V~NAME_LAST
V~DEPARTMENT
V~TEL_NUMBER
INTO (T_USER-NAME_FIRST,
T_USER-NAME_LAST,
T_USER-DEPARTMENT,
T_USER-TEL_NUMBER)
FROM USR21 AS U
JOIN V_ADRP_CP AS V
ON U~PERSNUMBER = V~PERSNUMBER AND
U~ADDRNUMBER = V~ADDRNUMBER
WHERE U~BNAME = T_USER-BNAME.
ENDSELECT.
MODIFY T_USER.
ENDLOOP.
SORT T_USER BY NAME_LAST NAME_FIRST.
PERFORM DISPLAY_LIST.

TOP-OF-PAGE.
PERFORM DISPLAY_MENU.
* End of top-of-page

TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM DISPLAY_MENU.
* End of top-of-page during line-selection


AT LINE-SELECTION.
IF SY-CUROW = 2.
IF SY-CUCOL < 19.
T_USER-SELECTION = 'X'.
MODIFY T_USER TRANSPORTING SELECTION WHERE SELECTION = ''.
PERFORM DISPLAY_LIST.
ELSEIF SY-CUCOL < 36.
CLEAR T_USER-SELECTION.
MODIFY T_USER TRANSPORTING SELECTION WHERE SELECTION = 'X'.
PERFORM DISPLAY_LIST.
ELSEIF SY-CUCOL < 50.
PERFORM TRANSFER_SELECTION.
PERFORM POPUP_MSG.
ELSEIF SY-CUCOL < 67.
PERFORM TRANSFER_SELECTION.
SORT T_USER BY NAME_LAST.
PERFORM DISPLAY_LIST.
ELSEIF SY-CUCOL < 81.
PERFORM TRANSFER_SELECTION.
SORT T_USER BY NAME_FIRST.
PERFORM DISPLAY_LIST.
ELSEIF SY-CUCOL < 93.
PERFORM TRANSFER_SELECTION.
SORT T_USER BY MANDT.
PERFORM DISPLAY_LIST.
ENDIF.
ENDIF.
* End of line-selection

*&---------------------------------------------------------------------*
*& Form DISPLAY_LIST
*&---------------------------------------------------------------------*
FORM DISPLAY_LIST.
SY-LSIND = 0.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
LOOP AT T_USER.
WRITE: / SY-VLINE, T_USER-SELECTION AS CHECKBOX,
SY-VLINE, T_USER-MANDT,
SY-VLINE, T_USER-BNAME,
SY-VLINE, T_USER-NAME_FIRST(15),
SY-VLINE, T_USER-NAME_LAST(15),
SY-VLINE, T_USER-DEPARTMENT(20),
SY-VLINE, T_USER-TEL_NUMBER(20), SY-VLINE.
HIDE: T_USER-COUNTER, T_USER-SELECTION.
ENDLOOP.
FORMAT COLOR OFF.
WRITE: /(108) SY-ULINE.
ENDFORM. " DISPLAY_LIST

*&---------------------------------------------------------------------*
*& Form DISPLAY_MENU
*&---------------------------------------------------------------------*
FORM DISPLAY_MENU.
FORMAT COLOR COL_HEADING HOTSPOT.
WRITE: (91) SY-ULINE,
/ SY-VLINE NO-GAP, (4) ICON_SELECT_ALL NO-GAP, 'Select All',
SY-VLINE NO-GAP, (4) ICON_DESELECT_ALL NO-GAP, 'Deselect All',
SY-VLINE NO-GAP, (4) ICON_SHORT_MESSAGE NO-GAP, 'Send Popup',
SY-VLINE NO-GAP, (4) ICON_SORT_UP NO-GAP, 'Last Name' NO-GAP,
SY-VLINE NO-GAP, (4) ICON_SORT_UP NO-GAP, 'First Name' NO-GAP,
SY-VLINE NO-GAP, (4) ICON_SORT_UP NO-GAP, 'Client' NO-GAP,
SY-VLINE,
/(91) SY-ULINE,
/(108) SY-ULINE.
FORMAT HOTSPOT OFF.

WRITE: / SY-VLINE, ' ',
SY-VLINE, 'Cli',
SY-VLINE, 'User ',
SY-VLINE, 'First Name ',
SY-VLINE, 'Last Name ',
SY-VLINE, 'Department ',
SY-VLINE, 'Telephone ',
SY-VLINE,
/(108) SY-ULINE.
FORMAT COLOR OFF.
ENDFORM. " DISPLAY_MENU

*&---------------------------------------------------------------------*
*& Form TRANSFER_SELECTION
*&---------------------------------------------------------------------*
FORM TRANSFER_SELECTION.
DO.
READ LINE SY-INDEX FIELD VALUE T_USER-SELECTION.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
MODIFY T_USER TRANSPORTING SELECTION
WHERE COUNTER = T_USER-COUNTER.
ENDDO.
CLEAR T_USER.
ENDFORM. " TRANSFER_SELECTION

*&---------------------------------------------------------------------*
*& Form POPUP_MSG
*&---------------------------------------------------------------------*
FORM POPUP_MSG.
DATA: L_MSG LIKE SM04DIC-POPUPMSG VALUE 'Experimental Message',
L_LEN TYPE I,
L_RET TYPE C.

LOOP AT T_USER WHERE SELECTION = 'X'.
PERFORM GET_MESSAGE CHANGING L_MSG L_RET.
EXIT.
ENDLOOP.
IF L_RET = 'A'. "User cancelled the message
EXIT.
ENDIF.
* Get the message text
L_LEN = STRLEN( L_MSG ).
LOOP AT T_USER WHERE SELECTION = 'X'.
CALL FUNCTION 'TH_POPUP'
EXPORTING
CLIENT = T_USER-MANDT
USER = T_USER-BNAME
MESSAGE = L_MSG
MESSAGE_LEN = L_LENGTH
* CUT_BLANKS = ' '
EXCEPTIONS
USER_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE: 'User ', T_USER-BNAME, 'not found.'.
ENDIF.
ENDLOOP.
IF SY-SUBRC <> 0.
* Big error! No user has been selected.
MESSAGE ID 'AT' TYPE 'E' NUMBER '315' WITH
'No user selected!'.
EXIT.
ENDIF.
ENDFORM. " POPUP_MSG *&---------------------------------------------------------------------*
*& Form GET_MESSAGE
*&---------------------------------------------------------------------*
FORM GET_MESSAGE CHANGING P_L_MSG LIKE SM04DIC-POPUPMSG
P_RETURNCODE TYPE C.
DATA: BEGIN OF FIELDS OCCURS 1.
INCLUDE STRUCTURE SVAL.
DATA: END OF FIELDS,
RETURNCODE TYPE C.

FIELDS-TABNAME = 'SM04DIC'.
FIELDS-FIELDNAME = 'POPUPMSG'.
FIELDS-FIELDTEXT = 'Message :'.
CONCATENATE ' - Msg from' SY-UNAME '.' INTO FIELDS-VALUE SEPARATED
BY ' '.
APPEND FIELDS.

CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING POPUP_TITLE = 'Supply the popup message'

IMPORTING RETURNCODE = P_RETURNCODE
TABLES FIELDS = FIELDS.

IF P_RETURNCODE = 'A'.
EXIT.
ELSE.
READ TABLE FIELDS INDEX 1.
P_L_MSG = FIELDS-VALUE.
ENDIF.
ENDFORM. " GET_MESSAGE *-- End of Program

Reply With Quote
Reply

New topics in SAP ABAP HR Forum

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Forum Jump


Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2018, vBulletin Solutions, Inc.