Recreating the BAPI Explorer in Java

Hi
I'm using JCo to try to recreate something like the BAPI Explorer in a java program.
I can do something like the alphabetical view by using SWO_QUERY_API_OBJTYPES to get all objects, and then calling SWO_QUERY_API_METHODS to get the BAPIs on those objects.
Has anyone any idea what SAP functions I would use to create the hierarchical view rather than the alphabetical view?
TIA
Ian

did you try http://ifr.sap.com
Regards
Raja

Similar Messages

  • How to stop the information bar cmoing in the Internet Explorer with java

    hai all,
    iam new to this forum and posting a question on java application where i had a problem.
    I work in a software company. we have developed an application and it is in production and we had a small problem. we have deifferent kinds of reports te users can get dynamicalty based on theirn requet parameters. so when we are deployingthe application on server and accessing it from the client machine(bothe the server and client are diferent i mean different machines) they get an information bar that
    "To help protect your security, Internet Explorer blocked this site from downloading files to your computer. Click here for options". and for this we have given them the solutions for setting the security features for the
    Internet Explorer . but they want it to be done thru program such that they dont want to see that message. i need a small help for this.
    It would be very help ful for me in my carreer if i get a solution for this.

    I'm not 100% sure, but doesn't all applets have the same popup bar? I guess you can tell your customers to turn off their popup blocker beforehand. (This is what my uni does with WebCT Vista)

  • The BAPI Explorer

    Hi !
    Because there are often posts of the kind "... ist there a BAPI for..." I'd now like to post a little help for all who'd like to work with BAPIs.
    There a very good tool in the SAP-System.
    It's T-CODE is BAPI . It is the SAP-BAPI-Explorer.
    In this transaction you can find all the SAP-BAPIs, the parameter descriptions and the documentation.
    That may help in many cases...
    Regards
    Rainer
    Some points would be nice if that helped a bit.

    Hi Rainer,
    Generally people dont wanna take the extra bit of effort to look into SAP.
    Actually there are many places where one can find useful info on BAPI.
    Btw a usefull link http://www.planetsap.com/LIST_ALL_BAPIs.htm
    There is also www.ifr.com which gives details of BAPIS.
    Cheers
    VJ
    Ofcourse i always like to look into the tcode BAPI as u have mentioned.
    Message was edited by: Vijayendra  Rao

  • When i run my 10g form the internet explorer shows java exception.

    when i run my 10g form the internet explorer shows an exception.
    java.lang.ClassNotFound: oracle.forms.engine.Main
    can anyone help me?

    Press 5 in the jinit console to get a full exception list.
    Regards
    Grant

  • BAPI explorer functions with java

    I am a newbie in SAP.
    I have tested out some sample JCO programs. Then worked fine.
    Now I want to go for some more.
    Is it possible to implement applications like BAPI explorer with JCo ?
    Basically I want to be able to list all the BAPIs with JCo ?
    I have tried "RFC_FUNCTION_SEARCH" with "*" entry for all input values and
    the output was null. 
    How do I list all the BAPIs with JCo (Java Program)
    Thanks !!!!

    I was asking so obvious question with simple answer.
    I have figured it out and it worked great. It's been a week since I started JCo program.
    Anyway my problem was RFC_FUNCTION_SEARCH returns output in a table.
    So I had to look up the table for result message.
    Now I am asking another ? I have searched the forum already and couldn't find the answer.
    How do I create the hierarchical view of BAPI with JCo ?
    Basically I want to implement something like BAPI explorer (tree navigator) with Java.

  • I can't see release business object in bapi explorer.

    Hi,
    i can't see my business object in bapi explorer which is already released.
    Regards,
    Gurprit

    Hello Gurprit
    I am not sure whether customer BAPIs are displayed in the BAPI explorer at all. However, you could try to push the <i><b>button with the filter icon</b></i> and choose option "<b>All </b>(BAPIs)".
    Regards
      Uwe

  • BAPI not showing in BAPI Explorer

    HI,
    I have just created a BAPI, but it is not being shown in the BAPI Explorer. Are there any specific checks that I can perform to make sure that everything was created in the correct manner? And how do I get the BAPI to display in BAPI Explorer?
    Regards,
    Munish

    HI,
    You can use the BAPI explorer to get a step by step instruction / checklist in how to create a BAPI. In the BAPI explorer select the Project tab.
    When the Business object has been checked and the documentation created, the following steps must be carried out:
    1) Release the BAPI function module (in the Function Builder).
    2) Release the business object type (in the BOR ObjectType -> Change release status to -> Implemented ).
    3) Release the BAPI as a method in the BOR (Release the methods you has created - Set the cursor on the method then Edit -> Change release status -> Object type component -> To released )
    4) For potential write BAPIs: Release the IDoc and its segments
    You can now display the BAPI in the BAPI Explorer:
    Assign the Points if this is helpful
    Regards
    Sudheer

  • Open an Explorer from Java

    How i can open the default explorer from Java and redirect it to an especific URL?

    here is a code snippet that might help.
       public StringBuffer getMainPage (String host, String port, boolean sendToBrowser)
          String       url  = "http://" + host + ":" + port;
          String       line = "";
          StringWriter sw   = new StringWriter();
          // send it.
          post(line, url, sw);
          try
             if ( sendToBrowser )
                // send the default browser to the proper page for this host
                String cmd = "rundll32 url.dll,FileProtocolHandler " + url;
                // System.out.println("cmd =" + cmd );
                Process p = Runtime.getRuntime().exec(cmd);
          catch ( Exception e )
             // e.printStackTrace();
          // System.out.println(" output ='" + sw.toString() + "'" );
          if (sw.toString().length() != 0)
             return sw.getBuffer();
          else
             return null;
       }

  • BAPI Explorer

    Hi
    I am new to the BAPI Explorer.
    I am trying to create an inbound IDOC PORDCR101 to create a po
    i need to know what the required fields to be filled in are
    also what the values are to be put in some of the fields
    for example DOC_TYPE  for a purchase order should this be PO
    where can i find this info.
    can the BAPI Explorer show me this?
    thank you in advance

    hi,
    >>>>can the BAPI Explorer show me this?
    of course
    just find the bapi for PO creation undet materials management
    double click on it and go to documentation
    then you will find all sample fileds
    btw for document type, material, organization data
    go to ME23N for an old PO or ask MM consultant
    and fill the same IDOC values as shown in the BAPI doc
    as simple as that
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • How do I recreate the Java plug-in that I deleted after I uninstalled my old version of Java?

    I used to have 2 plug-ins for Java. Now I only have 1, the Java Deployment Toolkit, which was blocked by Firefox. I deleted the other, somehow, as part of my uninstalling of my old version of Java. After I installed the latest version of Java, I expected that the deleted plug-in would reappear and that it would have the latest version information. This did not occur. One of my favorite websites no longer works correctly. My current version of Java is the Standard Edition, Version 7, Update 45 (build 1.7.0_45-b18). Please help me recreate the plug-in and/or (re)install the appropriate version of Java. Thank you.

    Hmmm, it's strange that Java isn't in the Control Panel. When you view by Categories, it's usually in Programs as Java (32-bit).
    But my question was just whether the DLL file is in its customary location. Is it back there again now?
    Assuming so, could you step through a few different checks:
    '''(1) Add-ons page &mdash; disabled plugins'''
    Check to make sure Java(TM) Platform SE 7 is not set to "Never Activate" because that disables the plugin and hides it from websites.
    Either:
    * Ctrl+Shift+a
    * orange Firefox button (or Tools menu) > Add-ons
    In the left column, click Plugins. Check the grayed out area at the bottom.
    ''If there's no sign of it on the Add-ons page...''
    '''(2) Confirm that Firefox is scanning the registry for plugins'''
    Firefox finds the Java plugin from a registry entry. Some users have the scanning turned off for some reason. Here's how to check and fix that:
    (1) In a new tab, type or paste '''about:config''' in the address bar and press Enter. Click the button promising to be careful.
    (2) In the filter box, type or paste '''scan''' and pause while the list is filtered
    (3) If '''plugin.scan.plid.all''' is not set to its default value of true, double-click it to toggle it back to the default.
    If you changed this setting, exit and restart Firefox to trigger another scan.
    If you check the Add-ons page again, success?
    ''If Firefox is set to scan but still does not find Java and list it on the Add-ons page...''
    '''(3) Remove Firefox's plugin registry file'''
    Sometimes the pluginreg.dat file becomes corrupted. You can remove it and have Firefox re-scan for plugins. As a side effect, any plugins you have disabled on the Add-ons page probably will be re-enabled, so you'll need to go back to that page one more time.
    Open your current Firefox settings (AKA Firefox profile) folder using
    Help > Troubleshooting Information > "Show Folder" button
    Leaving that window open, switch back to Firefox and Exit (either Firefox button > Exit or File menu > Exit)
    Pause while Firefox finishes its cleanup, then rename '''pluginreg.dat''' to something like pluginreg.old
    Restart Firefox. (If you want to restore your previous non-private session, use History > Restore Previous Session.)
    When you return to the Add-ons page, is Java finally there?

  • Can we change the setting of Internet Explorer by Java Script?

    Can we change the setting of Internet Explorer by java script?.
    For e.g: I need to make the "Initialize and script control not marked as safe" as enabled by using java script code.
    Please suggest me is it possible?
    Thanks,
    Manisha

    Thanks everybody.
    My requirement is to push data of a grid to Excel by clicking a button. I have written code in javascript. But if the option in Internet Explorer "Initialize and script controls not marked as safe" is disabled , i am not able to push data to Excel.
    It is possible only this option is enabled.
    So tried to push data by write code: document.appletname.saveAsCSVFile();
    But i am not getting data in Excel in correct format.
    It is coming as : first row: Column name1, " column name 2",...
                             2nd row: value1, "value2",.....
    Any ideas on this?
    Thanks,
    manisha

  • In firefox, the video from website "tv.vu.edu.pk" is not displaying even i have installed the latest version of JAVA. There rotates a circle around java monogram every time but video is not playing even it is working fine with internet explorer

    In firefox, the video from website "tv.vu.edu.pk" is not displaying even i have installed the latest version of JAVA. There rotates a circle around java monogram every time but video is not playing even it is working fine with internet explorer

    It's not working here as well with Java 6 U25 on Linux.

  • In BAPI Explorer Create Webservice in Tools is missing

    Hello,
    I've exactly the same Problem posted here:
    Re: Unable to see Create Web Service option in Tools tab in BAPI Explorer
    >I am trying to create a Web service for existing BAPI (FlightBooking) in BAPI explorer. Go To BAPI Explorer-->Hierarchical>Basis Components>ABAP Workbench, Java IDE and Infrastructure--
    >FlightBooking After selecting FlightBooking, check the Tools tab Then you should be able to see Create Web Service option. But, I am unable to see the Create Web service option in Tools tab. What could be the problem. Did some one encounter a problem like this before?
    The post was marked as answered but like others mentioned before, this
    is still unresolved. Maybe some can help.
    Kind regards, Ute.
    [Attached Screenshot|http://i49.tinypic.com/14defcg.jpg]

    Hi,
    thanks, for this hint. Sorry but I installed fresh and to hack in the tables can't be the right solution. I don't think SAP suggest to access Database direct to enable or to have a feature.
    Also, with the other way to access the wizard its only possible to create web services for a single function, but not for a object.
    Or how to create for all Business Partners BAPI's / Methods one Service?
    Kind regards, Ute.
    I've added also a Screenshot of the BAPITOOLS Table, i guess first row is the Wizard. Is there something missing or wrong? At least it's not disabled.
    [BAPI Tools Table|http://img97.imageshack.us/img97/2508/bapitoos.jpg]

  • OC4J: marshalling does not recreate the same data structure onthe client

    Hi guys,
    I am trying to use OC4J as an EJB container and have come across the following problem, which looks like a bug.
    I have a value object method that returns an instance of ArrayList with references to other value objects of the same class. The value objects have references to other value objects. When this structure is marshalled across the network, we expect it to be recreated as is but that does not happen and instead objects get duplicated.
    Suppose we have 2 value objects: ValueObject1 and ValueObject2. ValueObject1 references ValueObject2 via its private field and the ValueObject2 references ValueObject1. Both value objects are returned by our method in an ArrayList structure. Here is how it will look like (number after @ represents an address in memory):
    Object[0] = com.cramer.test.SomeVO@1
    Object[0].getValueObject[0] = com.cramer.test.SomeVO@2
    Object[1] = com.cramer.test.SomeVO@2
    Object[1].getValueObject[0] = com.cramer.test.SomeVO@1
    We would expect to see the same (except exact addresses) after marshalling. Here is what we get instead:
    Object[0] = com.cramer.test.SomeVO@1
    Object[0].getValueObject[0] = com.cramer.test.SomeVO@2
    Object[1] = com.cramer.test.SomeVO@3
    Object[1].getValueObject[0] = com.cramer.test.SomeVO@4
    It can be seen that objects get unnecessarily duplicated – the instance of the ValueObject1 referenced by the ValueObject2 is not the same now as the instance that is referenced by the ArrayList instance.
    This does not only break referential integrity, structure and consistency of the data but dramatically increases the amount of information sent across the network. The problem was discovered when we found that a relatively small but complicated structure that gets serialized into a 142kb file requires about 20Mb of network communication. All this extra info is duplicated object instances.
    I have created a small test case to demonstrate the problem and let you reproduce it.
    Here is RMITestBean.java:
    package com.cramer.test;
    import javax.ejb.EJBObject;
    import java.util.*;
    public interface RMITestBean extends EJBObject
    public ArrayList getSomeData(int testSize) throws java.rmi.RemoteException;
    public byte[] getSomeDataInBytes(int testSize) throws java.rmi.RemoteException;
    Here is RMITestBeanBean.java:
    package com.cramer.test;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import java.util.*;
    public class RMITestBeanBean implements SessionBean
    private SessionContext context;
    SomeVO someVO;
    public void ejbCreate()
    someVO = new SomeVO(0);
    public void ejbActivate()
    public void ejbPassivate()
    public void ejbRemove()
    public void setSessionContext(SessionContext ctx)
    this.context = ctx;
    public byte[] getSomeDataInBytes(int testSize)
    ArrayList someData = getSomeData(testSize);
    try {
    java.io.ByteArrayOutputStream byteOutputStream = new java.io.ByteArrayOutputStream();
    java.io.ObjectOutputStream objectOutputStream = new java.io.ObjectOutputStream(byteOutputStream);
    objectOutputStream.writeObject(someData);
    objectOutputStream.flush();
    System.out.println(" serialised output size: "+byteOutputStream.size());
    byte[] bytes = byteOutputStream.toByteArray();
    objectOutputStream.close();
    byteOutputStream.close();
    return bytes;
    } catch (Exception e) {
    System.out.println("Serialisation failed: "+e.getMessage());
    return null;
    public ArrayList getSomeData(int testSize)
    // Create array of objects
    ArrayList someData = new ArrayList();
    for (int i=0; i<testSize; i++)
    someData.add(new SomeVO(i));
    // Interlink all the objects
    for (int i=0; i<someData.size()-1; i++)
    for (int j=i+1; j<someData.size(); j++)
    ((SomeVO)someData.get(i)).addValueObject((SomeVO)someData.get(j));
    ((SomeVO)someData.get(j)).addValueObject((SomeVO)someData.get(i));
    // print out the data structure
    System.out.println("Data:");
    for (int i = 0; i<someData.size(); i++)
    SomeVO tmp = (SomeVO)someData.get(i);
    System.out.println("Object["+Integer.toString(i)+"] = "+tmp);
    System.out.println("Object["+Integer.toString(i)+"]'s some number = "+tmp.getSomeNumber());
    for (int j = 0; j<tmp.getValueObjectCount(); j++)
    SomeVO tmp2 = tmp.getValueObject(j);
    System.out.println(" getValueObject["+Integer.toString(j)+"] = "+tmp2);
    System.out.println(" getValueObject["+Integer.toString(j)+"]'s some number = "+tmp2.getSomeNumber());
    // Check the serialised size of the structure
    try {
    java.io.ByteArrayOutputStream byteOutputStream = new java.io.ByteArrayOutputStream();
    java.io.ObjectOutputStream objectOutputStream = new java.io.ObjectOutputStream(byteOutputStream);
    objectOutputStream.writeObject(someData);
    objectOutputStream.flush();
    System.out.println("Serialised output size: "+byteOutputStream.size());
    objectOutputStream.close();
    byteOutputStream.close();
    } catch (Exception e) {
    System.out.println("Serialisation failed: "+e.getMessage());
    return someData;
    Here is RMITestBeanHome:
    package com.cramer.test;
    import javax.ejb.EJBHome;
    import java.rmi.RemoteException;
    import javax.ejb.CreateException;
    public interface RMITestBeanHome extends EJBHome
    RMITestBean create() throws RemoteException, CreateException;
    Here is ejb-jar.xml:
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <enterprise-beans>
    <session>
    <description>Session Bean ( Stateful )</description>
    <display-name>RMITestBean</display-name>
    <ejb-name>RMITestBean</ejb-name>
    <home>com.cramer.test.RMITestBeanHome</home>
    <remote>com.cramer.test.RMITestBean</remote>
    <ejb-class>com.cramer.test.RMITestBeanBean</ejb-class>
    <session-type>Stateful</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    </ejb-jar>
    And finally the application that tests the bean:
    package com.cramer.test;
    import java.util.*;
    import javax.rmi.*;
    import javax.naming.*;
    public class RMITestApplication
    final static boolean HARDCODE_SERIALISATION = false;
    final static int TEST_SIZE = 2;
    public static void main(String[] args)
    Hashtable props = new Hashtable();
    props.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
    props.put(Context.PROVIDER_URL, "ormi://lil8m:23792/alexei");
    props.put(Context.SECURITY_PRINCIPAL, "admin");
    props.put(Context.SECURITY_CREDENTIALS, "admin");
    try {
    // Get the JNDI initial context
    InitialContext ctx = new InitialContext(props);
    NamingEnumeration list = ctx.list("comp/env/ejb");
    // Get a reference to the Home Object which we use to create the EJB Object
    Object objJNDI = ctx.lookup("comp/env/ejb/RMITestBean");
    // Now cast it to an InventoryHome object
    RMITestBeanHome testBeanHome = (RMITestBeanHome)PortableRemoteObject.narrow(objJNDI,RMITestBeanHome.class);
    // Create the Inventory remote interface
    RMITestBean testBean = testBeanHome.create();
    ArrayList someData = null;
    if (!HARDCODE_SERIALISATION)
    // ############################### Alternative 1 ##############################
    // ## This relies on marshalling serialisation ##
    someData = testBean.getSomeData(TEST_SIZE);
    // ############################ End of Alternative 1 ##########################
    } else
    // ############################### Alternative 2 ##############################
    // ## This gets a serialised byte stream and de-serialises it ##
    byte[] bytes = testBean.getSomeDataInBytes(TEST_SIZE);
    try {
    java.io.ByteArrayInputStream byteInputStream = new java.io.ByteArrayInputStream(bytes);
    java.io.ObjectInputStream objectInputStream = new java.io.ObjectInputStream(byteInputStream);
    someData = (ArrayList)objectInputStream.readObject();
    objectInputStream.close();
    byteInputStream.close();
    } catch (Exception e) {
    System.out.println("Serialisation failed: "+e.getMessage());
    // ############################ End of Alternative 2 ##########################
    // Print out the data structure
    System.out.println("Data:");
    for (int i = 0; i<someData.size(); i++)
    SomeVO tmp = (SomeVO)someData.get(i);
    System.out.println("Object["+Integer.toString(i)+"] = "+tmp);
    System.out.println("Object["+Integer.toString(i)+"]'s some number = "+tmp.getSomeNumber());
    for (int j = 0; j<tmp.getValueObjectCount(); j++)
    SomeVO tmp2 = tmp.getValueObject(j);
    System.out.println(" getValueObject["+Integer.toString(j)+"] = "+tmp2);
    System.out.println(" getValueObject["+Integer.toString(j)+"]'s some number = "+tmp2.getSomeNumber());
    // Print out the size of the serialised structure
    try {
    java.io.ByteArrayOutputStream byteOutputStream = new java.io.ByteArrayOutputStream();
    java.io.ObjectOutputStream objectOutputStream = new java.io.ObjectOutputStream(byteOutputStream);
    objectOutputStream.writeObject(someData);
    objectOutputStream.flush();
    System.out.println("Serialised output size: "+byteOutputStream.size());
    objectOutputStream.close();
    byteOutputStream.close();
    } catch (Exception e) {
    System.out.println("Serialisation failed: "+e.getMessage());
    catch(Exception ex){
    ex.printStackTrace(System.out);
    The parameters you might be interested in playing with are HARDCODE_SERIALISATION and TEST_SIZE defined at the beginning of RMITestApplication.java. The HARDCODE_SERIALISATION is a flag that specifies whether Java serialisation should be used to pass the data across or we should rely on OC4J marshalling. TEST_SIZE defines the size of the object graph and the ArrayList structure. The bigger this size is the more dramatic effect you get from data duplication.
    The test case outputs the structure both on the server and on the client and prints out the size of the serialised structure. That gives us sufficient comparison, as both structure and its size should be the same on the client and on the server.
    The test case also demonstrates that the problem is specific to OC4J. The standard Java serialisation does not suffer the same flaw. However using the standard serialisation the way I did in the test case code is generally unacceptable as it breaks the transparency benefit and complicates interfaces.
    To run the test case:
    1) Modify provider URL parameter value on line 15 of the RMITestApplication.java for your environment.
    2) Deploy the bean to the server.
    4) Run RMITestApplication on a client PC.
    5) Compare the outputs on the server and on the client.
    I hope someone can reproduce the problem and give their opinion, and possibly point to the solution if there is one at the moment.
    Cheers,
    Alexei

    Hi,
    Eugene, wrong end user recovery.  Alexey is referring to client desktop end user recovery which is entirely different.
    Alexy - As noted in the previous post:
    http://social.technet.microsoft.com/Forums/en-US/bc67c597-4379-4a8d-a5e0-cd4b26c85d91/dpm-2012-still-requires-put-end-users-into-local-admin-groups-for-the-purpose-of-end-user-data?forum=dataprotectionmanager
    Each recovery point has users permisions tied to it, so it's not possible to retroacively give the users permissions.  Implement the below and going forward all users can restore their own files.
    This is a hands off solution to allow all users that use a machine to be able to restore their own files.
     1) Make these two cmd files and save them in c:\temp
     2) Using windows scheduler – schedule addperms.cmd to run daily – any new users that log onto the machine will automatically be able to restore their own files.
    <addperms.cmd>
     Cmd.exe /v /c c:\temp\addreg.cmd
    <addreg.cmd>
     set users=
     echo Windows Registry Editor Version 5.00>c:\temp\perms.reg
     echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\ClientProtection]>>c:\temp\perms.reg
     FOR /F "Tokens=*" %%n IN ('dir c:\users\*. /b') do set users=!users!%Userdomain%\\%%n,
     echo "ClientOwners"=^"%users%%Userdomain%\\bogususer^">>c:\temp\perms.reg
     REG IMPORT c:\temp\perms.reg
     Del c:\temp\perms.reg
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT]
    This posting is provided "AS IS" with no warranties, and confers no rights.

  • Customer BAPI can't be viewed from BAPI explorer

    I have tested my customer BAPI in SE80 and SWO1 to be implementable, but not released, can we see it in BAPI explorer?

    Hello Jolin,
    Check this wiki to know about required steps to make available the customer BAPI in BAPI explorer.
    A step by step guide for beginners on user defined BAPI creation - ABAP Development - SCN Wiki

Maybe you are looking for