Error with Asynchronous RFC call to JDBC

Hi all,
We are working on a scenarion where in we have to make an asynchronous RFC call to JDBC.
We have configured RFC sender adapter following this weblog
/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
We have created data types only for the database as RFC does not require any data types.
And also we have created message types,message interfaces accordingly.
In Message Mappping,we mapped the export parameters of RFC to the access fields of database message type.
Also we have created sender agreement,interface determinations etc.... accordingly
And for sending RFC request asynchronously we followed this weblog
/people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
Once done with all the above steps we could able to trigger the RFC call and caught with the following errors in SXMB_MONI and no errors are seen in communication monitoring
SOAP Error:
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>+
+- <!--  Request Message Mapping+
  -->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
  <SAP:Category>Application</SAP:Category>
   <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
  <SAP:P1>com/sap/xi/tf/_curr_exg_mm2_</SAP:P1>
<SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
  <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
  <SAP:P4 />
  <SAP:AdditionalText />
  <SAP:ApplicationFaultMessage namespace="" /> <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_curr_exg_mm2_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
  <SAP:Retry>M</SAP:Retry>
  </SAP:Error>
Also trace shows the following error thogh the interface determinations are properly configured
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
- <!--  ************************************
  -->
  <Trace level="1" type="T">--start sender interface action determination</Trace>
  <Trace level="1" type="T">select interface BAPI_EXCHRATE_GETCURRENTRATES*</Trace>
  <Trace level="1" type="T">select interface namespace urn:sap-com:document:sap:rfc:functions</Trace>
  <Trace level="1" type="T">no interface found</Trace>
  <Trace level="1" type="T">--start receiver interface action determination</Trace>
  <Trace level="1" type="T">Loop 0000000001</Trace>
  <Trace level="1" type="T">select interface *</Trace>
  <Trace level="1" type="T">select interface namespace</Trace>
  <Trace level="1" type="T">no interface found</Trace>
  <Trace level="1" type="T">--no sender or receiver interface definition found</Trace>
  <Trace level="1" type="T">Hence set action to DEL</Trace>
  <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
  <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
  <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
- <!--  ************************************
  -->
  <Trace level="1" type="T">----</Trace>
  <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
the above errors are shown as part of request mapping..
Can any one please let me know what other configurations do we need to do?
I did not map the RFC import parameters,do we need to do that
Any help in this regard is really appreciated
Rgds,
Santhosh

Hi,
I am really happy to hear that the problem with mapping is resolved.
Now as per your requirment It needs to be aynschornous RFC--> XI ---> JDBC call. In XI you should map the RFC Export parameters to the traget structure of JDBC.
then the question is to how to trigger the RFC Function Module in R/3 to XI.
Plesae follow below steps to trigger it from SAP R/3
1. Create a RFC in the R/3 system
2. Configure the SM59 and Sender Communication channle as given in the Michal's blog. Also test if it is succesful.
/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
3. Import the RFC in XI
4. Do the mapping to the target strucutre
5. Configure the JDBC receiver adapter
/people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
6. You can trigger the RFC from R/3 sytem by using
Async Call - in ABAP program use below syntax to call RFC. Here the export parameters will be passed on to XI which further have mapped to JDBC.
CALL Function "RFC Name" IN BACKGROUND TASK destination <sm59 destination>
COMMIT WORK.
Sync Call
CALL Function "RFC Name" destination <sm59 destination>
Thanks
Swarup
Edited by: Swarup Sawant on Jan 27, 2008 9:14 AM

