SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Yet another customized logon screen



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Security and Monitoring
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Sun Nov 18, 2007 8:03 pm    Post subject: Yet another customized logon screen Reply with quote

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.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Security and Monitoring All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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.