Call function with rfc or not ?

How can I know that an function is called by rfc or not ?
info : The caller is not R/3 system. This web interface...
thanks in advance

Hi Stephan,
Try this FM
TRANSACTION_CALL_VIA_RFC
Data : v_bdi_line type bdi_line.
Call Function 'TRANSACTION_CALL_VIA_RFC'
     Exporting
         tcode = sy-tcode.
     importing
         transaction_data = v_bdi_line.
     Exceptions
         tcode_not_exist = 1.
if sy-subrc ne 0.
   It means it is RFC call.
endif.
Reward points if it helps you.
Regards,
Sudhakar.

Similar Messages

  • Call Function with RFC  dynamic table

    Hi all
    I create a function compare TABLE_ENTRIES_GET_VIA_RFC and CTVB_COMPARE_TABLES, everything is.dynamic
    it works well but, how could i create a dynamic output parameter for table.
    the system show me that RFC and dynamic table don't work.
    i don't want line by line i would like to have the real structure inside of the Function i have everything but i can't move the data to the output parameter table .
    could somebody help ?

    Thx RE (and Mani) for the feedback.
    I think that this URL is sufficient to understand how to pass dynamic internal table via RFC function module, whatever it is input or output. This URL says to use a STRING to store the table content in XML format, via CALL TRANSFORMATION ID, and pass this string as parameter. In the calling program, we have to "decode" the XML back into abap data, Just notice that we don't need to create an XSLT, ID is sufficient.
    For any other information, open a new thread, or ask a precise question.

  • Error while transforming XSLT by calling function with Reflection API

    Hi,
    I'm new to Reflection API. I want to call function from the jar file which is not in my application context. So I have loaded that jar ( say XXX.jar) file at runtime with URLClassLoader and call the function say [ *myTransform(Document document)* ]. Problem is that when I want to transform any XSLT file in that function it throws exception 'Could not compile stylesheet'. All required classes are in XXX.jar.
    If I call 'myTransform' function directly without reflection API then it transformation successfully completed.
    Following is code of reflection to invoke function
            ClassLoader contextCL = Thread.currentThread().getContextClassLoader();
            URLClassLoader loader = new URLClassLoader(jarURLs, contextCL);
            Class c = loader.loadClass(fullClasspath);
            Constructor constructor = c.getDeclaredConstructor(constructorParamsClasses);
            Object instance = constructor.newInstance(constructorParams);
            Method method = c.getDeclaredMethod("myTransform", methodParamsClasses);
            Object object = method.invoke(instance, methodParams);Following is function to be called with reflection API.
    public Document myTransform ( Document document ) {
    // Reference of Document (DOM NODE) used to hold the result of transformation.
                Document doc = null ;
                // DocumentBuilderFactory instance which is used to initialize DocumentBuilder to create newDocumentBuilder.
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance () ;
                // Reference of DocumentBuilder used to create new Document (DOM NODE).
                DocumentBuilder builder;
                try {
                      // Initialize DocumentBuilder by using DocumentBuilderFactory instance.
                      builder = factory.newDocumentBuilder ();
                      // Initialize new document instance by using DocumentBuilder instance.
                      doc = builder.newDocument () ;
                      // Creates new DOMSource by using document (DOM NODE) which is coming through current transform() method parameter.
                      DOMSource domsource = new DOMSource ( document ) ;
                      // Creates new instance of TransformerFactory.
                      TransformerFactory transformerfactory = TransformerFactory.newInstance () ;
                      // Creates new Transformer instance by using TransformerFactory which holds XSLT file.
                      Transformer transformer = null;
    ********* exception is thrown from here onward ******************
                      transformer = transformerfactory.newTransformer (new StreamSource (xsltFile));
                      // Transform XSLT on document (DOM NODE) and store result in doc (DOM NODE).
                      transformer.transform ( domsource , new DOMResult ( doc ) ) ;
                } catch (ParserConfigurationException ex) {
                      ex.printStackTrace();
                } catch (TransformerConfigurationException ex) {
                      ex.printStackTrace();
                } catch (TransformerException ex) {
                     ex.printStackTrace();
                } catch (Exception ex) {
                     ex.printStackTrace();
                //holds result of transformation.
                return doc ;
    }Following is full exception stacktrace
    ERROR:  'The first argument to the non-static Java function 'myBeanMethod' is not a valid object reference.'
    FATAL ERROR:  'Could not compile stylesheet'
    javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
            at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:829)
            at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:623)
            at com.actl.dxchange.utilities.Transformation.transform(Transformation.java:83)
            at com.actl.dxchange.base.BaseConnector.transform(BaseConnector.java:330)
            at com.actl.dxchange.connectors.KuoniConnector.doRequestProcess(KuoniConnector.java:388)
            at com.actl.dxchange.connectors.KuoniConnector.hotelAvail(KuoniConnector.java:241)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            ...........

    Hi,
    Thanks for response.
    Following is code for setting 'methodParamsClasses' array object. I do ensure that Document is not null and valid. My application is web application.
    Document requestObj = /* my code for generating Document object*/
    Object[] methodParams = new Object[]{requestObj}
    Class[] methodParamsClasses = new Class[]{};
                if (methodParams != null) {
                    methodParamsClasses = new Class[methodParams.length];
                    for (int i = 0; i < methodParams.length; i++) {
                        if (methodParams[i] instanceof Document) {
    /************** if parameter is instance of Document then I set class type as "Document.class" ***********/
                            methodParamsClasses[i] = Document.class;
                        } else {
                            methodParamsClasses[i] = methodParams.getClass();

  • Call Function - Dest "RFC"

    Hello,
    i have a big problem.
    I´ve written a web dynpro programm.
    In this program i call a function:
    CALL FUNCTION 'READ_DAT' DEST 'Z_READ_DAT".
    Z_READ_DAT is a RCF which points on a exe file on my pc.
    When is use this Function in SAPGUI all works fine, but when i call it in WDA there is a dump.
    "Cannot open RFC". ST22 says EXEC_SAPGUI : cannot open sapgui.
    What can i do?

    Hi Benjamin Pfahl  ,
                                   there are cetain RFCs that cannot be used with Webdynpro, like gui_upload and all. the Fm 'READ_DAT' DEST 'Z_READ_DAT, since its working fine in normal abap means it cannot be used with wda, the Fm might be using sap gui to fetch from your pc.
    Regards
    Sarath

  • CALL FUNCTION  WITH STARTING NEW TASK

    Hi All,
    i'm call a function module through
    CALL FUNCTION 'Y_WIN'  DESTINATION 'rfc_destination' then it's give right result but when i want to call with starting new task then
    CALL FUNCTION 'Y_WIN'  STARTING NEW TASK 'INFO' DESTINATION 'rfc_destination'
    it does nt provide me any data. i have check in debugger call fm is wkging fine so pls clear me why i'm nt geeting result.
    pls give ur suggestions,
    Anuj

    Did you use the PERFORMING <form> ON END OF TASK to get the results back; like in the following sample
              CALL FUNCTION 'SAPWL_STATREC_READ_FILE'
                   STARTING NEW TASK taskname
                   DESTINATION list-name
                   PERFORMING read_outtab ON END OF TASK
                   EXPORTING
                        read_start_date   = s_date
                        read_start_time   = '000000'
                        read_end_date     = s_date
                        read_end_time     = '235959'
                   EXCEPTIONS " failure when calling RFC
                        communication_failure = 1 MESSAGE msg_text
                        system_failure        = 2 MESSAGE msg_text
                        RESOURCE_FAILURE      = 3.
    and
    FORM read_outtab USING taskname.
    * Receive results back
      RECEIVE RESULTS FROM FUNCTION 'SAPWL_STATREC_READ_FILE'
        TABLES
          v2_normal_records = outtab
        EXCEPTIONS " from the called FM
          nodata    = 1.
    Regards

  • Call function with select arguments

    Hi Gurus,
    I have problem to call function inside select statements as follow:
    select a.ID_ELE2, a.ID_ELE3, a.DT_FIS_YR, c.NU_FIS_PER, c.dt,
    (case
    when c.ld is null then
    GET_LD_CHECK (a.DT_FIS_YR,c.NU_FIS_PER, a.ID_ELE3, a.ID_ELE2) -- 1
    -- GET_LD_CHECK ('2009',7, '8010', '7493') --- 2
    else
    c.ld
    end ) description
    from ACCOUNT a, TRANSACTION c
    where a.DT_FIS_YR ='2009'
    and a.ID_ELE3 <> '0000'
    and c.TY_SRC not in ('CL', 'CN')
    and a.DT_FIS_YR = c.nu_fis_yr
    and a.AK = c.AK_FGCHAR
    and trim(a.ID_ELE3) ='8010'
    and c.NU_FIS_PER <> 14
    order by 1,4,5,6
    the 1 doesn't output result but the 2 it does! How can pass the select result to the function?
    Thanks in advance for your help.
    Ben

    The statement / function call seems to be ok. So there are not much chances left for your call to return different (=non) values.
    1) It could be that you have different values in the column then during your test call.
    2) Maybe your function raises an error and that error is supressed in some ugly WHEN OTHERS EXCEPTION => Solution: Get rid of the error handler.
    3) datatype conversion. For example if a.dt_fis_yr is a number value, then you should test with number values and not with strings. GET_LD_CHECK (2009,7, '8010', '7493'). Same logic goes for the other paramters, make sure the datatype is correct and matches the function parameter.

  • Call function with DML

    I have a function that performs DML. I am calling the function from toplink with the following. I get an error
    ORA-14551: cannot perform a DML operation inside a query when I try to execute this function. Is there another way to call functions without using select From dual?
    String queryFunc = "SELECT " +
    "CCU.adjPaymentTrans(#caseID, #obligorPIN, #ccuPIN, #transCd, #payorTp) " +
    "FROM dual";
    SQLCall sqlCallFunc = new SQLCall(queryFunc);
    ValueReadQuery valueReadFunc = new ValueReadQuery(sqlCallFunc);
    valueReadFunc.addArgument("caseID");
    valueReadFunc.addArgument("obligorPIN");
    valueReadFunc.addArgument("ccuPIN");
    valueReadFunc.addArgument("transCd");
    valueReadFunc.addArgument("payorTp");
    valueReadFunc.bindAllParameters();
    Vector theArgumentValuesFunc = new Vector(6);
    theArgumentValuesFunc.add(caseID);
    theArgumentValuesFunc.add(obligorPIN);
    theArgumentValuesFunc.add(ccuPIN);
    theArgumentValuesFunc.add(transCd);
    theArgumentValuesFunc.add(payorTp);
    Number amountReversed = (Number)uow.executeQuery(valueReadFunc, theArgumentValuesFunc);

    Normally DML is only done from stored procedures, not stored functions, you may want to consider changing the function to a procedure.
    To call a function that does DML, you must call the function through a PLSQL call. If you did not require the return value, the code would be:
    >>
    String queryFunc = "begin " +
    "CCU.adjPaymentTrans(#caseID, #obligorPIN, #ccuPIN, #transCd, #payorTp);" +
    "end;";
    SQLCall sqlCallFunc = new SQLCall(queryFunc);
    DataModifyQuery modifyFunc = new DataModifyQuery(sqlCallFunc);
    >>
    If you require the return value, then the SQL would be:
    >>
    String queryFunc = "begin ? = " +
    "CCU.adjPaymentTrans(?, ?, ?, ?, ?);" +
    "end;";
    >>
    However this would have to be executed through a CallableStatement in JDBC. TopLink currently only supports executing stored procedures as callable statements, so you would need to execute this directly through JDBC. You could also convert the function to a procedure, or wrap the function with a procedure. I believe TopLink 10.1.3 will have support for a StoredFunctionCall that can call DML stored functions.
    To get a JDBC connection from a TopLink session uses,
    UnitOfWork uow = session.acquireUnitOfWork();
    uow.beginEarlyTransaction()
    uow.getAccessor().getConnection();
    uow.commit();

  • Call function within rfc

    Hi,
    i´ve developed an RFC FM and within this FM i use    
    CALL FUNCTION '
    NUMBER_GET_NEXT'
    in order to get a sequential number each time the FM is called.
    When this RFC FM is called from XI
    i get exception 1 (INTERVAL_NOT_FOUND) 
    Why is this happening?
    How can i solve this problem?
    Best regards.

    Hi,
    i just do this:
      DATA: l_number(15) TYPE C.
      IF l_number IS INITIAL.
        CALL FUNCTION 'NUMBER_GET_NEXT'
          EXPORTING
            NR_RANGE_NR             = '00'
            OBJECT                  = 'ZVLBSOLICI'
          IMPORTING
            NUMBER                  = l_number
          EXCEPTIONS
            INTERVAL_NOT_FOUND      = 1
            NUMBER_RANGE_NOT_INTERN = 2
            OBJECT_NOT_FOUND        = 3
            QUANTITY_IS_0           = 4
            QUANTITY_IS_NOT_1       = 5
            INTERVAL_OVERFLOW       = 6
            BUFFER_OVERFLOW         = 7
            OTHERS                  = 8.
    ENDIF.
    Best regards.

  • Cannot call functions with this[]

    Hello,
    I'm in trouble because I need to call functions from MCs with
    a variable
    name.
    I tried to use this[] that should do the trick, but it
    doesn't.
    Here's what I did in code to try to debug :
    - trace what's inside the this[]
    - the actual this[]
    - a cut and paste of the above trace() with the function call
    Of course, both "hardcoded" calls work..; what am I doing
    wrong ?
    Here's the code :
    trace(_parent + "." + buttonName);
    trace("_parent." + buttonName);
    this[_parent + "." + buttonName].setBtnState("test1");
    this["_parent." + buttonName].setBtnState("test2");
    _parent.mcBtn1.setBtnState("test3");
    _level0.mcInt.mcBtn1.setBtnState("test4");
    What am I supposed to feed this[] with ? Path as a string ?
    Thanks in advance.
    PJ

    What you need to feed the array operator is a string or a
    variable that can be resolved to a string. And that string needs to
    be the sole name of an instance or property of something that can
    be found in that object.
    So the reason the ones with the "_parent.mcMe" didn't work is
    because there is no object with the name "_parent.mcMe" inside of
    this. There is a _parent object and inside the parent object there
    is an mcMe, but that isn't the same thing.So you need to pick out
    the path one item at a time.
    this["_parent"]["mcMe"]["testMe"]();
    Should also work. And any of those string litterals could be
    replaced by a variable which held a string as well. Also notice
    that the function at the end can also be referenced since you are
    looking inside the mcMe object for some object with a name of
    testMe. But the parens which call the function need to be outside
    the array access because they aren't part of the name of the
    object.

  • Call function with select options problem

    Hi there dear SDN community members.
    I have got an strange ABAP problem wich function call.
    Code1
    CLEAR ls_selec .
    ls_selec-iobjnm = '9AMATNR' .
    ls_selec-sign   = 'I' .                                    
    ls_selec-option = 'EQ' .
    ls_selec-low    = '0000000000000000000000000000000000017714' .
    APPEND ls_selec TO lt_selec .
    CLEAR ls_selec .
    ls_selec-iobjnm = '9AMATNR' .
    ls_selec-sign   = 'I' .
    ls_selec-option = 'EQ' .
    ls_selec-low    = '0000000000000000000000000000000010079409' .
    APPEND ls_selec TO lt_selec .
    CALL FUNCTION '/SAPAPO/TS_PLOB_LIST_GET'
      EXPORTING
        iv_bas_plobid  = 'Z_DP_POS'
        it_selection   = lt_selec
        it_group_by    = lt_group
      IMPORTING
        et_plob_values = lt_plobs .
    Function returns data in lt_plobs itab only for the last product which was appended to the selection table lt_selec.
    Whilst
    Code2
    CLEAR ls_selec .
    ls_selec-iobjnm = '9AMATNR' .
    ls_selec-sign   = 'I' .
    ls_selec-option = 'BT' .
    ls_selec-low    = '0000000000000000000000000000000000017714' .
    ls_selec-high   = '0000000000000000000000000000000010079409' .
    APPEND ls_selec TO lt_selec .
    Returns data in lt_plobs for all products included in selection tab lt_selec.
    What am I doing wrong in case of Code1? Why function does not return data for both products included in selection tab lt_selec?
    Will be thankful for help. Regards. P.

    I am very sorry to take your time unnecessarily.
    The problem was caused by data inconsistency in our sandbox system I was developing in.
    Be understanding, please.
    Kind regards. P.
    Ps. 
    Vinod Nair
    The 'Loop' solution has slowed the performance down very much.

  • Call function with arguments in AS3

    Hello!
    I`m a new in Flex developing, and cannot understand same code
    convention, im Java programmer.
    How I can write correct function call in ActionScript, my
    call: var goodsWnd:CreateGoodsWindow =
    PopUpManager.createPopUp(this,
    CreateGoodsWindow, true) as CreateGoodsWindow;
    I wish call function above with argument, how I do that?
    Where my class: public class CreateGoodsWindow extends
    extends TitleWindow
    public CreateGoodsWindow(data:Object)
    }

    Use PopUpManager.addPopUp() instead of createPopUp().
    addPopUp takes an object that has already been instantiated:
    var createGoodsWindow:CreateGoodsWindow = new
    CreateGoodsWindow(data);
    PopUpManager.addPopUp(createGoodsWindow);

  • Timeline - call function with interpolated values?

    Hi there,
    I'm currently discovering JavaFX and have the following question.
    I would like to make a sequence of calls to a java bean with interpolated values after a button click.
    The execution should be handled in a additional Thread and not in the Action handler.
    I could do that manually of course, but I'm intrested if JavaFx offers an easy way.
    I read something about the commands do and do later, but in Version 1.0 I couldn't find it. Were these Statements removed?
    What about Timeline. Can I call the function there? Or can I only assign values to variables?
    The part function of a KeyFrame is only called on the Keyframe itself right?
    I hope someone can help me on that problem.
    Best regards

    idef22 wrote:
    Hi there,
    I read something about the commands do and do later, but in Version 1.0 I couldn't find it. Were these Statements removed?Yes.
    Use FX.deferAction() instead :
    FX.deferAction(
        function(){
            println("Hello World");
    idef22 wrote:What about Timeline. Can I call the function there? Or can I only assign values to variables?
    The part function of a KeyFrame is only called on the Keyframe itself right?
    KeyFrame class has the action attribute:
    Timeline {
        repeatCount: Timeline.INDEFINITE
        keyFrames: [
            KeyFrame {
                time: 1s
                canSkip: true
                action: function() {
                    println("Hello World!");
    }.play();

  • Parent swf call function in Child swf not working

    Hi all,
    I'm having a problem with this and I just can't figure it out
    :( (I've been trying different things and staring at it for hours
    and I'm losing my mind...)
    So I have a Parent swf that loads a Child swf (this goes
    without any problems), but I want the Parent to call a function in
    the child, now this is where it goes wrong...
    The function the Parent has to call is named "lookupcar" and
    needs to give the value "wagen" with it. The problem I think is
    that the Parent wants to call the function but it still needs to
    load (correct me if I'm wrong). Is there a way to check if the
    Child swf is loaded completely before trying to call the function?
    Could you give me an example of this please? Or any other
    suggestions on what goes wrong?
    Code in the Parent
    root.inhoud.createEmptyMovieClip("thetext", "thetext",
    this.getNextHighestDepth());
    root.inhoud.thetext.loadMovie("uitrusting-wagenpark.swf");
    root.inhoud.thetext.lookupcar(wagen);
    Code in the Child
    (the function lookupcar)
    _global.lookupcar = function(carnr:String){
    trace("LOOKUPCAR, with car nr: " + carnr);
    Thanks in advance for all the help.

    Perfect....just to make sure i m taking care of it in a nice practical way....here is how i learned to access a file located in Child (researching other posts)
    is this the way you recommend it?
    (LoaderName.content as MovieClip).functionName(new Event("whatever"))
    and in Child File we have
    function functionName(e:Event)
    i have seen other ways of calling a function in Child Swf , like using EmbedSWF and etc. wanna make sure which one is a better practice. Thanks

  • Calling function through RFC

    Hi Colleagues,
    I need to make a function call from 1 SAP system to another SAP system. Please let me know if I should create a new ABAP RFC connection between the 2 systems. If so please let me know the procedure to create a new ABAP connection. Should I make use of the transaction SM59 or can make use of some customizing/system table?
    I need to complete this asap today. Kindly help me.
    Thanks & Regards,
    Srilakshmi B

    Hi Lakshmi,
    Go to SM59 and create a new connection by clicking on the create Button, Specify the RFC Destination that is your Target System and test the Connection. Save the Connection settings. You can login to the RFC System by clicking on Remote Logon.
    Connection should be specified as an ABAP Connection.
    If you go to Logon and Security Tab you can specify the User Also.
    Regards,
    Sai
    Edited by: Sai Krishna Kowluri on Mar 4, 2008 8:35 AM

  • Nudge function with arrows will not work in PS cs2

    I recently installed photoshop cs2 on my pc with windows vista home premium. And the nudge function will not work using the arrows. Is there a work around for this?

    SWSinNC wrote:
    I will, thanks
    so your saying that if it's fake...that specific function is a common flaw ?
    Exactly!
    Unfortunately the full thread recounting this saga got lost in the forum changeover, but the fake copies come in authentic looking shrink-wrapped boxes with printed documentation; and everything works except the nudge.
    Or sometimes other keyboard combinations.

Maybe you are looking for

  • 11.5.10.2 Post Installation Checks: DBC ,JSP checks failed (Resolved)

    Hi, I am trying to install 11.5.10.2 OEL 5 installation on VMware. Its failing in the post installation checks: the DBC check and JSP checks are failing. Looking at the errors, it says that .dbc file is not generated. And because of which the JSP is

  • JTA Container Managed Transaction Demarcation question?

    Hello, there is something I'm not quite sure about, concerning JTA Container managed transaction I have a remote stateful session bean with a method f(). the method f() calls the methods g() and h() residing in a different stateless local bean DBLoca

  • Downloaded iTunes video - doesn't work

    Hi, I am overseas and downloaded an iTunes video direct to my iPad. The download started fine but was going to take a while to download. Whe I looked back soon afer the download had disappeared, I checked the videos on my iPad, it was there. When I t

  • URGENT: SAP + SQL EM dead

    Apologies for the cross post Background: No-one logged in license manager (apart from myself - manager) No-one at the office (so no-one could have logged in) Tried deleting a UDF on Item Master Data-> Warehouses. Got an error saying SERVER is still c

  • Streaming audio radio

    I was previously with Optimum Online before and was able to stream radio from www.cmatt.com.  Now that I have Verizon Fios, I get an error message on Media Player and it will not play.  I am able to take my PC and stream at my sister-in-law's house,