Similar Messages

  • Dynamic queue selection with Asynchronous RFC call

    Hi Experts,
    I have a new requirement in designing the business process thru XI. The scenario is posting production orders from a web service thru XI to R3 ( RFC calls). The requirement is that the production orders may come from different plant (Plant and production line combination). So in order to faciliate the load balancing we need to dynamically allot all the process orders from a Plant to single or two queues ( by queues i mean the queuing of the RFC requests with QoS = EO or EOIO). So dynamic selection of queues (XBIXnn) is possible in XI ?.
    Please let me know in case you need further clarification on this
    Thanks in advance

    Rajesh,
    Some more interesting read from,
    http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm
    <i>Define Quality of Service (EOIO)
           8.      Specify EOIO (Exactly Once in Order) as the quality of service, as required.
    Messages are then delivered in the same sequence that they are sent in by the integration process.
                                a.      Specify a queue in the Queue Name field.
    You can choose the name of the queue yourself.
    Max. length: 16 characters
    Permitted characters are alphanumeric characters and the following special characters:
    / (slash)
    _ (underscore)
    - (hyphen)
    All send steps that have the same queue name are delivered in the sequence that they are sent in by the integration process.</i> 
    Should be possible if you use a BPM.
    Regards
    Bhavesh

  • Asynchronous RFC call from R/3

    I need to make an asynchronous RFC call from R/3. I receive an error message in R/3 stating that my RFC destination can only be of type I (Internal) or type 3 (R/3 system). In order for it to reach XI I need it to be of type T (TCP/IP). Any help would be appreciated.
    Here is the function call.
    CALL FUNCTION 'Z_B2B_R3_FUNCTIONAL_ACK' starting new task 'SESSION1'
       destination 'RFC2XMBSERVICE'
          EXPORTING
               MSG_TYPE            = msg_type
               ORDER_HEADER_RETURN = order_header_return
          TABLES
               RETURNCODE          = i_return.
    the RFC desitnation RFC2XMBSERVICE is of type TCP/IP which by default makes it synchronous.
    Thanks,
    Jim

    hi,
    have you tried:
    CALL FUNCTION 'Z_B2B_R3_FUNCTIONAL_ACK'
    in background task
    destination 'RFC2XMBSERVICE'
    EXPORTING
    MSG_TYPE = msg_type
    ORDER_HEADER_RETURN = order_header_return
    TABLES
    RETURNCODE = i_return.
    commit work.
    Regards,
    michal

  • It is possible to get a response of a asynchronous RFC call thru wait loop

    Hi Experts,
    The requirement is that i queue up all the requests from a web services ( One queue per plant for example) which i set in the HTTP sender URL ( i mean the queue name ). and i am posting the records thru a RFC call.
    1. Let the RFC call be synchronous and in case the R/3 system is done.. Will the XI queue keep the Call and keep on retrying it till the R/3 system is up.
    2. Otherwise if the RFC call be asynchronous, is it possible to introduce a wait loop in BPM to listen to the RFC till i get some response ( i think this is not possible).
    Need your suggestion on the same...
    The requirement demands that no single request from the web service should be lost.. in case of failure of R/3 they should be queued up and re tried.. Forget about the error because of exception in RFC this will be taken care manually..
    Thanks for your response in advance.

    Hi Rajesh,
    you can queue and restart only asynchronous messages. I think you can build a Business Process, where you repeat sending a message til you have success or maximum number of tries is reached. But no good idea, coz you will get timeout at HTTP sender. Aynchronous messages dont have a response.
    May be, XI can solve your task in the standard: In transaction SMQR you can just configure what you describe. All asynchronous messages will be queued and restartet in case of receiver not reachable. You can configure no of retries and intervall between.
    Regards,
    Udo

  • Runtime Error with a WD calling a RFM

    Hi Everyone,
    I have a WebDynPro application calling an R/3 RFM. I did it using "Import Adaptive RFC Model" wizard. I have put in the code for calling the RFM on some Action that I have defined.  But, when I deploy and run the application, it fails with Error 500 and details are as under.
    Root Cause
    The initial exception that caused the request to fail, was:
       com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Failed to load client to connect to SLD. Please check your SLD connection settings using the Visual Admin.
        at com.sap.tc.webdynpro.serverimpl.wdc.sl.SystemLandscapeFactory$1.run(SystemLandscapeFactory.java:654)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sap.tc.webdynpro.serverimpl.wdc.sl.SystemLandscapeFactory.getClient(SystemLandscapeFactory.java:647)
        at com.sap.tc.webdynpro.serverimpl.wdc.sl.JCOClientConnection.resolveConnectionParameter(JCOClientConnection.java:460)
        at com.sap.tc.webdynpro.serverimpl.core.sl.AbstractJCOClientConnection.init(AbstractJCOClientConnection.java:247)
        ... 47 more
    Correction Hints
    Accessing the System Landsape Directory (SLD) failed. Depending on the concrete reason (see root cause) check the following:
    is the SLD Supplier in the J2EE engine configured correctly? See the SLD documentation for more details about the SLD and about how to configure it.
    are all JCO destinations maintained correctly? Use the preinstalled Web Dynpro Content Admin application to check/edit the destination. Use the Ping and Test functions of the Content Admin to verify that each destination is properly configured.
    Detailed Error Information
    Detailed Exception Chain
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Error while obtaining JCO connection.
       at com.sap.tc.webdynpro.services.datatypes.core.DataTypeBroker$1.fillSldConnection(DataTypeBroker.java:90)
       at com.sap.dictionary.runtime.ProviderFactory.internalResolveLogicalNameToJCODestination(ProviderFactory.java:408)
       at com.sap.dictionary.runtime.ProviderFactory.resolveLogicalNameToJCODestination(ProviderFactory.java:354)
       at com.sap.dictionary.runtime.ProviderFactory.internalGetProvider(ProviderFactory.java:215)
       at com.sap.dictionary.runtime.ProviderFactory.getProvider(ProviderFactory.java:180)
       at com.sap.dictionary.runtime.DdDictionaryPool.getProvider(DdDictionaryPool.java:87)
       at com.sap.dictionary.runtime.DdDictionaryPool.getDictionary(DdDictionaryPool.java:73)
       at com.sap.dictionary.runtime.DdDictionaryPool.getDictionary(DdDictionaryPool.java:48)
       at com.sap.dictionary.runtime.DdBroker.getDataType(DdBroker.java:149)
       at com.sap.dictionary.runtime.DdBroker.getSimpleType(DdBroker.java:170)
    Is there any setting that I am missing in SLD? or, what could be the problem?
    Thanks for your time,
    Kiran

    Hi Kiran,
    You need to configure your SLD and then your JCO connections.
    I guess you have not specified your SLD settings in Visual administrator under SLD Data supplier service.
    Check following links for the same.
    Re: Configuration of SLD
    Re: Web Dynpro - Problem with (SLD) JCO Connection
    Regards,
    Bhavik

  • Error with Mapping Lookup API using JDBC

    All,
    I have an interface that uses a JDBC lookup user defined function.  Occassionally we get the following message:
    <i>Problem when calling an adapter by using communication channel myJDBCLookup (Party: , Service: myJDBCdbase, Object ID: 0cdb888150ee36638cbfb100ff2e7161) XI AF API call failed. Module exception: 'Error ACK handling failed: java.lang.NullPointerException'. Cause Exception: (No information available)</i>
    The only way I can duplicate this error is if I deactivate the myJDBCLookup communication channel and re-run the interface.  In this case I get the same exact error.  I know the commchannels were active when I ran and got the errors.  Typically what I do is just restart the erred message and it runs fine.
    I'm thinking I may be running into a timeout problem on the Oracle end of my call and XI is "timing out" or something like that.
    My questions are:
    1)  whether or not XI has some timeout setting that I could increase that would hopefully mitigate this issue (I'm not an XI admin)?
    2) would using a different Conflict Resolution (JDBC adapter config) or Number of Retries of Database Transaction on SQL error (JDBC Advanced adapter config) setting help?
    3) Is there something altogether different I should be looking at?

    Hi,
    This blog may help u on to optimize the lookup-
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/sap.user72/blog/2005/10/15/jdbc-adapter-execution-mode-chained-or-unchained
    ALso check the Adapter Engine about time out parameters-
    hope this helps,
    Regards,
    moorthy

  • Asynchronous RFC calling using BPM

    Hi to all,
    I have this scenario:
    FILE -> XI -> RFC -> XI
    I want to use the BPM to do this, thus I have built this BPM:
    START -> RECEIVE -> BLOCK1(SEND) -> BLOCK1(RECEIVE) -> STOP
    My problem is that I want to use an asynchronous scenario and, thus, when XI sends message to RFC, BPM seems to become inactive and the BPM is not able to receive the RFC Response. How can I solve this problem? How can I mantain BPM active to receive the RFC Response?
    Thanks to all!

    Hey,
    I suppose you are trying to do a similar senario
    The scenario must be executed asynchronously, but there needs to be an automatic confirmation that the business data was successfully processed (this would be the equivalent of an applicationacknowledgement). Cross-component BPM (ccBPM) will be used to process the confirmation message.
    How To… Use BAPI wrappers in asynchronous scenarios with ccBPM
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/59ef6011-0d01-0010-bfb0-b51381e00509
    <b>Cheers,
    *RAJ*
    *REWARD POINTS IF FOUND USEFULL*</b>

  • Error with RMI method call

    Hi,
    I am trying to access a stateless session bean from a client running under JBuilder.
    The method returns a basic object that is serializable, but I get the following
    error.
    java.lang.ArrayIndexOutOfBoundsException
         at com.sun.corba.se.internal.corba.AnyImpl.read_value(AnyImpl.java:345)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:572)
         at com.sun.corba.se.internal.javax.rmi.CORBA.Util.readAny(Util.java:199)
         at javax.rmi.CORBA.Util.readAny(Util.java:92)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1486)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1060)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1555)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:906)
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:33)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    org.omg.CORBA.UNKNOWN: minor code: 0 completed: Maybe
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:37)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    Could you please point out some possible errors? Thanks.
    Charles

    [email protected] (Shawn Samuel) writes:
    Its quite likely that this is fixed in SP3. I suspect that the Map you
    are using is custom marshaled. There were some problems with this in
    SP2 which got fixed in 7.0 but weren't backported until recently.
    Can you be more explicit about the implementation class you are using?
    It seems unlikely that this is the null problem since the Map does not
    contain extra space. Unless you are putting nulls in it? Are you, the
    JDK won't cope with the correct encoding of null.
    andy
    I'm having a similar problem and getting nowhere.
    I'm calling a method on a stateless session bean with a serializable
    object as an argument that returns the same type of serializable
    object. This error comes back somewhere after the session bean returns
    on the server side. I'm running WL6.1SP2, jdk1.3.1_02, using rmi/iiop
    with the jdk orb and com.sun.jndi.cosnaming.CNCtxFactory on the
    client. I am able to make calls to the EJB that only take String
    arguments with no problems whatsoever.
    The serializable object contains Strings and a Map. Weblogic would
    give me a CORBA error on receiving the function call when I populated
    the Map. Leaving the Map null and setting only the Strings resulted in
    the call going all the way through the session bean method with no
    problem, but after populating a return object of the same type with
    only Strings, leaving the Map member null, and returning, I get the
    below error on the client.
    I'm getting a similar stack trace, but running a debugger on weblogic
    doesn't seem to indicate any unchecked exceptions being thrown.
    Is there something I'm overlooking here?
    thanks,
    Shawn
    my stack trace:
    java.lang.ArrayIndexOutOfBoundsException
         at com.sun.corba.se.internal.corba.AnyImpl.read_value(AnyImpl.java:345)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:572)
         at com.sun.corba.se.internal.javax.rmi.CORBA.Util.readAny(Util.java:199)
         at javax.rmi.CORBA.Util.readAny(Util.java:92)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1486)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1060)
         at com.i2.cis.operation.ejb._EJBOperation_Stub.invoke(Unknown Source)
         at com.i2.cis.transport.ejb.CISTransportEJB.invoke(CISTransportEJB.java:46)
         at com.i2.cis.transport.CISTransportBasic.execute(CISTransportBasic.java:138)
         at com.i2.cis.api.connector.CISConnection.execute(CISConnection.java:59)
         at com.i2.cis.api.connector.CISInteraction.execute(CISInteraction.java:45)
         at com.i2.cis.api.connector.test.CISClient.main(CISClient.java:55)
    Andy Piper <[email protected]> wrote in message news:<[email protected]>...
    "Charles Canning" <[email protected]> writes:
    This indicates that the server threw an unchecked exception but the
    client was unable to unmarshal it. Please make sure you are using SP2
    of WLS 6.1. Also what version of the JDK are you using?
    andy
    Hi,
    I am trying to access a stateless session bean from a client running under JBuilder.
    The method returns a basic object that is serializable, but I get the following
    error.
    java.lang.ArrayIndexOutOfBoundsException
         at com.sun.corba.se.internal.corba.AnyImpl.read_value(AnyImpl.java:345)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:572)
         at com.sun.corba.se.internal.javax.rmi.CORBA.Util.readAny(Util.java:199)
         at javax.rmi.CORBA.Util.readAny(Util.java:92)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1486)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1060)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1555)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:906)
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:33)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    org.omg.CORBA.UNKNOWN: minor code: 0 completed: Maybe
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:37)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    Could you please point out some possible errors? Thanks.
    Charles--

  • Asynchronous RFC call

    I need to Send some information to an RFC and my friend is saying that, I cannot call RFC Asynchronously and I couldnot understand that point, could some one help me please.
    Thanks.

    Dear Saravana,
    Dear Sravya,
    I would like to do the following scenario:
    SAP/PS --> XI --> JMS
    In SAP I call the Bapi: BAPI_NETWORK_MAINTAIN and sends network datas to JMS through XI.
    In the design:
    I only imported the BAPI to my SWCV. (I don't use any own made Data types/Message types/Message interfaces.)
    In the config:
    I used this imported BAPI name (BAPI_NETWORK_MAINTAIN) as my interface.
    It works, but it sends the message synchronously...
    I would like to use this simplicity (only import the BAPI and don't use any own created interfaces,DTs, MTs and BPM neither)
    But if I don't create any own Message Interface I can't control the synchronous/asynchronous mode.
    Is it feasible that way??
    Thank you in advance!
    Andras

  • User authentication error with Proxy Java Calling web Service in XI

    Hello,
    I have deploy a Web Service in SAP XI 3.0. within a SOAP sender adapter.
    I have also created the Proxy Java Class to access the webservice in the Developer Studio and a Plain Java Class (only with a method main) which uses the proxy classes to consume the web service.
    But when I launch the program a get the next error message:
    java.rmi.RemoteException: Service call exception; nested exception is:
         com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (401) Unauthorized.
         at com.everis.serviciosweb.xi.MI_OUT_STATUSBindingStub.MI_OUT_STATUS(MI_OUT_STATUSBindingStub.java:73)
         at com.everis.llamadas.invocacionWSStatus.main(invocacionWSStatus.java:76)
    Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (401) Unauthorized.
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.handleResponseMessage
    Where MI_OUT_STATUSBindingStub is my Stub Class.
    I have tried to set USERNAME_PROPERTY and PASSWORD_PROPERTY at runtime from my Stub class to the values that I use to access SAP XI (Integration Repository & Integration Directory) but it still doesn't´t work.
    Have anyone a solution?
    Thanks.

    Hi,
        finally I have fixed it.
    The root of the problem was on the way that I proceed with the generation of wsdl in Integration Directory.
    The second step in the wizard for generation of wsdl ask for a url to call the web service and gives you an option to complete the url automatic. I have use this option and it have proposed my an url of type http://<host>:<port>/sap/xi/engine?entry=.......
    But the SOAP adapter call is in the form http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=<party>:<business service>:<channel>
    So using this type of url in the generation of wsld solves all the problems.
    Regards,
    Antonio.

  • RFC calls with SAP JCO and IBM resource adapter for SAP - basic tuning

    Hi experts,
    we are working on a java portal connected to a backend system SAP by calling RFCs.
    On our first integration tests, it appears to be quite slow fetching data from SAP by calling the remote functions from the custom portal. We are using SAP JCo 3.0.6 and IBM resource adapter for SAP 7.0.0.3 to integrate SAP with our portal.
    Is there any basic tuning to achieve to improve performances or any hint of where to tune in SAP ?
    Any help would be greatly appreciated.
    Thanks a lot,
    Jamal

    Hi Jamal,
    I understand you have already checked performance issues in the SAP Server. We had some problems with certain RFC calls and it turned out to be a badly developed ABAP sentence.
    I'd recommend you to use httpwatch or another tool to check the response times from the browser, so you can point accurately where the is.
    Regards
    Francisco

  • 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

  • RFC call to spda_get_stack_info failed.

    Hi All,
    When carry out the system upgrade from 47x200 to 701 EHP4 SR1,
    has a error in get stack info in the preparation step.
    From windows 2003 x32 MSsql 2000 upgrade to windows 2008 R2 and MS sql 2008 R2.
    Error message set: 'RFC call to spda_get_stack_info failed with key
    RFC_ERROR_SYSTEM_FAILURE (SYSTEM_FAILURE): Error ST_MATCH_FAIL occured.
    P1=element-start P2=sp-stacks P3= P4=element-start P5=SMSDXML P6='
    Thanks.

    Hello,
    this error is happening because you're using an old version of SAPup and/or an old version of the Upgrade FIX file. Please make sure you're running the very last version of these files and repeat the process from the beggining.
    Also the file ../EPS/in/SMSDXML.xml is actually not the XML file you want to use, it is a for R/3 release with
    SAP_BASIS 4.x, the EHP stack configuration for start releses 6.20 and higher, these text files do not match anymore.
    This can contribute for EHP_INCLUSION phase failing. Have you renamed it? It usually is a long file name, for example: SMSDXML_EP1_20111002154601.221.xml. Please make sure you or someone have not made manual changes in this xml.
    I hope this information helps.
    Best regards,
    Tomas Black

  • How to Use synchronous RFC calls during test run for remote accesses

    there is a Setting for the usage of RFC accesses from a tested system
    using eCATT.
    'X' - Use asynchronous RFC calls during test run for remote accesses
    ' ' - Use synchronous RFC calls during test run for remote accesses
    I developed an eCATT as following :
      SAPGUI ( SAPGUI_1 , Target_system_1 ).
      SAPGUI ( SAPGUI_2 , Target_system_2 ).
    My question is how to run the eCATT in a synchronous RFC calls
    PS: I do not want to change the Target_system to the same one in the
    above script of ecatt.Because I need to run it in 2 different Target
    systems sometime.
    for example, I give a Target_system_3 when run this eCATT
    I want the SAPGUI_1 and SAPGUI_2 run the Target_system_3 but not the
    Target_system_1 or Target_system_2 .
    Could you please tell me how to make it without the changes in script?
    Edited by: Weitong Liu on Mar 24, 2011 9:44 AM

    Hi Liu,
    Weitong Liu wrote:
    > ' ' - Use synchronous RFC calls during test run for remote accesses
    This is the standard option value. Asynchronous are not the standard way and used only for very special purposes.
    Weitong Liu wrote:
    > I developed an eCATT as following :
    >   SAPGUI ( SAPGUI_1 , Target_system_1 ).
    >   SAPGUI ( SAPGUI_2 , Target_system_2 ).
    > My question is how to run the eCATT in a synchronous RFC calls
    The commands will be executed in sequence. So each call will be synchronously replayed against TS1 and TS2.
    What is you issue with this standard procedure?
    Kind regards,
    Christoph

  • R/3 RFC Call Log

    Hi All,
    Do you know if there is a monitor that logs incoming RFC calls to a system?
    We have an XI scenario where an asynchronous RFC call takes place from XI to R/3. But it's not working. So we're trying to see of XI is actually calling the RFC.
    Let me know!
    Thanks,
    Roman D.

    Hi !
    If there is a comunication problem you may find some protocols in the sending system.
    SAP can only trace the activity if the remote login was succesfull.
    If there is any problem with the remote login the SM20 may be helpful. All unscuccesfull login activity is loged there....
    Regards
    Rainer
    Some points would be nice if that helped a bit

Maybe you are looking for

  • Old code not working in 11.5

    For years I used the following code to open a .pdf file with a stand alone .pdf reader that does not require installation. open "resume.pdf" with "Foxit Reader.exe" When I converted the old director file from MX to 11.5 and tried to execute the code

  • Satellite C870-11G - "SM BUS controller driver missing" for Win 7 64bit

    Good afternoon, After extensive searching of the forums I have been unable to find a solution so far. A few of months ago, following the demise of her previous Satellite, my lady friend acquired a Satellite C870-11G running Windows 7 (64 bit). She ac

  • Welche Catia Versionen werden von Adobe Acrobat 9 Pro Extended unterstützt?

    Hallo, ich würde gerne wissen welche Catia und auch Siemens NX Versionen von Adobe Acrobat 9 Pro Extended unterstützt werden. Bei Adobe habe ich ein 3D update gefunden, dass bis zur Catia V5 R19 und Siemens NX 6 unterstützt. Ist das der aktuelle Stan

  • I'm an idiot,it's true.Now to fix the problem,deleted itunes library & ipod

    Okay, So my macbook pro was having issues with the os and some other things. I decided the best thing to do was to completely reinstall the os. Which i did. Before that however i had transfered my songs an pics to my ipod, planning on transfering the

  • Download SAP Standard Business content

    can you pls give me complete path to download SAP Standard Business content 1) 55610_AETICLE.zip 2) 55610_BUSINESS_PARTNER.zip 3) 55610_CUSTOMER.zip 4) 55610_EMPLOYEE.zip 5) 55610_MATERIAL.zip 6) 55610_PRODUCT.zip 7) 55610_VENDOR.zip thanks mainan