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.

Similar Messages

  • 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 via. Excel

    We have a inhouse SAPGUI scripting tool (not really sure if it is Inhouse or SAP delivered it) that we currently use to perform Mass updates via. Excel. The person who created this has left the company but now we have a need to update this. I have no idea of how it was developed. It just seems like it was customized from available scripting functions alread yavalable. This was created in 2003 and obviously it is outdated.
    How it works:
    We install this tool/plugin, and it creates a menu item in the Excel called SAP Scripting and it has Connect to SAP, Play, Record, Stop, Generate Input Sheet as options. Wehn you click connect to SAP, it brings up the Logon pad and allows the user to select a system and logon. Then yo ucan click Record and it will capture all the transcations and when you hit stop and click generate input sheet, the script is ready. The script looks something like the below but below is not complete.
    Issue:
    The script is converting all the Input Values to UpperCase but when we use this to populate some paramets which are case sensitive, we are having issues. We need to figure out a way so that the script doesn't convert the input values to UpperCase.
    have nayone seen this type os scripting tool? Any advice?
    IsInput     ID     ScriptCode
    START     001     
         002     MySession.findById("wnd[0]").resizeWorkingPane 95,25,false
         003     MySession.findById("wnd[0]/tbar[0]/okcd").text = "/nsu01"
         004     MySession.findById("wnd[0]/tbar[0]/btn[0]").press
    X     005     MySession.findById("wnd[0]/usr/ctxtUSR02-BNAME").text =
         006     MySession.findById("wnd[0]/usr/ctxtUSR02-BNAME").caretPosition = 6
         007     MySession.findById("wnd[0]/tbar[1]/btn[7]").press
         008     MySession.findById("wnd[0]/usr/tabsTABSTRIP1/tabpLOGO").select
         009     MySession.findById("wnd[0]/usr/tabsTABSTRIP1/tabpSNC").select
         010     MySession.findById("wnd[0]/tbar[1]/btn[19]").press
    X     011     MySession.findById("wnd[0]/usr/tabsTABSTRIP1/tabpSNC/ssubMAINAREA:SAPLSNCB:1002/txtUSRACL-PNAME").text =
         012     MySession.findById("wnd[0]/usr/tabsTABSTRIP1/tabpSNC/ssubMAINAREA:SAPLSNCB:1002/txtUSRACL-PNAME").caretPosition = 21
         013     MySession.findById("wnd[0]/tbar[0]/btn[11]").press
    STOP     014

    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

  • 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

  • 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

  • SAPGUI Scripting - Connection in Delphi/Lazarus

    Hi,
    i tried to convert my autoitscript projects to Delphi/Lazarus because i need a few things autoit can´t offer. I have a few scripts written that interact with the SAP GUI that work quite well, e.g. Excel data import, specific label printing (p-touch) automated data change/correction etc.
    I thought the simple connection to the SAP-GUI scripting wouldn´t be that difficult to migrate but in fact i´m not able to just do the simple task to connect to the running SAP session in Delphi/Lazarus.
    Perhaps anyone has already done this and could share the code in Delphi/Lazarus that does the following that works perfectly well in Visual Studio VBA:
    Dim sapgui, sapapp, sap_connection, sap_session As Object
            sapgui = GetObject("SAPGUI")
            sapapp = sapgui.GetScriptingEngine
            sap_connection = sapapp.Children(0)
            sap_session = sap_connection.Children(0)
            MsgBox(sap_session.findById("wnd[0]").Text)
    I tried a few things in Lazarus but it always sticks at the "Children(0)" connection with a ole type error
    Thanks
    Thomas

    Hopefully i found the answer
    i just referenced the  activex file "SAPFEWINSE.OCX"   which is part of the SAPGUI Scripting API  project SAPFEWINSELIB
    feel free to comment  if u have better ideas

  • Ihave created a script, i need to email in pdf format.

    Hi Experts,
    There are 2 criterias...
    1. criteria
    I have created a script, i need to mail it. Please give me a step by step guide to perform it .. . Please give the comments in all the functional module to be used.
    Do we have to write a separate program to send email or in the same program. i'll post my program along with this mail. I'm using this program to display report after delivery on that particular date.
    REPORT  ZREPORTTOEMAIL LINE-SIZE 400.
    data : count, i  type i.
    TABLES :  VBFA,         "Sales Document Flow
              VBAK,
              KNA1,
              VBKD,
              VBAP,
              LIPS,
              LIKP,
              KONP,
              KOMK,
              KOMP,
              zkna1,
              konv.
    data : l_vbeln like vbfa-vbeln,
           l_posnr like vbfa-posnn,
           l_KNUMV like vbak-KNUMV,
           L_BILL_ITEM LIKE vbfa-posnn ,
           l_netwr like vbrp-netwr,
           l_MWSBP like vbrp-mwsbp.
    DATA: BEGIN OF TKOMV OCCURS 50.
            INCLUDE STRUCTURE KOMV.
    DATA: END OF TKOMV.
    DATA: BEGIN OF TKOMVD OCCURS 50.
            INCLUDE STRUCTURE KOMVD.
    DATA: END OF TKOMVD.
    TYPE-POOLS: SLIS.
    DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
          HEADING  TYPE SLIS_T_LISTHEADER,
          LAYOUT   TYPE SLIS_LAYOUT_ALV,
          EVENTS   TYPE SLIS_T_EVENT,
          REPNAME  LIKE SY-REPID,
          F2CODE   LIKE SY-UCOMM VALUE  '&ETA',
          G_SAVE(1) TYPE C,
          G_EXIT(1) TYPE C,
          G_VARIANT LIKE DISVARIANT,
          GX_VARIANT LIKE DISVARIANT.
    DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
    CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
    DATA: BEGIN OF itab occurs 0,
            kunnr like likp-kunnr,      "ship to party
            NAME2   LIKE  KNA1-NAME1,   "text
            ORT01   LIKE  KNA1-ORT01,   "City
            BSTNK   LIKE  VBAK-BSTNK,   "customer P O
            BSTDK   LIKE  VBAK-BSTDK,   "date
            vbeln like likp-vbeln,      "delivery
            ernam like likp-ernam,      "person
            vstel like likp-vstel,      "shipping point
            vkorg like likp-vkorg,      "sales org
            lfdat like likp-lfdat,      "delivery date
            kunag like likp-kunag,      "sold to party
            NAME1   LIKE  KNA1-NAME1,   "text
            bil_to like VBAK-KUNNR,
            name3 like kna1-name1,
            traid like likp-traid,      "transport/vehicle no
            BOLNR LIKE LIKP-BOLNR,
            wadat_ist like likp-wadat_ist, "good mov. date
            posnr like lips-posnr,      "item
            matnr like lips-matnr,      "material
            arktx like lips-arktx,      "item text
            matkl like lips-matkl,      "mat group
            werks like lips-werks,      "plant
            lgort like lips-lgort,      "stoage location
            lfimg like lips-lfimg,      "del qty
            MEINS LIKE LIPS-MEINS,
            vrkme like lips-vrkme,      "sales unit
            UMVKZ LIKE LIPS-UMVKZ,
            UMVKN LIKE LIPS-UMVKN,
            charg like lips-charg,      "batch
            vgbel like lips-vgbel,      "reference doc
            mtart like lips-mtart,      "mat type
            vkbur like lips-vkbur,      "sales office
            vkgrp like lips-vkgrp,      "sales group
            vtweg like lips-vtweg,      "Distribution Channel
            spart like lips-spart,      "division
            billno like vbak-vbeln,
            basic like komvd-kwert,
            budat like bkpf-budat,
            fin_amt like vbrp-NETWR,
    END OF itab.
    data : begin of jtab occurs 0,
    kunnr like likp-kunnr,
    name2 like kna1-name2,
    vbeln like likp-vbeln,
    zkunnr like zkna1-zkunnr,
    zname like zkna1-zname,
    end of jtab.
    SELECTION-SCREEN SKIP 1 .
    SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-003.
    SELECT-OPTIONS   : ABC FOR LIKP-WADAT_IST DEFAULT SY-DATUM
                                  NO INTERVALS   .
    SELECT-OPTIONS   : S_MATNR FOR  LIPS-MATNR NO INTERVALS   .
    SELECT-OPTIONS   : S_VKORG FOR  LIKP-VKORG NO INTERVALS.
    SELECT-OPTIONS   : S_VSTEL FOR  LIKP-VSTEL NO INTERVALS.
    SELECT-OPTIONS   : S_VKBUR FOR  LIKP-VKBUR NO INTERVALS.
    SELECT-OPTIONS   : S_VKGRP FOR  LIPS-VKGRP.
    SELECT-OPTIONS   : S_SPART FOR  LIPS-SPART.
    SELECT-OPTIONS   : S_VBELN3 FOR  LIKP-VBELN.
    SELECT-OPTIONS   : S_MATKL FOR  LIPS-MATKL NO INTERVALS,
                       S_KUNAG FOR LIKP-KUNAG.
    SELECTION-SCREEN  END OF BLOCK BLOCK1.
    select * from likp into corresponding fields of itab
                  WHERE  WADAT_IST IN ABC
                  AND    VBELN IN S_VBELN3
                  AND    VKORG IN S_VKORG
                  and VSTEL in S_VSTEL
                  AND VKBUR IN S_VKBUR
                  and lfart like 'Z%'
                  AND    VBTYP = 'J'
                  AND KUNAG IN S_KUNAG.
    select * from lips into corresponding fields of itab
                    WHERE VBELN =  ITAB-VBELN
                    AND   MATNR IN S_MATNR
                    AND   MATKL IN S_MATKL
                    AND VKBUR IN S_VKBUR
                    AND VKGRP IN S_VKGRP
                    AND SPART IN S_SPART.
    IF ITAB-VRKME = 'RM' AND ITAB-MEINS = 'KG'.
    ITAB-LFIMG = ITAB-LFIMG * ( ITAB-UMVKZ / ITAB-UMVKN ).
    ITAB-VRKME = 'KG'.
    ENDIF.
    SELECT SINGLE BSTNK BSTDK INTO (ITAB-BSTNK,ITAB-BSTDK) FROM VBAK
                     WHERE VBELN = ITAB-VGBEL.
    SELECT SINGLE NAME1 ORT01 FROM KNA1 INTO (ITAB-NAME2,ITAB-ORT01)
                                 WHERE KUNNR = ITAB-KUNNR.
    SELECT SINGLE NAME1 FROM KNA1 INTO ITAB-NAME1
                                 WHERE KUNNR = ITAB-KUNAG.
    *select single vbeln POSNN into (itab-billno,L_BILL_ITEM)  from vbfa where VBELV = itab-vbeln
    *and POSNV = itab-posnr and VBTYP_N in ('M','U').
    select vbeln POSNN from vbfa up to 1 rows into (itab-billno,L_BILL_ITEM)   where VBELV = itab-vbeln
    and POSNV = itab-posnr and VBTYP_N in ('M','U') order by vbeln DESCENDING .
    endselect.
    select single * from vbfa where vbelv = itab-billno and posnv = l_bill_item and
    vbtyp_n = 'N'.
    if sy-subrc = 0.
    clear : itab-billno, l_bill_item.
    endif.
    select single budat from bkpf into itab-budat where xblnr = itab-billno and
    blart = 'RV'.
    select single NETWR MWSBP into (l_netwr, l_MWSBP) from vbrp where vbeln = itab-billno
    and posnr = l_bill_item.
    itab-fin_amt = l_netwr + l_MWSBP.
    clear : l_netwr, l_MWSBP.
    select single kunnr from vbpa into itab-bil_to where
    vbeln = itab-BILLNO and PARVW = 'RE'.
    select single name1 into itab-name3 from kna1
    where kunnr = itab-bil_to.
    *select single VBELV POSNV from vbfa into (l_vbeln,l_posnr)
    *where VBELN = itab-vbeln and
    *POSNN = itab-posnr and VBTYP_N = 'J'.
    *select single VBELN POSNN from vbfa into (l_vbeln,l_posnr)
    *where VBELV = itab-vbeln and
    *POSNV = itab-posnr and VBTYP_N = 'M'.
    select VBELN POSNN from vbfa up to 1 rows into (l_vbeln,l_posnr)
    where VBELV = itab-vbeln and
    POSNV = itab-posnr and VBTYP_N = 'M' order by vbeln DESCENDING.
    endselect.
    select single * from vbfa where vbelv = l_vbeln and posnv = l_posnr and
    vbtyp_n = 'N'.
    if sy-subrc = 0.
    clear : l_vbeln, l_posnr.
    endif.
    if sy-subrc = 0.
    *select single KNUMv into l_KNUMv from vbak where vbeln = l_vbeln
    select single KNUMv into l_KNUMv from vbRk where vbeln = l_vbeln
    select * from konv where knumv = l_knumv and kposn = l_posnr and
    kschl in ('ZR00','ZR01','ZR02','ZOBC').
    itab-basic = itab-basic + KONV-KBETR.
    ENDSELECT.
    else.
    *select single KNUMv into l_KNUMv from ekko where ebeln = itab-vgbel.
    *select single KBETR from konv into itab-basic where knumv = l_knumv
    *and kposn = itab-posnr and kschl = 'P101'.
    select single KNUMv into l_KNUMv from VBRK where VBELN = itab-BILLNO.
    select * from konv where knumv = l_knumv and kposn = l_BILL_ITEM AND
    kschl in ('ZR00','ZR01','ZR02','ZOBC').
    itab-basic = itab-basic + KONV-KBETR.
    ENDSELECT.
    *zkna1-zkunnr = itab-kunnr.
    *insert zkna1.
    endif.
         clear : l_vbeln, L_BILL_ITEM, L_POSNR.
    APPEND ITAB.
    clear : itab-basic, itab-lfimg.
         ENDSELECT.
              clear : itab.
    ENDSELECT.
    <b>perform zscript.</b>
    *&      Form  zscript
          text
    -->  p1        text
    <--  p2        text
    FORM zscript .
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      APPLICATION                       = 'TX'
      ARCHIVE_INDEX                     =
      ARCHIVE_PARAMS                    =
      DEVICE                            = 'PRINTER'
      DIALOG                            = 'X'
       FORM                              = 'ZREPORT2EMAIL'
       LANGUAGE                          = SY-LANGU
      OPTIONS                           =
      MAIL_SENDER                       =
      MAIL_RECIPIENT                    =
      MAIL_APPL_OBJECT                  =
      RAW_DATA_INTERFACE                = '*'
      SPONUMIV                          =
    IMPORTING
      LANGUAGE                          =
      NEW_ARCHIVE_PARAMS                =
      RESULT                            =
    EXCEPTIONS
      CANCELED                          = 1
      DEVICE                            = 2
      FORM                              = 3
      OPTIONS                           = 4
      UNCLOSED                          = 5
      MAIL_OPTIONS                      = 6
      ARCHIVE_ERROR                     = 7
      INVALID_FAX_NUMBER                = 8
      MORE_PARAMS_NEEDED_IN_BATCH       = 9
      SPOOL_ERROR                       = 10
      CODEPAGE                          = 11
      OTHERS                            = 12
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT ITAB.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
       ELEMENT                        = 'MANU'
       FUNCTION                       = 'SET'
       TYPE                           = 'BODY'
       WINDOW                         = 'MAIN'
    IMPORTING
      PENDING_LINES                  =
    EXCEPTIONS
      ELEMENT                        = 1
      FUNCTION                       = 2
      TYPE                           = 3
      UNOPENED                       = 4
      UNSTARTED                      = 5
      WINDOW                         = 6
      BAD_PAGEFORMAT_FOR_PRINT       = 7
      SPOOL_ERROR                    = 8
      CODEPAGE                       = 9
      OTHERS                         = 10
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDLOOP.
    CALL FUNCTION 'CLOSE_FORM'
    IMPORTING
      RESULT                         =
      RDI_RESULT                     =
    TABLES
      OTFDATA                        =
    EXCEPTIONS
      UNOPENED                       = 1
      BAD_PAGEFORMAT_FOR_PRINT       = 2
      SEND_ERROR                     = 3
      SPOOL_ERROR                    = 4
      CODEPAGE                       = 5
      OTHERS                         = 6
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " zscript
    The above one is first criteria just to understand how to send mail to the customers.
    <b>Second criteria</b> is i have to send the mail to the particular customer with only their details, the process should continue until it sends to all the customers with their details for that particular date.
    Please help me out.
    I have seen so many posts in the sdn but not able to understand the functional modules, how they declare that and how does it works...
    Please provide me a good material to understand the functional module and to declare them.
    Please solve this query i'll reward them with very good points.
    Thanks in advance.
    A.Rafique.

    Hi babar haroon,
    Thanks for the link.....
    I went through that link, i created smart form but i was not able to get the results because the pgm gets terminated after executing. I'll show u the code, the code is active. Please check out and tell me if  i have missed anything in the code...
    *& Report  ZZZ_TEST3
    REPORT  ZZZ_TEST3.
    *internal table declarations
    data: i_otf type itcoo occurs 0 with header line,
          i_tline type table of tline with header line,
          i_receivers type table of somlreci1 with header line,
          i_record like solisti1 occurs 0 with header line,
    *Objects to send mail.
          i_objpack like sopcklsti1 occurs 0 with header line,
          i_objtxt like solisti1 occurs 0 with header line,
          i_objbin like solisti1 occurs 0 with header line,
          i_reclist like somlreci1 occurs 0 with header line,
    *workarea declaration.
          w_objhead TYPE soli_tab,
          w_ctrlop TYPE ssfctrlop,
          w_compop TYPE ssfcompop,
          w_return TYPE ssfcrescl,
          w_doc_chng typE sodocchgi1,
          w_data TYPE sodocchgi1,
          w_buffer TYPE string,"To convert from 132 to 255
    Variables declarations
          v_form_name TYPE rs38l_fnam,
          v_len_in LIKE sood-objlen,
          v_len_out LIKE sood-objlen,
          v_len_outn TYPE i,
          v_lines_txt TYPE i,
          v_lines_bin TYPE i.
    call function 'SSF_FUNCTION_MODULE_NAME'
    *call function '/1BCDWB/SF00000105'
          exporting
          formname = 'ZZZ_TEST2'
          importing
          fm_name = v_form_name
          exceptions
          no_form = 1
          no_function_module = 2
          others = 3.
          IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
          w_ctrlop-getotf = 'X'.
          w_ctrlop-no_dialog = 'X'.
          w_compop-tdnoprev = 'X'.
         CALL FUNCTION '/1BCDWB/SF00000105'
          EXPORTING
            ARCHIVE_INDEX              =
            ARCHIVE_INDEX_TAB          = itab1
            ARCHIVE_PARAMETERS         =
            CONTROL_PARAMETERS         =
            MAIL_APPL_OBJ              =
            MAIL_RECIPIENT             =
            MAIL_SENDER                =
            OUTPUT_OPTIONS             =
            USER_SETTINGS              = 'X'
          IMPORTING
            DOCUMENT_OUTPUT_INFO       =
            JOB_OUTPUT_INFO            = wa
            JOB_OUTPUT_OPTIONS         =
          EXCEPTIONS
            FORMATTING_ERROR           = 1
            INTERNAL_ERROR             = 2
            SEND_ERROR                 = 3
            USER_CANCELED              = 4
            OTHERS                     = 5
         IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
         ENDIF.
    CALL FUNCTION v_form_name
          EXPORTING
          control_parameters = w_ctrlop
          output_options = w_compop
          user_settings = 'X'
          IMPORTING
          job_output_info = w_return
          EXCEPTIONS
          formatting_error = 1
          internal_error = 2
          send_error = 3
          user_canceled = 4
          OTHERS = 5.
          IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
          i_otf[] = w_return-otfdata[].
          CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
          format = 'PDF'
          max_linewidth = 132
          IMPORTING
          bin_filesize = v_len_in
          TABLES
          otf = i_otf
          lines = i_tline
          EXCEPTIONS
          err_max_linewidth = 1
          err_format = 2
          err_conv_not_possible = 3
          OTHERS = 4.
          IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
          Convert PDF from 132 to 255.
          LOOP AT i_tline.
          Replacing space by ~
          TRANSLATE i_tline USING '~'.
          CONCATENATE w_buffer i_tline INTO w_buffer.
          ENDLOOP.
    Replacing ~ by space
          TRANSLATE w_buffer USING '~'.
          DO.
          i_record = w_buffer.
          Appending 255 characters as a record
          APPEND i_record.
          SHIFT w_buffer LEFT BY 255 PLACES.
          IF w_buffer IS INITIAL.
          EXIT.
          ENDIF.
          ENDDO.
          Refresh: i_reclist,
          i_objtxt,
          i_objbin,
          i_objpack.
          clear w_objhead.
          Object with PDF.
          i_objbin[] = i_record[].
         DESCRIBE TABLE i_objbin LINES v_lines_bin.
          Object with main text of the mail.
          i_objtxt = 'Find attached the output of the smart form.'.
          APPEND i_objtxt.
         DESCRIBE TABLE i_objbin LINES v_lines_txt.
          i_objtxt = 'Regards,'.
          APPEND i_objtxt.
          i_objtxt = 'J.Jayanthi'.
          APPEND i_objtxt.
          DESCRIBE TABLE i_objtxt LINES v_lines_txt.
          Document information.
          w_doc_chng-obj_name = 'Smartform'.
          w_doc_chng-expiry_dat = sy-datum + 10.
          w_doc_chng-obj_descr = 'Smart form output'.
          w_doc_chng-sensitivty = 'F'. "Functional object
          w_doc_chng-doc_size = v_lines_txt * 255.
          Pack to main body as RAW.
          Obj. to be transported not in binary form
          CLEAR i_objpack-transf_bin.
          Start line of object header in transport packet
          i_objpack-head_start = 1.
          Number of lines of an object header in object packet
          i_objpack-head_num = 0.
          Start line of object contents in an object packet
          i_objpack-body_start = 1.
          Number of lines of the object contents in an object packet
          i_objpack-body_num = v_lines_txt.
          Code for document class
          i_objpack-doc_type = 'RAW'.
          APPEND i_objpack.
          Packing as PDF.
          i_objpack-transf_bin = 'X'.
          i_objpack-head_start = 1.
         i_objpack-head_num = 1.
          i_objpack-head_num = 0.
          i_objpack-body_start = 1.
          i_objpack-body_num = v_lines_bin.
          i_objpack-doc_type = 'PDF'.
          i_objpack-obj_name = 'Smartform'.
          CONCATENATE 'Smartform_output' '.pdf'
          INTO i_objpack-obj_descr.
          i_objpack-doc_size = v_lines_bin * 255.
          APPEND i_objpack.
          Document information.
          CLEAR i_reclist.
          e-mail receivers.
         i_reclist-receiver = '[email protected]'.
          i_reclist-receiver = '[email protected]'.
          i_reclist-express = 'X'.
          i_reclist-rec_type = 'U'. "Internet address
          APPEND i_reclist.
          Sending mail.
          CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          EXPORTING
          document_data = w_doc_chng
          put_in_outbox = 'X'
          TABLES
          packing_list = i_objpack
          object_header = w_objhead
          contents_hex = i_objbin
          contents_txt = i_objtxt
          receivers = i_reclist
          EXCEPTIONS
          too_many_receivers = 1
          document_not_sent = 2
          document_type_not_exist = 3
          operation_no_authorization = 4
          parameter_error = 5
          x_error = 6
          enqueue_error = 7
          OTHERS = 8.
          IF sy-subrc <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
    Please reply me back, it is very urgent..
    Thanks and regards.
    A.Rafique

  • Web Developer Needed for a Hawaii Real Estate Agency

    Web Developer Needed for a Hawaii Real Estate Agency
    (Telecommuting OK. No Relocation)
    We are an innovative, technology oriented, real estate agency
    searching for an excellent web developer to continue to improve and
    grow our 40 agents business. This is a full-time telecommuting
    position (although we would love for you to physically be in our
    office in Kailua-Kona, Hawaii, we do not pay for relocation
    expenses)
    The ideal candidate should possess the following skills:
    Required skills:
    * 5+ years experience in building web applications
    * Mastery of ColdFusion MX 6/7 (at least 2 years working
    intensively with Coldfusion)
    * SQL Server 2000 - Building normalized and optimized
    databases, Creating Data Transformation Service packages (DTS),
    Import/Export Data, Stored Procedures
    * Mastery of: XML, JavaScript, CSS, HTML, Dreamweaver (or
    other IDE), Photoshop, some Flash
    * Experience with Fusebox 4 methodology
    * Excellent communication skills
    * Salary commensurate with experience
    Additional preferred skills:
    * Goldmine 6.7 (a big plus)
    * Crystal Reports (or equivalent reporting tool)
    * Web (graphic) design skills
    Primary Duties:
    * Maintain and improve existing Coldfusion/Fusebox 4 web
    applications
    * Design and build new real estate related tools and
    applications
    * Create an application to process and consolidate multiple
    MLS feeds in various formats into a single database.
    * Integrate between websites and CRM system
    * Create automation processes in various areas
    * Administer Goldmine
    * Write procedures and documentations
    Interested candidates should email their resume to
    [email protected] Only serious candidates please.

    Hi,
    Is this still available? Current location Captain Cook -
    S.Kona. 8 yrs CF/SQL etc.
    Thanks

  • 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..

  • SAP Script Development ( Merlin )

    Dear All,
    We can see the ID of any SAP Screen or field by Switching On SAP Script Development.
    The "Merlin" which comes on Screen, gives an option to copy ID and then we can see the SAP Screen / Field / Tab... etc ID.
    Just I wanted to know, how does this "Merlin" works and from where does "Merlin" gets this Id.
    Debugging is also not working, while trying to figure out this stuff.
    Any one having any idea about this, please help.
    Thanking You All.

    Hi cvrian
    The "wizard" gets the ID's from The SAP-Controls.
    Each Control is like a "Window" (in Windows every Conrtol has a unic ID and identifier.
    The Wizard just "looksup" in the App and the loaded Controls.
    If you want to go "deeper" you can google für Mouse n Enum or the Microsoft Spy++
    There you can find more details about that "Merlin"
    Hope this Explanation helps...
    Greetings
    Thomas Br

  • Syslinux Installer / Update Script - Testers Needed

    For those who don't follow the ML that closely....
    Hello Community,
    Over the last few weeks I have been working on Syslinux support for the installer. With the help Thomas and Dieter I am nearing the completion of this project. As part of this project, I have written a script that will help install and update Syslinux (similar to that of grub-install).
    Some key features of the script: syslinux-install_update.sh
    * Install Syslinux to the FS + Partition Boot Loader (extlinux --install /boot/syslinux)
    * Install Syslinux MBR
    * Detect and optionally set the boot flag on the boot partition
    * Update Syslinux – copy files and execute (extilnux --update /boot/syslinux)
    * Support for GPT disks
    * Support for RAID configurations
    The goal is to include this script in the official Syslinux package. Therefore we need your help to test it.
    syslinux-install_update.sh -i -a -m ..... install Syslinux, set the boot flag (if needed), and install the MBR
    We need tests for the following setups:
    / + /boot on the *same* partition
    / + /boot on the *same* partition - RAID
    /boot + root on *separate* partition
    /boot + root on *separate* partition - RAID
    All of the above using but using the GPT partition layout
    NOTE: This is an alpha/beta stage script. The script modifies the first 440 bytes of the disk (using dd) and the partition table (using either sfdisk or sgdisk). Although the script should be safe to run, I am not responsible for any data loss that may occur.
    Let us know the following:
    * Did the script work for you?
    * What was your partition setup? (see above)
    * What version did you use?
    * If the script did not work, please provide as much information as possible
    Get the script here: https://gist.github.com/772138
    Syslinux Sample Config File: http://projects.archlinux.org/svntogit/ … slinux.cfg
    The Syslinux package in testing includes the above configuration file.
    Cheers,
    pyther

    As Thomas puts it:
    Thomas wrote:Syslinux is way more flexible and extensible than grub or lilo, actively developped (by someone who knows what he is doing and is always willing to fix bugs like yours) and feature-rich.
    http://mailman.archlinux.org/pipermail/ … 17368.html
    In regards to bootloaders in core
    Pierre wrote:
    ATM. we have grub1 in core/base and install that by default. The problem is that this project is virtually dead for a long time now and also not available on x86_64. Technically it has to be in the multilib repo.
    Grub2 is currently in extra. Upstream development is still in flux. Imho its quite heavy and complex. An alternative successor would be extlinux from the syslinux package. It's very simple, easy to configure, actively maintained and reliable. Sure, it only supports booting from ext* and btrfs afaik but to be honest, if you use any other FS you should have a separate /boot even when using grub.
    http://mailman.archlinux.org/pipermail/ … 18445.html
    Why I like it:
      * It is simple and easy to understand (see https://wiki.archlinux.org/index.php/Sy … t_Process)
      * The devs are willing to help you out (they have helped me understand the Syslinux boot process and write this script)
      * It is modular in nature and the Hardware Detection Tool (HDT) com32 module is cool
      * Configuration is simple
      * KISS (IMHO)
      * GPT Support
    Disadvantages:
      * Can't boot from LVM volumes
      * only ext2/3/4, btrfs, vfat file systems supported
    Last edited by pyther (2011-01-16 21:56:41)

  • Oracle SQL Developer needs some work

    I just downloaded a copy today (1557) for Oracle 9.2i / Windows XP Pro
    Oracle SQL Developer has a few glitches...
    A compiled and working package (compiled in SQL*Plus and TOAD) opens and shows 2 errors in a SQL Query involving a CASE statement. Invalid CASE clause on an ELSE and unexpected token on an alias at the end of the case.
    Compiling a package should display a message saying successfully compiled and the state of a package should always be on display!
    Opened an SQL script but could not execute it as the icon's didn't become active.
    Couldn't then run the script.
    These basic problems would put any serious developer off using Oracle SQL Developer.
    Also background color scheme should be gray and NOT white. White is hard on the eyes. This is just basic UI stuff.
    Oracle, you need more senoir developers!

    Justified to the top left of the sql window, you see the execute buttons. On the top right, you will see a drop down list box. After opening a file, this drop down list box is not selected. Select your connection and the execute buttons on the top left will enable.
    For PL/SQL use a slash / at the end for it to execute.

  • Oracle developer needs Java help

    I develop applications in Oracle 8i on NT4. As part of a trigger, I need to perform an update to an extremely large table which takes many minutes. Because it's tied to a web page, I can't wait for the update to complete. Oracle natively doesn't support system calls -- I use the Shell() command in VB -- but Oracle DOES support Java stored procedures. I'm hoping that a Java stored procedure will be able to spawn/execute a new process/program specified by a command line instruction (ie: "C:\SQLPLUS.EXE SCOTT/TIGER @update.sql") and return immediately - without waiting for the process to complete. There doesn't need to be any handle for or call back from the process - just fire and forget. Can anyone provide me some direction, or better some existing Java code that does this? THANKS!

    Hi "todmcg",
    I'm not sure that I have understood your question correctly, but here goes anyway...
    Yes you can create a java stored procedure and have a trigger execute that procedure. In order to execute system commands in java, you usually use the "exec()" method of class "java.lang.Runtime". It is also easy to spawn new threads using java. So yes, you can have your java stored procedure execute a system command in a background thread.
    In my opinion, the Oracle documentation explains very well how to create a java stored procedure. The documentation is available from:
    http://tahiti.oracle.com
    Also, examples of how to call system commands from java stored procedures are available at this Web site:
    http://asktom.oracle.com
    You may also find relevant information at:
    http://metalink.oracle.com
    and
    http://technet.oracle.com
    Of-course, you can also use JDBC from your java stored procedure to execute your "update.sql" script -- without the need to execute a system command.
    Basic code skeleton:
    [NOTE: Untested and may contain syntax errors.]
    public class SystemCommand implements Runnable {
      private static String cmd;
      public void run() {
        Runtime runtime = Runtime.getRuntime();
        runtime.exec(cmd);
      public static void execCommand(String cmd) {
        this.cmd = cmd;
        new Thread(new SystemCommand()).start();
    }Hope this helps you.
    Good Luck,
    Avi.

  • Adobe LiveCycle Developer- Needed ASAP- Timonium, MD

    Hello,
    I have the following position available. This is an urgent need If you or anyone you know is interested please email resume to Lisa Green: [email protected]
    OVERVIEW: The LiveCycle Developer is responsible for providing administration, technical support, forms and application design, workflow design, and end-to-end client application support for the development and implementation of forms and other business processes on the Adobe Lifecycle suite of products. The LiveCycle Developer must have demonstrated in-depth knowledge and understanding of the Adobe LiveCycle suite of products, strong analysis skills, experience in designing, developing, implementing, testing, and modifying Adobe based business applications.
    RESPONSIBILITIES AND EXPECTATIONS:
    Develop interactive forms, documents, templates and workflows in an integrated environment
    Create dynamic XML templates to be rendered as HTML or PDF file format and implement document security using digital signatures
    Other duties as assigned
    QUALIFICATIONS:
    Bachelor's degree and 1+ year experience or Associate’s degree and 3+ years experience or 5+ years experience in lieu of degree
    1+ years experience as an Application Developer in an enterprise level environment
    24+ months experience using Adobe LiveCycle suite
    Knowledge of and experience with Adobe Acrobat Professional Software and Adobe Acrobat Reader Software
    Development experience using Java/J2EE, XML/XBRL, SQL 2005, JavaScript, VB.Net or C#.Net is desired

    Hi ,
    I am Prince Edward with Millennium Consultants . We are an information technology firm that offers consulting and system integration services, as well as products and business solutions, tailored to client's needs. Millennium is a proud supporter of Green computing technologies and products. Please visit www.millenniumci.com to know more about us.
    I have an immediate opening for you as a Adobe Live Cycle Developer and the requirement is given below:
    Location: Montvale, NJ
    Duration: Long _ Term
    Required Skills:
    Experience using Adobe Lifecycle suite. This should include the following.
    Lifecycle Forms.
    Lifecycle Designer with experience in XDP forms and scripting.
    Lifecycle Content Service.
    Must be able to develop interactive forms, documents, document templates and workflows in an integrated environment.
    Must be able to create dynamic XML templates to be rendered as HTML or PDF file format and implement document security using digital signatures.
    Strong knowledge and experience in Adobe Acrobat Professional Software and Adobe Reader Software knowledge and experience.
    Looking forward to hear from you.
    Regards,
    Prince
    (An ISO 9001:2000 Certified Company)
    100 Wood Avenue South Suite # 205
    Iselin, NJ 08830
    Tel: 732-562-0200 x: 278
    Fax: 732-562-8500
    www.millenniumci.com

Maybe you are looking for