Execute BAPI and bind input through inerfaceview

Hi all,
i am getting vendor no as URL parameter through start plug.
i need this parameter to give as input param to BAPI, here is my problem, i have to run the BAPI with this param and show the output data when user fires event in another app.
The parameter will some directly into interfaceview and then i have to bind the data in the custom cntroller, can i call execute bapi method of custom controller in the default mehod of interfaceview, in this case how can i pass the url param from interface view to custom controller before execution.
anyone has similar app or have some idea.
Chris.

Hi Chris,
          In the interface view properties add the custom controller .then in the default plug of ur application u have the parameter then pass that parameter to the method which can be called in the default plug by getting the contoller usage..
wdThis.wdGetControllerName().MethodName();
In the methodName pass the parameter u get from start plug and write the code for BAPI execution....
Regards,
Yash

Similar Messages

  • Execute BAPI for different input values and dispaly data in a table

    Hi all,
    I have a specific problem about executing BAPI multiple times for different input values and didplay result in a table.
    I am using the code similar to the following logic.
    Bapi_Mydata_Input in = new Bapi_Mydata_Input();
    wdContext.nodeBapi_Mydata_Input().bind(in);
    String in = wdContext.currentperdataElement.getnumber();
    in.setDestination_From(10)
    wdThis.wdGetMydataComponentController().executeBapi_Mydata_Input();
    in.setDestination_From(20)
    wdThis.wdGetMydataComponentController().executeBapi_Mydata_Input();
    in.setDestination_From(30)
    wdThis.wdGetMydataComponentController().executeBapi_Mydata_Input();
    And I want to display the data in a single table. I want the result in a table for Bapi execution based on input parameters passed 10,20 30.
    But I am getting the table data only for the input parameter 30.I mean its actually display the data in table only for the last input parameter.
    So May I ask you all if you know the solution for this problem.PLease advise me with some tips .or sample code is very much appreciated.I promise to award points to the right answer/nice advises.
    Regards
    Maruti
    Thank you in advance.

    Maruti,
    It seems that WDCopyService replaces content of node, rather then adds to content.
    Try this:
    Bapi_Persdata_Getdetailedlist_Input frelan_in = new Bapi_Persdata_Getdetailedlist_Input();
    wdContext.nodeBapi_Persdata_Getdetailedlist_Input().bind(frelan_in);
    final Collection personalData = new ArrayList();
    String fr1 = wdContext.currentE_Lfa1Element().getZzpernr1();
    frelan_in.setEmployeenumber(fr1);
    wdThis.wdGetFreLanReEngCompController().executeBapi_Persdata_Getdetailedlist_Input();
    WDCopyService.copyElements(wdContext.nodePersonaldata(), wdContext.nodeNewPersonaldata());
    for (int i = 0, c = wdContext.nodePersonaldata().size(); i < c; i++)
      personalData.add( wdContext.nodePersonaldata().getElementAt(i).model() );
    String fr2=wdContext.currentE_Lfa1Element().getZzpernr2();
    frelan_in.setEmployeenumber(fr2);
    wdThis.wdGetFreLanReEngCompController().executeBapi_Persdata_Getdetailedlist_Input();
    WDCopyService.copyElements(wdContext.nodePersonaldata(), wdContext.nodeNewPersonaldata());
    for (int i = 0, c = wdContext.nodePersonaldata().size(); i < c; i++)
      personalData.add( wdContext.nodePersonaldata().getElementAt(i).model() );
    wdContext.nodeNewPersonalData().bind( personalData );
    Valery Silaev
    EPAM Systems
    http://www.NetWeaverTeam.com

  • BAPI and rfbibl00 inputs

    Hi, I’m new in apab programming so a have couple questions for you gays. Problem is next:
    I have to made inputs from non sap system to SAP FI and SD module. Everything mast be done with BAPI’s, also I must use RFBIBL00.
    For start my questions are:
    So may question is which is easiest way to do this?
    Can input in RFBIBL00 be a string?
    Thanks in advance!!!
    Edited by: B.I.G. on Dec 19, 2007 12:01 AM

    Hi,
    I think you've posted this in wrong groups.
    Regards
    Raja Sekhar

  • How to execute BAPIs by getting the input from the user through the browser

    Hi,
    I have created a simple xMII transaction using BAPI. It is a simple BAPI with one input. Now i want the transaction to be executed by getting the input from the user through browser. Once the user enters the value and clicks on a button, I want the result of the BAPI to be displayed in the grid. How to link the BAPI/transaction with applet/Javascript coding.
    Thanks.

    The first thing I would recommend would be for you to collaborate with your colleague Vinodh, since his/her recent thread is very similar to yours:  Calling a BAPI from web page
    In your case, the iGrid applet will run the Xacue query template and automatically display the results from your output parameter.
    I would encourage you to take a look at the sticky thread at the top of the forum entitled "MII Manufacturing Templates Updated" since this MII project is full of samples for you and your colleague to learn from.

  • Binding input and Output node elements

    Hi all,
    Binding Input and Output nodes of a model node.
    Most of the time, we create a object of the input model node and then,
    bind that object with wdContext.
    Do we need to bind output node objects too in RFC Models?
    Regards
    Neha Singh

    Hi Neha,
    There is no need to create/bind the model node. you can execute a bapi using classes.
    To execute a bapi, you should do the following things.
    1. Import the RFC and create the model.
    2. Create an object of the input class of the bapi
    e.g. :
    Zbapi_Test_Input  commision_Input = new Zbapi_Testn_Input();
    3. Set the input
    commision_Input.setSpart(division);
    4. execute the bapi
    commision_Input.execute();
    5. Disconnect the model
    commision_Input.modelInstance().disconnectIfAlive();
    6. Get the output. Create an object for output class
    Zbapi_Test_Output output = commision_Input.getOutput();
    String commission = output.getCommision();
    Hope this helps you.

  • Easy Question:Select many rows from a table and execute BAPI for these rows

    Hi Experts,
    I have created one WD project. The WD project fetches some records of backend using BAPI and displays in a table. I have to select some rows from the table and then execute BAPI for selected rows.
    How I can select multiple records from the table and then execute another BAPI for selected rows.
    Regards,
    Gary

    Hi,
    In the Node which you binded to the table create one more attribute of type boolean.
    For example your node is as below:
    //Table Node
    TableNode
    > Att1
    > Att2
    > isSelected(boolean) - Newly created attribute for this requirement.
    //Result Node contains the elements selected in TableNode
    ResultNode
    >Att1
    >Att2
    Now in the table create one more Column with Checkbox as tablecell editor. Now bind this boolean attribute to that check box.
    Now in the code you can get the selected rows by user as below:
    for(int i=0;i<TableNode().size();i++)
      if(wdContext.nodeTableNode().getTableNodeElementAt(i).getIsSelected()==true)
        IPrivateTestView.IResultNode element=wdContext.createResultNodeElement();
        element.setAtt1(wdContext.nodeTableNode().getTableNodeElementAt(i).getAtt1());
        element.setAtt2(wdContext.nodeTableNode().getTableNodeElementAt(i).getAtt2());
       wdContext.nodeResultNode().addElement(element);
    Regards,
    Charan

  • Hi, i have tryed to install os x leopard, (its a old imac) , disk utility is greyed out , my install dvd cant find any hdd to install on , my only way to format and configure is through terminal but dont know what commands to execute

    hi, i have tryed to install os x leopard, (its a old imac) , disk utility is greyed out , my install dvd cant find any hdd to install on , my only way to format and configure is through terminal but dont know what commands to execute...
    i tryed diffrent commands such as diskutil eraseDisk JHFS+ Disk1
    diskutil list , wont show up my harddrive , i now its functionally cause it shows up in disk utility with name and i can get info about it , but everything is greyed out can only switch between "erase , partition , recover , Raid ,....
    when i click the apple in the top left corner the whole menu is greyed out... what to do ?  help me please
    Sincerly AppleNoob92
    p.s i have no experience in apple imac's at all never used before, but im kinda windows nerd so computers i understand but this imac make my insane, cant seem to find any solutions anywhere on the WWW....

    Your HD may be crashed, so you probably should use the oringinal install discs to run Apple Hardware Test in extended mode. If error codes appear this confirms a hardware failure. In addition you cannnot repair the HD using Disk Utility from the startup disk, you have to use the origninal Install discs that shipped with the computer or the most up-to-date version of OS X on a disc that you have.

  • ABAP program to take input parameter from variant, execute KSB1 and export

    Hi Friends,
    My client asking  change request in CO
    The Change request is "ABAP program to take input parameter from variant, execute KSB1 and export the output into an excel sheet and park the document in a designated location"
    Pls let me know  actually i am a FICO consultant what i can do in this change request
    Thanks,
    Santi

    Hi
    First I dont you would need to create a ABAP to generate the report in Excel.
    You can look at this option. Execute the report Go to->Change Layout, Click on the view option, On the Preferred View Select Microsoft Excel, Save the layout, provide a layout name with /XYZ.
    Now when you want to execute KSB1 with excel, just execute KSB1 with /XYZ layout, it would open in Excel, export to which ever location you want.
    Or just simply save the report as Excel using the Excel button on the tool bar.
    Regards,
    Suraj

  • "catching" a prompt for user input and answering it through zenity?

    I'm trying to write a script (or multiple scripts) that will allow me to use command-line only applications via user defined actions in my file manager without having to open a terminal. Now I realize this basic functionality is already available, but as it stands I am unable to respond to command-line prompts for user input without opening a terminal. Is it possible to write a shell script that would act as a wrapper and allow me to use zenity (or another popup program) to respond to such queries?
    For example if I used a command-line program that prompted me for a password, could I "catch" that prompt with a shell script and answer it through another program, such as zenity?
    Last edited by falconheart (2011-01-16 22:37:25)

    The easier way to do this is to collect the info with zenity first, then pass it on the command line.  If the program insists on prompting, then you could try feeding it the info with redirection if it accepts it from stdin.  For example
    command < info.txt
    where info.txt is a temp file created by your script which contains whatever you want entered into the prompts.  This will work in some cases.

  • What is BAPI?How to create a BAPI? Difference b/w BAPI and BDC

    Hi all,
    Can some one help me regarding...
    What is an BAPI?where it is used?
    How to create a BAPI?
    What is the difference between BAPI and BDC Program?
    Iam in Initial stage regarding BAPI concept.
    Please respond me soon.
    Thanks,
    Lee

    HI,
    Here it is:
    BAPI Programming Guide
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
    BAPI User Guide
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
    http://techrepublic.com.com/5100-6329-1051160.html#
    http://www.sap-img.com/bapi.htm
    http://www.sap-img.com/abap/bapi-conventions.htm
    http://www.sappoint.com/abap/bapiintro.pdf
    http://ifr.sap.com/catalog/query.asp
    STEP BY STEP for BAPI
    http://sap-img.com/abap/bapi-step-by-step-guidance.htm
    <b>DIFFERENCE between BAPI and BDC</b>
    BDC is traditional way of coding the transactions for uploading the legacy data, Sap is changing all transactions to Object oriented programming. Since BAPI is Object based and supports all the new transactions it is preffered over BDC. More over BAPI's process data faster than BDC.
    BAPI is a SAP-supplied function module with a defined interface, which allows you to interact with various business objects. SAP guarantees the integrity of your database for anything updated using a BAPI. BDC is a method of driving screens programatically, for updating SAP data. BAPIs are generally faster than BDCs.
    A BAPI is faster because it is updating the DB "directly". Whereas BDC with call
    transaction goes through the whole screen sequence like any user would do, simply put, fills screens.
    However - there is not always a BAPI for a particular transaction and not all functions that are performed by a transaction can be done by a BAPI. BDCs produce error sessions which can be processed by the user, while BAPIs don't.
    First choose the BAPI ,if there is no BAPI go for BDC.
    why BAPI first not BDC.
    SAP comes up with Change in Version, so each and every time they will change the screens/number etc.
    so you have to change your BDC programs accordingly.
    and also Most of the Latest versions transactions are Enjoy Transaction. they will not support BDC's in Background.
    But Using BAPI's No such disadvantages.
    A BAPI is faster because it is updating the DB "directly" through ABAP code.
    A BDC with call transaction goes through the whole screen sequence like any user would do, simply put, it is filling screens.
    Actually it depends on your requirement but BAPI is more effective as it is standard function module to update SAP databases rather than BDC.
    using bdc over bapi has advantages and also disadvantages
    advantages:
    1. using bdc we can upload data into database tables using 2 ways
    1. foreground -
    means that user interaction is there for each and every record.
    2. back ground -
    no user interaction and tasks are done automatically.
    using these two options is one of the greatest advantage over bapi.
    2. in bdc call transaction method we can control the display of screen resolution which is not possible with bapi's
    3. bdc is generally used for transferring of large amount of data than bapi's
    4.session method of bdc allows us to place data directly in application server and then finally transfered into sap database tables
    disadvantages:
    1.bdc is only used for sap to sap system data transferring
    2. bapis's generally works more faster than bdc's
    3. using bapis we can connect to remote systems and also to non sap systems.
    if useful reward some points.
    A BAPI is a method of a SAP Business Object. BAPI enables SAP and third party applications to interact and integrate
    with each other at the Business Object / Process level.
    Check this link to know more about BAPI.
    http://www.sapgenie.com/abap/bapi/example.htm
    http://sappoint.com/abap/
    Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided since the early versions of R/3. BDC is not a
    typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and so it is not bi-directional.
    BDC works on the principle of simulating user input for transactional screen, via an ABAP program. Typically the input comes in the form
    of a flat file. The ABAP program reads this file and formats the input data screen by screen into an internal table (BDCDATA). The
    transaction is then started using this internal table as the input and executed in the background.
    In ‘Call Transaction’, the transactions are triggered at the time of processing itself and so the ABAP program must do the error handling.
    It can also be used for real-time interfaces and custom error handling & logging features. .
    To know more about BDC,
    check the link.
    http://sappoint.com/abap/
    Main differences are...
    In case of bdc data transfer takes place from flat file into sap system ie the file existing in sap system to sap sytem
    where is bapi's r remotly enabled function modules which are assigned to some business objects n used to transfer the data between different business partners who are using different systems other than sap.
    not only that...
    when you plan to upgrade your system version then bdc willnot support those upgradations where as bapi's will support.
    <b><REMOVED BY MODERATOR></b>
    Manish
    Message was edited by:
            Alvaro Tejada Galindo

  • JCo Calling BAPI and generate htm and xml page in output

    Friends,
            I am developing an Application in Java using JCO. The requirement there is a list of BAPI's are available for the selection, once the user select the BAPI , it will dynamically generates the screen of input parameters and than result will be stored in .htm and .xml file. It works for many BAPI's, but for few of that it won't work. Will you help me out why its gng to create problem for other BAPI's.
    e.g.
    BAPI_SALESORDER_GETLIST
    BAPI_PO_GETITEMS
    BAPI_MATERIAL_GET_DETAIL and few more...
    It doesn't generate the proper output of these BAPI's.
    Thanks.
    HItesh Shah

    Tanveer,
    There are many files so i wont be able to put the codes but let me tell u how i m doing.
    1) Giving the options to user in which server they want to connect.
    2) After connection has been established there is a plain text file available which consists the list of BAPI's which will be displayed in the list box.
    3) After user select any BAPI and press a button named 'DETAILS' it will display the Import/Export/Tables list.
    4) After clicking on Next , i m generating a dynamic screen for input parameters.
    5)Here is this step also one problem is that i have to write all the zeros, can u tell me if i want to pad the zeroes automatically what i will do.Becz every time the input parameters of each BAPI would be different.
    6) After getting input parameters i will generate the .htm and .xml file using writeXML and writeHTML function.
    7) I want to show them generated xml and html file in iexplore using clicking button...Can u tell me how to achieve that.
    Here is the code through which my xml and htm file will be generated.
    import com.sap.mw.jco.*;
    import java.io.*;
    import java.util.*;
    import java.math.*;
    import java.util.Iterator;
    // Quick imports
    import com.jxml.quick.QDoc;
    import com.jxml.quick.Quick;
      class RFCG {
          static final String SID = "R3";
          String conDetails []=new String[6];
          String ErrorMsg;
          int i=0;
          String LogonDetail;
          int Rows;
          IRepository repository;
          String InputName[]=new String[200];
          String InputType[]=new String[200];
          String OutputName[]=new String[200];
          String OutputType[]=new String[200];
          String OutputINTTYPE[]=new String[200];
          String OutputField[]=new String[200];
          String TableName[]=new String[500];
          String TableType[]=new String[500];
          String TableINTTYPE[]=new String[500];
          String FIELDNAME[]=new String[500];
          //String FIELDNAME[]=new String[20];
          String FIELDINTTYPE[]=new String[500];
          String OutputFieldType[]=new String[200];
          String OutputFieldINTTYPE[]=new String[200];
          String InputParFieldName[][]=new String[200][200];
          String InputParFieldDatatype[]=new String[200];
          String InputParFieldIntType[]=new String[200];
          int l,j,k,m,n,o,t,q;
           /** public static void main(String [] args){
                  new RFCG("SAPR3.txt");
             public RFCG(String LogonDetail,String BAPI)
                      this.LogonDetail=LogonDetail;
                      cleanUp();
                      try {
                                 /* for xml */
                                 // Initialize Quick
                                  QDoc schema = PersonSchema.createSchema();
                              // Convert input XML to Java
                                  QDoc doc = Quick.parse(schema, "input.xml");
                             // Get the result
                                  Person person = (Person)Quick.getRoot(doc);
                               for (Iterator i = person.getClientList().iterator(); i.hasNext(); ) {
                                            Client number = (Client)i.next();
                                           // String type=number.getType();
                                            //System.out.println(type);
                                           // System.out.println(LogonDetail+"LOGO");
                                            if(LogonDetail.equals(number.getType())){
                                                   //conDetails[0]=number.getType();
                                                   conDetails[0]=number.getSapclient();
                                                   conDetails[1]=number.getUserid();
                                                   conDetails[2]=number.getPassword();
                                                   conDetails[3]=number.getLanguage();
                                                   conDetails[4]=number.getHostname();
                                                   conDetails[5]=number.getSystemnumber();
                                            //System.out.println("  Client Type(" + number.getType() + "):");
                                          //System.out.println("  Sapclient " + number.getSapclient());
                                          //System.out.println("  Userid  " + number.getUserid());
                                          //System.out.println("  Password " + number.getPassword());
                                          //System.out.println("  Language " + number.getLanguage());
                                          //System.out.println("  Hostname  " + number.getHostname());
                                          //System.out.println("  Systemnumber  " + number.getSystemnumber());
                                          //System.out.println("   \n  ");
                               } catch (Exception e) {
                                     e.printStackTrace();
                      Connect(LogonDetail);
                      zbapi(BAPI);
                      new BapiParameters1(InputName,InputType,OutputName,OutputType,TableName,TableType,BAPI,repository,OutputINTTYPE,FIELDNAME,FIELDINTTYPE,OutputField,OutputFieldType,OutputFieldINTTYPE,LogonDetail,InputParFieldName,InputParFieldDatatype,InputParFieldIntType);
                      for (int i = 0; i < 10; i++) {
                               //System.out.println("STRING***RFCG*******"InputName<i>'\t'+InputType<i>);
         public void Connect(String LogonDetail){
         //CustName=CustName;
      /** try{
           File myFile = new File(LogonDetail);
           FileReader fr= new FileReader(myFile);
           BufferedReader reader=new BufferedReader(fr);
           String line=null;
           while ((line=reader.readLine())!=null){
                     String[] result=line.split(":");
                     conDetails<i>=result[1];
                     System.out.println(conDetails<i>);
                     ++i;
                reader.close();
           }catch(Exception ex){
                ex.printStackTrace();
               try {
                 JCO.addClientPool( SID,           // Alias for this pool
                                    10,            // Max. number of connections
                                    conDetails[0], // SAP client
                                    conDetails[1], // userid
                                            conDetails[2], // password
                                    conDetails[3], // language
                                    conDetails[4], // host name
                                    conDetails[5] );
                 this.repository = JCO.createRepository("MYRepository", SID);
                 //System.out.println("Connected"+ repository);
               catch (JCO.Exception ex) {
                 //System.out.println("Caught an exception: \n" + ex);
                 ErrorMsg=ex.toString();
                 //new Error(ex);
                 if (ErrorMsg!=null){
                      new Error(ErrorMsg);
             protected void cleanUp() {
                           JCO.removeClientPool(SID);
    public void zbapi(String BAPI)
        JCO.Client client = null;
        JCO.Table codes = null;
        try {
          // Get a function template from the repository
          //FunctionTemplate ftemplate = repository.getFunctionTemplate(person.getRFCName());
             IFunctionTemplate ftemplate = repository.getFunctionTemplate("FUNCTION_GET");
          // if the function definition was found in backend system
          if(ftemplate != null) {
          // Create a function from the template
            JCO.Function function = ftemplate.getFunction();
            // Get a client from the pool
            client = JCO.getClient(SID);
            // Fill in input parameters
            JCO.ParameterList input = function.getImportParameterList();
            input.setValue(BAPI, "FUNCNAME");
            client.execute(function);
            // Print return message
            //JCO.Structure ret = function.getExportParameterList().getString("NAME1");
              codes = function.getTableParameterList().getTable("PRMTAB");
                 //System.out.println("ROWS:"+codes.getNumRows());
                 this.Rows=codes.getNumRows();
                 //System.out.println(this.Rows);
              //System.out.println("PTYPE" + '\t' + "PNAME" + '\t' + "FIELDNAME" + '\t' + "DATATYPE");
         for (int i = 0; i < codes.getNumRows(); i++, codes.nextRow()) {
                                  //System.out.println(codes.getString("PARAMTYPE")+ '\t' +
                                  //codes.getString("NAME") + '\t'codes.getString("FIELDNAME")
                                  //'t' +codes.getString("DATATYPE"));
                                  if (codes.getString("PARAMTYPE").equals("1")){
                                        InputName[j]=codes.getString("NAME");
                                        InputType[j]=codes.getString("INTTYPE");
                                        //InputINTTYPE[j]=codes.getString("INTTYPE");
                                        ++j;
                                  else if(codes.getString("PARAMTYPE").equals("2")){
                                             OutputName[k]=codes.getString("NAME");
                                             OutputType[k]=codes.getString("DATATYPE");
                                             OutputINTTYPE[k]=codes.getString("INTTYPE");
                                             ++k;
                                  else if(codes.getString("PARAMTYPE").equals("3")){
                                             TableName[l]=codes.getString("NAME");
                                             TableType[l]=codes.getString("DATATYPE");
                                             TableINTTYPE[l]=codes.getString("INTTYPE");
                                             ++l;
                                       /**else if(codes.getString("PARAMTYPE").equals("5")){
                                            //System.out.println("RFCGGGGG"+InputParFieldName[o]);
                                             InputParFieldName[q][o]=codes.getString("FIELDNAME");
                                             if(t==0){
                                                  t=1;
                                                  //System.out.println("RFCGGGGG"InputParFieldName[o]"           "+t);
                                                        InputParFieldDatatype[o]=codes.getString("NAME");
                                              else{
                                                   int w=o-1;
                                                   System.out.println("OoOoOooo"w"\t"+o);
                                                   if(InputParFieldDatatype[w].equals(InputParFieldDatatype[o])){
                                                  //System.out.println("RFCGGGGG"InputParFieldName[o]"           "+t);
                                                  System.out.println("yes");
                                                 else{
                                                   InputParFieldDatatype[o]=codes.getString("NAME");
                                                   ++q;
                                             InputParFieldIntType[o]=codes.getString("INTTYPE");
                                                                                ++o;
                                  else if(codes.getString("PARAMTYPE").equals("6")){
                                            if(!codes.getString("NAME").equals("RETURN")){
                                                  //if(codes.getString("NAME").equals(TableName[]))
                                                  OutputField[n]=codes.getString("FIELDNAME");
                                                  //OutputFieldType[n]=codes.getString("DATATYPE");
                                                  OutputFieldINTTYPE[n]=codes.getString("INTTYPE");
                                                  ++n;}
                                  else if(codes.getString("PARAMTYPE").equals("7")){
                                             FIELDNAME[m]=codes.getString("FIELDNAME");
                                             FIELDNAME[m]=codes.getString("DATATYPE");
                                             //System.out.println("TABLEFIELD"+FIELDNAME[m]);
                                             FIELDINTTYPE[m]=codes.getString("INTTYPE");
                                             ++m;
          else {
                //System.out.println("Function not found"  );
                   //new Error("Function not Found");
            //System.out.println("Function BAPI_SALESORDER_GETLIST not found in backend system.");
          }//if
        catch (Exception ex) {
         System.out.println("Caught an exception: \n" + ex);
         ErrorMsg=ex.toString();
              //System.out.println("2222Caught an exception: \n" + ErrorMsg);
                   if (ErrorMsg!=null)
                               new Error(ErrorMsg);
         //        new Error(ex);
        finally {
          // Release the client to the pool
                    //System.out.println("2222Caught an exception: \n" + ErrorMsg);
          JCO.releaseClient(client);
    /**protected void cleanUp() {
                  JCO.removeClientPool(SID);
    Thanks,
    Hitesh

  • Usage of update-bapi and getdetail-bapi within one view

    Hello,
    i'm a student and i'm new to webdynpro and abap. Im trying to get data through a bapi into some screens and want to update some of these inputfields back through an update-bapi.
    I get all the needed data by a getdetails-bapi  and can show the data within binded inputfields, but how could i get the infos about which field was changed and how could i implement an update through the update-bapi?
    It is possible, that a view with two inputfileds gets the data through the getdetails-bapi and after a change in this fields there will be an update through a update-bapi, after pushing a button?
    Could you give me an example code, or could you explane me a way for implementing these?
    Thanks for your help!
    John

    Hi John,
    changes made at Contexts are stored in a table WDR_CONTEXT_CHANGE_LIST. So you can retrieve the old and new values from the table.
    Please follow the below steps :
    1. Create a context node (Ex:Changes) with dict.str wdr_context_change.
    2. Then create one subnode under Changes ex(details) with two attributes old_value and new_value with the type of string.
    3. Then write the below code at any button action.
    DATA: l_ref_componentcontroller TYPE REF TO ig_componentcontroller .
        DATA: l_changes                 TYPE        wdr_context_change_list,
              l_subnode                 type ref to if_wd_context_node,
              l_subnodedata             type if_USERLOG=>element_details.
        field-symbols: <change> type wdr_context_change,
                       <new>    type data,
                       <old>    type data.
        l_ref_componentcontroller =   wd_this->get_componentcontroller_ctr( ).
        l_changes = l_ref_componentcontroller->get_changes( ).
        data: l_node type ref to if_wd_context_node.
        l_node = wd_context->get_child_node( 'CHANGES' ).
        l_node->bind_table( l_changes ).
        loop at l_changes assigning <change>.
          if <change>-old_value is not initial and <change>-new_value is not initial.
            l_subnode = l_node->get_child_node( index = sy-tabix name = 'DETAILS' ).
            assign <change>-new_value->* to <new>.
            assign <change>-old_value->* to <old>.
    *        l_subnodedata-new_value_string = cl_wdr_conversion_utils=>to_string( value = <new> ).
    *        l_subnodedata-old_value_string = cl_wdr_conversion_utils=>to_string( value = <old> ).
             l_subnodedata-new_value_string = <new>.
            l_subnodedata-old_value_string = <old>.
    *        l_subnodedata-new_value_string = 'AC'.
    *        l_subnodedata-old_value_string = 'CD'.
            l_subnode->bind_structure( l_subnodedata ).
           endif.
          endloop.
    So now your context has the changed records.
    Thanks.

  • Hi i want to execute bapi two times with different paramters....Possible

    Hi,
    i want to execute bapi twice times.Possible please explain where i put which code.Means i put bind code at doinit() method of conpopnent controller and execute bapi code in doinit() iof view. But for second time where i put bind and execute code. 
    Regards,
    Gurprit
    Edited by: GURPRIT BHATIA on Dec 17, 2007 1:24 PM

    Hi Gurprit,
    For executing the bapi second time, you can put the execute bapi code in the action of the button which is on your form. You need not write the bind code again.
    Bye
    Ankur

  • Regarding Value and Binding properties of af:inputTextBox

    Hi All,
    I am using JDeveloper 11.1.1.6.0. I want to set the value for af:inputTextBox from the backing bean.
    I observed there are two properties for this component, 'Value' and 'binding'.
    So, I thought of using 'Value' property. For this I created a property in my backing bean.
    Number textBoxValue; //Setter and getter methods for this ( I want to display numbers ans persist the same thats whay i have given as Number)
    and in one of my methods I had given,
    textBoxValue = new Number(12);
    I am able to display the value in the UI
    Here goes my queries, please clarify these.
    1) What is the need of these two properties?
    2) How can set value using the 'Binding' Property.
    3) Can I set value to the input using both properties?
    4) If 2nd point is correct then what will happen, if I set two different values to the textbox using these two components.
    Thanks & Regards,
    Ravi.

    1) Binding is uses as an EL reference that will store the component instance on a bean. This can be used to give programmatic access to a component from a backing bean, or to move creation of the component to a backing bean.
    Value represents the value of the component. If the EL binding for the "value" points to a bean property with a getter but no setter, and this is an editable component, the component will be rendered in read-only mode.
    So they are different.
    2) You don't
    3) You don't
    4) as 2) in not correct this is not relevant
    If you want to set the value of a ui component from inside a bean you have different possible solutions. Lets assume you have a binding for The component to bean. In case of a input text the bean property would be of type RichInputText. Lets the property name be myIPT. Then you set the value as myIPT.setValue("YOUR VALUE"); (if the component shows text).
    If you have bound the value property of the component to a bean attribute (using EL) you only need the change the bean attribute.
    If the value is bound to a value binding (e.g. one that was generated by dragging a VO onto the page and dropping it as form), you get the the value binding by
    // GET A METHOD FROM PAGEDEF AND EXECUTE IT
    // get the binding container
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    // get an ADF attributevalue from the ADF page definitions
    AttributeBinding attr = (AttributeBinding)bindings.getControlBinding("NAME_OF_THE_ATTRIBUT");
    attr.setInputValue("test");Timo

  • Difference betrween BAPI and RFC

    Hi All
              Can anyone tell me the difference between BAPI and RFC.
    I am unable to find it out ,except one,ie  BAPI is based on object oriented concept .
    please justify your answers with real scenerios.

    Remote Function Call:
    RFC is an SAP interface protocol. Based on CPI-C, it considerably simplifies the programming of communication processes between systems.
    RFCs enable you to call and execute predefined functions in a remote system - or even in the same system.
    RFCs manage the communication process, parameter transfer and error handling.
    http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.
    BAPI
    BAPI stands for Business API(Application Program Interface).
    A BAPI is remotely enabled function module
    ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access.
    Also they are part of Businees Objest Repository(BOR).
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects.
    You create business objects and those are then registered in your BOR (Business Object Repository)
    which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA.
    In this case u only specify the business object and its method from external system
    in BAPI there is no direct system call. while RFC are direct system call.
    Some BAPIs provide basic functions and can be used for most SAP business object types.
    These BAPIs should be implemented the same for all business object types.
    Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs.
    Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
    Difference Between BAPI and RFC
    What is the main difference between BAPI and RFC and difference between BAPI and BDC?
    BAPI is used only when it is available for the particular transaction like Delivery Sales order. but BDC can be used for any
    transaction which have screen and fields.
    BAPI is directly updated the database instead BDC run through the screen flow.
    So BAPI can't handle all the flow logic checking and enhancement put by programmer to faciliate the user requirement.
    Difference between BAPI and BDC:
    BAPI is a higher end usage for tranfering the data from SAP to non-SAP and vice-versa. for ex: if we are using VB application,where in that we want to connect to SAP and retireve the data,and then change and update the data in SAP for that purpose we can use that.
    Apart from that, we can also use it for Uploading/Downloading the data from SAP to Non-SAP like BDC, provided we have an existing BAPI for that.
    BAPI function modules will also do all the checks required for data integrity like Transactions for BDC.
    There is one more advantage using BAPI instead of BDC. When we go for upgradation, there might be pozzibility to change the screen elements for transactions depending on the requirement. In that case,our BDC pgm may or may not work (depending on the screen changes they have made). Unless and until we prepare new BDC we cant use the old BDC pgm. But in BAPI, SAP promises that they are going to keep the old BAPI and for new functionality they will provide an upgraded BAPI. Until we write a new BAPI pgm, we can use the exisitng BAPI pgm.
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA.
    In this case you only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI. It is not possible to connect SAP to Non-SAP systems to retrieve data using RFC alone. RFC can acces the SAP from outside only through BAPI and same is for vice versa access.
    RFC is the protocol used by SAP for remote communication, that is, for communications between remote (independent) systems. RFC is used for communications between two independent SAP systems, or for communications between an SAP system and a non-SAP system, such as an external application. It can also be used for communications between modules on the same system. Using the RFC interfaces you can extend the functionality of R/3 applications from an external program.
    BAPI-step by step
    http://www.sapgenie.com/abap/bapi/example.htm
    list of all bapis
    http://www.planetsap.com/LIST_ALL_BAPIs.htm
    for BAPI's
    http://www.sappoint.com/abap/bapiintro.pdf
    http://www.sappoint.com/abap/bapiprg.pdf
    http://www.sappoint.com/abap/bapiactx.pdf
    http://www.sappoint.com/abap/bapilst.pdf
    http://www.sappoint.com/abap/bapiexer.pdf
    http://service.sap.com/ale
    http://service.sap.com/bapi
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
    http://www.planetsap.com/Bapi_main_page.htm
    http://www.topxml.com/sap/sap_idoc_xml.asp
    http://www.sapdevelopment.co.uk/
    http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
    also refer these threads
    What is the difference between RFC and BAPI?.
    whats difference between rfc and bapi?
    difference between rfc & bapi
    difference between RFC and BAPi
    Difference between BAPI and RFC?
    also chk this
    http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
    regards,
    srinivas
    <b>*reward for useful answers*</b>

Maybe you are looking for

  • Is it possible to run more than one case at a time?

    Using a case structure, is it possible to have more than 1 case running at a time? I'm currently using a for loop's iteration terminal to select which case to run but each case contains a for loop with a timer delay. I want them all to run simultaneo

  • PROBLEM LOADING WEBSITES

    Hello !! I need some help ! I have searched all over the internet and can't find any help. I have a HP ENVY m6 Notebook PC running on Windows 8. After I updated Windows 8 to 8.1 some of the websites that I use wont completely load... It looks like th

  • SQLJ profile customizer

    hey guys, a newbie here....I am in desperate help here so please help! I developed my testing servlet in IBM Rational (with DB2 UDB). I deployed the EAR file onto a AIX server, someone told that I need to do some binding thingie, a script or somethin

  • Regarding Warning in SLIN

    Hi Thankx for your response. i found one more probelm in slin. SELECT SINGLE KBETR KWERT FROM KONV INTO (GV_KBETR, GV_KWERT) WHERE KSCHL = C_DTYPE AND KNUMV = LV_KNUMV. i'm using above select but in slin i'm getting warning message saying that in "se

  • How to use output type in Outbound IDOC

    Hi All, I have a requirement where I have to trigger the outbound idoc by using output type 'ZCON'.How to program this or any idea how do i acheive this...................... Please help. Thanks in Advance Shanaya