Saturday, February 18, 2012

DIY Series - Create Your Own Windows Dock


Do you keep going to your start menu to navigate to any folder on your computer?
Do your indispensable shortcuts cover your beautiful wallpaper?
Do you always keep going to your start menu for opening your programs?
Do you love docks on your desktop?

If you do any of the above, then today I will show you how to create your custom dock easily and without much hassle. 

The custom dock primarily has these advantages -
1. It will keep your desktop spic and span
2. You no longer have to search for your shortcuts in your overcrowded desktop
3. Its an easy way to keep your favorite programs and shortcuts handy and yet out of sight

Create your own windows dock

Requirements:
1. Any flavor of windows (Win XP, Win Vista, Win 7 etc.)
2. Memory (RAM) is not a problem

Step 1:
Create a folder anywhere in your computer. Name it 'Fav'. Of course you are free to name it anything you want.
Folder 'Fav' created
Step 2:
Choose your favorite shortcuts to folders, shortcuts to programs. Then copy and paste them to the folder 'Fav' which you created in step 1.
Shortcuts added to 'Fav' folder
Step 3:
Drag the folder 'Fav' to any ledge of the screen except the ledge where your Task bar is situated. Your dock has been created.
Folder dragged to window ledge

Step 4:
Right click on the dock and choose the options you like. You can choose to view large or small icons on your dock. Maybe, you want to show text and title of the shortcuts on the dock.

Step 5:
Right click again on the dock and select Auto-Hide. This will ensure that the dock does not get in your way once you are done with it.

That’s it. Your dock is now ready for use.

Friday, February 17, 2012

TMS_TM_GET_HISTORY

This article is for those of you who are interested in Transport Management in SAP systems. This article tells you how to get the import history that is displayed in T-code STMS.

Recently, I was developing a tool to count the modification of the objects which are in production.  
Now, for finding the objects you need a data source. There I found two options -

1.   The E070 table which would contain all the desired Transport Requests
2.   The Import History found in transaction STMS

After much thought, I decided on the Import History source. This decision was based on primarily two reasons. 

a.    The import history contained a practical and correct list of all the imports that happened in the system
b.    The import history could be fetched on the basis of start and end date of import and not just the creation date of the transports.

That was when I came across the FM  TMS_TM_GET_HISTORY

TMS_TM_GET_HISTORY

The basic functionality of the FM is to provide a unformatted data of the import history based on the start date time and end date and time provided to it. In addition it also needs the system name and domain name of the system to be provided to it. Following section talks about the import parameters.

Importing Parameters:

iv_system: The system name (Note: directly providing sy-sysid won't work as the types are different)
iv_domain: The domain name of the system. (Can be found from table  tmscsys; field domnam)
iv_allcli: To be put as 'X'
iv_imports: To be put as 'X'

Exporting Parameters:

et_tmstpalog: This is the table of the import history. Type is tmstpalogs table type.

Changing Parameters:

cv_start_date: This is the date from where you want the import history from
cv_start_time: This is the time of start for your search of the import history
cv_end_date: This is the date till which you want the import history of the system
cv_end_time: Similarly, this parameter defines the end time till which the import history should be fetched

Sample Code:


* Initialise the system
  l_sysname = sy-sysid.


* Get the domain
  SELECT SINGLE domnam
    FROM tmscsys
    INTO l_domain_p
   WHERE sysnam = l_sysname.


  IF sy-subrc = 0.


* Get the import history from the sytem provided


    CALL FUNCTION 'TMS_TM_GET_HISTORY'
     EXPORTING
       iv_system               = l_sysname
       iv_domain               = l_domain_p
       iv_allcli               = k_true
*        IV_TRCLI                =
*        IV_TRFUNCTION           =
*        iv_project              =
       iv_imports              = k_true
*        IV_EXPORTS              =
*        IV_ALL_STEPS            =
*        IV_ALL_ALOG_STEPS       =
*        IV_TPSTAT_KEY           =
       iv_monitor              = k_true
     IMPORTING
*        EV_ALOG_LINENR          =
       et_tmstpalog            = li_import_history_p
*        ES_EXCEPTION            =
     CHANGING
       cv_start_date           = l_strtdt_p
       cv_start_time           = l_start_time_p
       cv_end_date             = l_enddt_p
       cv_end_time             = l_end_time_p
     EXCEPTIONS
       alert                   = 1
       OTHERS                  = 2.


    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

ENDIF.

Thursday, February 16, 2012

TR_OBJECT_JUMP_TO_TOOL


Have you ever wondered how any object that you want to view in the requests in se10 gets displayed ?
If your answer is yes, then read on to find an interesting function which you can use in your custom code to actually display any object in its own editor!

TR_OBJECT_JUMP_TO_TOOL
This Function Module (FM) is very simple to use. All you need to know  is the Object Name, Program ID and the Object Id.

Importing Parameters:
Object Name - The name of the object.
PGMID & OBJECT - These two fields together denote the type of object

The above data can be fetched from E071 table provided you know the Transport Request Number.

Once you pass these fields to the respective importing parameters of the FM, it will open the desired tool for you.

 Mode (iv_action):
Also,  you can control the way the object is opened in its tool, i.e. in display mode or in change mode.
This is easily done by passing the respective character strings in the importing parameter 'iv_action'.

Mode
Value
Display
'SHOW'
Change
'EDIT'

Example code:


CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL'
            EXPORTING
              iv_pgmid           = e071-pgmid            " PGMID
              iv_object          = e071-object           " OBJECT
              iv_obj_name      = e071-obj_name       " Object Name
              iv_action          = 'SHOW'                  " Mode
            EXCEPTIONS
              jump_not_possible = 1
              OTHERS            = 2.

          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.



Any comments or suggestions are welcome!