Skip to Content

Hello community,

OSS note 1633639 tells us very clear the status about the SAP GUI Development Tools with Windows 7. Also we see the problems with the wizard here.

Scripting Tracker Lite is an alternative. It is a small utility to replace the SAP GUI Scripting wizard.

The program shows a clearly arranged tree with all SAP sessions and its scripting objects. Also it shows for each scripting object, after the selection in the tree with a single mouse click, a lot of technical details like e.g. ID, position etc.

With the Analyzer the program offers the possibility to identify each scripting object with a red frame. It is possible on the one hand to select an object from the hierarchy tree and to press the right mouse button. One the other hand it is possible to select a session from the hierarchy tree and to press the identify button. Now it is necessary to move the mouse pointer to the selected session window. This functionality is equal to the SAP GUI Scripting wizard. After the identifying of the scripting object it is possible to copy its technical name, called ID, to the clipboard and to use them in another context.

Unbenannt.JPG

 

Scripting Tracker Lite is replaced by Scripting Tracker. Scripting Tracker is free and you can download it from tracker.stschnell.de

 

Enjoy it.

Cheers
Stefan

To report this post you need to login first.

17 Comments

You must be Logged on to comment or reply to a post.

  1. mic grasso

    Hi Stefan

    Great tool , I have found that the controls paths can vary slightly when running against different clients eg (test and prod )  not sure why. Your tool would be good if it has a find function..

    For example i have found that a TAB control changes in different environments (test and prod) …so i just get the path using a find rather than hard coded path for each control.  Using this code (below).   There may already be a find function but I wrote one in VB (i’m sure you can work it out below).

    Also now that the wizard is gone? – it should be easy to creating a pointing device like the wizard had. I don’t know what your tool is written in (but if its auto it should be ‘easy’ to create a pointing device like the wizard had). I noticed that the GuiMainWindow object has a property Visualize (Calling this method of a component will display a red frame around the specified component) just like the wizard used to do? I tested it and it does what the wizard did. So a wizard like tool could be made.. Q. Do you know how to detect a click on the SAP GUI …is there a click event?  If you build it they might include it in the SAP GUI Good work!

    Anyway here is the code i use to find a control (i’m sure you can work it out but here it is)…

    Function sFindCtrlFullPath(sfind As String) As String
    ‘ find the first control that matches (contains) sfind in the controls path.

    ‘ eg.
    ‘ g_sIDTABPath = sFindCtrlPath(“tabpSCREEN_1100_TAB_03”)

            Set ctrl = oFindCtrl(sfind)
            If Not ctrl Is Nothing Then
               
                    sFindCtrlFullPath = ctrl.ID
               
            End If
            Set ctrl = Nothing
    End Function

    Function oFindCtrl(sfind As String, Optional isap_window_num As Integer = 0) As Object
            Set ctrl = sap_session.findById(“wnd[” & isap_window_num & “]”)
            Set oFindCtrl = ctrlwalker(ctrl.Children, sfind)
            Set ctrl = Nothing
    End Function
    Function ctrlwalker(ctrl As Object, sfind As String, Optional s As String = “”) As Object
    Dim i As Integer
    ‘ find the first control that matches (contains) sfind in the controls path.

    ‘ eg.

    ‘ set ctrl = ctrlwalker(sap_session.findById(“wnd[0]”).Children, “tblSAPLBUD0TCTRL_BUT0ID”)

    For i = 0 To ctrl.Count – 1
        s = s & “+-“
        If InStr(“” & ctrl.Item(0 + i).ID, sfind) Then
            Debug.Print “FOUND ” & sfind
            Debug.Print ctrl.Item(0 + i).ID & “( ” & ctrl.Item(0 + i).Type & ” )” & “( ” & ctrl.Item(0 + i).Name & ” )”
            Set ctrlwalker = ctrl.Item(0 + i)
            Exit Function
        End If
        ‘ search children
        If ctrl.Item(0 + i).containertype = True Then
            Set ctrlwalker = ctrlwalker(ctrl.Item(0 + i).Children, sfind)
        End If
        If Not ctrlwalker Is Nothing Then
            Set ctrl = Nothing ‘ to prevent memory leakage
            Exit Function ‘ bailing found
        End If
       
    Next i
    Set ctrl = Nothing
    End Function

    (0) 
    1. Stefan Schnell Post author

      Hello Mic,

      thanks for your reply. And thanks for the hint of the vary control path, it is very interesting.

      This is one of the reasons why I implemented the CSV export functionality in the new version of Scripting Tracker Lite. Now it is very easy possible to export the object hierarchy of the same screen e.g. from different systems to find differences fast and completely.

      The functionality to identify any scripting object with a red frame is already integrated in Scripting Tracker Lite. Choose the scripting object you want from the tree hierarchy with the right mouse button click and you will see the red frame around the control element.

      Another way is to press the toggle button “Identify scripting object from SAP GUI in Tracker hierarchy” from the Analyzer toolbar and to move the mose pointer to the session. Each object under the mouse pointer will be identified with a red frame and in the Scripting Tracker Lite tree this object will be selected and its technical details will be shown. This is the same functionality like SAP GUI Development Tools.

      Q: Do you know how to detect a click on the SAP GUI …is there a click event?

      A: Sorry, but I don’t know a way to detect a click event on a SAP GUI.

      Thanks for your source code. I will implement a search functionality on scripting objects hierarchy in a later version of Scripting Tracker Lite.

      Cheers

      Stefan

      (0) 
  2. mic grasso

    Awesome – the wizard is back..? Works great. Wasn’t obvious to me , my suggestion would be to change the mouse pointer to ‘cross – hairs’ or even the button icon to cross hairs..(see the autoIT Au3Info.exe for what i’m talking about)  I started writing similar highlighting tool but you’ve done it.! well done.

    Only other gotcha is ..if the notify when script attaches is checked in the SAP GUI under options (tbar[0]/btn[446]) then a popup comes up ‘do you want to attach’ for every item for every item. I can’t see the control path for this option (so you could detect it in advance). if you select the GUI options menu ‘SAP GUI options RT3 window’ this window is invisible to the tracker?, even if you refresh.

    Also you must refresh the tracker , if a popup comes up, maybe traverse the tree like my find ctrl routine – in real time…but might be slow..

    The csv files – yes control paths can be different i

    basically do this code in an automation program, before i start, rather than hard coding in programs

    if g_controlxpath = “” then

              g_controlxpath   = sFindCtrlFullPath(“xxx_control”)

    endif

    anyway great tool…

    (0) 
    1. Stefan Schnell Post author

      Hello Mic,

      thanks for your reply.

      Disable in your SAP Logon the requester.  Choose in the system menu the item Options. Select in the tree Accessibility & Scripting and the menu item Scripting. Disable the checkboxes “Notify when a script attaches to SAP GUI” and “Notify when a script opens a connection”,

      The options window is not part of the SAP GUI Scripting hierarchy, so it is for SAP GUI Scripting invisible. If it is invisible for SAP GUI Scripting, it is also invisible for the Scripting Tracker. Take a little test, try to record your activities on the options window. You will see no result.

      I don’t know an event to catch a new upcoming window or requester. It is necessary, after a change on the SAP GUI, to refresh the Scripting Tracker hierarchy.

      A good idea to store the scripting object and to check its existence.

      Cheers

      Stefan

      (0) 
          1. mic grasso

            Thanks Stefan – find works well..

            of course find prev would be useful..;)

            find next – works too – only suggestion the find should only search leaf node text.  Eg if you  searched for a directory name in windows- you wouldn’t expect all the files in each directory to be listed. eg. if you search  for a table tblSAPLBUD0TCTRL_BUT0ID, your ‘find next’ lists all sub fields. I think the ‘find’ should only search the leaf node text. eg if you search boxGV in BP transaction with indentification tab selected the ‘find next’ works as expected highlighting the next boxGV.   Minor point – hope it makes sense..

            good work again..

            (0) 
            1. Stefan Schnell Post author

              Hello mic,

              thanks for you reply.

              It is hard for me to differentiate automatically on which level a leaf node begins or not. I think I have no chance. If you are searching e.g. for tblSAPLBUD0TCTRL_BUT0ID you find all entries with the find next button. I don’t know what a user exactly means with its search. Is he searching for each tblSAPLBUD0TCTRL_BUT0ID entry or not? At the moment you must define a specific entry, which you are looking for, at the begin of your search, otherwise you get all the stuff.

              Cheers

              Stefan

              (0) 
  3. Sayuti Azmi

    For a beginner in SAP scripting, this tool helps a lot in understanding the structure of SAP scripting objects.

    Minimize the effort in getting to the object using the SAP script recorder and then to edit the codes that the recorder generated.

    Thanks! ๐Ÿ™‚

    (0) 
  4. Pramod Bhat

    Hi Stefen,

    I encountered a screen reader for GUI  in service market place, please let me know whether it is same as tracker lite or is it something different.

    Thanks in advance.

    (0) 
    1. Stefan Schnell Post author

      Hello Pramod,

      thanks for your reply. Scripting Tracker and SAP GUI Screen Reader are different applications, but in the most cases they have the same functionality. With Scripting Tracker you can e.g. export the object hierarchy as CSV file and you can search inside the object hierarchy for a special object, also it supports SAP NetWeaver Business Client (NWBC) for desktop. With the SAP GUI Screen Reader you get the source code and, if you own an older VB Version, you can change it, if you like. As you see, each of them has pro and cons.

      Cheers

      Stefan

      (0) 

Leave a Reply