Switch user in RFC call

hi @ all,
i´m faced with the following problem and could not find a solution yet:
we are building an externel SAP-addon-application that uses SAP as data store. the connection is done via RFC-calls. in the normal scenario we have a typical client-server-application, so all RFC´s are done in a named user context (similiarly to SAPGUI).
the challenge now is that we ar planning to build an application server that communicates also to the SAP backend. due to performance issues we want to keep a configurable amount of open connections (some kind of connection pool). every request from a client should now be redirected to the SAP-backend using one of the open sessions in the real user-context. if there is no open connection for the required user we would need a way to perform a user-context-switch.
we already did some tries with the function SUSR_INTERNET_USERSWITCH. but we couldn´t find the desired result because there is no way back once the switch from service-user to dialog user was done. so another switch won´t be possible.
we dont want to keep a specific session alive for every user on the application-server because they are not needed highly frequent (from one users view).
does anyone know a way to solve my problem?
thanx,
thomas

HI, Eric -
...The Idenity Cerificate is not yet valid...
Check the date setting in the Date & Time control panel. If the date has reverted to something in the past, reset it. This could also indicate that the battery in the machine needs to be replaced.

Similar Messages

  • Diiferent user for RFC call

    Hi All,
    Can we have use different user IDs to make RFC calls to SAP? Do we have option to call RFC using different users like DEV1, DEV2 etc which is specific to the user logging in to MII. This is required to maintain the change history record while posting data back to SAP
    As per the current set up its always  user which is configured in SAP server editor in MII, makes the change in SAP.
    Any input is appreciable
    Thanks in advance
    Namita

    Ajay,
      It is like passing any other parameter to your BLS.
    For example :
    1.In your BLT, create 2 trx params
    UserName,Password.
    In your Jco Action Block assign these params in the Links Tab of the action.
    2. Create a xAcute Query Template wrapping this BLS transaction.Set Param1 as UserName and Param2 as Password.
    3. Now in your frontpage screen, create an iCommand applet wrapping the above xAcute Query Template.
    4. In your screen have 2 input fields to enter username and password.
    In the "OnClick()" event, use the setParam() method to set the values from the Input fields.
    Hope this helps. I do not have the resources to give you the code but i think this should work. Let me know if this helps,
    Thanks,
    Ram

  • Best practice on integration message augmentation via user exit or rfc call

    I am looking for documentation that would provide best practices on whether to use user exits to augment the data on an IDOC or to forward the standard SAP produced IDOC to PI where rfc calls are made to augment the data as required for the specific target system.
    I am sure there are pros and cons for both solutions, but I am hesitant to use user exits since we now have moved the knowledge of what a target system wants from the integration layer to the source layer.  If a second target system comes along in the future, the user exit becomes more complicated with additional target specific requirements. 
    Any links to best practice documentation on this subject is greatly appreciated.
    Edited by: Sean Sweeney on Oct 15, 2009 6:59 PM

    Hi Steve,
    Might be trying for solution for a long time, If i understood your question clear let me clarify you few points.
    You are trying to access the bex query which is designed with the exit's in the background based on the logic and trying to call the entire dimensions and key-figures in a single connection. Then you are trying to map those data in the charts.
    Steve, try to make more connections based upon the logic and split them. use the same query but split them by sales per customer group, sales per day, sales per week by making three different connections and try. You can merge the prompts from all connections.
    Hope this Helps!!!
    Sorry if i misunderstood your question.
    --SumanT

  • User Name and Password for JCO RFC call to BAPI

    Hi all,
    What I think I know:
    --We do NOT have Single Sign On configured so don't tell me to use SSO please - I agree, but...
    --We have a requirement to do a goods receipt which prints labels for the handling units 
    .....The printer to which the labels are directed depends on the user who is running the transaction
    What I think this means
    --We will need to specify a user name and password in the RFC call so the label will go to the correct printer
    --I cannot use the IllumnLoginPassword (or whatever its name is) for the password
    --I need to prompt the user for their password a second time after they login to our MII app
    The problem
    --I will need to store the password somewhere for the duration of the session
    ......In session variable that has been encryted
    .............I didn't see an encryption action block so I could create my own
    ......In the database using database column encryption
    .............A little bit of a pain, but not too bad
    Any corrections, alternatives, ideas .... ???
    Thanks,
    --Amy Smith
    --Haworth

    Thanks for the attention guys.  A little clarification.
    1.  I have been assuming that I cannot use the IllumnLoginPassword for the JCO SAP password in the action block.  If this is NOT true, then it solves my whole problem.
    2.  It would not work to prompt a shop floor person for their password every time they do an operation completion.  Well, at least
    if I don't want to not get lynched! 
    3.  I am planning on prompting people every time they log on for their ECC password and retaining it somewhere secure while they are logged on (and longer if they skip the logoff step.)
    4.  I have been focusing on how/where to retain the password, but also need a way to encrypt it during transmission.  Jeremy said the applet/BLS would at least encode it for me.  That is good.
    --Amy Smith
    --Haworth
    Edited by: Amy Smith on Feb 18, 2010 1:30 PM

  • RFC Adapter Receiver - change SAP User for each call

    Hi guys,
    I need to create one connection between PI and SAP, all right, i can use RFC Adapter Receiver, no problem.
    But, for each call i need to use User and Password different, then, I would pass SAP User and Password in my XML Payload.
    Can anybody help me, please?

    hi,
    >>But, for each call i need to use User and Password different, then, I would pass SAP User and Password in my XML Payload.
    sure we can help you but no in this way:)
    it is possible to change the user for RFC adapter but using
    principal propagation:
    /people/alexander.bundschuh/blog/2007/01/16/principal-propagation-in-sap-xi
    this is the way you need to go and not send password in XML payload
    (this is certainly not the way and no client will approve it)
    why use a password is anyone can see it ?
    Regards,
    Michal Krawczyk

  • Reset or Clear SAP user context by external RFC caller program

    Hello,
    I have a SAP system with performance problems due to a SAP user context starts using a lot of memory.
    This user context comes from an External RFC caller program written in Delphi and which uses the SAP RFC SDK provided by SAPGUI 6.40: SAP Automation library, SAPFuntionsOCX, I mean, using methods in the object "SAPFunctions" in SAPFunctionsOCX in file "wdtfuncU.ocx", in SAPGUI directory.
    Everytime we have performance problems, this RFC SAP user context is using near 1400 Mb of extended memory, although there is a lot of free physical RAM memory available, there are free dialog processes and CPU load is low (no more than 30%).
    This performance problem is solved by closing the external program (written in Delphi) which connects to SAP via RFC.
    This external program works for the warehouse management and connects to SAP several times per minute. Due to connection performance and the high frequency with which this external program must connect to SAP, the connection to SAP is not closed after each call to RFC SAP function modules.
    The extended memory used by this SAP RFC user is growing along time. I detected, using ST03 transaction, that these user sessions have always the same transaction code hash, I mean, although the external programs call the same SAP RFC funcion modules several times (¡¡¡ always clearing the variables at the beginning and at the end of de ABAP code, with ABAP commands like REFRESH and FREE ¡¡¡¡) the technical transaction code is the same and I suppose the user context (in extended memory) is not deleted.
    I think it is better than the external program close the context memory (similar to "/n" okcode in SAPGUI).
    But we don't want to close the connection, because the external program connects to SAP with a high frequency, and the logon process is expensive.
    Is there any way to send something similar to "/n" (end of transaction) from the external program? Is there any command in the SAP RFC SDK library (SAPFuntionsOCX or something similar?
    I cannot find any method to do that in the object "SAPFunctions" in SAPFunctionsOCX in file "wdtfuncU.ocx", in SAPGUI directory.
    Old information for Object Classes "SAPFunctions" in SAPFunctionsOCX in file "wdtfuncU.ocx", in SAPGUI directory, is described in the following URL:
    http://help.sap.com/saphelp_45b/helpdata/en/39/7e00d1ac6011d189c60000e829fbbd/frameset.htm
    But I cannot find anything related to something similar to a "/n" in SAPGUI.
    As I have the SAPGUI installed on my desktop, I can see all SAP RFC classes and methods from Excel, by opening the Visual Basic editor.
    I am only asking a way to send to SAP a command to free the user context used for an open RFC session in order to avoid the memory used to be continuously growing, without having to close the RFC session.
    The external program only calls a certain SAP function module periodically and we want to free the user context between calls without logging off. This is the same, very similar, as if we called that function from SAPGUI and we used "/n" in SAPGUI between calls.
    Anyone can help me?
    Thanks and best regards.

    Hello,
    I don't know if this will solve your problem, but you may be using MF 'RFC_CONNECTION_CLOSE' between each call of you RFC function.
    Regards
    Brice
    Edited by: blsapsdn on Apr 15, 2011 5:27 PM

  • SAP BW User getting locked by BO RFC calls

    Hi,
    we are encountering a problem with BO RFC calls locking SAP BW users that recently changed their password in BW.
    Description of the problem in the ticket we raised at the SAP support:
    SAP BO 4.1 SP2 Patch 4, linux installation
    Backend: SAP BW 7.01 EHP8
    BICS interface with SAP authentication
    One of our users gets locked again and again in SAP BW (P19). The cause is a RFC connection that the BusinessObjects server (P59) tries to establish. The user used SAP BO last Friday for the last time and had to change his password in P19 this Tuesday. We think that there is some
    process within SAP BO still trying to connect to SAP BW from time to time, using the old password. There is no open session visible for that user in the CMC. User is even getting locked when not in the office and during night time. RFC calls are established almost regualary every hour.
    We already had this behaviour in our test-system. Restarting the BO-Server solved it. However, this is not the solution we want to use
    in the productive environment. There has to be some way to kill the process that uses the old password on the BO server without restarting
    the whole server. We do not understand why BO would still try to connect to BW with the old password - this has to be some kind of a bug.
    Meanwhile the error disappeared for the first user (some days after it started, maybe the BO process ran into a timeout). However, other users started having the same behaviour after changing their password.
    Our basis team tried to check the log files for advanced information on the conversations between BO and BW, but did not find any hints on which BO process might try to establish the connections.
    The SAP support seems to be a little helpless at the moment...
    Has anyone had similar problems?
    Regards,
    Robert

    Hi again,
    additional information: after approximately one week after the error appeared for the first time BO stops trying to establish the rfc connection for this specific user. Almost as if the "old-password-BO-process" ran into a 1 week timeout or something like that.
    The problem is really strange. The SAP support is still not able to tell us how the gather the information they require.
    Regards,
    Robert

  • RFC Call through BSP - Issue with RFC logon credentials

    Hi everyone,
    I have an BSP application running on a 6.40 which calls a RFC function module on a backend system (4.6c) using a trusted RFC connection.
    The BSP is started with an URL which contains in encoded form the username and password. So we don't use the standard sap-username & sap-password.
    In the first step the user is logged in with the anonym user (user type 'service') which is entered in the SICF. So sy-uname = 'anonym'.
    After a couple of checks and verifications the BSP makes a user switch using 'SUSR_INTERNET_USERSWITCH'. Exporting parameters are the now decoded values from the URL. So after the switch sy-uname is e.g.  'blabla'.
    Now a function module on the backend system is called. What I would now expect is that on the backend system sy-uname is also 'blabla'. But it isn't. The sy-uname is still 'anonym', which isn't very helpful regarding object authority checks.
    Only after an reload of the BSP page and a second RFC call of the function module the sy-uname = 'blabla'.
    I wonder what causes this problem?
    Thanks for your replies & regards
    Kruno

    Hi,
    I solved it.
    Before I execute function 'SUSR_INTERNET_USERSWITCH' I first check if user has a valid backend account by using function module 'BAPI_USER_EXISTENCE_CHECK'.
    And this is the problem. When 'BAPI_USER_EXISTENCE_CHECK' is executed once all other RFC function calls to the backend get the wrong user.
    Why? I don't know yet. Maybe I will get an useful anwer from an OSS note.

  • Question on service userid - for RFC call

    Hi
       In XI 3.0 SP18 , we are making a RFC call from XI mapping runtime - to XI's ABAP stack - RFC function module . In the RFC receiver communication channel , I tried using service user XIISUSER , XIAPPLUSER for this RFC call - I got short dumps on XI ABAP stack mentioning that these two service users do not have authorization to make RFC calls -
    Does anybody out there know what service user on XI has RFC call authorization that can used to make RFC calls onto XI ABAP stack from its mapping runtime ?
    Correct answers will be rewarded rightaway. Thanks for your time in advance.

    Hi,
    u have to make entry in sld...
    Hi,,
    2 Introduction
    Configuring IDoc adapter in Exchange Infrastructure 3.0 requires some configuration on the SAP
    systems, for both XI and the backend system where the IDoc message is to be sent. These steps, although
    simple, are many times missed or mis-configured, causing the delivery of messages to fail.
    Since IDoc adapter uses the ABAP stack, instead of J2EE, the configuration requirements are mainly in
    ABAP.
    Setting up IDoc adapters requires the XI integration server to be able to communicate with the backend
    SAP system, and also to make sure that the Logical System Name used when posting IDoc exists on the
    backend SAP system.
    3 The Step By Step Solution
    The basic steps for the IDoc configuration are outline below:
    1. Configure SM59 on XI to communicate to SAP backend system.
    2. Configure port on XI for IDoc communication.
    3. Create or verify the Logical System Name on the SAP backend system.
    4. Create or verify business system in XI’s System Landscape Directory.
    5. Verify the Logical System Name of the business system.
    6. Verify or add the Logical System Name for the sender business system.
    7. Create/configure the Communication Channel for the IDoc receiver adapter
    3.1 Configure SM59 on XI to communicate to SAP backend system.
    1. Using transaction SM59, create an RFC destination with Connection Type = “3”.
    In this example, the RFC destination name is “NDVCLNT510”.
    2. Enter the logon information:
    3. Test the connection by clicking on “Testing connection” and “Remote logon”.
    Both must be successful.
    3.2 Configure port on XI for IDoc communication.
    4. Go to transaction IDX1 on XI, and create a port. In this example, the Port name is “SAPNDV”.
    • The Port name must be in the form of “SAPxxx”, where xxx is the system ID of the backend SAP
    system.
    • The Client must be the client number of the backend SAP system.
    • Select the RFC Destination which was created in the previous step.
    3.3 Create or verify the Logical System Name on the SAP backend system.
    5. Enter transaction SALE on the SAP backend system.
    6. Create or verify the Logical System Name. In our example, NDVCLNT510 is verified.
    3.4 Create or verify business system in XI’s System Landscape Directory.
    The business system name for the SAP backend system must contain a valid Logical System Name. This Logical System Name is the one verified or created in the previous step.
    7. In the System Landscape Directory, select the SAP backend business system. If one does not exist, then create the business system. Verify the Logical System Name.
    3.5 Verify the Logical System Name of the business system.
    8. In the Integration Directory, doubleclick on the business system (in our example, it is NDVCLNT510).
    Navigate the menu:
    Service • Adapter Specific Identifiers.
    If information is empty or incorrect, then it will have to be synchronized with the content of the System Landscape Directory. Follow the steps below for synchronization.
    9. (Optional) Synchronization of the business system in Integration Directory to the business system in System
    Landscape Directory.
    • Double-click on the business system in the Integration Directory.
    • Switch to Edit mode.
    • Select menu: Service • Adapter-Specific Identifiers
    10. (Optional) Within the dialog box, click on the button as indicated below to resynchronize.
    11. (Optional) If the expected data from the System Landscape Directory is not updated, then the SLD cache may need to be cleared first.
    3.7 Create/configure the Communication Channel for the IDoc receiver adapter.
    15. In the Integration Directory, create an IDoc receiver communication channel.
    • The RFC Destination is from step 3.1.
    • The Port is from step 3.2.
    NOTE:
    There is no need to create an IDoc sender Communication Channel for XI. Instead, the backend SAP system must be configure to send the IDoc to XI.
    4 Appendix
    Transaction: IDX2
    There are a couple of situation where IDX2 can be useful on the XI system.
    1. When we want to test connection between the XI and SAP backend system.
    2. When an IDoc has changed, and the meta data stored in XI needs to be update. When an IDoc is sent from the SAP backend system to XI, XI will first check to see if the meta data for the IDoc is already in its persistent cache. If not, then XI will use the configuration in IDX1 to retrieve the IDoc meta data from the backend system. If the
    meta is already in cache, then it will NOT do so. Therefore, when an IDoc has changed, it is necessary to manually update the new meta data on XI, or delete it from the cache, so that the latest version can be retrieved. IDX2 is used for this purpose.
    Go to transaction IDX2 and click on “Create”.
    Enter the IDoc Type and the Source Port as defined in step #2. Click “Continue”.If successful, the following will show up. If error occurs, then the IDX1 configurations will need to be re-checked.
    Reward points if find useful.

  • SWITCH user from DIALOG to SERVICE, how???

    hello:)
      I'm developing the WD for ABAP app and have th following scenario to fulfill.
    My service starts with the service user(no logon dialog) which was maintained with ICF.
    Than with the
    SUSR_INTERNET_USERSWITCH
    I change to the DIALOG user. But how can I switch to another DIALOG user or back to the SERVICE user after that??
    I know that I could close the browser, but I really would not like to do that.
    any help is more than welcome
    best regards
    Simon:)

    Wow, I can only begin to imagine why you need this.
    I can only suggest you discuss with Basis / Portal admin to clarify the overall
    approach user management and service security.
    I would love to know why you need this.
    For initial hacking.... you can try
    HTTP_DELETE_SSO2_COOKIE   
    HTTP_AUTHENTICATE   
    To force new authentication.
    You can also, use calls to RFC destinations to post things under different users.
    You can redirect to another service using the exit plug
    that requires a different logon approach.
    The main issue I see is if the original service is a KIOSK default user,
    and you use a switch user, then the new SSO2 cookie should end up in browser.
    That browser session will automatically provide those credentials until they are removed.
    Web dynpro development is not meant to be a SSO2 mgt tool.
    Perhaps BSPs are better suited? Especially if  JAVA script is required beyond application exit/restart.  This is OK in Web Dynp via SICF settings.
    If you want a KIOSK type tool that logs the current user off,
    you can look to put a special EXIT page in SICF for the service.
    This exit page can contain Java script that deletes the SSO2 cookie, and restarts
    the same or another front door service.
    regards
    Phil

  • WAS 6.20: Credential Mapping/Switch user in SOAP

    We are currently using R/3 4.7 / WAS 6.20 and implementing the BEA stack for SOA-based integration (sorry, XI comes only when we upgrade in two years from now). We have a few scenarios with incoming Web Service calls. They involve the out-of-the box RFC-SOAP service as well as XML-processed-by ABAP services. Within a custom HTTP exit handler, is it possible at that time to switch users? For example, user ID and password is provided in the SOAP header. Or, in other scenarios, we may pass the SiteMinder token or SAML token in the SOAP header (and user already authenticated in Active Directory).
    Thanks a lot,
    - Guy

    Hi Andreas,
    SOAP 1.2 is not supported, neither in WebAS 6.20 nor in 6.40 as far as I know support is not planed even for next magor release...
    The only what I can propose you is to create an OSS and check what shall SAP answer you,
    or to downport your applicaiton.
    Regards, Angel

  • How come the switch user option is missing from my lock screen?

    I upgrade to Lion my iMac Core 2 Duo and now when I lock the screen the switch user option is missing from the lock screen, you just have to cancel o renter as the original user, so that if another member of my family wants to switch and use the mac he or she cannot do it.
    This is what I am talking about (image taken from a lion review): http://dl.dropbox.com/u/134544/forum/Schermata%2007-2455766%20alle%2011.05.12.pn g
    The switch user option is totaly absent, I just have the cancel.
    It that a bug or what?
    Please note this happens only when I lock the screen from the screensaver, i.e. requesting the password to restart from the screensaver, if I get to the login windows all users appears correctly and people can switch back and forth.
    Thank you.
    –
