Calling SAP RFC from ODI

I want to call SAP RFC from ODI. Client has provided only a set of RFC's. So I want to call these RFC's to extract data from SAP ERP system or BW to Oracle Staging using ODI. Would anyone please tell me how it will be possible?

I want to call SAP RFC from ODI. Client has provided only a set of RFC's. So I want to call these RFC's to extract data from SAP ERP system or BW to Oracle Staging using ODI. Would anyone please tell me how it will be possible?

Similar Messages

  • How can I call a RFC from dynpage ?

    Hi!
    I would like to know how can I call a RFC from a Portal aplication, dynpage or jspdynpage. there include some libraries ?
    any idea?
    thanks

    for deploying SAP Jra :
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ad09cd07-0a01-0010-93a9-933e247d3ba4#search=%22how%20to%20use%20jca%20sapjra%20site%3Asap.com%22
    For lookup of SAP Jra use:
    com.sapportals.connector.connection.IConnectionFactory connectionFactory =(IConnectionFactory) initctx.lookup( "deployedAdapters/SAPFactory/shareable/SAPFactory");
    Using SAP Jra
    http://help.sap.com/saphelp_nw04s/helpdata/en/47/13044258bdd417e10000000a1550b0/content.htm
    The important jars required are:
    connector.jar
    Genericconnector.jar
    prtjndisupport.jar
    Thanks

  • Error while calling an RFC from R/3

    Hi all,
    I am new to webdynpro. I am calling a RFC from R/3/.the code is like this.
    Zhr_Fm_Loan_Input input = new Zhr_Fm_Loan_Input();
    wdContext.nodeZhr_Fm_Loan_Input().bind(input);
    input.setUsrid(wdContext.currentContextElement().getEmpnoa());
    try
    wdContext.nodeZhr_Fm_Loan_Input().currentZhr_Fm_Loan_InputElement().modelObject().execute();
    catch(Exception e)
    wdComponentAPI.getMessageManager().reportException("Exception "+e,true);
    In the output i am getting an eror Exception com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException.
    Can anybody explain the error.
    Regards,
    Rajesh

    Hi Rajesh
    Kindly check ur BAPI once from Backend, i hope there is no other mandatory field required apart from Usrid.
    I hope BAPI doesnot have any mandatory Structure in it. in case it has , u have to pass that also..
    Try printing this context also ..wdContext.currentContextElement().getEmpnoa().. i hope it is not returning a null.
    wdContext.nodeZfm_Input().nodeOutput().invalidate();   // Add this line after execute statement
    Regards
    Puneet

  • How to call the RFC from R/3 to SRM, when we use webdynpro abap? (Urgent)

    Hello
    We use SRM Server 5.5 with classic scenario.
    We want to call RFC in R/3 from webdynpro ABAP.
    How can we do that?
    We are developing the web report using webdynpro abap.
    So we need some of R/3 data such like PR(EBAN)and PO(EKKO,EKPO).
    When user choose the search parameter, report diplay the Shopping cart, PR and PO data on webdynpro.  So we call the R/3 RFC to display the PR, PO data.
    But I tired to call the RFC in R/3, We could not call it.
    How to call the RFC from R/3 to SRM, when we use webdynpro abap?
    Thank you,
    Best Regards,
    SH.

    Hi
    <b>Please look at the following threads as well -></b>
    WebDynpro in SRM
    BAPI's /RFC's in SRM
    BAPI to Change Shopping Cart by RFC
    SRM60 and webdynpro
    Webdynpro Services Exception
    WebDynpro using BAPI has an error
    SRM60 and webdynpro...
    <b>SAP uses META Function modules in SRM to get data from R/3 back-end.</b>
    <u>For getting Purchase requistion data, use the function modules -></u>
    META_REQUISITION_CHANGE        Change purchase requisition              
    META_REQUISITION_CREATE        Create Requisition                       
    META_REQUISITION_DELETE        Delete/close purchase requisition        
    META_REQUISITION_GETDETAIL     Display requisition details              
    META_REQUISITION_GETITEMS      Display requisition items                
    META_REQUISITION_GETRELINFO    Get Releasease Info for requisitions
    <u>For getting Purchase order data, use the function modules -></u>
    META_PO_CREATE                 Create purchase order                    
    META_PO_DELETE                 Delete reservation                       
    META_PO_GETDETAIL              Display purchase order details           
    META_PO_GETITEMS               Display purchase order items             
    META_PO_GETRELINFO             Display purchase order release information
    Hope this will definitely help. Do let me know.
    Regards
    - Atul

  • Call an RFC from a Bean Class

    Hi,
    My question is how to call an RFC from a bean Class (stateless Session Bean). I have followed a link and wrote a following class :
    public class Bapi1
         public static void main(String args[])throws ApplicationFaultException, SystemFaultException 
         String aMonth[] = null;
         String aMonthVal[] = null;
         JCO.Client jcoclient = null;
                   Yfunc001_Output output = null;
                   try {
                        jcoclient = JCO.createClient("Client","Username","Password","Lang","SAP Application System"," SAP System Number");     
                        try {
                             jcoclient.connect();
                             System.out.println(""+ jcoclient.getASHost()+ jcoclient.getClient()+ jcoclient.getLanguage()+ jcoclient.getSystemNumber()jcoclient.getUser()jcoclient.isValid());
                        } catch (RuntimeException e2) {
                             // TODO Auto-generated catch block
                             e2.printStackTrace();
                   } catch (Exception e) {
                        // TODO Auto-generated catch block
                        System.out.println(e.getLocalizedMessage());               
                        e.printStackTrace();
                   Yfunc001_Input input = new Yfunc001_Input();
                   Graph_PortType mytype = new Graph_PortType();
                   mytype.messageSpecifier.setJcoClient(jcoclient);
                   try {
                        output =  mytype.yfunc001(input);
                   } catch (SystemFaultException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                   } catch (ApplicationFaultException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                   jcoclient.disconnect();
                   YstructType_List list = output.get_as_listItab();
                   int listsize = list.size();
                   for (int i = 0; i < listsize; i++) {
                     YstructType elem = list.getYstructType(i);
                                            aMonth<i> = elem.getMth();
                                          aMonthVal<i> = elem.getMval();
    When I try to Execute this class I get the following Exception
    java.lang.NoClassDefFoundError
    *     at com.sap.mw.jco.MiddlewareJRfc$Client.connect(MiddlewareJRfc.java:882)*
    *     at com.sap.mw.jco.JCO$Client.connect(JCO.java:3159)*
    *     at com.ltil.fusionejb.Bapi1.main(Bapi1.java:32)*
    Exception in thread "main"
    I get an Error on Line : jcoclient.connect();
    What All libraries I need to install? Please List down the Steps if possible. Points with be awarded...
    Thanks,
    Prasanna.

    Hi,
    Add the following jar to the classpath,
    <Drive>:/usr/sap/<SID>/JC00/j2ee/cluster/server0/bin/ext/com.sap.mw.jco/jrfc.jar
    Hope this helps in solving the issue !
    Regards,
    Srinivasan T

  • Calling SAP scripts from WEBDYNPRO

    Hi
    We need to call SAP scripts from WebDynpro application.  As per my understanding we need to do following steps
    Create a new RFC function module and create sap script output in PDF format.For this
        - use OPEN_FORM , by assigning TDGETOTF='X' in the Options(Structure
          ITCPO). 
        - call function module CLOSE_FORM with option OTFDATA
        - convert OTF data to PDF by using function module CONVERT_OTF_2_PDF
    Now I would like to know how to display the PDF string from WebDynpro.
    Please help....
    Regards
    Sujith

    Hi,
    You can call by creating external window method.
    create LINK to URL or LINK TO ACTION according to requirement, for this. write code in onaction of that.
    data: iv_url type string value 'http://<server>:<port>/sap/bc/gui/sap/its/webgui?~transaction=*se38 RS38M-PROGRAMM=rsparam;DYNP_OKCODE=SHOP'.
      data: api_component  type ref to if_wd_component,
              window_manager type ref to if_wd_window_manager,
              window type ref to if_wd_window.
      api_component = wd_comp_controller->wd_get_api( ).
      window_manager = api_component->get_window_manager( ).
      window = window_manager->create_external_window(
                     url = iv_url
                     modal = abap_false ).
      window->open( ).
    Cheers,
    Kris.

  • Call ABAP RFC From mapping

    HI Guys,
    I have a requirement to call ABAP RFC from Message Mapping.
    Can any one pls share the document links or ideas with me.
    Thanks,
    MS

    Hi
    u can use RFC LoopUp
    if PI 7.0 / 3.0 -- need to write the UDF to execute
    link
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70d90a91-3cf4-2a10-d189-bfd37d9c3231
    if PI 7.1 then u have functionality in MM itself to do so
    rgds
    srini

  • Can we call java jar from ODI?

    Hi All,
    Can we call java jar from ODI? if yes please suggest how?
    Regards,
    Satish

    This is an excellent article from Uli.
    One reason, I dont like this approach is that is mandates to copy the .jar file to the driver folder and restart the agent.
    Think of a scenario where there are several developers in love with Java and want to place the jars in the drivers directory.
    This is a maintenance nightmare for the admin and would clutter up the drivers directory.
    Find here the way to invoke Java jar methods
    http://askankit.blogspot.com/2010/09/call-java-jar-methods-from-odi.html

  • Calling SAP Transaction from BSP

    I wonder whether it is possible to call SAP transaction from BSP application and pass to it some data; e.g., PO# when calling VA02?
    The called transaction could appear in a separate MS IE Window (like in some Portal applications) or in SAP GUI.
    Any help will be appreciated.
    Thank you in advance

    I have launched the Java SAPGui from BSP pages before.  I used SNC so that the users were logged on via Single Sign On.  I store the Java Gui in the Mime directory.  You can force the startup transaction.  Theorectically you could also Gui Scripting to try and control the Gui and force in the default value for your PO field.  I have not tried that however.  You will probably want to check the Service Marketplace for documents on the Gui Scripting.  The following is the code from my BSP page to launch the Java Gui in the Browser as an applet:
    <%@page language="abap"%>
    <%@extension name="htmlb" prefix="htmlb"%>
    <HTML>
    <HEAD>
      <TITLE>SAPGUI for the Java Environment</TITLE>
      <STYLE type="text/css">
          body { margin-left:0px; margin-right:0px; margin-top:0px; margin-bottom:0px; }
      </STYLE>
    </HEAD>
    <BODY scroll="no">
    <SCRIPT language="JavaScript">
    // user configurable part starts here
    var pluginurl         = '';
    var scriptable     = 'true';
    var codebase         = '.';
    var jnlp           = 'platin.jnlp';
    var keepalive      = 'true';
    var frog           = 'true';
    var trace          = '';
    var tracefile      = '';
    var connectionData = 'conn=/M/nts163/S/3620/G/SPACE/&tran=SE80&clnt=088&fast=true&sncon=true&sncname=p:[email protected]&sncqop=9';
    // user configurable part ends here
    // verify if Java Plugin as control in Internet Explorer or Java Plugin for Netscape or native JRE of browser must be used
    var jre = 'control';
    if(navigator.platform.indexOf("Mac") > -1)
       jre = 'native';
    else if (navigator.appName.indexOf("Netscape") != -1)
       jre = 'plugin';
    document.open();
    switch (jre)
    case 'control':
        document.writeln('<OBJECT CLASSID  = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"                               ');
        document.writeln('    ID       = "PlatinGUI"                                                                    ');
        document.writeln('    CODEBASE = "j2re-1_3_1_02-win-i.exe#Version=1,3,1,0"                             ');
        document.writeln('    WIDTH    = "100%"                                                 ');
        document.writeln('    HEIGHT   = "100%"                                                 ');
        document.writeln('    BORDER   = 0>                                                      ');
        document.writeln('<PARAM NAME = "TYPE"           VALUE = "application/x-java-applet;jpi-version=1.3.1">         ');
        document.writeln('<PARAM NAME = "SCRIPTABLE"     VALUE = "', scriptable,'">                                ');
        document.writeln('<PARAM NAME = "code"           VALUE = "com.sap.platin.GuiApplet2">                   ');
        document.writeln('<PARAM NAME = "codebase"       VALUE = "', codebase,'">                             ');
        document.writeln('<PARAM NAME = "jnlp"           VALUE = "', jnlp,'">                             ');
        document.writeln('<PARAM NAME = "archive"        VALUE = "GuiStartS.jar">                             ');
        document.writeln('<PARAM NAME = "keepalive"      VALUE = "', keepalive,'">                             ');
        document.writeln('<PARAM NAME = "frog"           VALUE = "', frog,'">                             ');
        document.writeln('<PARAM NAME = "trace"          VALUE = "', trace,'">                             ');
        document.writeln('<PARAM NAME = "tracefile"      VALUE = "', tracefile,'">        ');
        document.writeln('<PARAM NAME = "connectionData" VALUE = "', connectionData,'">                               ');
        document.writeln('                                                                ');
        document.writeln('This page requires a Sun Java Plugin 1.3 and a SAPGUI for Java to view.                      ');
        document.writeln('                                                                ');
        document.writeln('</OBJECT>                                                           ');
        break;
    case 'plugin':
        document.writeln('<EMBED TYPE        = "application/x-java-applet;version=1.3"                         ');
        document.writeln('    PLUGINURL      = "', pluginurl,'"                                          ');     
        document.writeln('    WIDTH          = "100%"                                            ');                                        
        document.writeln('    HEIGHT         = "100%"                                             ');
        document.writeln('    ALIGN          = "BASELINE"                                                ');
        document.writeln('    code           = "com.sap.platin.GuiApplet2"                                      ');
        document.writeln('    codebase       = "', codebase,'"                                        ');
        document.writeln('    jnlp           = "', jnlp,'"                                                ');
        document.writeln('    archive        = "GuiStartS.jar"                                       ');
        document.writeln('    keepalive      = "', keepalive,'"                                       ');
        document.writeln('    frog           = "', frog,'"                                            ');
        document.writeln('    trace          = "', trace,'"                                            ');
        document.writeln('    tracefile      = "', tracefile,'"                                       ');
        document.writeln('    connectionData = "', connectionData,'"                                        ');
        document.writeln(' <NOEMBED>                                                      ');
        document.writeln(' </NOEMBED>                                                      ');
        document.writeln(' </EMBED>                                                              ');
        break;
    case 'native':
        document.writeln('<APPLET CODEBASE  = "', codebase,'"                                                           ');
        document.writeln('        ARCHIVE   = "GuiStartS.jar"                                                           ');
        document.writeln('        CODE      = "com.sap.platin.GuiApplet2"                                               ');
        document.writeln('        WIDTH     = "100%"                                                                    ');
        document.writeln('        HEIGHT    = "100%">                                                                   ');
        document.writeln('<PARAM NAME = "SCRIPTABLE"     VALUE = "', scriptable, '">                                    ');
        document.writeln('<PARAM NAME = "jnlp"           VALUE = "', jnlp, '">                                          ');
        document.writeln('<PARAM NAME = "keepalive"      VALUE = "', keepalive, '">                                     ');
        document.writeln('<PARAM NAME = "frog"           VALUE = "', frog, '">                                          ');
        document.writeln('<PARAM NAME = "trace"          VALUE = "', trace, '">                                         ');
        document.writeln('<PARAM NAME = "tracefile"      VALUE = "', tracefile, '">                                     ');
        document.writeln('<PARAM NAME = "connectionData" VALUE = "', connectionData, '">                                ');
        document.writeln('</APPLET>                                                                                ');
        break;
    document.close();
    </SCRIPT>
    </BODY>
    </HTML>

  • Call SAP Transaction from BSP

    Hi,
    I am new to BSP. I have to call SAP Screen on button click event on BSP and also need to pass data at runtime.
    I searched this forum but didn't find the right solution. I tried to call SAP screen from BAPI and through URL but no success.
    Anyone knows how it can be done?
    Regards,
    Usman Malik

    Thanks for your reply,
    Actually I am very new to BSP. I don't understand where to put this code?
    [System]
    Name=DEV
    Description=DEV [Development]
    Client=123
    [User]
    Name=RAJA
    Language=EN
    [Function]
    Title=
    Command=*SU01 USR02-BNAME=raja;
    Type=Transaction
    [Configuration]
    WorkDir=d:xxxxxxSapWorkDir
    [Options]
    Reuse=1
    Second thing is about shortcut. Do I have to place this shortcut on server?
    Thanks,
    Usman Malik

  • Procedure to call an RFC from another R/3 system

    Hi ,
    I am new to RFC, how can we do the following steps:
    1.      Run a routine in Dev environment which calls an RFC which is in testing
    2.      The RFC performs the task as written  in it
    3.      RFC passes the result to routine in Dev and
    4.      We display the return in the end in Dev.
    Do i need any authorization for that?
    Regards,
    Pooja

    Hi,
    I wanted to know how to call an RFC from one R/3 system to another R/3 system .
    And what settings should be made to do a RFC in T code SM59?
    what does the function module RFC_READ_REPORT do? Can i call any program through this?(As the documentation is not available I am not able to understand the functionality of this Function module)
    Regards,
    Pooja

  • Call sap transaction from java

    can anyone tell me how to call SAP transaction from JCO,
    cheers
    Ajay

    Hi Ajay,
    You should find or create functional module which covers your requrements.
    Best regards, Maksim Rashchynski.

  • Is it possible to call SAP RFC by using ODI

    Hi guys,
    I connected to a SAP system by using ODI. I can fetch SAP tables but is there a way to call a RFC by using ODI?
    Thanks.

    did U find a way to make RFC call ??

  • How do I call a SAP RFC from an Oracle Form using webutils CLIENT_OLE2?

    Hi guys,
    Your help on this problem would be greatly appreciated.
    We have an older forms 6i application which we are currently updating to 10g (which is a pain itself... but that's a different story.) which currently uses unssupported c++ routines to connect to the SAP system, we want to do away with this c++.
    What I have so far is the following test code:
    PROCEDURE cmd_summary
    IS
    o_sap_log client_ole2.obj_type;
    o_sap_conn client_ole2.obj_type;
    o_sap_rfcc client_ole2.obj_type;
    -- o_sap_rfcx client_ole2.obj_type;
    -- o_sap_rfc client_ole2.obj_type;
    v_args ole2.list_type;
    v_logon BOOLEAN := FALSE;
    BEGIN
    :block3.txt_result := 'TEST Started!';
    --create logon control object
    o_sap_log := client_ole2.create_obj ('SAP.logoncontrol.1');
    --create the function object
    o_sap_rfcc := client_ole2.create_obj ('SAP.Functions');
    --create a new connection object
    o_sap_conn := client_ole2.invoke_obj (o_sap_log, 'NewConnection');
    --set the connection properties
    client_ole2.set_property (o_sap_conn, 'System', caps$get_sys_param ('SAP_DST'));
    client_ole2.set_property (o_sap_conn, 'MessageServer', caps$get_sys_param ('SAP_HST'));
    client_ole2.set_property (o_sap_conn, 'GroupName', 'DEVELOP');
    client_ole2.set_property (o_sap_conn, 'client', caps$get_sys_param ('SAP_CLT'));
    client_ole2.set_property (o_sap_conn, 'SystemNumber', caps$get_sys_param ('SAP_SYN'));
    client_ole2.set_property (o_sap_conn, 'User', caps$get_sys_param ('SAP_USR'));
    client_ole2.set_property (o_sap_conn, 'Password', caps$get_sys_param ('SAP_PWD'));
    client_ole2.set_property (o_sap_conn, 'language', caps$get_sys_param ('SAP_LNG'));
    --set up the logon arguements
    v_args := client_ole2.create_arglist;
    client_ole2.add_arg (v_args, 1);
    client_ole2.add_arg (v_args, TRUE);
    --run the logon function
    v_logon := client_ole2.get_bool_property (o_sap_conn, 'logon', v_args);
    client_ole2.destroy_arglist (v_args);
    IF v_logon
    THEN
    :block3.txt_result := :block3.txt_result || CHR (10) || 'LOGON Worked!!';
    ELSE
    :block3.txt_result := :block3.txt_result || CHR (10) || 'LOGON Failed!!';
    END IF;
    :block3.txt_result := :block3.txt_result || CHR (10) || 'TEST Ended!';
    EXCEPTION
    WHEN OTHERS
    THEN
    :block3.txt_result := :block3.txt_result || CHR (10) || SQLERRM (SQLCODE);
    END cmd_summary;
    NOTE: the get_sys_param functionis returning text from a table.
    This seems to work okay, the logon command returning a TRUE. All good so far.
    However, when I try to then use this connection for anything then I stumble and fall!
    I've seen an example in VB where the SAP RFC object is "assigned" the connection object by simply stating:
    Set oSAPrfc.Connection = oSAPconn
    Where oSAPconn is setup in a similar way to my o_Sap_conn in the above example.
    I have tried using the CLIENT_OLE2.SET_PROPERTY procedures but I don't think that's quite right.
    I've tried using invoke, to try and "run" the method like:
    v_args := CLIENT_OLE2.CREATE_ARGLIST;
    client_ole2.add_arg_obj(v_args,o_sap_conn);
    client_ole2.invoke(o_sap_rfcc,'Connection',v_args);
    client_ole2.destroy_arglist(v_args);
    but it fails.
    I have also tried using the actual Connection function directly:
    SAP_ISAPFUNCTIONS.connection(o_sap_rfcc, o_sap_conn);
    But that just causes the Forms Server to crash... :?
    Has anyone connected to SAP via Forms? I noticed one post on this forum which an example of some code using a SAPBAPI control but not WEBUTIL (Which I think I'd need to use because we are running 10g)
    As a side note we are also looking into SAP Adapter as a possible "other" route but this too is getting very complicated... And I can't see a way of connecting a form to the Adpater anyway :(
    Any advice would be very much appreciated.

    Can anyone help?
    Mike

  • Unable to call the RFC from the WD java Program

    Hi All,
    I have a table and three buttons Create, Edit, Save in the layout.
    If no record available in the R3 the the end user will click on create and then he will click on save so that the insert RFC will be called accordingly and the record will be inserted.My table is limited to 5 records only. If  i enter all the 5 records and Click on submit the record is inserting in the backend , but if i enter less than 5 records im unable to call the RFC what might be the issue. 
    My insert RFC takes one Table node and 4 import parameters i'm passing all of the all the mentioned import parameters.
    Code:-
    View Controller code
    // This file has been generated partially by the Web Dynpro Code Generator.
    // MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
    // ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
    package com.gmr.ess;
    // IMPORTANT NOTE:
    // ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
    // BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
    // AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPPView).
    // OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
    // A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
    // OF IMPORT STATEMENTS.
    //@@begin imports
    import java.math.BigDecimal;
    import java.util.Date;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Collection;
    import java.util.Iterator;
    import com.gmr.ess.wdp.IPrivateAPPView;
    import com.gmr.pck.Zst_Hr_Nominee;
    import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
    import com.sap.tc.webdynpro.services.sal.um.api.IWDClientUser;
    import com.sap.tc.webdynpro.services.sal.um.api.WDClientUser;
    //@@end
    //@@begin documentation
    //@@end
    public class APPView
    Logging location.
      private static final com.sap.tc.logging.Location logger =
        com.sap.tc.logging.Location.getLocation(APPView.class);
      static
        //@@begin id
        String id = "$Id$";
        //@@end
        com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
    Private access to the generated Web Dynpro counterpart
    for this controller class.  </p>
    Use <code>wdThis</code> to gain typed access to the context,
    to trigger navigation via outbound plugs, to get and enable/disable
    actions, fire declared events, and access used controllers and/or
    component usages.
    @see com.gmr.ess.wdp.IPrivateAPPView for more details
      private final IPrivateAPPView wdThis;
    Root node of this controller's context. </p>
    Provides typed access not only to the elements of the root node
    but also to all nodes in the context (methods node<i>XYZ</i>())
    and their currently selected element (methods current<i>XYZ</i>Element()).
    It also facilitates the creation of new elements for all nodes
    (methods create<i>XYZ</i>Element()). </p>
    @see com.gmr.ess.wdp.IPrivateAPPView.IContextNode for more details.
      private final IPrivateAPPView.IContextNode wdContext;
    A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
    Represents the generic API of the generic Web Dynpro counterpart
    for this controller. </p>
      private final com.sap.tc.webdynpro.progmodel.api.IWDViewController wdControllerAPI;
    A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
    Represents the generic API of the Web Dynpro component this controller
    belongs to. Can be used to access the message manager, the window manager,
    to add/remove event handlers and so on. </p>
      private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
      public APPView(IPrivateAPPView wdThis)
        this.wdThis = wdThis;
        this.wdContext = wdThis.wdGetContext();
        this.wdControllerAPI = wdThis.wdGetAPI();
        this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
      //@@begin javadoc:wdDoInit()
      /** Hook method called to initialize controller. */
      //@@end
      public void wdDoInit()
        //@@begin wdDoInit()
        try{
              IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
              IWDClientUser user = WDClientUser.getLoggedInClientUser();
              String logUser= user.getSAPUser().getUniqueName();
              wdContext.currentContextElement().setUserid(logUser);
              wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();//Returns the user id for the employee
              Collection nomineeList = new ArrayList();
              wdThis.wdGetAPPController(). executeZ_Hrfm_Nominee_Disp_Input( );          
              int nomineeTableSize = wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().size();
              for(int i=0;i< nomineeTableSize;i++){          
                IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
                ele.setAddr(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getAddr());
                ele.setDob(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getDob());
                ele.setGuard(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getGuard());
                ele.setName(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getName());
                ele.setPerc(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getPerc());
                ele.setRelat(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getRelat());
                nomineeList.add(ele);
              wdContext.nodeDisplay_table_node().bind(nomineeList);
              wdContext.currentContextElement().setEdit_val_attr(true);
              if(nomineeTableSize<=0){
                   wdContext.currentContextElement().setCreateButtonEnable(true);
                   wdContext.currentContextElement().setEditButtonEnable(false);
              else{
                   wdContext.currentContextElement().setCreateButtonEnable(false);
                   wdContext.currentContextElement().setEditButtonEnable(true);
        catch(Exception e){
              wdComponentAPI.getMessageManager().reportException("",true);
        //@@end
      //@@begin javadoc:wdDoExit()
      /** Hook method called to clean up controller. */
      //@@end
      public void wdDoExit()
        //@@begin wdDoExit()
        //@@end
      //@@begin javadoc:wdDoModifyView
    Hook method called to modify a view just before rendering.
    This method conceptually belongs to the view itself, not to the
    controller (cf. MVC pattern).
    It is made static to discourage a way of programming that
    routinely stores references to UI elements in instance fields
    for access by the view controller's event handlers, and so on.
    The Web Dynpro programming model recommends that UI elements can
    only be accessed by code executed within the call to this hook method.
    @param wdThis Generated private interface of the view's controller, as
           provided by Web Dynpro. Provides access to the view controller's
           outgoing controller usages, etc.
    @param wdContext Generated interface of the view's context, as provided
           by Web Dynpro. Provides access to the view's data.
    @param view The view's generic API, as provided by Web Dynpro.
           Provides access to UI elements.
    @param firstTime Indicates whether the hook is called for the first time
           during the lifetime of the view.
      //@@end
      public static void wdDoModifyView(IPrivateAPPView wdThis, IPrivateAPPView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
        //@@begin wdDoModifyView
        //@@end
      //@@begin javadoc:onActionGetData(ServerEvent)
      /** Declared validating event handler. */
      //@@end
      public void onActionGetData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionGetData(ServerEvent)
        //$$begin ActionButton(-535519310)
        //wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Disp_Input();
        //$$end
        //@@end
      //@@begin javadoc:onActionEdit(ServerEvent)
      /** Declared validating event handler. */
      //@@end
      public void onActionEdit(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionEdit(ServerEvent)
       //$$begin ActionButton(-535519310)
       displayTablesize=wdContext.nodeDisplay_table_node().size(); 
       if(displayTablesize<5){
         for(int i=0;i<size-displayTablesize;i++){           
              IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
              wdContext. nodeDisplay_table_node().addElement(ele);               
       operation="MOD"; 
       wdContext.currentContextElement().setTableReadOnly(true);
       wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);                                 
        //$$end
        //@@end
      //@@begin javadoc:onActionCreate(ServerEvent)
      /** Declared validating event handler. */
      //@@end
      public void onActionCreate(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionCreate(ServerEvent)
         int month=0,year=0,day=0;
         String month1,day1,year1;   
         try{
              displayTablesize=wdContext.nodeDisplay_table_node().size();
              wdContext.currentContextElement().setEdit_val_attr(false);
              if(wdContext.nodeDisplay_table_node().isEmpty()){                    
                   if(displayTablesize<5){
                        Calendar cal=Calendar.getInstance();
                        month=cal.get(Calendar.MONTH)+1;
                        if(month==1||month==2||month==3||month==4||month==5||month==6||month==7||month==8||month==9){
                             month1="0"+month;
                        else{
                             month1=""+month;                                   
                        day = cal.get(Calendar.DAY_OF_MONTH);
                             if(day==1||day==2||day==3||day==4||day==5||day==6||day==7||day==8||day==9){
                             day1=  "0"+day;
                        else{
                             day1=""+day;
                        year = cal.get(Calendar.YEAR);
                        year1=""+year;
                        String strFormat=day1"."month1"."year1;                    
                        wdContext.currentOutput_NomineeElement().setBegda(strFormat);
                        wdContext.currentOutput_NomineeElement().setEndda("31.12.9999");                         
                        for(int i=0;i<size-displayTablesize;i++){           
                             IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
                             wdContext. nodeDisplay_table_node().addElement(ele);               
                   operation="INS";
                   wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);                    
              wdContext.currentContextElement().setTableReadOnly(true);          
         catch(NullPointerException npe){
              wdComponentAPI.getMessageManager().reportException("No Data Available",true);
        //@@end
      //@@begin javadoc:onActionSaveData(ServerEvent)
      /** Declared validating event handler. */
      //@@end
      public void onActionSaveData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionSaveData(ServerEvent)
         float percentage=0;
         float dupePercentage=0;
         boolean isTest = false;
         Collection DispTList =      new ArrayList();
         IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
         try{
              displayTablesize = wdContext.nodeDisplay_table_node().size();
              //for(int     i=1;i<=displayTablesize;i++){
              for(int     i=0;i<displayTablesize;i++){
                   BigDecimal share = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc();
                   String name =  wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName();
                   percentage = share.floatValue();
                   dupePercentage = dupePercentage + percentage;
                   if(name!=null && share!=null){                    
                        Zst_Hr_Nominee nominee = new Zst_Hr_Nominee();
                        nominee.setAddr(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
                       manager1.reportSuccess(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());               
                        nominee.setDob(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());     
                        manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());               
                        nominee.setGuard(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());     
                       manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());               
                        nominee.setName(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
                       manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());                    
                        nominee.setPerc(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
                       manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
                        nominee.setRelat(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());     
                       manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());               
                        DispTList.add(nominee);     
                   wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
              if((dupePercentage)!=100)
              wdComponentAPI.getMessageManager().reportException(
                        "The sum of the share Percentages is not 100. Modify the percentages accordingly",true);
              wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
              IWDMessageManager manager = wdComponentAPI.getMessageManager();
              String beginDate = wdContext.currentOutput_NomineeElement().getBegda();
              manager.reportSuccess(wdContext.currentOutput_NomineeElement().getBegda());
              String endDate=wdContext.currentOutput_NomineeElement().getEndda();
              manager.reportSuccess(wdContext.currentOutput_NomineeElement().getEndda());
              wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setBegda(beginDate);
              wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setEndda(endDate);          
              wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
              wdComponentAPI.getMessageManager().reportSuccess(operation);     
              wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();
              wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Ins_Mod_Input();           
              //wdContext.currentContextElement().setTableReadOnly(false);
         catch(Exception e){
              e.getMessage();
        //@@end
    The following code section can be used for any Java code that is
    not to be visible to other controllers/views or that contains constructs
    currently not supported directly by Web Dynpro (such as inner classes or
    member variables etc.). </p>
    Note: The content of this section is in no way managed/controlled
    by the Web Dynpro Designtime or the Web Dynpro Runtime.
      //@@begin others
      int nomineeTableSize = 0;
      int displayTablesize = 0;
      String operation= null;
      int size=5;
    // float dupePercentage=0;
      //String mod_op="MOD";
      //@@end
    content of obsolete user coding area(s) -
    //@@begin obsolete:javadoc:onActionSave(ServerEvent)
    //  /** Declared validating even
    Component controller code
    // This file has been generated partially by the Web Dynpro Code Generator.
    // MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
    // ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
    package com.gmr.ess;
    // IMPORTANT NOTE:
    // ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
    // BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
    // AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPP).
    // OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
    // A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
    // OF IMPORT STATEMENTS.
    //@@begin imports
    import java.util.Iterator;
    import com.gmr.ess.wdp.IPrivateAPP;
    import com.gmr.pck.Bapi_Employee_Getdata_Input;
    import com.gmr.pck.Bapip0002B;
    import com.gmr.pck.Z_Hrfm_Nominee_Disp_Input;
    import com.gmr.pck.Z_Hrfm_Nominee_Ins_Mod_Input;
    import com.gmr.pck.Zst_Hr_Nominee;
    import com.sap.lcr.api.util.SetProfileConnect;
    import com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException;
    import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
    //@@end
    //@@begin documentation
    //@@end
    public class APP
    Logging location.
      private static final com.sap.tc.logging.Location logger =
        com.sap.tc.logging.Location.getLocation(APP.class);
      static
        //@@begin id
        String id = "$Id$";
        //@@end
        com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
    Private access to the generated Web Dynpro counterpart
    for this controller class.  </p>
    Use <code>wdThis</code> to gain typed access to the context,
    to trigger navigation via outbound plugs, to get and enable/disable
    actions, fire declared events, and access used controllers and/or
    component usages.
    @see com.gmr.ess.wdp.IPrivateAPP for more details
      private final IPrivateAPP wdThis;
    Root node of this controller's context. </p>
    Provides typed access not only to the elements of the root node
    but also to all nodes in the context (methods node<i>XYZ</i>())
    and their currently selected element (methods current<i>XYZ</i>Element()).
    It also facilitates the creation of new elements for all nodes
    (methods create<i>XYZ</i>Element()). </p>
    @see com.gmr.ess.wdp.IPrivateAPP.IContextNode for more details.
      private final IPrivateAPP.IContextNode wdContext;
    A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
    Represents the generic API of the generic Web Dynpro counterpart
    for this controller. </p>
      private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdControllerAPI;
    A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
    Represents the generic API of the Web Dynpro component this controller
    belongs to. Can be used to access the message manager, the window manager,
    to add/remove event handlers and so on. </p>
      private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
      public APP(IPrivateAPP wdThis)
        this.wdThis = wdThis;
        this.wdContext = wdThis.wdGetContext();
        this.wdControllerAPI = wdThis.wdGetAPI();
        this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
      //@@begin javadoc:wdDoInit()
      /** Hook method called to initialize controller. */
      //@@end
      public void wdDoInit()
        //@@begin wdDoInit()
        //$$begin Service Controller(1490375209)
    //    wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(new Z_Hrfm_Nominee_Ins_Mod_Input());
         Z_Hrfm_Nominee_Ins_Mod_Input input = new Z_Hrfm_Nominee_Ins_Mod_Input();
         input.addNominee(new Zst_Hr_Nominee());
         wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(input);
        //$$end
        //$$begin Service Controller(-932523997)
        wdContext.nodeZ_Hrfm_Nominee_Disp_Input().bind(new Z_Hrfm_Nominee_Disp_Input());
        //$$end
        //$$begin Service Controller(-368783613)
        wdContext.nodeBapi_Employee_Getdata_Input().bind(new Bapi_Employee_Getdata_Input());
        //$$end
        //@@end
      //@@begin javadoc:wdDoExit()
      /** Hook method called to clean up controller. */
      //@@end
      public void wdDoExit()
        //@@begin wdDoExit()
        //@@end
      //@@begin javadoc:wdDoPostProcessing()
    Hook called to handle data retrieval errors before rendering.
    After doModifyView(), the Web Dynpro Framework gets all context data needed
    for rendering by validating the contexts (which in turn calls the supply
    functions and supplying relation roles). In this hook, the application
    should handle the errors which occurred during validation of the contexts.
    Using preorder depth-first traversal, this hook is called for all component
    controllers starting with the current root component.
    Permitted operations:
    - Flushing model queue
    - Creating messages
    - Reading context and model data
    Forbidden operations:
    - Invalidating model data
    - Manipulating the context
    - Firing outbound plugs
    - Creating components
    @param isCurrentRoot true if this is the root of the current request
      //@@end
      public void wdDoPostProcessing(boolean isCurrentRoot)
        //@@begin wdDoPostProcessing()
        //@@end
      //@@begin javadoc:wdDoBeforeNavigation()
    Hook before the navigation phase starts.
    This hook allows you to flush the model queue and handle any
    errors that occur. Firing outbound plugs is allowed in this hook.
    Using preorder depth-first traversal, this hook is called for all component
    controllers starting with the current root component.
    @param isCurrentRoot true if this is the root of the current request
      //@@end
      public void wdDoBeforeNavigation(boolean isCurrentRoot)
        //@@begin wdDoBeforeNavigation()
        //@@end
      //@@begin javadoc:wdDoApplicationStateChange()
    Hook that informs the application about a state change.
    <p>
    This hook is called e.g. to tell the application that will be
    <ul>
    <li>left via a suspend plug and therefore should go into a suspend/sleep
         mode with minimal need of resources. errors that occur. Firing
         outbound plugs is allowed in this hook.
    <li>left due to a timeout and could write it's state to a data base if the
         user comes back later on
    </ul>
    The concrete reason is available via IWDApplicationStateChangeInfo
    <p>
    <b>Important</b>: This hook is called for the top level component only!
    @param stateChangeInfo contains the information about the nature of the state change
    @param stateChangeReturn allows the application to ask for a different state change.
           The framework is allowed to ignore it considering i.e. the current resources situation.
      //@@end
      public void wdDoApplicationStateChange(com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeInfo stateChangeInfo, com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeReturn stateChangeReturn)
        //@@begin wdDoApplicationStateChange()
        //@@end
      //@@begin javadoc:executeBapi_Employee_Getdata_Input()
      /** Declared method. */
      //@@end
      public void executeBapi_Employee_Getdata_Input( )
        //@@begin executeBapi_Employee_Getdata_Input()
        //$$begin Service Controller(1705750894)
        IWDMessageManager manager = wdComponentAPI.getMessageManager();
         Iterator itrGetData = null;
                             Bapip0002B out = null;
        try
          wdContext.currentBapi_Employee_Getdata_InputElement().modelObject().execute();
          wdContext.nodeOutput().invalidate();
           itrGetData = wdContext.currentOutputElement().modelObject().getPersonal_Data().iterator();
           while (itrGetData.hasNext()) {
               out = (Bapip0002B) itrGetData.next();
          empNo = out.getPerno();
          wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().setPernr(empNo);
         wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setPernr(empNo);
    //      manager.reportSuccess(empNo);
         //wdThis.executeZ_Hrfm_Nominee_Disp_Input();
        catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
        //$$end
        //@@end
      //@@begin javadoc:executeZ_Hrfm_Nominee_Disp_Input()
      /** Declared method. */
      //@@end
      public void executeZ_Hrfm_Nominee_Disp_Input( )
        //@@begin executeZ_Hrfm_Nominee_Disp_Input()
        //$$begin Service Controller(-366407911)
        IWDMessageManager manager = wdComponentAPI.getMessageManager();
        try
          wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().modelObject().execute();
          wdContext.nodeOutput_Nominee().invalidate();
        catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
        //$$end
        //@@end
      //@@begin javadoc:executeZ_Hrfm_Nominee_Ins_Mod_Input()
      /** Declared method. */
      //@@end
      public void executeZ_Hrfm_Nominee_Ins_Mod_Input( )
        //@@begin executeZ_Hrfm_Nominee_Ins_Mod_Input()
        //$$begin Service Controller(1524028406)
        IWDMessageManager manager = wdComponentAPI.getMessageManager();
        try
          wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().modelObject().execute();
          wdContext.nodeOutput_nominee_ins_mod().invalidate();
        catch(WDDynamicRFCExecuteException e)
          manager.reportException(e.getMessage(), false);
        //$$end
        //@@end
    The following code section can be used for any Java code that is
    not to be visible to other controllers/views or that contains constructs
    currently not supported directly by Web Dynpro (such as inner classes or
    member variables etc.). </p>
    Note: The content of this section is in no way managed/controlled
    by the Web Dynpro Designtime or the Web Dynpro Runtime.
      //@@begin others
      String empNo = null;
      //@@end
    Suman
    Edited by: sumankumar kurimilla on Dec 23, 2008 9:26 AM

    Hi,
    I have checked from RFC side that is working fine only java app its not working can you tell any thing needs to be changed from my application end.
    Please check in Savedata action.
    Regards,
    Suman
    Edited by: sumankumar kurimilla on Dec 23, 2008 11:01 AM

Maybe you are looking for