Invoke RFC function without input parameters

Is it possible to invoke RFC function that doesn't have input parameters? It returns all data from reference.

Hi Denis,
pls keep in mind that no reference parameter is allowed in RFC, you have to check that "Pass Value" flag.
Thanks
Luis

Similar Messages

  • How to invoke RFC function module from XI interface

    Hi all,
    I am having one question, How to invoke RFC function module from XI interface.
    Please reply me as soon as possible.
    Thanks in advance,
    Radhika

    Hi,
    To call the RFC in mapping u need to create the RFC lookups...check these links.
    How we have to create the lookups?
    Check this weblogs with some screenshots on how to achieve this:
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
    lookups in xi
    XI Design Guidelines
    Re: RFC Lookup API
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    Regards,
    Phani

  • Dump when trying to invoke RFC function from Webchannel

    Dear all,
    I recently tried to invoke a RFC function from Webchannel. But I got dump like this:
    Actually, the error message showed that, null object is pulling out from com.sap.wec.tc.core.backend.ConnectionFactory.getDefaultConnection().
    I have no idea about this at all. Does anyone know it?
    Thank you.
    Best Regards,
    Sam.

    Hi Sam,
    the issue occurs in your khalibre package. I suppose that you try to access the backend but entries in the backendobject-config.xml, businessobject-config.xml are not correct. Or not taken into account correctly.
    Thus, please check these settings in the xml files and ensure that you module enhancement is taken into account. Finally, Hamendra already proposed the debugger...
    Best regards,
      Steffen

  • OVS without input parameters

    Hi all,
    I have to implement a search-help pop-up for an input field in my application. But the RFC which is used doesnt accept any import parameters. The result should get prepopulated on opening the window. So, is it possible to use OVS in this case? If this is not possible, is there any alternative available??
    Since the result is too big, its not possible to use EVS.
    Thanks n regards,
    Shyam.

    Shyam,
    Please go through these,
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/391ee590-0201-0010-1c89-f1193a886421
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e038cf90-0201-0010-0a9a-ec69262a1564
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/cf40cf90-0201-0010-4a85-e5a207b900d8
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2833ce90-0201-0010-f1af-d3cfe1155b16
    /people/vikram.singh6/blog/2007/01/10/generic-value-help-services-in-web-dynpro--a-birds-eye-view
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/58a7e390-0201-0010-abb1-8eec7eb7a2ec
    Regards,
    <b>Ramganesan K</b>

  • Invoking of functions with number parameters

    Oracle 9i PL/SQL dictates that
    if the constraints of the formal parameter do not suffice actual parameter constraints,runtime error is raised.
    I tried the following code snippet to check this out.
    test_returntype7 returns a floationg point literal
    test_returntype8 returns a floationg point number
    SQL> create or replace function test_returntype7
    2 return number
    3 as
    4 begin
    5 null;
    6 return 21.345;
    7 end test_returntype7;
    8
    9 /
    Function created.
    SQL> declare
    2 v_output number(1);
    3 begin
    4 v_output := test_returntype7;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at line 4
    --This is fine
    SQL> declare
    2 v_output number(2);
    3 begin
    4 v_output := test_returntype7;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    --This is fine
    21
    PL/SQL procedure successfully completed.
    --This is fine
    SQL> declare
    2 v_output number(3);
    3 begin
    4 v_output := test_returntype7;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    21
    --This is fine
    PL/SQL procedure successfully completed.
    SQL> declare
    2 v_output number(2,3);
    3 begin
    4 v_output := test_returntype7;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at line 4
    --Why is this not working
    SQL> declare
    2 v_output number(2,10);
    3 begin
    4 v_output := test_returntype7;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at line 4
    --Why is this not working
    SQL> create or replace function test_returntype8
    2 return number
    3 as
    4 v_num number(2,3);
    5 begin
    6 v_num := 21.345;
    7 return v_num;
    8 end test_returntype8;
    9 /
    Function created.
    SQL> declare
    2 v_output number(2);
    3 begin
    4 v_output := test_returntype8;
    5 dbms_output.put_line(v_output);
    6 end;
    7
    8 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at "CERT.TEST_RETURNTYPE8", line 6
    ORA-06512: at line 4
    --Why is this not working
    SQL>
    SQL> declare
    2 v_output number(2,3);
    3 begin
    4 v_output := test_returntype8;
    5 dbms_output.put_line(v_output);
    6 end;
    7
    8 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at "CERT.TEST_RETURNTYPE8", line 6
    ORA-06512: at line 4
    --Why is this not working
    SQL> declare
    2 v_output number(3);
    3 begin
    4 v_output := test_returntype8;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at "CERT.TEST_RETURNTYPE8", line 6
    ORA-06512: at line 4
    --Why is this not working
    Could any body clarify the behaviour of code snippets
    Thanks in advance
    Ann.

    KK,
    I tried the following
    SQL> declare
    2 v_output number(4,2);
    3 begin
    4 v_output := test_returntype7;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    PL/SQL procedure successfully completed.
    This is fine.
    SQL> declare
    2 v_output number(4,2);
    3 begin
    4 v_output := test_returntype8;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at "CERT.TEST_RETURNTYPE8", line 6
    ORA-06512: at line 4
    Why is this not working
    What do you mean by precision should be a part of scale?
    I tried this also
    SQL> declare
    2 v_output number(5,3);
    3 begin
    4 v_output := test_returntype8;
    5 dbms_output.put_line(v_output);
    6 end;
    7 /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at "CERT.TEST_RETURNTYPE8", line 6
    Thanks,
    Ann.

  • C call function without knowing parameters

    I need to write a function that is given a function pointer, and a list of types (integers that represent a type). I can obtain the values to pass to the function pointer, but am wondering how to call it. This needs to happen at run time and i dont know how many arguments i will have. e.g.
    void call_function(void (*func)(),int types[],void *args[]){
    int i;
    for(i=0;types[i]!=0;i++){
    // Add this argument
    // call the function with the arguments

    I just found passing a function pointer was the best way to do something interesting with my WM.
    I had a function that selected and called a window tiling function.
    But when I started adding multimonitor support, I needed a function that did a few housekeeping bits, then tiled each monitor.  It was ugly and repetative until I had the first function pass a pointer to the tiling funtion to the monitor function.  The monitor function loops through monitors and calls whichever function it was passed.
    But back OT.  I may have misread the first time.  Are you writing just the calling function, or are you also writing the function that is being passed as a function pointer?  If you are only doing the former, you cannot do this.  You must call a function with the correct number of arguments - unless it was declared as a variadic function.  If you are writing that function to - then see va_args, and you can do this.
    In either case - this may be a good place for some inline assembly.  May being the operative word there - I do a good bit of C, and have dabbled in assembly, but I've never really combined the two.  But as I understand it, you should be able to push your arguments to the stack, then call the function.  This is how arguments are passed afterall.

  • How to log input parameters for Function Modules?

    Hi,
    I need to create a Logging system to trace input parameters for function modules.
    The log functionality could be done by developing a class method or a function module (For example 'write_log'), and calling it within each function module that I want to log. The 'write_log' code should be independent from the interface of the Function Module that I want to log.
    For example, I'd like to write a function/class method that can log both these functions modules:
    Function DummyA
       Input parameters: A1 type char10, A2 type char10.
    Function DummyB
       Input parameters: B1 type char20, B2 type char20, B3 type char20, B4 type Z_MYSTRUCTURE
    Now the questions...
    - Is there a "standard SAP" function that provide this functionality?
    - If not, is there a system variable in which I can access runtime all parameters name, type and value for a particular function module?
    - If not, how can I loop at Input parameters in a way that is independent from the function module interface?
    Thank you in advance for helping!

    check this sample code. here i am capturing only parameters (import) values. you can extend this to capture tables, changin, etc.
    FUNCTION y_test_fm.
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(PARAM1) TYPE  CHAR10
    *"     REFERENCE(PARAM2) TYPE  CHAR10
    *"     REFERENCE(PARAM3) TYPE  CHAR10
      DATA: ep TYPE STANDARD TABLE OF rsexp ,
            ip TYPE STANDARD TABLE OF rsimp ,
            tp TYPE STANDARD TABLE OF rstbl ,
            el TYPE STANDARD TABLE OF rsexc ,
            vals TYPE tihttpnvp ,
            wa_vals TYPE ihttpnvp ,
            wa_ip TYPE rsimp .
      FIELD-SYMBOLS: <temp> TYPE ANY .
      CALL FUNCTION 'FUNCTION_IMPORT_INTERFACE'
        EXPORTING
          funcname                 = 'Y_TEST_FM'
    *   INACTIVE_VERSION         = ' '
    *   WITH_ENHANCEMENTS        = 'X'
    *   IGNORE_SWITCHES          = ' '
    * IMPORTING
    *   GLOBAL_FLAG              =
    *   REMOTE_CALL              =
    *   UPDATE_TASK              =
    *   EXCEPTION_CLASSES        =
        TABLES
          exception_list           = el
          export_parameter         = ep
          import_parameter         = ip
    *   CHANGING_PARAMETER       =
          tables_parameter         = tp
    *   P_DOCU                   =
    *   ENHA_EXP_PARAMETER       =
    *   ENHA_IMP_PARAMETER       =
    *   ENHA_CHA_PARAMETER       =
    *   ENHA_TBL_PARAMETER       =
    *   ENHA_DOCU                =
       EXCEPTIONS
         error_message            = 1
         function_not_found       = 2
         invalid_name             = 3
         OTHERS                   = 4
      IF sy-subrc = 0.
        LOOP AT ip INTO wa_ip .
          MOVE: wa_ip-parameter TO wa_vals-name .
          ASSIGN (wa_vals-name) TO <temp> .
          IF <temp> IS ASSIGNED .
            wa_vals-value = <temp> .
          ENDIF .
          APPEND wa_vals TO vals .
        ENDLOOP .
      ENDIF.
    ENDFUNCTION.

  • Invoking  Remote Function Module.

    Hi
    I am invoking a remote function module from a web dynpro application(External Appln ).
    The FM contains the following code snippet
    first it inserts the parameters passed into a table
    and then the code is
    SUBMIT <report name > with parameter passing.
    when i comment out the Submit statement and invoke the function module the parameters get populated in the table..but when i enable the SUBMIT statement the same set of parameters dont even get populated in the table. and i get the following exception in the logs of SAP J2ee appln server .
    WDDynamicRFCExecuteException:      Screen output without connection to user.                           , error key: RFC_ERROR_SYSTEM_FAILURE
    i am not able to find a solution to this problem .
    Please help.
    regards
    Nilesh Taunk.

    HI
    GOOD
    GO THROUGH THIS LINKS,THEY MIGHT HELP YOU TO GIVE YOU SOME MORE IDEA.
    Re: RFC Error While Invoking A Remote Function Module.
    RFC Error While Invoking A Remote Function Module.
    http://sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5303c390-0201-0010-e0b2-bfae018377f0
    THANKS
    MRUTYUN

  • Get the return value of an RFC function / BAPI

    Hello,
    I'm a Web Dynpro Java beginner and I try to get the return value (domain: NUMC6) of an RFC function without success.
    Here is what I do, could you please tell me what is wrong?
    First, here is my context:
    Context
    |
    |---- ZMy_Bapi
         |
         |---- MyOutputResult
         |     |
         |     |---- MyReturnValue
         |
         |---- MyInput
    My model:
    MyModel
    |
    |---- ZMy_Bapi_Input
         |
         |---- Output
         |     |
         |     |---- ZMy_Bapi_Output
         |          |
         |          |---- Return_Value
         |
         |---- Input_Value
    The mapping between them:
    - MyInput is mapped to Input_Value
    - MyReturnValue is mapped to Return_Value
    And my code:
    ZMy_Bapi_Input bapiInput = new ZMy_Bapi_Input();
    wdContext.nodeZMy_Bapi().bind(bapiInput);
    bapiInput.setInput_Value("A value");
    executeZMy_Bapi();
    ZMy_Bapi_Output bapiOutput = new ZMy_Bapi_Output();
    wdContext.nodeMyOutputResult().bind(bapiOutput);
    IMyOutputResultElement outputElement = wdContext.nodeMyOutputResult().currentMyOutputResultElement();
    String result = outputElement.getMyReturnValue();
    Finally, here is the code of the executeZMy_Bapi() function:
    try {
         wdContext.currentZMy_BapiElement().modelObject().execute();
         wdContext.nodeMyOutputResult().invalidate();
    } catch (Exception ex) {
         ex.printStackTrace();
    My problem is that "result" keeps being empty
    Thanks in advance for your help!

    It still doesn't work, I'm gonna turn crazy!
    But there is one good point: I get the method you mentioned: getZMy_Bapi_OutputElementAt and getMyReturnValue without casting, just as you said first.
    Here are the updated context, model, mapping and code.
    Context:
    MyContext
    |
    |---- ZMy_Bapi
         |
         |---- MyOutputResult
         |     |
         |     |---- ZMy_Bapi_Output
         |          |
         |          |---- MyReturnValue
         |
         |---- MyInput
    Model:
    MyModel
    |
    |---- ZMy_Bapi_Input
    |     |
    |     |---- Output
    |     |     |
    |     |     |---- ZMy_Bapi_Output
    |     |          |
    |     |          |---- Return_Value
    |     |
    |     |---- Input_Value
    |
    |
    |---- ZMy_Bapi_Output
         |
         |---- Return_Value
    Mapping
    ZMy_Bapi     --> ZMy_Bapi_Input
    MyOutputResult     --> Output
    ZMy_Bapi_Output     --> ZMy_Bapi_Output
    MyReturnValue     --> Return_Value
    MyInput          --> Input_Value
    Code
    ZMy_Bapi_Input bapiInput = new ZMy_Bapi_Input();
    wdContext.nodeZMy_Bapi().bind(bapiInput);
    bapiInput.setInput_Value("A value");
    executeZMy_Bapi();
    ZMy_Bapi_Output bapiOutput = new ZMy_Bapi_Output();
    wdContext.nodeMyOutputResult().bind(bapiOutput);
    String result = "";
    for (int i = 0; i < wdContext.nodeZMy_Bapi_Output().size(); i++) {
         IZMy_Bapi_OutputElement resultElem = wdContext.nodeZMy_Bapi_Output().getZMy_Bapi_OutputElementAt(i);
         if (resultElem.getMyReturnValue() != "" && resultElem.getMyReturnValue() != null) {
              result = resultElem.getMyReturnValue();
    Edited by: Franis Pignon on Oct 17, 2008 11:16 PM

  • Unable to retrieve parameters from RFC Function Module

    Hi All,
    I have created a model for the RFC Enabled function module BAPI_BUPA_CENTRAL_GETDETAIL within my webdynpro program. I am passing parameters to the function module BAPI_BUPA_CENTRAL_GETDETAIL and I have validated that this is being passed correctly by displaying the passed value from the node of the input parameters.
    Code used to pass input parameters -
      IWDMessageManager manager = wdComponentAPI.getMessageManager();
       try
          wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
          size = wdContext.nodeCentraldataperson().size();     
          wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
          wdContext.nodeOutput().invalidate();
       catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
    I also see that it returns 1 record by using the code below:
    IWDMessageManager manager = wdComponentAPI.getMessageManager();
       try
          wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
          size = wdContext.nodeCentraldataperson().size();     
          wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
          wdContext.nodeOutput().invalidate();
       catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
    But, when I try to retrieve the value returned it does not fetch that value -
       Bapi_Bupa_Central_Getdetail_Output getdata = wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().currentOutputElement().modelObject();
       Bapibus1006_Central_Person[] getres = new Bapibus1006_Central_Person[size];
       for(int i=0; i<size; i++){
            wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(i));
            getres<i> = getdata.getCentraldataperson();
              //String fullname = wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().getElementAt(i).getAttributeValue("Fullname").toString();
            String fullname = getres<i>.getFullname();
           fullname += Integer.toString(i);
            wdContext.currentContextElement().setFullname(fullname);
            wdComponentAPI.getMessageManager().reportSuccess("fullname:" + fullname);
    It always returns 0 or null. Can someone please help me with this issue. The BAPI returns values in structure format and not internal table and hence I dont see the issue there as well.
    What can be the problem?
    Thanks for all your help in advance.
    Best regards,
    Divya

    Nikhil / Srihari,
    I changed my code and it now looks like -  I am trying get the return value into the context fullname but i still cant get the value although the size of nodeCentraldataperson() is thrown as 1 and the input is being passed correctly as i have validated this in this line of code [wdContext.nodeBapi_Bupa_Central_Getdetail_Input().currentBapi_Bupa_Central_Getdetail_InputElement().getBusinesspartner();]
    IWDMessageManager manager = wdComponentAPI.getMessageManager();
       try
          wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
          size = wdContext.nodeCentraldataperson().size();     
          wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
          wdContext.nodeCentraldataperson().invalidate();
       catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
         for(int i=0; i <size; i++){
              String name = "FullName: ";
              wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().setLeadSelection(i);
              name += wdContext.nodeBapi_Bupa_Central_Getdetail_Input().currentBapi_Bupa_Central_Getdetail_InputElement().getBusinesspartner();
              name += wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().currentCentraldatapersonElement().getFullname();
              wdContext.currentContextElement().setFullname(name);     
    Any idea what could be wrong?
    Thanks,
    Divya

  • How to make input parameters as optional in the function definition

    I have created a function for a data service which is at the Normalized layer and has 3 input parameters.
    This function is called at the Integration layer in which we have to pass only one parameter. But for the remaning 2 parameters it is throwing an error as we cannot pass those parameters.
    Is it possible that we can pass less number of parameters in the higher layer.
    I had also made those parameters as optional in the function definition(by applying '?' while defining the arguments-e.g. $x as xs:string?), but error was thrown while generating the query plan.
    I have attached a Demo project, in which i have defined a function at the normalized layer and this function is been called at the integration layer.
    Thanks,
    Kinjal

    Thanks mreiche for the reply
    But the problem is that while writing
    function myfunction( arg1 as xs:string, $arg2 as xs:string?) { ... }
    in function definition in the normalized layer, the query plan is throwing following error:-
    com.bea.ld.QueryException: Cannot generate XQuery for the function {ld:DemoProject/Normalized/TestGeo}getGeo:3
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
    at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248) at com.bea.ld.Server_ydm4ie_EOImpl_816_WLStub.executeFunction(Unknown Source)     at workshop.liquiddata.xds.views.queryplan.QueryPlanPanel.compileFunction(QueryPlanPanel.java:583) at workshop.liquiddata.xds.views.queryplan.QueryPlanPanel.access$900(QueryPlanPanel.java:39) at workshop.liquiddata.xds.views.queryplan.QueryPlanPanel$5.run(QueryPlanPanel.java:469) at java.lang.Thread.run(Thread.java:534)
    Caused by: com.bea.ld.QueryException: Cannot generate XQuery for the function {ld:DemoProject/Normalized/TestGeo}getGeo:3 at com.bea.ld.EJBRequestHandler.invokeFunction(EJBRequestHandler.java:720) at com.bea.ld.EJBRequestHandler.executeFunction(EJBRequestHandler.java:339) at com.bea.ld.ServerBean.executeFunction(ServerBean.java:95) at com.bea.ld.Server_ydm4ie_EOImpl.executeFunction(Server_ydm4ie_EOImpl.java:312)
    at com.bea.ld.Server_ydm4ie_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:491)
    at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:120)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:434)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:429)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:35)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    Caused by: com.bea.ld.server.FunctionCallQueryBuilder$QueryBuilderException: The following parameter type is not supported: {http://www.w3.org/2001/XMLSchema}string?
    at com.bea.ld.server.FunctionCallQueryBuilder.addParameter(FunctionCallQueryBuilder.java:257)
    at com.bea.ld.server.FunctionCallQueryBuilder.buildQuery(FunctionCallQueryBuilder.java:99)
    at com.bea.ld.EJBRequestHandler.invokeFunction(EJBRequestHandler.java:716)
    But no error is thrown when I call this function at the Integration layer,using
    for $f in mfunction( 'test', () )
    and the output which i get is as expected.

  • RFC function : passing a table as input

    Hi,
    I have no trouble passing input values to an RFC model in web dynpro, but I have difficulties to pass an input table.
    By default, the input "it_table" node of the model I use, is defined like this : card 0..n, selec 0..1 Singleton True.
    Do I have to change something?
    Then, what is the correct code for creating the node (because card is 0..n) and then add items (for each line of my table)?
    For the moment, I get this error : value node is created without a reference.
    Thanks

    I finally managed to get it work.
    Here is the COMPLETE solution.
    Note that in my solution, it was easier for me to put data in a value Node FIRST and THEN to copy it to the model Node.
    --> In the RFC function, declare the table "TYPE TLINE_T", and not "LIKE TLINE".
    GestionAvisComp - Context
    - Z2_I_Gestion_Simplifiee_Avis_Input (Model Node, card 0..1, sel 0..1, singleton true)
             + It_Ajout_Texte_Avis (card 0..n, sel 0..1, singleton true) Class Tline
                - Tdformat
                - Tdline
             - Qmart
    - It_Texte_Avis (Value node, card 0..n, sel 0..1, singleton true)
      public void wdDoInit()
        //@@begin wdDoInit()
         //$$begin Service Controller(1353609186)
         Z2_I_Gestion_Simplifiee_Avis_Input input = new Z2_I_Gestion_Simplifiee_Avis_Input();
         wdContext.nodeZ2_I_Gestion_Simplifiee_Avis_Input().bind(input);
         //$$end
        //@@end
    WhateverView
    public void onActionSauvegarderAvis(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
         // Add two elements to the value node
         IIt_Texte_Avis_InputElement firstTexte_AvisEl = wdContext.nodeIt_Texte_Avis_Input().createIt_Texte_Avis_InputElement();
         IIt_Texte_Avis_InputElement secondTexte_AvisEl = wdContext.nodeIt_Texte_Avis_Input().createIt_Texte_Avis_InputElement();
         firstTexte_AvisEl.setTdformat("/*");
         firstTexte_AvisEl.setTdline("Line 1");
         secondTexte_AvisEl.setTdformat("/*");
         secondTexte_AvisEl.setTdline("Line 2");
         wdContext.nodeIt_Texte_Avis_Input().addElement(firstTexte_AvisEl);
         wdContext.nodeIt_Texte_Avis_Input().addElement(secondTexte_AvisEl);
         // Moving the elements of the value node into the model node
         int size = wdContext.nodeIt_Texte_Avis_Input().size();
         for (int i = 0; i < size; i++) {
              wdContext.nodeIt_Texte_Avis_Input().setLeadSelection(i);
              Tline x = new Tline();
              x.setTdformat(wdContext.currentIt_Texte_Avis_InputElement().getTdformat());
              x.setTdline(wdContext.currentIt_Texte_Avis_InputElement().getTdline());
              wdContext.currentZ2_I_Gestion_Simplifiee_Avis_InputElement().modelObject().addIt_Ajout_Texte_Avis(x);
         wdContext.currentZ2_I_Gestion_Simplifiee_Avis_InputElement().setQmart("ZE");
         // Execute the RFC model
         // Clear the Value Node
         while ( wdContext.nodeIt_Texte_Avis_Input().size() > 0 )
                   wdContext.nodeIt_Texte_Avis_Input().removeElement(
                        wdContext.nodeIt_Texte_Avis_Input().getElementAt(0)
         // Clear the Model Node          
              if (wdContext.currentZ2_I_Gestion_Simplifiee_Avis_InputElement().modelObject().getIt_Ajout_Texte_Avis() != null) {
              while(wdContext.currentZ2_I_Gestion_Simplifiee_Avis_InputElement().modelObject().getIt_Ajout_Texte_Avis().size() > 0)
                   wdContext.currentZ2_I_Gestion_Simplifiee_Avis_InputElement().modelObject().getIt_Ajout_Texte_Avis().remove(0)
    Edited by: Emanuel Champagne on Jan 17, 2008 9:32 PM
    Edited by: Emanuel Champagne on Jan 18, 2008 10:20 PM

  • SOAP - XI - RFC - Input parameters

    Hi,
    I'm trying to develop a SOAP-> XI -> RFC scenario and now i'm facing the following problem: I'm invoking a RFC through XI but for some reason the input parameters are not reaching the RFC. The RFC response indicates that RFC is not receiving any input parameters from XI.
    I've already cleared the cache and de-activate and re-activate the rfc receiver communication channel.
    Anyone has a hint for this?
    Thanks in advance,
    Pedro Leal

    Pedro,
    Few weeks before I also faced the same issue. I'm not sure if it's bug or not.  You are directly sending the RFC structure using SOAP client  is it? I mean your Inbound and Outbound Structure are same.
    Do onething, just do the mapping and check, It will work for sure!
    raj.

  • Rfc return values that do not match input parameters

    Hi, all.
    We have File-RFC-File scenario in PI7.1
    Here we have OM with request-response mappings, RFC, where we have request-response structures... Standart.
    We have RFC channel and Receiver Agreement...
    But when we start it.. We can send any request - RFC return the same response. And we found that this response is the same response, that we have when test Functional Module in SE37. When we change input parameters in SE37 we have another response - response when we run it from XI with another request!.
    Why RFC doesn't react on input parameters?
    Thanks!

    Is your RFC receiver pointing to the correct system?
    Yes, it's fine. RFC works and return request from tables that defined in output parameters of Functional Module. But values of these output parameters correspond not for request parameters of RFC, but for parameters that we set in SE37.
    Maybe it is ABAP issue, i don't know.. Maybe problem in Functional Module.
    Request:
      <?xml version="1.0" encoding="UTF-8" ?>
    <ns1:ZO_FM_GTM xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
      <PA_BEGDA>20120201</PA_BEGDA>
      <PA_ENDDA>20120129</PA_ENDDA>
      <PA_VIEW>1</PA_VIEW>
    <PA_WERKS>
      <WERKS>0010</WERKS>
      </PA_WERKS>
      <RB_STATUS>1</RB_STATUS>
      <REPORT_XLS>1</REPORT_XLS>
      <RP_BEGDA>20120201</RP_BEGDA>
      <RP_ENDDA>20120207</RP_ENDDA>
      <ZOT_PM100049_REPORT />
      </ns1:ZO_FM_GTM>
    response:
      <?xml version="1.0" encoding="UTF-8" ?>
    <ns1:MT_Response_Report xmlns:ns1="http:/Reports_GTM_49">
    <PM_HEADER>
      <STARTDATE>2011-01-01</STARTDATE>
      <ENDDATE>2011-01-15</ENDDATE>
      <REPTYPE>2</REPTYPE>
      <PA_JOBT1 />
      <PA_NAME1 />
    <STARTDATE>2011-01-01</STARTDATE>
      <ENDDATE>2011-01-15</ENDDATE>
      <REPTYPE>2</REPTYPE>
    Edited by: ChizzT on Feb 7, 2012 11:11 AM
    Edited by: ChizzT on Feb 7, 2012 11:16 AM

  • How to - invoke OAF function from outside oracle with parameters?

    I have an oaf page, that does simple create/update/view functions for set of records based on custom db.
    currently user has to login to oracle apps, go to resp> invoke the page> search the part number > look up all the existing records(part#,set#,rev)> click on view link to view details of specific record.
    The requirement is : to invoke a set of record outside oracle.
    for example : user goes on network folder and opens a doc file from : /folder-2010/AAA-101-pqr.doc
    contents of doc file :
    revision = 1
    setNumber=2
    partNumber : ABCDEF* --this needs to be a link invoking the function call to the oaf page with these set of parameters :revision, part number and set number.
    ....and a few more....
    What I did was : I gave the OAFunc=xxxxx guest grants (http://mukx.blogspot.com/2008/07/creation-of-anonymous-page-introduction.html)
    so it invokes the main page from any file outside oracle, without login required. but i still have to search the existing records for a part number and click on view link.
    How can I pass the part#,set#,rev to the link so that it opens up the view page directly ?
    any help would be appreciated.
    thanks a ton.

    ok so say my function is :
    MASETUPVIEW with html call : OA.jsp?page=/oracle/apps/mac/matooling/webui/WorkSheetViewPG
    So from word file : Should I give the link to invoke as :
    http://zzzzzz.company.com:8009/OA_HTML/OA.JSP?OAFunc=MASETUPVIEW&viewInvItemId=123456&viewMachine=101&viewRevision=C&viewSetNumber=5&viewCategory=MILLS&paramActionType=ViewWS

Maybe you are looking for

  • Read action from a different view in the same window

    Hi all, I have a view which contains a ViewContainerUIElement and a ButtonRow. A second view with form fields is embedded in the container of the first view. Validation of the form fields in the second view depends on the button pressed in the first

  • Where is the image processor gone from new version of Bridge CC?

    I updated to the latest versions CC and now the image processor menu item is missing.  How do I get it back? I had to reset back to Photoshop CC (NOT 2014) in order for my extensions, actions and scripts to continue working. Any help would be greatly

  • Need help in SQL table creation

    Hi All, I created a table a month back.Now i need to create another table of the same structure. Is there any way so dat i can get the script of the table which i created earlier and use the same to create another. Or is there another way so that we

  • Dup in tool bar

    Getting Started, Yahoo, Most Visted are dups

  • Error in creating EM

    al salamo alikam hi forum iam using oracle database 10.2.0.1 and i manage my database through EM and at morning service for EM could not Start i tray again and again to restart the service but not service started i drop EM C:\Documents and Settings\A