Posted: Sun Nov 18, 2007 8:03 pm Post subject: Yet another customized logon screen
Yet another customized logon screen - this one with configurable active elements (URL ...)
Code:
************************************************************************
* Yet another logon screen modification solution.
* This one is similar to program #90 (same setup steps) but:
* - it runs during logon but also can be run any time from SAP from the
* help menu
* - it displays a list type window with active elements. By clicking
* on those elements the user can start a report, an SAP transaction
* or a web browser displaying a particular web page.
* - the format (color, element type, intensified, program to run ...)
* for the dynamic logon screen for the different SAP systems is
* configured in a single config file residing on a filesystem shared
* between all SAP the systems.
*This is an example config file:
*
* SID|XX|YY|T|#|#|#|#|#|Text|URL
* | | | | | | | | | | |
* | | | | | | | | | | Url, Transaction or Program/type U,T or P
* | | | | | | | | | Text to be displayed
* | | | | | | | | 1/0 Input on/off
* | | | | | | | 1/0 Hotspot on/off
* | | | | | | 1/0 Inverse on/off
* | | | | | 1/0 Intensified on/off
* | | | | 0-7 Color
* | | | R:Regular, U:URL, T:Start transact., P:Start program
* | | Y coordinate (<20)
* | X coordinate (<66)
* System
*
*SID|1|1|R|6|0|0|0|0| SID: SAP 3.1 Development|
*SID|2|3|R|2|1|0|0|0|This is the first line of the important message|
*SID|2|4|R|2|1|0|0|0|This is the second line of the important message|
*SID|2|5|R|2|1|0|0|0|This is the third line of the important message|
*SID|1|7|U|1|0|1|1|0|Click here for more info from the WEB|http://XXX
*SID|1|9|T|1|0|1|1|0|Click here to start transaction SICK|SICK
*SID|1|11|P|1|0|1|1|0|Click here to start program SHOWCOLO|SHOWCOLO
*SID|1|13|S|1|0|1|1|0|Send mail to the BASIS team|[email protected]
*SID|1|18|R|2|0|1|0|0|To display this window from SAP go to Help/webhelp
*
***********************************************************************
FUNCTION Z_POPUP_SYSTEM_INFO_LIST.
*"----------------------------------------------------------------------
*"*"Local interface:
*"----------------------------------------------------------------------
CALL SCREEN 333 STARTING AT 1 3
ENDING AT 65 16.
ENDFUNCTION.
*---------------------------------------------------------------------*
* MODULE STATUS_0333 OUTPUT *
*---------------------------------------------------------------------*
MODULE STATUS_0333 OUTPUT.
SET TITLEBAR '000'.
INCLUDE .
DATA: MESSAGE(20), L1(81), L2(81), L3(81), L4(81),
L5(81), L6(81), L7(81), L8(81), L9(81).
DATA: C.
DATA: L(200), A1(81), A2(81), A3(81), A4(81), A5(81), A6(81).
DATA: DESRCIPTION(6) VALUE 'Z| |',
SYSTEM_MESSAGE(6) VALUE 'M| |'.
DATA: BEGIN OF A.
INCLUDE STRUCTURE RFCSI.
DATA: END OF A.
DATA: BEGIN OF LINE_TBL OCCURS 100.
INCLUDE STRUCTURE SPFLIST.
DATA: END OF LINE_TBL.
* Run only on my pc (good for the testing)
* CALL FUNCTION 'RFC_SYSTEM_INFO' DESTINATION 'SAPGUI'
* IMPORTING RFCSI_EXPORT = A.
* IF A NS 'IMRE'.
* EXIT.
* ENDIF.
* Create the SID specific search patterns
DESRCIPTION+2(3) = SY-SYSID.
SYSTEM_MESSAGE+2(3) = SY-SYSID.
* Trick to avoid OPEN DATASET (no user->no authorization->open fails)
CALL FUNCTION 'RZL_READ_FILE_LOCAL'
EXPORTING
DIRECTORY = '/globaldirectory'
NAME = 'login_screen_list.ctl'
TABLES
LINE_TBL = LINE_TBL
EXCEPTIONS
NOT_FOUND = 1.
* If the file is missing: do not display anything
IF SY-SUBRC = 1.
SET SCREEN 0. LEAVE SCREEN.
ENDIF.
* Get the text from the internal table
SUPPRESS DIALOG.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
NEW-PAGE NO-TITLE NO-HEADING.
DATA: SYS(3),X(2),Y(2),T, COL,INT,INV,HOT,INP,TXT(62),URL(60).
LOOP AT LINE_TBL.
IF LINE_TBL CS SY-SYSID.
SPLIT LINE_TBL AT '|' INTO SYS X Y T COL INT INV HOT INP TXT URL.
*
CASE COL.
WHEN '1'. FORMAT COLOR 1.
WHEN '2'. FORMAT COLOR 2.
WHEN '3'. FORMAT COLOR 3.
WHEN '4'. FORMAT COLOR 4.
WHEN '5'. FORMAT COLOR 5.
WHEN '6'. FORMAT COLOR 6.
WHEN '7'. FORMAT COLOR 7.
ENDCASE.
*
FORMAT INTENSIFIED OFF.
FORMAT INVERSE OFF.
FORMAT HOTSPOT OFF.
FORMAT INPUT OFF.
IF HOT = '1'. FORMAT HOTSPOT ON. ENDIF.
IF INT = '1'. FORMAT INTENSIFIED ON. ENDIF.
IF INV = '1'. FORMAT INVERSE ON. ENDIF.
IF INP = '1'. FORMAT INPUT ON. ENDIF.
*
SKIP TO LINE Y.
IF T = 'U'.
WRITE AT X(2) ICON_SYSTEM_HELP AS ICON.
X = X + 3.
WRITE AT X TXT. HIDE: T, URL.
ELSEIF T = 'T'.
WRITE AT X(2) ICON_EXECUTE_OBJECT AS ICON.
X = X + 3.
WRITE AT X TXT. HIDE: T, URL.
ELSEIF T = 'S'.
WRITE AT X(2) ICON_MAIL AS ICON.
X = X + 3.
WRITE AT X TXT. HIDE: T, URL.
ELSEIF T = 'P'.
WRITE AT X(2) ICON_EXECUTE_OBJECT AS ICON.
X = X + 3.
WRITE AT X TXT. HIDE: T, URL.
ELSE.
WRITE AT X TXT.
ENDIF.
*
ENDIF.
ENDLOOP.
CLEAR: SYS, X, Y, T, COL, INT, INV, HOT, INP, TXT, URL.
ENDMODULE.
*
AT LINE-SELECTION.
READ LINE SY-INDEX.
DATA: LOCATION(200).
IF T = 'U'.
CALL FUNCTION 'REGISTRY_GET'
EXPORTING
KEY = 'protocol\StdFileEditing\server'
SECTION = 'NetscapeMarkup'
IMPORTING
VALUE = LOCATION.
IF LOCATION IS INITIAL.
MESSAGE ID 00 TYPE 'I' NUMBER 208
WITH 'Can not locate Netscape in the registry'.
EXIT.
ENDIF.
CALL FUNCTION 'WS_EXECUTE'
EXPORTING
PROGRAM = LOCATION
COMMANDLINE = URL
INFORM = ''
EXCEPTIONS
FRONTEND_ERROR = 1
NO_BATCH = 2
PROG_NOT_FOUND = 3
ILLEGAL_OPTION = 4.
IF SY-SUBRC <> 0.
MESSAGE ID 00 TYPE 'I' NUMBER 208
WITH 'Can not start Netscape on your pc'.
EXIT.
ENDIF.
ELSEIF T = 'T' AND NOT SY-UNAME IS INITIAL.
CALL TRANSACTION URL.
ELSEIF T = 'P' AND NOT SY-UNAME IS INITIAL.
SUBMIT (URL) AND RETURN.
ELSEIF T = 'S' AND NOT SY-UNAME IS INITIAL.
*
ENDIF.
*---------------------------------------------------------------------*
* MODULE USER_COMMAND_0333 INPUT *
*---------------------------------------------------------------------*
MODULE USER_COMMAND_0333 INPUT.
ENDMODULE.
*---------------------------------------------------------------------*
* MODULE STATUS_0222 OUTPUT *
*---------------------------------------------------------------------*
MODULE STATUS_0222 OUTPUT.
CALL FUNCTION 'Z_POPUP_SYSTEM_INFO_LIST'.
ENDMODULE.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.