cordialmente,
    tiziano solignani, da  Mac
    http://ts.solignani.it (splash)
    http://goo.gl/p6Sb0 (libri)

    I just talked to apple support.  They said Lion doesn't support this feature.  They gave me a work-around, which was to disable requiring a password in the screen saver.  Then enable user switching so it appears in the top right of the banner.  Note that since the screen saver no longer locks the screen, in order to actually lock the screen the user must click on the upper right user list and select something like "Login user...".
    This issue has left me disappointed with apple for a few reasons.  Hopefully someone at apple will take note:
    1. Apple removed a useful feature.
    2. Apple did not provide a response to this thread which would have been the best forum to inform users of this change.  It would have saved me and apple one long phone call.

  • Is there any way to limit the number of RFC calls from xMII to SAP R/3

    Hi All!
    I wanted to know whether the number of simultaneous RFC connections made from xMII to SAP R/3 system can be controlled in any way. Suppose we have a scenario wherein some million Sales Orders or Production Orders are to be updated in SAP R/3 from xMII in a short span of time. For all these updations to take place, multiple RFC calls will be established from xMII to SAP at the same time. This will increase the load on the SAP R/3 system and affect performance of the SAP R/3 system. Is there any check on xMII side to limit the number of RFC calls that can be made to SAP R/3 system?
    Regards
    Anupam

    Anupam,
    If you are using 11.5 just keep in mind that the JCO connection points to a single application server (based upon the SAP Server alias connection settings), but the traffic itself to make a BAPI request is effectively the same as any client user traffic.  There will obviously be limitations on performance and throughput, with network and server constraints added to the number and size of the R/3 requests, but there is no magic formula to plug-in because of all of these variables.
    If you are using 12.0 (or plan to migrate when it goes GA) then taking advantage of the JRA (java resource adapter) and the associated application server pooling that it offers on the NetWeaver side of things will greatly help you in the throughput capacity.
    If you have put some of your xMII application into either test or productive use and are running into issues then I would highly recommend entering the specifics into the customer / partner support portal so that they can help you through any associated problems.
    Regards,
    Jeremy Good

  • RFC call results in StORAGE_PARAM_WRONG_SET

    I'm in trouble with a RFC call, the process is as following: SAP system A calls a report. This report selects FI documents via LDB SDF. After user selects one or more documents from the list I call a RFC to read the payroll posting results from system B. The call of the RFC takes place for each FI document separatly what means user selects e.g. 10 FI documents, so I have 10 RFC calls with one result list. After each RFC call I add the result table of the RFC to the output table within the report. Before calling the RFC I of course clear all relevant tables again and additionaly I also use the 'FREE' statement within the RFC to set free all the memory, so there is no data stored in internal tables. But when the user selects a great no. of FI documents to read the payroll postings sometimes the RFC cancels in system B telling me that the storage parameters were set wrong. Calling the RFC step by step by selecting the FI document in single mode from the list I don't receive this dump. Do you have an idea what to do to avoid the dump? One problem: I don't have access to system B to test there, I only can do testing in system A and therefore I have no possibility to debugg this.
    This is the code of the RFC module:
    FUNCTION y_rfc_read_payroll_postings.
    *"*"Local interface:
    *"  IMPORTING
    *"     VALUE(I_AWKEY) TYPE  AWKEY
    *"     VALUE(I_CHECKNO) TYPE  XFELD
    *"     VALUE(I_TAX) TYPE  XFELD
    *"  EXPORTING
    *"     VALUE(E_PPDHD) TYPE  PPDHD
    *"  TABLES
    *"      T_PPDIT STRUCTURE  PPDIT
    *"      T_PPOIX STRUCTURE  PPOIX
    *"      T_PPDIX STRUCTURE  PPDIX
    *"      T_PAYR STRUCTURE  PAYR OPTIONAL
    *"      T_HRPAY STRUCTURE  PC209 OPTIONAL
    *"      T_REGUTA STRUCTURE  REGUTA OPTIONAL
    *"      T_VALUES STRUCTURE  YSHR_RFC_PAYROLL_POSTING OPTIONAL
    *"      T_CSKA STRUCTURE  CSKA
    *"      RETURN STRUCTURE  BAPIRET2
    * local data
      TYPE-POOLS: pptgs.
      TYPES: BEGIN OF type_helpval,
             pernr TYPE p_pernr,
             lgart TYPE lgart,
             rel   TYPE xfeld,
            END OF type_helpval.
      TYPES: BEGIN OF type_cluster,
             pernr TYPE p_pernr,
             seqno TYPE cdseq,
             abrj TYPE pnppabrj,
             abrp TYPE pnppabrp,
             actual TYPE srtza,
             betrg TYPE ppoix-betrg,
             waers TYPE ppoix-waers,
             END OF type_cluster.
      DATA: BEGIN OF lt_ppoix_key OCCURS 0,
             pernr    LIKE ppoix-pernr,
             seqno    LIKE ppoix-seqno,
             actsign  LIKE ppoix-actsign,
             runid    LIKE ppoix-runid,
             postnum  LIKE ppoix-postnum,
            END OF lt_ppoix_key.
      FIELD-SYMBOLS: <payroll> TYPE yshr_rfc_payroll_posting.
      DATA ht_ppoix TYPE TABLE OF ppoix.
      DATA productive_runs LIKE hrpp_pernr_runtab OCCURS 0 WITH HEADER LINE.
      DATA t_rgdir TYPE TABLE OF pc261.
      DATA wa_rgdir TYPE pc261.
      DATA t_helpval TYPE TABLE OF type_helpval.
      DATA t_cluster TYPE TABLE OF type_cluster.
      DATA wa_helpval TYPE type_helpval.
      DATA wa_cluster TYPE type_cluster.
      DATA h_molga TYPE molga.
      DATA h_ltext TYPE t5utz-ltext.
      DATA wa_t512w TYPE t512w.
      DATA wa_return TYPE bapiret2.
      DATA par1 TYPE syst-msgv1.
      DATA par2 TYPE syst-msgv2.
      DATA par3 TYPE syst-msgv3.
      DATA wa_ppoix TYPE ppoix.
      FIELD-SYMBOLS: <wa_ppdit> TYPE ppdit.
      DATA wa_ppdix TYPE ppdix.
      DATA result_tab_us TYPE payus_result.
      DATA result_tab_in TYPE payin_result.
      DATA t_bt TYPE hrpay99_bt.
      DATA t_rt TYPE hrpay99_rt.
      DATA wa_bt TYPE pc209.
      DATA wa_rt TYPE pc207.
      DATA h_time(6) TYPE c.
      DATA t_inter TYPE TABLE OF pay99_international WITH HEADER LINE.
      DATA t_tax TYPE hrpayus_tax.
      DATA wa_tax TYPE pc22t.
      DATA wa_payr TYPE payr.
      DATA wa_reguta TYPE reguta.
      DATA wa_payroll TYPE yshr_rfc_payroll_posting.
      DATA t_ppopx TYPE TABLE OF ppopx.
      DATA wa_ppopx TYPE ppopx.
      DATA wa_t001 TYPE t001.
      FREE: t_ppdit, t_ppoix, t_ppdix, t_payr, t_hrpay, t_reguta,
            t_values, t_helpval, t_cluster, t_ppopx.
    * read general information
      SELECT SINGLE * FROM ppdhd INTO e_ppdhd WHERE
                           docnum EQ i_awkey.
      CASE syst-subrc.
    * everthing ok, continue
        WHEN 0.
    * get the company code and assign US flag
          SELECT SINGLE * FROM t001 INTO wa_t001 WHERE
                                    bukrs EQ e_ppdhd-bukrs.
    * exit and set err. mess.
        WHEN OTHERS.
          CALL FUNCTION 'BALW_BAPIRETURN_GET2'
            EXPORTING
              type             = 'E'
              cl               = 'HR3PRNA'
              number           = '704'
    *         PAR1             = ' '
    *         PAR2             = ' '
    *         PAR3             = ' '
    *         PAR4             = ' '
    *         LOG_NO           = ' '
    *         LOG_MSG_NO       = ' '
    *         PARAMETER        = ' '
    *         ROW              = 0
    *         FIELD            = ' '
            IMPORTING
              return           = wa_return
          wa_return-field = 'PPDHD'.
          APPEND wa_return TO return.
          EXIT.
      ENDCASE.
    * read table PPDIT
      SELECT  * FROM  ppdit INTO TABLE t_ppdit
          FOR ALL ENTRIES IN t_cska
          WHERE  docnum  = i_awkey AND
                 hkont   = t_cska-kstar.
      CASE syst-subrc.
    * everthing ok, continue
        WHEN 0.
    * exit and set err. mess.
        WHEN OTHERS.
          par1 = 'PPDIT'.
          par2 = 'document'.
          par3 = i_awkey.
          CALL FUNCTION 'BALW_BAPIRETURN_GET2'
            EXPORTING
              type             = 'E'
              cl               = '5G'
              number           = '58'
              par1             = par1
              par2             = par2
              par3             = par3
    *         PAR4             = ' '
    *         LOG_NO           = ' '
    *         LOG_MSG_NO       = ' '
    *         PARAMETER        = ' '
    *         ROW              = 0
    *         FIELD            = ' '
            IMPORTING
              return           = wa_return
          wa_return-field = 'PPDIT'.
          APPEND wa_return TO return.
          EXIT.
      ENDCASE.
    * read table PPDIX
      SELECT * FROM ppdix INTO TABLE t_ppdix
          FOR ALL ENTRIES IN t_ppdit
          WHERE evtyp  EQ e_ppdhd-evtyp AND
                runid  EQ e_ppdhd-runid AND
                docnum EQ e_ppdhd-docnum AND
                doclin =  t_ppdit-doclin.
      CASE syst-subrc.
    * everthing ok, continue
        WHEN 0.
    * exit and set err. mess.
        WHEN OTHERS.
          par1 = 'PPDIX'.
          par2 = 'runid'.
          par3 = e_ppdhd-runid.
          CALL FUNCTION 'BALW_BAPIRETURN_GET2'
            EXPORTING
              type             = 'E'
              cl               = '5G'
              number           = '58'
              par1             = par1
              par2             = par2
              par3             = par3
    *         PAR4             = ' '
    *         LOG_NO           = ' '
    *         LOG_MSG_NO       = ' '
    *         PARAMETER        = ' '
    *         ROW              = 0
    *         FIELD            = ' '
            IMPORTING
              return           = wa_return
          wa_return-field = 'PPDIX'.
          APPEND wa_return TO return.
          EXIT.
      ENDCASE.
    * read detail values on accounting level
      SELECT * FROM ppoix INTO TABLE t_ppoix
                          FOR ALL ENTRIES IN t_ppdix WHERE
                               runid EQ t_ppdix-runid AND
                               tslin EQ t_ppdix-linum.
    * read reposted documents from ppopx
      SELECT * FROM ppopx INTO TABLE t_ppopx
                          FOR ALL ENTRIES IN t_ppdix WHERE
                               runid EQ t_ppdix-runid AND
                               tslin EQ t_ppdix-linum.
      IF syst-subrc EQ 0.
    * append corresponding lines to T_ppoix
        LOOP AT t_ppopx INTO wa_ppopx.
          MOVE-CORRESPONDING wa_ppopx TO productive_runs.
          CLEAR productive_runs-runid.
          COLLECT productive_runs.
        ENDLOOP.
    * get run table
        CALL FUNCTION 'HR_EVAL_PROD_A_RUN_GET_TABLE'
          TABLES
            result_table = productive_runs.
        LOOP AT productive_runs.
          IF productive_runs-runid IS INITIAL.
            DELETE productive_runs.
          ENDIF.
        ENDLOOP.
    * fill ppoix-keys for needed ppoix
        LOOP AT productive_runs.
          LOOP AT t_ppopx INTO wa_ppopx.
            IF wa_ppopx-pernr EQ productive_runs-pernr AND
               wa_ppopx-seqno EQ productive_runs-seqno.
    * built key
              CLEAR lt_ppoix_key.
              MOVE-CORRESPONDING productive_runs TO lt_ppoix_key.
              lt_ppoix_key-postnum = wa_ppopx-postnum.
              lt_ppoix_key-actsign = 'A'.
              COLLECT lt_ppoix_key.
            ENDIF.
          ENDLOOP.
        ENDLOOP.
    * any values to append?
        READ TABLE lt_ppoix_key INDEX 1.
        IF syst-subrc EQ 0.
          SELECT * FROM ppoix INTO TABLE ht_ppoix
                   FOR ALL ENTRIES IN lt_ppoix_key
                                   WHERE pernr = lt_ppoix_key-pernr
                                   AND   seqno = lt_ppoix_key-seqno
                                   AND actsign = 'A'
                                   AND   runid = lt_ppoix_key-runid
                                   AND   postnum = lt_ppoix_key-postnum.
          IF syst-subrc EQ 0.
            LOOP AT t_ppopx INTO wa_ppopx.
              LOOP AT ht_ppoix INTO wa_ppoix WHERE
                      pernr EQ wa_ppopx-pernr AND
                      seqno EQ wa_ppopx-seqno AND
                      postnum EQ wa_ppopx-postnum.
                MOVE-CORRESPONDING wa_ppopx TO wa_ppoix.
                IF wa_ppoix-actsign <> 'A'.
                  wa_ppoix-betrg = - wa_ppoix-betrg.
                  wa_ppoix-anzhl = - wa_ppoix-anzhl.
                ENDIF.
                APPEND wa_ppoix TO t_ppoix.
                DELETE ht_ppoix.
              ENDLOOP.
            ENDLOOP.
          ENDIF.
        ENDIF.
      ENDIF.
    * check for any entries in table T_PPOIX
      READ TABLE t_ppoix INTO wa_ppoix INDEX 1.
      CASE syst-subrc.
    * everthing ok, continue
        WHEN 0.
    * exit and set err. mess.
        WHEN OTHERS.
          par1 = 'PPOIX'.
          par2 = 'runid'.
          par3 = e_ppdhd-runid.
          CALL FUNCTION 'BALW_BAPIRETURN_GET2'
            EXPORTING
              type             = 'E'
              cl               = '5G'
              number           = '58'
              par1             = par1
              par2             = par2
              par3             = par3
    *         PAR4             = ' '
    *         LOG_NO           = ' '
    *         LOG_MSG_NO       = ' '
    *         PARAMETER        = ' '
    *         ROW              = 0
    *         FIELD            = ' '
            IMPORTING
              return           = wa_return
          wa_return-field = 'PPOIX'.
          APPEND wa_return TO return.
          EXIT.
      ENDCASE.
      CHECK i_checkno EQ 'X' OR
            i_tax     EQ 'X'.
      CLEAR t_values.
    * read payroll results, determine values
      LOOP AT t_ppdit ASSIGNING <wa_ppdit>.
        LOOP AT t_ppdix INTO wa_ppdix WHERE
                evtyp = e_ppdhd-evtyp AND
                runid = e_ppdhd-runid AND
                doclin = <wa_ppdit>-doclin.
          LOOP AT t_ppoix INTO wa_ppoix WHERE
                       runid EQ e_ppdhd-runid AND
                       tslin EQ wa_ppdix-linum.
    * append anywhere for checkno
            IF i_checkno EQ 'X'.
              wa_cluster-pernr = wa_ppoix-pernr.
              wa_cluster-seqno = wa_ppoix-seqno.
              wa_cluster-abrj = <wa_ppdit>-abper+0(4).
              wa_cluster-abrp = <wa_ppdit>-abper+4(2).
              wa_cluster-actual = wa_ppoix-actsign.
              wa_cluster-betrg = wa_ppoix-betrg.
              wa_cluster-waers = wa_ppoix-waers.
              IF <wa_ppdit>-abper IS INITIAL.
    * write BONDT into field ZUONR
                CALL FUNCTION 'CU_READ_RGDIR'
                  EXPORTING
                    persnr   = wa_ppoix-pernr
                  TABLES
                    in_rgdir = t_rgdir.
                READ TABLE t_rgdir INTO wa_rgdir WITH KEY
                                 seqnr = wa_ppoix-seqno.
                IF syst-subrc EQ 0.
                  <wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
                ENDIF.
              ENDIF.
              APPEND wa_cluster TO t_cluster.
            ENDIF.
            IF i_tax EQ 'X'.
    * check if LGART is relevant
              READ TABLE t_helpval INTO wa_helpval WITH KEY
                                 pernr = wa_ppoix-pernr
                                 lgart = wa_ppoix-lgart.
              CASE syst-subrc.
                WHEN 0.
    * relevant or not
                  CASE wa_helpval-rel.
                    WHEN 'X'.
                      wa_cluster-pernr = wa_ppoix-pernr.
                      wa_cluster-seqno = wa_ppoix-seqno.
                      wa_cluster-abrj = <wa_ppdit>-abper+0(4).
                      wa_cluster-abrp = <wa_ppdit>-abper+4(2).
                      wa_cluster-actual = wa_ppoix-actsign.
                      wa_cluster-betrg = wa_ppoix-betrg.
                      wa_cluster-waers = wa_ppoix-waers.
                      IF <wa_ppdit>-abper IS INITIAL.
                        CALL FUNCTION 'CU_READ_RGDIR'
                          EXPORTING
                            persnr   = wa_ppoix-pernr
                          TABLES
                            in_rgdir = t_rgdir.
                        READ TABLE t_rgdir INTO wa_rgdir WITH KEY
                                         seqnr = wa_ppoix-seqno.
                        IF syst-subrc EQ 0.
                          <wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
                        ENDIF.
                      ENDIF.
                      APPEND wa_cluster TO t_cluster.
    * save values
                      MOVE-CORRESPONDING wa_ppoix TO wa_payroll.
                      wa_payroll-betrg = ABS( wa_payroll-betrg ).
                      APPEND wa_payroll TO t_values.
                    WHEN ' '.
                      CONTINUE.
                  ENDCASE.
                WHEN OTHERS.
    * determine values
                  CALL FUNCTION 'HR_COUNTRYGROUPING_GET'
                    EXPORTING
                      pernr           = wa_ppoix-pernr
    *              TCLAS           = 'A'
                      begda           = e_ppdhd-bldat
                      endda           = e_ppdhd-bldat
    *              WERKS           =
                    IMPORTING
                      molga           = h_molga
                    EXCEPTIONS
                      not_found       = 1
                      OTHERS          = 2
                  IF sy-subrc NE 0.
                    WRITE wa_ppoix-pernr TO par1.
                    CALL FUNCTION 'BALW_BAPIRETURN_GET2'
                      EXPORTING
                        type   = 'E'
                        cl     = 'HRPAYBR94'
                        number = '278'
                        par1   = par1
                      IMPORTING
                        return = wa_return.
                    wa_return-field = wa_ppoix-pernr.
                    APPEND wa_return TO return.
                    CONTINUE.
                  ENDIF.
                  SELECT * FROM  t512w INTO wa_t512w
                         WHERE  molga  = h_molga
                         AND    lgart  = wa_ppoix-lgart
                         AND    endda  GE e_ppdhd-bldat
                         AND    begda  LE e_ppdhd-bldat.
                    EXIT.
                  ENDSELECT.
                  IF syst-subrc EQ 0.
                    IF wa_t512w-vklas+77(1) = '2'.
                      wa_helpval-pernr = wa_ppoix-pernr.
                      wa_helpval-lgart = wa_ppoix-lgart.
                      wa_helpval-rel   = 'X'.
                      APPEND wa_helpval TO t_helpval.
                      wa_cluster-pernr = wa_ppoix-pernr.
                      wa_cluster-seqno = wa_ppoix-seqno.
                      wa_cluster-abrj = <wa_ppdit>-abper+0(4).
                      wa_cluster-abrp = <wa_ppdit>-abper+4(2).
                      wa_cluster-actual = wa_ppoix-actsign.
                      wa_cluster-betrg = wa_ppoix-betrg.
                      wa_cluster-waers = wa_ppoix-waers.
                      IF <wa_ppdit>-abper IS INITIAL.
                        CALL FUNCTION 'CU_READ_RGDIR'
                          EXPORTING
                            persnr   = wa_ppoix-pernr
                          TABLES
                            in_rgdir = t_rgdir.
                        READ TABLE t_rgdir INTO wa_rgdir WITH KEY
                                         seqnr = wa_ppoix-seqno.
                        IF syst-subrc EQ 0.
                          <wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
                        ENDIF.
                      ENDIF.
                      APPEND wa_cluster TO t_cluster.
                      MOVE-CORRESPONDING wa_ppoix TO wa_payroll.
                      wa_payroll-betrg = ABS( wa_payroll-betrg ).
                      APPEND wa_payroll TO t_values.
                    ELSE.
                      wa_helpval-pernr = wa_ppoix-pernr.
                      wa_helpval-lgart = wa_ppoix-lgart.
                      wa_helpval-rel   = ''.
                      APPEND wa_helpval TO t_helpval.
                    ENDIF.
                  ENDIF.
              ENDCASE.
            ENDIF.
          ENDLOOP.
        ENDLOOP.
      ENDLOOP.
      SORT t_cluster.
      DELETE ADJACENT DUPLICATES FROM t_cluster.
      LOOP AT t_cluster INTO wa_cluster.
        CLEAR: result_tab_us, result_tab_in.
        CASE wa_t001-land1.
          WHEN 'US'.
            CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
              EXPORTING
    *       CLUSTERID                          = 'RU'
                employeenumber                     = wa_cluster-pernr
                sequencenumber                     = wa_cluster-seqno
    *       READ_ONLY_BUFFER                   = ' '
    *       READ_ONLY_INTERNATIONAL            = ' '
    *       ARC_GROUP                          = ' '
                check_read_authority               = ''
                filter_cumulations                 = ''
    *       CLIENT                             =
    *     IMPORTING
    *       VERSION_NUMBER_PAYVN               =
    *       VERSION_NUMBER_PCL2                =
              CHANGING
                payroll_result                     = result_tab_us
              EXCEPTIONS
                illegal_isocode_or_clusterid       = 1
                error_generating_import            = 2
                import_mismatch_error              = 3
                subpool_dir_full                   = 4
                no_read_authority                  = 5
                no_record_found                    = 6
                versions_do_not_match              = 7
                error_reading_archive              = 8
                error_reading_relid                = 9
                OTHERS                             = 10
          WHEN OTHERS.
            CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
              EXPORTING
    *       CLUSTERID                          = 'RU'
                employeenumber                     = wa_cluster-pernr
                sequencenumber                     = wa_cluster-seqno
    *       READ_ONLY_BUFFER                   = ' '
    *       READ_ONLY_INTERNATIONAL            = ' '
    *       ARC_GROUP                          = ' '
                check_read_authority               = ''
                filter_cumulations                 = ''
    *       CLIENT                             =
    *     IMPORTING
    *       VERSION_NUMBER_PAYVN               =
    *       VERSION_NUMBER_PCL2                =
              CHANGING
                payroll_result                     = result_tab_in
              EXCEPTIONS
                illegal_isocode_or_clusterid       = 1
                error_generating_import            = 2
                import_mismatch_error              = 3
                subpool_dir_full                   = 4
                no_read_authority                  = 5
                no_record_found                    = 6
                versions_do_not_match              = 7
                error_reading_archive              = 8
                error_reading_relid                = 9
                OTHERS                             = 10
        ENDCASE.
        IF sy-subrc NE 0.
          CLEAR wa_return.
          wa_return-field = wa_ppoix-pernr.
          CASE syst-subrc.
            WHEN '1'.
              wa_return-message = 'ILLEGAL_ISOCODE_OR_CLUSTERID'.
            WHEN '2'.
              wa_return-message = 'ERROR_GENERATING_IMPORT'.
            WHEN '3'.
              wa_return-message = 'IMPORT_MISMATCH_ERROR'.
            WHEN '4'.
              wa_return-message = 'SUBPOOL_DIR_FULL'.
            WHEN '5'.
              wa_return-message = 'NO_READ_AUTHORITY'.
            WHEN '6'.
              wa_return-message = 'NO_RECORD_FOUND'.
            WHEN '7'.
              wa_return-message = 'VERSIONS_DO_NOT_MATCH'.
            WHEN '8'.
              wa_return-message = 'ERROR_READING_ARCHIVE'.
            WHEN '9'.
              wa_return-message = 'ERROR_READING_RELID'.
            WHEN OTHERS.
              wa_return-message = 'OTHERS'.
          ENDCASE.
          APPEND wa_return TO return.
          CONTINUE.
        ELSE.
          CASE wa_t001-land1.
            WHEN 'US'.
              t_inter = result_tab_us-inter.
            WHEN OTHERS.
              t_inter = result_tab_in-inter.
          ENDCASE.
          APPEND t_inter.
          t_tax = result_tab_us-nat-tax.
          LOOP AT t_inter.
            t_bt = t_inter-bt.
            t_rt = t_inter-rt.
          ENDLOOP.
          LOOP AT t_values ASSIGNING <payroll> WHERE
                                           pernr EQ wa_cluster-pernr.
            CLEAR wa_rt.
            LOOP AT t_rt INTO wa_rt WHERE
                         lgart EQ <payroll>-lgart.
              wa_rt-betrg = ABS( wa_rt-betrg ).
              IF wa_rt-betrg EQ <payroll>-betrg AND NOT
                 wa_rt-cntr1 IS INITIAL.
                IF wa_t001-land1 EQ 'US'.
                  LOOP AT t_tax INTO wa_tax WHERE
                        cntr1 EQ wa_rt-cntr1.
                    EXIT.
                  ENDLOOP.
                  IF syst-subrc EQ 0.
                    <payroll>-cntr1 = wa_tax-cntr1.
                    <payroll>-taxau = wa_tax-taxau.
    * determine long text
                    SELECT SINGLE ltext FROM  t5utz INTO h_ltext
                           WHERE  taxau  = wa_tax-taxau.
                    IF syst-subrc EQ 0.
                      <payroll>-ltext = h_ltext.
                    ENDIF.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDLOOP.
          ENDLOOP.
    * check table BT abd determine check no.
          IF i_checkno EQ 'X'.
            LOOP AT t_bt INTO wa_bt.
              APPEND wa_bt TO t_hrpay.
              CASE wa_bt-zlsch.
    * check
                WHEN  'C'.
                  SELECT * FROM payr INTO wa_payr WHERE
                                 rzawe = 'C' AND
                                 laufd = wa_bt-dtadt AND
                                 pernr = wa_cluster-pernr AND
                                 seqnr = wa_cluster-seqno AND
                                 btznr = wa_bt-btznr.
                    EXIT.
                  ENDSELECT.
                  IF syst-subrc EQ 0.
    * store period in a field to find correlation later
                    wa_payr-znme4+0(4) = wa_cluster-abrj.
                    wa_payr-znme4+4(2) = wa_cluster-abrp.
                  ELSE.
                    CLEAR wa_payr.
                    wa_payr-pernr = wa_cluster-pernr.
                    wa_payr-rwbtr = wa_cluster-betrg.
                    wa_payr-waers = wa_cluster-waers.
                    APPEND wa_payr TO t_payr.
                  ENDIF.
                  APPEND wa_payr TO t_payr.
    * bank transfer
                WHEN OTHERS.
                  h_time = wa_bt-dtati+0(5).
                  h_time+5(1) = 'P'.
                  SELECT * FROM reguta INTO wa_reguta WHERE
                                 laufd = wa_bt-dtadt AND
                                 laufi = h_time.
                    EXIT.
                  ENDSELECT.
                  IF syst-subrc EQ 0.
                    APPEND wa_reguta TO t_reguta.
                  ENDIF.
              ENDCASE.
            ENDLOOP.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFUNCTION.

    Hi Sudhir,
    These settings need to be done by basis people. Anyhow, you can go to the tcode RZ11 and put in these parameters mentioned in the error message. There will be documentation available for these parameters. Try to see if the defaults are not met for any of these parameters. If you find something strange, report it to the basis. The documentations in this are very helpful. Hope this helps.
    Thanks and Regards
    Subray Hegde

  • Error in starting SAP GUI as part of an Java RFC call from a PC

    Hi,
    We are on the 4.6C version of SAP and have the latest basis kernel patches that allow an RFC connection to start the SAP GUI. The program that I am running externally is java using the 3.0.1 JCo. The OS of the PC I am using is Windows XP. The SAPGUI version is 7.10 patch level 11.
    The program seems to be working properly as the command prompt window goes grey as if there is another window being opened but then I get back this error message and I do not see the GUI.
    The message I am getting back is:
    Exception in thread "main" com.sap.conn.jco.JCoException:(136) JCO_ERROR_ILLEGAL_STATE:Launching SAP GUI failed, though it was requested(error message:Communication with SAPGUI timed out)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.startSAPGui(MiddlewareJavaRfc.java:1853)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.connect(MiddlewareJavaRfc.java:1285)
    at com.sap.conn.jco.rt.ClientConnection.connect(ClientConnection.java:661)
    at com.sap.conn.jco.rt.PoolingFactory.init(PoolingFactory.java:103)
    at com.sap.conn.jco.rt.ConnectionManager.createFactory(ConnectionManager.java:171)
    at com.sap.conn.jco.rt.DefaultConnectionManager.createFactory(DefaultConnectionManager.java:44)
    at com.sap.conn.jco.rt.ConnectionManager.getFactory(ConnectionManager.java:160)
    at com.sap.conn.jco.rt.RfcDestination.initializ(RfcDestination.java:766)
    at com.sap.conn.jco.rt.RfcDestination.getSystemID(RfcDestination.java:794)
    at com.sap.conn.jco.rt.RepositoryManager.getRepository(RepositoryManager.java:32)
    at com.sap.conn.jco.rt.RfcDestination.getRepository(RfcDestination.java:865)
    at GISToSAPWO_Test.get_wo_call(GISToSAPWo.java:91)
    at GISToSAPWO_Test.main(GISToSAPWO_Test.java:206)
    I have been all over trying to find the solution to this and have come up empty. Any help will be greatly appreciated. If this is the wrong forum for this please let me know and I will re-post.
    Thank you in advance for any information you can pass on about the issue,
    Mark

    Hi Greetson,
    Thank you in advance for your response. It is greatly appreciated.
    1) In a way yes. I am using the connection setting USE_SAPGUI = 1. This is suppose to start the GUI prior to starting the RFC's program run. If this is not correct please let me know.
    2) The code is part of the JCo and the RFC library from what I have read. If this is not correct please let me know.
    3) I am only testing from my PC at this moment. I have re-installed my SAP GUI and am now at patch level 13 on 7.10.
    4) The application passes in the connection information which includes username and password along with the parameters for the RFC call. I would like the SAP GUI to open without the user having to re-enter his/her username and password. I thought that once the RFC is called using the dialog users credentials that the GUI would then open using the connection. I have used the java pooled connection method and it still does not open the GUI.
    5) The purpose is to pass Equipment objects, Functional Location objects and Leak Id objects to an RFC to open a list screen from IW39, List Maintenance Order transaction, for display of each at one pass, as well as open Excel with data from classification for the Leak Id's.
    Hope this sheds some light on the problem I am having. Please let me know if more information is needed.
    Best regards,
    Mark

Maybe you are looking for