SAPGUI Scripting for a beginner !!

Hi all,
I'm new to this GUI Scripting.Can anyone guide me to start up with this scripting by providing any information,blogs or materials regarding the same.
Regards,
Venky

Sorry, that was the wrong place.
Regards
ScriptMan
Edited by: ScriptMan on May 22, 2009 11:49 AM
Edited by: ScriptMan on May 22, 2009 2:57 PM

Similar Messages

  • EEM: SAPGUI scripting not enabled on server

    Hi Gurus,
    I have setup SAPGUI EEM monitoring via SOLMAN 7.1 but after deployment there's an error message "SAPGUI scripting not enabled on server()-214722150:disabledByServer=True". I already checked the backend system, and the paramater of sapgui/user_scripting is set to TRUE.
    Please advise what else do I need to check in order for the SAPGUI scripting to be working in EEM? Is there any additional parameter that I need to change in the backend system?
    Thanks,
    Virgilio

    Hi Virgilio,
    See this link is usefully
    Security for the Use of SAP GUI Scripting - eCATT Security Guide - SAP Library
    Regards,
    Deva

  • Error for linking ecatt Script for exporting parameter

    Hi,
    We have 2 SAPGUI scripts, one is transaction CO01 to create the production order. The other is CO02 to release the production order. In the first script I get production order number as parameter 1 in the message field. I need to export this field to second script for releasing order.
    I am not able to pick the order.
    Tried to use ABAP code
    ABAP.
    DATA: z_aufnr like CAUFVD-AUFNR.
    get parameter id 'ANR' FIELD Z_AUFNR.
    ENDABAP.
    Still export parameter in log comes as empty. So if I create thrid script using ref# it errors out at second script start.
    Your help is greatly appreciated.
    Thanks,
    Gajanan

    Hi
    you don't have to use abap for this .
    in the command editor
    choose first script recording interface and double click it ,observe the screen list on right side and now select the last screend and double click field and parameterize it say give it a  name as variable1 by entering this in valin column.
    Create a parameter and by param1 name and export type and default values as variable1.
    Now for the second script create a parameter as import type and set it's value as &param1&.
    Also pass this value to second script by the same as you done for first script.
    This will work for sure.
    To know more how to parameterize follow the links,
    /people/sapna.modi/blog/2006/04/10/ecatt-scripts-creation-150-tcd-mode-part-ii
    http://www.sapecc.com/tutorials/secat_create.htm
    Please reward points.

  • PythonWin and SAPGUI Scripting

    I was hoping that somebody else might have posted some examples of SAPGUI scripting and Python(Win) - but I couldn't find any.
    Here is a very small example of SAPGUI Scripting with PythonWin. It might serve as a quick start for others who might also share an interest in Python and GUIscripting.
    In short - I've got so far as to get basic manipulation working.
    import win32com.client
    False, True = 0 , -1
    app = win32com.client.Dispatch("Sapgui.ScriptingCtrl.1")
    conn = app.OpenConnection("D47", True)
    At this point the SAPGUI opens with the initial logon screen of the system. A connection has been created. I enter my user ID and password
    >>> print conn.Id
    returns /app/con[0]
    >>> ses = app.FindById("ses[0]")
    >>> ses.CreateSession() "opens up a new session Good!
    >>> ses.SendCommand(Command="/nIW31") "starts Tx IW31
    >>> ses.StartTransaction(Transaction="IW31") "start IW31 also
    >>> window = ses.activeWindow
    >>> print window.Id
    /app/con[0]/ses[0]/wnd[0]
    start SE38...
    >>> field = window.FindByName(Name="RS38M-PROGRAMM", Type="GuiCTextField")
    >>> print field.Id
    /app/con[0]/ses[0]/wnd[0]/usr/ctxtRS38M-PROGRAMM
    So - it seems that basic manipulation works OK
    Next step is to try some useful...
    I'll let you know how it goes..
    Andrew
    Message was edited by: Andrew Barnard
    Incorporated successful code and removed some questions which I've now solved myself. (The successful code covers the questions!).

    Further to the above, I've now been able to translate and run VBS recordings within Python with only a few minor changes:
    Here is the approach I've taken:
    "// Some introductory setup..
    import win32com.client
    False, True = 0, -1
    app = win32com.client.Dispatch("Sapgui.ScriptingCtrl.1")
    con = app.OpenConnection("D47", True)
    session = app.FindById("ses[0]")
    "// Some input steps (reading from CSV files or other sources...
    "// Then the actual GUI scripting steps..
    Some "translation" hints:
    (1) A VBS recording writes session.findById. In Python it is more accurately written as session.FindById
    (2) A VBS statement such as session.findById("wnd[0]").resizeWorkingPane 132,25,false
    would be written as session.FindById("wnd[0]").resizeWorkingPane( 132, 25, False)
    similarly:
    session.findById("wnd[0]").sendVKey 0 from VBS would be written session.FindById("wnd[0]").sendVKey( 0 )
    Other than that - all seems pretty straight forward..

  • Is it possible to execute SAPGUI scripts from java program?

    Hi everyone..
         I need to develop an java applications that executes the SAPGUI script or any technique that execute set of transaction as client.
         Is it possible to execute SAPGUI scripts from java program? if so, how it can be achieved? is there any other technique to achieve above mention scenario?.
         it will be more helpful, if docs related to that are shared..
         Thanks in advance

    Oh, bummer. Would be much more convenient if I could just use iTunes for everything. Can't stand WMP. I wonder if WinAmp might be a good compromise?
    Thanks for this answer . . .
    Sharon

  • Sapgui scripting

    Happy to meet Mr Cohr here.
    Let me tell you some comments on Sapgui scripting.
    a) The code generated is really different depending if your are using a slow or a regular lan connection. It is not that fun, I made some developments to use indexed fields instead of using names.
    schnick.schnack.scnock
    /1/2/0
    where schnick was the second control available
    schnack the third son of schnick
    schnock the first son of schnack
    it remains valid in any case.
    b) the management of session number  and connnection is not easy.
    how do you do that on your own?
    regards
    Didier

    Hi Didier,
    the problem with the low-speed-connection is a documented 'feature'. Unfortunately during a low-speed- connection the server does not send us the field names that we use to identify objects. I think according to the documentation Scripting doesn't work at all in low-speed-connection. As you noticed it's not quite that bad. The Scripting will work, but you get different Ids for your elements. These Ids follow the same concept as your solution: We use an index to identify objects on the same level of the hierarchy.
    Session and connection numbers are meaningless most of the time. They depend so much on what else you are or were doing in SAP GUI that a script relying on them will fail most of the time.
    The sample recorder generates code that will always access the first session of the first connection using app.children(0).children(0). All Ids in the scripts are then relative to this session and do not contain a session or connection number. That's ok if you work with one open session most of the time.
    We also have a property app.ActiveSession, which will return the session that is currently the topmost.
    If you need to access several sessions then it becomes difficult. You can distinguish sessions by checking the connection information in session.info or the window title, but that requires some code writing.
    Best regards,
    Christian

  • Adobe CS3Clean Script for Windows

    I have downloaded and unzipped the file located at:
    http://www.adobe.com/support/contact/cs3clean.html
    English/Japanese
    Download the Adobe CS3Clean Script for Windows (ZIP, 978 KB)
    Each time I extract the files, the
    AdobeCS3CleanReadMe.pdf
    will not open because it is corrupt.
    There is an additional file named:
    âNâèü[âôâAâbâvâXâNâèâvâgé+é-éóé-.pdf
    which I have not attempted to open for obvious reasons....

    I don't know for sure, but a good guess is that it's the same
    readme in
    Japanese. I don't have Japanese characters installed so
    perhaps that's why
    the gobbletygook?
    However, the AdobeCS3CleanReadMe.pdf in the download I just
    got is fine.
    Try downloading again .. if that doesn't help .. and your
    Adobe Reader is
    updated .. drop me a line and I'll send you the PDF from my
    download.
    Nancy Gill
    Adobe Community Expert
    Author: Dreamweaver 8 e-book for the DMX Zone
    Co-Author: Dreamweaver MX: Instant Troubleshooter (August,
    2003)
    Technical Editor: Dreamweaver CS3: The Missing Manual,
    DMX 2004: The Complete Reference, DMX 2004: A Beginner's
    Guide
    Mastering Macromedia Contribute
    Technical Reviewer: Dynamic Dreamweaver MX/DMX: Advanced PHP
    Web Development
    "sbuck415" <[email protected]> wrote in
    message
    news:fg5q7a$l0s$[email protected]..
    >I have downloaded and unzipped the file located at:
    >
    >
    http://www.adobe.com/support/contact/cs3clean.html
    >
    > English/Japanese
    > Download the Adobe CS3Clean Script for Windows (ZIP, 978
    KB)
    >
    > Each time I extract the files, the
    > AdobeCS3CleanReadMe.pdf
    > will not open because it is corrupt.
    >
    > There is an additional file named:
    > ?N???[???A?b?v?X?N???v?g?+?-???-.pdf
    > which I have not attempted to open for obvious
    reasons....
    >
    >
    >

  • Creating a Perl script for SAP sytem profile parameter

    Hi,
    I need to create a perl script for all th eprofile parameter to check as a security directive ,so that whenever the system is started it checks for this profile parameter.
    As per my company sap directive ,these are the profile parameter i need to set.
    Can anyone let me know how to write the scripts.
    login/min_password_lng Minimum password length for user password 320 Min.
    8
    login/password_expiration_t
    ime
    Number of days between forced password change. 0 Max.
    35
    login/fails_to_session_end Number of invalid logon attempts allowed before the
    SAP GUI is disconnected.
    3 Max.
    3
    login/fails_to_user_lock Number of invalid logon attempts before the user id is
    automatically locked by the system.
    12 Max.
    6
    rdisp/gui_auto_logout Time, in seconds, that SAPGUI is automatically disconnected
    because of in-activity.
    0 60-
    7200
    21
    auth/test_mode Jump into report RSUSR400 at every authority check N N22
    auth/system_access_check_
    off
    Switch off automatic authority check for special ABAP
    commands
    0 0
    auth/no_check_in_some_ca
    ses
    Special authorization checks turned off by customer.
    Enabling of Profile Generator
    N/Y23 Y
    login/ext_security Security access controlled by external software. N N24
    auth/rfc_authority_check Permission for remote function calls from within ABAP
    programs
    0 1
    login/failed_user_auto_unlo
    ck
    Enable system function for automatic unlock of users
    at midnight. (0 = locks remain)
    0 0
    login/
    no_automatic_user_sapstar
    (as of 3.1h)
    login/no_automatic_user_sa
    p* (prior to 3.1h)
    Disable ability to logon as SAP* with PASS as password
    when SAP* deleted.
    0 125,26
    auth/tcodes_not_checked TCode checking for SU53 & SU56 analysis disabled (empty
    "SU5
    3
    Regards,
    Chetan.

    Here's a simple perl script that should help you get what it is you're looking for - you can add all the parameters you want to search for, I just took a few of them:
    #!/usr/bin/perl -w
    use strict;
    use sapnwrfc;
    SAPNW::Rfc->load_config;
    my $rfc = SAPNW::Rfc->rfc_connect;
    my @parms = (   "login/min_password_lng",
              "login/password_expiration_time",
              "login/fails_to_session_end",
              "login/fails_to_user_lock" );
    for my $x (0 .. $#parms) {
         my $rcc = $rfc->function_lookup("SXPG_PROFILE_PARAMETER_GET");
         my $slr = $rcc->create_function_call;
         $slr->PARAMETER_NAME($parms[$x]);
         $slr->invoke;
         print "Value for $parms[$x] is: ".$slr->PARAMETER_VALUE."\n";
    $rfc->disconnect();
    And running it, you'll get:
    [dhull@397 scripts]$ ./read-profile.pl
    Value for login/min_password_lng is: 7
    Value for login/password_expiration_time is: 90
    Value for login/fails_to_session_end is: 3
    Value for login/fails_to_user_lock is: 6
    [dhull@397 scripts]$
    If you need to get your perl environment read to make RFC calls to your SAP system, check my series of blogs on how to do so here:
    https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/u/251752730
    Cheers,
    David.

  • SAPGUI Scripting Developer needed

    I need someone capable of doing some VB coding for me related to SAPGUI scripting.....I need tight login scripts covering every scenario (user already logged on, max # of sessions, single-signon, etc.) and I need help with the systemfocus statements and understanding how it actually works (see my other post). 
    I am developing a commercial program and need it to behave as such, and unfortunately my scripting skills and programming skills in general are lacking.
    Thanks,
    Mike

    Standard Excel VBA uses UCASE to convert text to upper case.

  • SAPGUI Scripting - What is required?

    We are just starting to used SAP R/3 4.6C. Is SAPGUI Scripting an application/development add on to be installed in addition to the SAP GUI client ?. I try the script examples (....GetObject("SAPGUI")...etc) but Visual Basic raise the infamous "cannot create object error" which I understand that I dont have the ActiveX needed installed in my PC. (I check saplogon.exe and I dont have it on my PC). What do I need to installed and from where I can get it ?

    Hello Victor,
    SAP GUI Scripting is a subcomponent of the SAP GUI installation that you have to select during the installation process (or during the definition phase of your packages if you are using an installation server). It is part of SAP GUI as of release 6.20 so you need at least this release (but all the older releases are no longer supported anyway).
    In the SAP system itself note 480149 has to be applied. You need a minimum level of SAP Kernel.
    Here is the text of the note:
    Symptom                                                                   
    The sapgui/user_scripting parameter is imported again. If this parameter  
    is set to TRUE, the scripting functions can be used with a GUI as of      
    version 6.20 on the front end.                                                                               
    The default value of the parameter is FALSE so that scripting to the      
    system is not possible.                                                                               
    Note that you must enter the values in upper case;                                                                               
    There are 2 options for setting the parameter: In transaction rz11 and    
    in the server profile. If the parameter is only set in rz11, the change   
    is lost when you restart the server.                                                                               
    Setting the parameter in the SAP system                                   
    ===============================================                                                                               
    If possible, dynamic setting of the parameter is executed using           
    transaction rz11. Specify the parameter name sapgui/user_scripting and    
    select 'Display'.                                                         
    Provided that the current value is set to FALSE, select the 'Change       
    value' button in the toolbar. A window now appears, in which you can      
    enter the new value TRUE. When you save the change, the window closes     
    and the current value of the parameter changes to TRUE. This change only  
    becomes effective when you log onto the system again.                                                                               
    If the parameter is not found, you must import the relevant Support       
    Package in accordance with the list below.                                
    If the current value does not change accordingly after you have saved  
    the change, it means that the kernel is too old. In this case, import  
    the required kernel patch, as specified below.                                                                               
    Setting the parameter in the server profile                            
    ======================================                                                                               
    If you have not imported the Support Package, you can switch the       
    scripting on if you set the parameter in the profile file of the       
    application server with the following line:                              
    sapgui/user_scripting = TRUE                                             
    This procedure only requires the specified kernel patch level, however,  
    you must restart the application server.                                 
    Other terms                                                                               
    Reason and Prerequisites                                                                               
    Solution                                                                 
    The parameter is delivered with the following kernel patches:                                                                               
    o  6.10: 360                                                                               
    o  4.6D: 948                                                                               
    o  4.5B: 753                                                                               
    o  4.0B: 903                                                                               
    o  3.1I: 650                                                                               
    The parameter can be dynamically activated in the following kernel       
    versions, that is, without having to restart the application server:                                                                               
    o  6.20 Release 6.20 and subsequent versions                                                                               
    o  6.10 Release 6.10 as of patch 391                                                                               
    o  Release 4.6D as of patch 972                                                                               
    Best regards,
    Frank

  • Creating SQL-Loader script for more than one table at a time

    Hi,
    I am using OMWB 2.0.2.0.0 with Oracle 8.1.7 and Sybase 11.9.
    It looks like I can create SQL-Loader scripts for all the tables
    or for one table at a time. If I want to create SQL-Loader
    scripts for 5-6 tables, I have to either create script for all
    the tables and then delete the unwanted tables or create the
    scripts for one table at a time and then merge them.
    Is there a simple way to create migration scripts for more than
    one but not all tables at a time?
    Thanks,
    Prashant Rane

    No there is no multi-select for creating SQL-Loader scripts.
    You can either create them separately or create them all and
    then discard the one you do not need.

  • Error while executing script for sharepoint online (office 365) - the remote server returned an error: (503) server unavailable

    error while executing script for sharepoint online (office 365) - the remote server returned an error: (503) server unavailable.
    I am creating many site collections reading records from sharepoint list using powershell in sharepoint online tenant (office 365).
    Few site collections are created and then getting above error so this error record will be skipped then few succeeding record processed then again getting error.
    pattern is like:
    success
    success
    success
    success
    Error
    success
    success
    success
    success
    success
    success
    error
    success

    Hi,
    As it is an online environment, to troubleshoot this issue in an easier way, I suggest you contact Office 365 Support to see if there is any useful information in
    the log files in the server side:
    https://support.office.com/en-us/article/Contact-Office-365-for-business-support-32a17ca7-6fa0-4870-8a8d-e25ba4ccfd4b?ui=en-US&rs=en-US&ad=US
    Best regards
    Patrick Liang
    TechNet Community Support

  • Custom calculation script for checkboxs

    Hello,
    Can anyone help me out with custom calculation script for this?  I have two mutually exclusive checkboxes that, when checked, I want to populate data into other text fields.
    If Checkbox1 is checked:
    Company1=Warehouse Alpha
    Address1=1234 Any Street
    City/State/Zip1= Los Angeles, CA 90020
    Contact Name1= Mr. Nice Guy
    Phone Number1= 213-854-8565
    Email1=[email protected]
    If Checkbox2 is checked:
    Company2=Warehouse Beta
    Address2= 5678 Awesome Blvd.
    City/State/Zip2= San Bernardino, CA 96545
    Contact Name2= Mr. Handsome
    Phone Number2= 909-824-8265
    Email2=[email protected]
    Thanks,
    Bryan

    So one has two check boxes and one wants them to be mutually exclusive. Name them the same and change the export value of the field. Try it and observe what happens as you check the different check boxes.
    You have described what happens if either box is checked but what happens when a checked box Is unckecked?
    One can place scripts in many locations. I would use a mouse up action for both the check boxes, use the same script for both check boxes.
    I would assume you are using the following names for the fields to populate:
    Company
    Address
    CityStateZip
    ContactName
    PhoneNumber
    Email
    // Mouse up action for both check boxes;
    // initial value for the fields:
    this.getField("Company"),value = "";
    this.getField("CityStateZip"),value = "";
    this.getField("ContactName"),value = "";
    this.getField("PhoneNumber"),value = "";
    this.getField("Email"),value = "";
    // test for check box value for selected box;
    if(event.value == 1) {
    this.getField("Company"),value = "Warehouse Alpha";
    this.getField("CityStateZip"),value = "1234 Any Street";
    this.getField("ContactName"),value = "Los Angeles, CA 90020";
    this.getField("PhoneNumber"),value = "213-854-8565";
    this.getField("Email"),value = "[email protected]";
    if(event.value == 2) {
    this.getField("Company"),value = "Warehouse Beta";
    this.getField("CityStateZip"),value = "5678 Awesome Blvd.";
    this.getField("ContactName"),value = "San Bernardino, CA 96545";
    this.getField("PhoneNumber"),value = "Mr. Handsome";
    this.getField("Email"),value = "[email protected]";
    // end Mouse up action for both check boxes;

  • Sharepoint warmup script for https sites

    we want to warm up https site which is based on sharepoint 2010.
    When we run some sample powershells it shows access forbidden error so we are not able to warm up https site.
    Its slow on first load so need some warmup script for https sites.
    sharepointer

    Just ensure that the service account that you use to trigger the Powershell scripts has access to IIS and SharePoint.  Most often, the SharePoint Farm account would be used for scheduling the warm up scripts on the WFE server.
    I trust that answers your question...
    Thanks
    C
    http://www.cjvandyk.com/blog

  • How to make a really basic pong game for a beginner

    Hello.  I've read through a couple of threads on here dealing with making a game of pong in LabView, but in them the users had questions with far more complex aspects of the program than I want to deal with.  I am a beginner programmer in LabView with limited experience in Java and Visual Basic programming.  I was tasked with creating a game over winter break, and now that I finally have some time (this weekend that is), I decided that I'd make a really simple game of pong.  However, I have seriously overestimated the difficulty of this for a beginner who has very limited knowledge of Lab View.
    I ask you to please have some patience with me.
    I know what I want to do, and just need help inplementing it.
    Here is the idea for my design to keep it as simple as possible:
    -Create a field (I am not sure what to use for this, but from my reading it appears that some sort of a picture output is needed, but I cannot find that anywhere).
    -Set up some simple function that can output the dimensions of this field to use with collision tracking.
    -Create a ball that can be tracked by the program.
    -From my reading I understand that the simplest way to "bounce" the ball off the sides appears to simply reverse the X velocity of the ball when it strikes the vertical boundaries and the Y velocity when it strikes the horizontal boundaries.
    -Insert some sort of a "paddle" that the user can control with the left and right arrow keys.
    Now, as I have mentioned I am a beginner with approximately one month maximum knowledge of this software, spread over about a year.  I want to take things slow.  So for starters, would anyone be willing to walk me through creating a visual output for this and creating a ball that will bounce off all sides?
    If I can at least get that far for now, then I can move on (with help I hope!) of inserting an interactive interface for the "paddle."
    I have found some LabView code for a simple game like this, but it also includes a score keeping loop as well as an "automatic play" option, and I am attempting to wade through all that code to find the bones of it to help me with this, but due to my inexperience, this might thake a lot of time.
    I thank you for any and all help anyone may be able to provide.

    EchoWolf wrote:
    -Create a field (I am not sure what to use for this, but from my reading it appears that some sort of a picture output is needed, but I cannot find that anywhere).
     Wel, there is the picture indicator in the picture palette. In newer versions it's called "2D picture". The palettes have a search function. Using the palette search function is a basic LabVIEW skill that you should know. If you've seen the example for the other discussion, it uses a 2D boolean array indicator. The boolean array is only recommended for a monochrome very low resolution display.
    EchoWolf wrote: -Set up some simple function that can output the dimensions of this field to use with collision tracking.
    -Create a ball that can be tracked by the program.
    That seems backwards. Properly programmed, the code always knows the dimension and the ball position. The program generates, (not tracks!) the ball movement. Of course you need to do some range checking on the ball position to see when it collides with the walls.
    EchoWolf wrote:
    -From my reading I understand that the simplest way to "bounce" the ball off the sides appears to simply reverse the X velocity of the ball when it strikes the vertical boundaries and the Y velocity when it strikes the horizontal boundaries.
    Of course you could make it more realistic by keeping track of three ball parameters: x, y, spin.
    EchoWolf wrote:
    -Insert some sort of a "paddle" that the user can control with the left and right arrow keys.
    Pong is typically played with the up-down arrow keys.
    EchoWolf wrote:
    Now, as I have mentioned I am a beginner with approximately one month maximum knowledge of this software, spread over about a year.
    LabVIEW knowledge is not measured in time units. What did you do during that month? Did you attend some lectures, study tutorials, wrote some programs?
    EchoWolf wrote:
    So for starters, would anyone be willing to walk me through creating a visual output for this and creating a ball that will bounce off all sides?
    I have found some LabView code for a simple game like this, but it also includes a score keeping loop as well as an "automatic play" option, and I am attempting to wade through all that code to find the bones of it to help me with this, but due to my inexperience, this might thake a lot of time.
    Start with the posted example and delete all the controls and indicators that you don't want, then surgically remove all code with broken wires.
    Alternatively, start from scratch: Create your playing field. Easiest would be a 2D classic boolean array that is all false. Use initialize array to make it once. Now use a loop to show the ball as a function of time.
    Start with a random ball position. to display it, turn one of the array elements true before wiring to the array indicator using replace array subset.
    Keep a shift register with xy positions and xy velocities and update the positions as a function of the velocities with each iteration of the loop. Do range checking and reverse the velocieis when a edge is encountered.
    What LabVIEW version do you have?
    LabVIEW Champion . Do more with less code and in less time .

Maybe you are looking for