RFC vs NonSingleton Node

Dear all,
  I need to retrieve a list of order with relevant items. The application will display a list with order header data and, on lead-selection, a detail view view with header details and positions data.
  What I need to know is if it is better to retrieve all data from a single RFCmodel call and store them in a NonSingleton node rather than call an RFCmodel to retrieve headers and then use supply function to retrieve details and positions for the order selected using a dedicated RFCmodel.
   The first solution will require much more memory to store all the data. On the other and the second solution will require more network resources due to the high number of RFCModel calls.
  What I'd like to know is if exists a "right" way or "better" way to approach this problem and in case which are the reasons for this.
Thank you in advance,
Stefano

Hello Stefano,
Assuming an order can have more than one item, and if the number of orders displayed in huge, using a supply function and singleton node will be ideal. Say, if number of orders and associated items are not huge in number, and retrieving them all at once will not effect the performance much, it is better we get all data once than using a RFC call for every order selection. This just reduces the number of times a RFC is executed.
This is just what I feel. But using a supply function is a good practice always.
Best regards,
Chinnu

Similar Messages

  • SAP Netweaver RFC SDK bindings for Node.js

    Hi all,
    I have just completed a first version of bindings to the SAP Netweaver RFC SDK for [Node.js|www.nodejs.org].
    You are encouraged to inspect and download the source code on [https://github.com/jdorner/node-sapnwrfc|https://github.com/jdorner/node-sapnwrfc]. For further convenience, I have also supplied a package for use with the node package manager (npm). Nevertheless, you will have to download the SAP NW RFC SDK beforehand. Thus, you should carefully read the README on GitHub for more detailed instructions.
    Please let me know if you have problems installing/compiling the module. At the moment it has only been tested on a x86_64 linux platform.
    Regards,
    Joachim

    Thanks Mike,
    For example we want to executie Function Module and need to prepare/allocate TABLE parameter.
    In doing so we need to invoke function RfcGetStructureDescHandle is described in doc.
    However, we cannot find it anywhere in H files under SAP NW SDK 7.10 dir structure.
    Do you have an example of how to create a TABLE parameter (export for example).
    We are going to reproduce the symptom with the demo source distributed with the SDK.
    Any help/suggestions is greatly appreciated,
    Alfonso

  • Passing values to a RFC table structure

    Hi
        I am using an RFC in which there is a table called Submit Details.I want to pass three rows to this table structure in the R/3 system.
                            Can anyone help me how to do this.
    regards
    Nayeem

    Hi,
    Private<name>View.I<value node name >Node node = wdContext.node<value node name >();
    Private<name>View.I<value node name>Element ele;
    <your rfc name> input = new <your rfc name>(); // your rfc name
    wdContext.node<your rfc name>().bind(input); // bind
    <table name> inputTable;
    for (int i=0; i < node.size(); i++ ) // value node - where data is available
    inputTable= new <table name>();
    ele = node.get<value node>ElementAt(i);
    inputTable.set<Attribute>(ele.get<Attribute>());
    input.add<table name>();
    // execute rfc.

  • Multiple records are not loaded   in FILE to RFC  scenario

    Hi   ,
         I did  File- to-RFC  scenario.. it was working fine.. but the problem is... from my file.. it was loading the first record only into the R/3 database..  what i have to do..  i'm new to XI..
      generally a file must conatin multiple records.. but my scenario was  performing.. that was loading only the first record of my file.. and  remaining records it wa skipping.. 
    plz provide me the solution..
    Thanks
    Babu

    Hi
    In message mapping, change the occurrence of the RFC to be 0 to unbounded.
    Map the root node of the file xml structure to the RFC's root node.
    In the interface mapping after selecting the source and the target message interface,change the occurrence of the target interface to 0 to unbounded i.e.RFC .
    While doing the interface determination, you will find an option called Enhanced / Extended  Select this and then select the Interface mapping.
    Thanks

  • RFC execution disregarded

    Hi developers,
    I am developing a tree application. The OnLoadChildren method calls a RFC to perform node expansion.
    What happens is that when expanding one of the root nodes (level 0) everything works ok.
    Upon level 1 node expansion, however, the RFC is not called at all.
    What I mean is that the line of code
    wdContext.currentZtem_Fm_Catalogo_InputElement().modelObject().execute();
    is executed but the RFC call is not. I am fairly certain of this, as I have run tests with both Eclipse and R/3 debbuggers running.
    Please help, thanks
    Points will be awarded
    Vincenzo

    So, by setting breakpoint in R/3 you don't stop, so the RFC is not called?
    This happens in my application when new Models are imported or changes done in existing RFC's..
    My only idea is to restart the server and try again!!
    Put some mechanism before the call (wdContext.currentZtem_Fm_Catalogo_InputElement().modelObject().execute();) to make sure that this code is accessed!

  • SMTP node deleted in SCOT

    Hello, SAP Help writes that SAP system creates SMTP node during the installation and we cannot deleted and created SMTP node.  I don't know why ocasionally  I was able to delete the SMTP host node in tr. SCOT .
    Nevertheless under INT in SCOT there is nothing.
    Now when I try to create SMTP node in SCOT the wizard offeres creating  RFC and HTTP node types only. It turns out that i can not create SMTP node at all.
    What can I do now? How to recreate SMTP node?

    Hi,
    Please click on this
    [http://help.sap.com/SAPHELP_NW04S/helpdata/en/2b/d9263f4b8a11d1894c0000e8323c4f/content.htm]
    i hope this will solve your problem
    Regards,
    Muralidhar

  • Problem with a context node mapped

    hi all,      
    i have a problem in a WD application, when i execute a certain RFC, the model node in the controller mapped to that RFC (model), does not fill itself with the data that the RFC suppose to bring as a result. it seems to get lost in some point (the data). i check and all seems to be fine. I bind the node, then i execute it and later i invalidate it. It's not a role problem i've checked already, and the RFC in the backend when i run it, shows me data. Anyone knows what could this be?...       
    Regards, 
    Mariana

    Well my context structure its like this
    + Zbapi_XYZ
      + OutputY
        + ReturnY
        + Table_XYZ (custom structure)
          -attribute_1
          -attribute_n
      + Return_IN ( bapireturn structure)
          -attribute_1
          -attribute_n
      +Table_XYZ_IN (custom structure)
          -attribute_1
          -attribute_n
      - attribute1
    This is a model node, all the attribute are model attribute and both Table_XYZ_IN and Table_XYZ are from the same type of structure.
    The binding is implemented in WdDoInit Method as follow:
    Zbapi_Sd_Consulta_Doc_Serial_Input bapiSdConsultaDocSerial =
                   new Zbapi_Sd_Consulta_Doc_Serial_Input();
              wdContext.nodeZbapi_Sd_Consulta_Doc_Serial_Input().bind(
                   bapiSdConsultaDocSerial);
    and the execution of the RFC is in a custom method call
    public void ejecutarSdConsultaDocSerial( java.lang.String serial )
    inside it has the follow code:
    String nombreFuncion = "ejecutarSdConsultaDocSerial: ";
              String mensaje = "";
              boolean error = false;
              wdContext.currentZbapi_Sd_Consulta_Doc_Serial_InputElement().setPsernr(
                   serial);
              try {
                   wdContext
                        .currentZbapi_Sd_Consulta_Doc_Serial_InputElement()
                        .modelObject()
                        .execute();
                   //Invalidates the output context node
                   //wdContext.nodeOutputSD().invalidate();
                wdContext.nodeZbapi_Sd_Consulta_Doc_Serial_Input().invalidate();   
                   //En la variable "mensaje" se almacena todos los mensajes de error concatenados
                   for (int i = 0; i < wdContext.nodeReturnSD().size(); i = i + 1) {
                        IReturnSDElement retorno =
                             wdContext.nodeReturnSD().getReturnSDElementAt(i);
                        if (retorno.getType().equals("E")) {
                             error = true;
                             mensaje = mensaje + " " + retorno.getMessage();
                   if (error) {
                        wdContext
                             .currentEstatusBAPIElement()
                             .setEstatusSdConsultaDocSerial(
                             0);
                        wdContext.currentEstatusBAPIElement().setMensajeError(
                             nombreFuncion + mensaje);
                   } else {
                        wdContext
                             .currentEstatusBAPIElement()
                             .setEstatusSdConsultaDocSerial(
                             1);
              } catch (Exception ex) {
                   wdContext
                        .currentEstatusBAPIElement()
                        .setEstatusSdConsultaDocSerial(
                        0);
                   wdContext.currentEstatusBAPIElement().setMensajeError(
                        nombreFuncion + ex.getMessage());

  • Output node empty for all new wdj apps

    Hi experts!!
    I am facing a weird problem.
    For some time now i 've been working on a project entirely made of WDJ apps with RFCs.
    Suddenly all of my new RFC output nodes  come empty. The apps already uploaded to the portal with iviews work just fine.
    What could be the problem??
    Any ideas??
    I ve checked all my context mappings, redid my JCos tested them and re-ran them.
    Thank u in advance!!!

    Could be many things,
    Maybe you didn´t bind the model to the node when executing the RFC
    Maybe the nodes aren´t linked through to the view.
    Are the RFCs working correctly in backend?
    And lastly: Are you sure the user has the correct authorizations? Check with SAP R/3 transaction ST01 (Run ST01, set the things you want to check (authorizations, RFC calls), turn on trace, run the webdynpro, end the trace, and to review) ==> Best to ask the help of someone knowledgeable in authorizations)
    Jeschael
    Edited by: J.V. Lebbink on Nov 16, 2008 10:27 AM

  • How can I change the cardinality of Model Node?

    Hi everybody
    How can I change the cardinality of Model Node?
    Previous:
    I import a Model RFC, and some nodes has the cardinality 0..1, but with this configuration, when I bind to the text fields of my webdynpro and deploy, all my fields text are unables when I shows the webdynpro.
    I check RFC and all the fields and estructures are obligatories.

    Hi Jesus,
    You cannot change the cardinality of the model node. All  the properties of the Model node are derived from the Model object.
    Your input fields are disabled because you are not creating your model object properly.
    You can import the example project TutWD_FlightList, which is available in c:\Program Files\SAP\IDE\IDE70\eclipse\examples.
    Import it in NWDS and you can see how to initialize model object properly.
    Thanks
    Prashant

  • Invalidate Model Output Node

    Hi,
      Soon after I execute the model in RFC, my Output nodes should get populated with values  returned from RFC. What would happen if I issue an Invalidate command on this Output model node right after the execute command.
    Will I still be able to access this Output model node ?
    Gandolf.

    Hi
    If you do not want to access the output model node
    inavalidate the context node of table first view table in the on action back of the second view
    something like this
    wdcontext.node<name of table node>().invalidate().
    so that it will refresh the table and get the current data.
    Or you can also Close all RFC connections using the Method - disconnectIfAlive of the Model Object.
    Or check the follwing URL may give you some information
    Error using Adaptive RFC model.
    Regards
    Abhijith YS

  • Saving Multiple Rows in a Table simultaneously

    Hi All,
    I have a requirement in which I have to validate and save multiple entries from table through BAPI. The validations are checked on Button click (save). If a row entry is correct , it is saved in the backend and for the rows which are not correct, an error message is displayed.
    My requirement is to clear the rows which are correct or saved in the backend.
    Thanks,
    Nikhil

    Hi,
    Private<name>View.I<value node name >Node node = wdContext.node<value node name >();
    Private<name>View.I<value node name>Element ele;
    <your rfc name> input = new <your rfc name>(); // your rfc name
    wdContext.node<your rfc name>().bind(input); // bind
    <table name> inputTable;
    for (int i=0; i < node.size(); i++ ) // value node - where data is available
    if(<check here element for validation>){
    inputTable= new <table name>();
    ele = node.get<value node>ElementAt(i);
    inputTable.set<Attribute>(ele.get<Attribute>());
    input.add<table name>();
    node.removeElement(ele);
    // execute rfc.
    Regards,
    ramesh

  • Set value in a table, from Bapi

    Hi, I have a little Problem, I hope that you can help me.
    i have the following structure (in the View)
    ->Zbapi_Requisition_Change_Input (Model Node, from bapi, RFC)
    --> Requisition_Items_Change (Model Node, table in the Bapi)
    > Currenci (Model Atribut, from table, in bapi)
    > Prq_No    (Model Atribut, from table, in bapi)
    > Preq_Item (Model Atribut, from table, in bapi)
    > Etc...
    --> Number (Model Atribut, import from bapi)
    now, i Have another structure, a Value Node
    -> GetDetailData (value Node)
    ---> Currenci (Value Atribut)
    ---> Prq_No   (Value Atribut)
    ---> Preq_Item (Value Atribut)
    ---> Number    (Value Atribut)
    ---> etc...
    this Value node is populate from OVS, but this is not a problems.
    The Value node have the value that i need for execute the Bapi Requisition Change (not all).
    Then, i need populate de Zbapi_Requisition_Change_Input , whit the GetDetailData value ( the user can change this, via inputfield, in Form)
    I write the following sentence in the view:
    wdContext.currentZbapi_Requisition_Change_InputElement().setNumber(wdContext.currentGetDetailDataElement().getPreq_No());
    this work fine, it populate de input field "Number", because the Number is "Import" form bapi, is not a "table".
    My problem, is when i need populate the table "Requisition_Items_Change" (Necessary to execute the Bapi), i put this:
    wdContext.nodeZbapi_Requisition_Change_Input().nodeRequisition_Items_Change().currentRequisition_Items_ChangeElement().setPreq_Item(wdContext.currentGetDetailDataElement().getPreq_Item());
    this have the same logical that anterior, but don't work, result a "JaVaNullPoint Exception"
    why happens this??? to set a value in a table, I need another procedure???
    Please help me, i need your knowledge...
    regards...

    Hi Antonio,
    I feel, your code should look some thing similar to the below:
    Assume that BAPI 'Zbapi_Requisition_Change' uses a table 'Requisition_Items_Change' of some type 'ZTAB' .
    Zbapi_Requisition_Change_Input input = new Zbapi_Requisition_Change_Input () // create an instance of the Input class;
    ZTAB table = new ZTAB();
    //if you do not know table type of 'Requisition_Items_Change' , check the function input.addRequisition_Items_Change(<table type>)
    table.set<property1>(<your-value>);
    table.set<propertyn>(<your-value>););
    input.addRequisition_Items_Change(table);
    wdcontext.currentZbapi_Requisition_Change_InputElement.bind(input);
    Now execute the BAPI using the following line
    wdContext.currentZbapi_Requisition_Change_InputElement().modelObject().execute();
    wdContext.nodeOutput.invalidate()
    // clears the old value in the output node
    Hope this helps,
    Best Regards,
    Nibu.
    Message was edited by: Nibu Wilson

  • Regarding the BAPI calls without input

    Hi all,
    We are developing on webdynpro component. I came across a scenario where we call the BAPI through Adaptive BAPI model. This bapi doesnt take any input parameters but returns 7 tables with data.
    So, My problem here is i am not getting output in the 7 tables. i am sending a dummy input and executing on the input elements modelobject.
    Could anyone ddid this scenario.. ie., calling/executing teh BAPI call which doesnt have any input s but expects output.
    Here is what i have
    <i><b>Z_Sales_Order_Header_Input bapiSalesOrderHeader=new Z_Sales_Order_Header_Input();
    wdContext.nodeZ_Sales_Order_Header_Input().bind(bapiSalesOrderHeader);                    
    wdContext.currentZ_Sales_Order_Header_InputElement().modelObject().execute();
    int ilSalesOrderTypeSize=0;
    ilSalesOrderTypeSize=wdContext.nodeZ_Sales_Order_Header_Output().nodeSalesordertype().size();</b></i>
    Thanks & Regards,
    Raghavendra Pothula

    Hi Raghavendra,
    If I read you correctly, you are printing the size of the root output node (Z_Sales_Order_Header_Output) and not that of the output node inside your 'Z_Sales_Order_Header_Input' node. When you execute the RFC, the output node inside the 'Z_Sales_Order_Header_Input' node gets populated. so try printing the size of the  'Salesordertype' node  inside the 'Z_Sales_Order_Header_Input' node.
    -Z_Sales_Order_Header_Input
    ---output (this is the default name)
       ---Salesordertype
    Infact there is no need to create the 'Z_Sales_Order_Header_Output' node itself in the controller or view.
    Hope this helps,
    Best Regards,
    Nibu.

  • Creating web services from queries

    Hi experts,
    Does anyone know if it is possible to turn a query designer query into a web service? If so where can I find out how to do this?
    Thank you!
    Regards,
    Ale

    Ale,
    first make sure you carry out the steps a to e outlined in
    http://help.sap.com/saphelp_nw70/helpdata/en/d8/3bfc3f8fc2c542e10000000a1550b0/frameset.htm
    This creates a generic Query Web Service.
    In order to run it with your own query, try the following steps:
    1. Activate the services:
    - Go to SICF
    - Click on the Execute button
    - Drill down to default_host -> sap -> bc -> srt -> rfc -> sap
    - Every node in this path has to be displayed in bold black font. If a node is grey, right-click it and select "Activate Service" from the drop-down menu
    - Underneath the "sap" node you will find "QUERY_VIEW_DATA". Also activate it if necessary.
    2. Test your web service
    - Go to WSADMIN
    - Drill down to SOAP Application for RFC-Compliant FMs -> QUERY_VIEW_DATA  -> QUERY_VIEW_DATA
    - Select Web Service QUERY_VIEW_DATA
    - Click on the buttom that looks like a screw clamp (Web Service Homepage). This should start your browser and you are required to log in.
    3. Running your query
    - You should now see details about your web service (Query_View_Data)
    - Click on the "test" link at the top
    - Click on the link "GetQueryViewData (test.types.p1.GetQueryViewData parameters)"
    - Now you see all input parameters for this web service. Fill out the following:
    Infoprovider: (name of your query's underlying IP)
    Query: (technical name of your query)
    optional: ViewID: (name of your saved query view)
    4. Execute
    - Clicking on the "Send" button should now execute your query and you will get the result back.
    - For implementing a web service client, have a look at the WSDL file which you can see by clicking on the "Overview" link and then on the WSDL link
    Hope this helps,
    Dennis
    Please assign points if useful.

  • Search Help(F4 Help)  Advanced Input Help OVS

    Hi all,
    I need to understand how it works the OVS, regarding when the RFC for the value help is called.
    In the DoInit() of the view we got
    IWDAttributeInfo[] ovsStartUpAttributes =
    wdContext.nodeFlightInput()
    .getNodeInfo()
    .getAttribute("airlineid")
    IWDOVSContextNotificationListener listener =
    wdThis.wdGetFilghtDetailsCompController().getOVSListener();
    if (listener != null) {
    WDValueServices.addOVSExtension(
    "Flight Details",
    ovsStartUpAttributes,
    wdThis.wdGetFilghtDetailsCompController().getOVSInputNode(),
    wdThis
    .wdGetFilghtDetailsCompController()
    .getOVSOutputNode(),
    listener);
    This loads all the values for the OVS right?
    So my question is, Why we need to implement (and also when we actually call) the methods of the component controller:
    applyResult, onQuery & applyInputValues.
    I need to know because I am developing a View with several OVS and I need to define how many RFC I need, because I got two options:
    A) 1 RFC containing: 1 node with the user selected values, N nodes for the N OVS with all the possible values.
    B) 2 RFC, the first one only got the user selected values and the second RFC will bring me only the possible values for one OVS and this will be called only when the user hits F4 on the input.
    Please help me to understand how many RFC do I really need in order to do efficient programming.
    Regards,
    Orlando Covault.

    Hi Ayyapparaj,
    After the helpful reading I realize that I need 2 RFC, one for the User selected values, and another that will be the one that use the OVS when the user hit F4.
    I having some troubles to understand the context nodes and attributes, perhaps you have implemented the example about the Flight Selection... Can you send me the WD project to [email protected]
    Regards,
    Orlando Covault

Maybe you are looking for

  • X over battery icon, got new battery yesterday still won't go away

    I brought my MacBook into the apple store yesterday because an X had shown up on my battery icon. They gave me a new battery because the old one had expanded and everything seemed to be working fine. This morning, I wake my computer up and the X is b

  • Add unit to a key figure

    Hi group!!! I need to add a unit of measure( i have it as char) to a calculated key figure in the report.  I have done it several times when it is key figure by adding the unit when editing. I do not find the way when it is a "calculated key figure"

  • ChaRM Proof of Concept

    Hi All, I need some help with a ChaRM Proof of Concept TMS configuration. I have this setup that I would like to make work. logical component 1: DEV1 > QAS1 > PROD logical component 2: DEV2 > QAS2 > PROD (this is the same prod as above) I have ChaRM

  • Where to find M.A.T. in BIOS of a 875P Neo LSR?

    Hi y'all! Currently I'm using: P4 3.0GHz 800MHz FSB 2*512MB Kingston HyperX PC3200 CL2 MSI 875P Neo LSR (BIOS v1.6) I'm wondering where I can enable P.A.T. or MSI's M.A.T.? After reading something about BIOS version 1.6 enabling M.A.T. , I flashed fr

  • HT5503 How do you download IOS 6.0 for IPAD

    I would like to download IOS 6.0 for my IPad 2. How can I do that?