Access SAP BW from Java

Hello,
I need to build a Java web application that can collect and display data from various SAP BWs.
Write operations are not required. What is the easiest way to do that?
I found that SAP Open Hub Service lets you extract the data to a CSV file or a relational table.
Assuming I go the way of creating a relational table, the following questions arise:
- Where are those tables stored? Still within SAP BW or in an external relational DBMS (e.g. an Oracle database)?
- How can I access those tables from within my Java code (just through a standard JDBC driver)?
- Who initiates the population of those tables?
- Can I trigger the extraction at a given time from within my java code?
- If so, can I hand in filter critera, so that the table is populated only with data that matches my filter, or do I need to extract all data to the relational table and then filter at the next step?
- Can I have a timer in the SAP BW that creates the table on a certain schedule (e.g. once per day)?
What other (easier) options are there to achieve this task?
Thanks,
MARK
Edited by: M. Arnold on Aug 17, 2010 9:50 AM

Mark,
What you can look at are :
1. Use a JDBC connector to connect to the database directly - this has some obvious disadvantages because the data would have to be linked with the SID tables , text tables and Dimension tables for cubes which makes the process extremely cumbersome
2. Use Openhub to extract to a relational table and access the same - possible , but you have two steps in between - openhub to update table and then access the table while maintaining data consistency - this might become a maintenance nightmare once you heavily use this concept
3. Use web services - there are standard web services like query_view_data and rfc_read_tale which you can use - these web services are SOAP based and you should be able to use the same in your JAVA application
4. Use the BI JAVA SDK to connect to the backend through an API supported by SAP - this would be easy to use - the SDk should be available on SCN or on the support marketplace and you shoiuld be able to use the same quite easily
5. Use JCO and build the application using NWDS where you have native connectivity to SAP BW using JCO
6. Use Web Dynpro JAVA to develop your application where you should be able to access the necessary APIs wherever required.
Edited by: Arun Varadarajan on Aug 17, 2010 8:15 PM

Similar Messages

  • Access SAP Tables from Java Program

    Hi All,
    We have a requirement to integrate attendance portal(which is done in java) with SAP.
    Our problem is how to access SAP tables from a Java program?
    Database is Sybase.
    Please suggest us a good solution.
    Thanks in advance...

    Did you go through Sap Help?
    Calling BAPIs from Java - BAPI User Guide CA-BFA) - SAP Library
    Regards,
    Philip.

  • JMS: can I access SAP messages from extenal Java

    - Can I access SAP Messages from an external (non-SAP) java program?
    - Do I use JNDI or can I call using a jar file from my java invocation?
    - Do I have to define a queue (or does SAP JMS have queues)
    - What port do I use?
    Thanks

    Hi John,
    > - Can I access SAP Messages from an external
    > (non-SAP) java program?
    >
    Yes, you can use the JMS provider on the Web AS from a standalone java program.
    > - Do I use JNDI or can I call using a jar file from
    > my java invocation?
    You connect your remote java client to the server by getting an InitialContext. The you lookup the JMS resources (such as Topic- or Queue ConnectionFactory, etc.) from the JNDI. You can have a look at <a href="http://help.sap.com/saphelp_nw04/helpdata/en/25/bf8f44540c469abc19fb6ac3ac7885/frameset.htm">this</a> page for more info.
    >
    > - Do I have to define a queue (or does SAP JMS have
    > queues)
    >
    The JMS Provider on the Web AS provides default connection factories that you can use to create a topic ot queue. The lookup strings you have to use are
    jmsfactory/default/TopicConnectionFactory
    for topics and
    jmsfactory/default/QueueConnectionFactory
    for queues.
    > - What port do I use?
    >
    You use the P4 port (50004 by default for instance number 00) when obtaining the InitialContext with this code:
    java.util.Properties properties = new Properties();
    // set the properties of the connection
    properties.put("Context.INITIAL_CONTEXT_FACTORY", "com.sap.engine.services.jndi.InitialContextFactoryImpl");
    properties.put(Context.PROVIDER_URL, "<Server_Host>:<p4_port>");
    properties.put("Context.SECURITY_PRINCIPAL", "Administrator");
    properties.put("Context SECURITY_CREDENTIALS", "admin_password");
    // start initial context with the properties specified
    InitialContext context = new InitialContext(properties);
    Hope that helps!

  • Run SAP transaction from Java?

    I'm looking for answers for two questions:
    1) Can I run an SAP transaction from Java & capture the result either in a file or table.. or any such structure?
    2) Can I run an ABAP report directly from Java? and then capture the result as well? I realise that I can use the JCO to run any RFC enabled function module..? But what about a report itself.? Can I run the report behind an SAP transaction directly from Java?
    I need this information urgently, and would appreciate any help on this.

    Hi Deepika,
    I think the requirement you have asked is quite complex and there is no solution as far as i have know.
    You can use BAPI to run SAP Transactions for example BAPI_MATERIAL_DISPLAY will take you to MM03 transaction when you pass a valid material number to it.
    When i searched for the same i ended up with no solution,
    but got a good link which gave some idea
    http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296869_idx25_off25,00.html
    Go through that link that might be helpful.
    Thanks & Regards,
    Kathir~

  • Accessing SAP ECC6 from EP

    Dear All,
    Our Netweaver EP developer is requesting for SAP_ALL to access sap ecc6 system.
    Are there any standard role from sap to support RFC call from Netweaver AS to SAP ECC6.
    in reality the requirement is only to make web based application for editing personal user information.
    Thanks and Regards
    Syed Saifuddin

    Hi Jurjen Heeck
    I think my knowledge is very less so I did not express the requirement in my question.
    Application built on Netweaver EP is a java web based application it can connect with Dev or Qty or Prd.
    But for connecting to any system the Netweaver Server need a username in SAP.
    now during development I can create a user having SAP_ALL in Development System.
    Now the same application need to connect to Quality and then to Production.
    So in Quality I want to restrict the user to only T-Code used in the portal application and those require for RFC communication.
    I want to know is there any standard Role or T-Code so I can assign it to user to run application from EP.
    Regards
    Syed Saifuddin

  • XMLAnalysis Error while trying to execute a MDX query on MS SSAS - Accessing the cube from Java through Olap4j driver

     Am trying to access MS SSAS data cube from Java through olap4j driver(through msmdpump.dll). I am able to connect , but when I try to execute a query, i am getting the below error: Please help
    me out . (I tested the http://XXXX/OLAP/msmdpump.dll in MS Excel , and it is working fine)
    org.olap4j.OlapException: XMLA provider gave exception: <soap:Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <faultcode>
    XMLAnalysisError.0xc10a0004
    </faultcode>
    <faultstring>
    The CRASHDWHSRG cube either does not exist or has not been processed.
    </faultstring>
    <detail>
    <Error Description="The CRASHDWHSRG cube either does not exist or has not been processed." ErrorCode="3238658052" HelpFile="" Source="Microsoft SQL Server 2012 Analysis Services">
    </Error>
    </detail>
    </soap:Fault>

    See my other answer where you asked this same question on another thread
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/22dfc400-668d-4bd4-b76d-7c6b9ddda47a/msmdpumpdll-not-getting-registered?forum=sqlanalysisservices
    http://darren.gosbell.com - please mark correct answers

  • "access denied" error from Java Web Start

    I can successfully download the jar file, but always have error message "access denied" when the java application tries to open a local file in C:\temp\poc1.xml.
    I can successfully execute the java application from DOS,but failed when using Java Web Start. The error message is as follows:
    Java Web Start Console, started Wed Nov 28 16:30:31 PST 2001Java 2 Runtime Environment: Version
    1.3.1 by Sun Microsystems Inc.java.security.AccessControlException: access denied
    (java.io.FilePermission C:\temp\poc1.xml read)     at
    org.apache.xerces.framework.XMLParser.parse(Unknown Source)     at
    org.apache.xerces.framework.XMLParser.parse(Unknown Source)     at
    com.hotlocker.client.HLSessionParser.parse(Unknown Source)     at
    com.hotlocker.client.UploadDownloadClient.uploadFiles(Unknown Source)     at
    com.hotlocker.client.UploadDownload.main(Unknown Source)     at
    java.lang.reflect.Method.invoke(Native Method)     at
    com.sun.javaws.Launcher.executeApplication(Unknown Source)     at
    com.sun.javaws.Launcher.executeMainClass(Unknown Source)     at
    com.sun.javaws.Launcher.continueLaunch(Unknown Source)     at
    com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)     at
    com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)     at
    com.sun.javaws.Launcher.run(Unknown Source)     at java.lang.Thread.run(Unknown Source)

    Hi,
    you can't get a file like in a "normal" app
    because a JWS-app runs in the restricted
    sandbox environment by default.
    So you either sign your app with a digital certificate
    or you use a special FileOpenService (JNLP-API).
    You could also put the file into the app-jar and
    load it by a classloader.
    Regards,
    Mathias

  • Calling SAP Webservice from JAVA ME bad response time

    Hello together,
    I'm calling a SAP RFC as a Webservice from JAVA ME (Netbeans 6.8). The stub classes I've generated with the Sun Wireless Toolkit. The RFC function stores entries in a SAP database table. The call of the websevice with transmitting the data and the database update in SAP works fine, but I got the response message from SAP with a delay of 40 seconds.
    Does anyone know why there is so a long delay in the response and how to fix it?

    hi,
    is this reproducible or was it just the first call to that service?
    it usually occurs that once you call a webservice for the first time, some of the programs (be it your application programs or the even the SOAP runtime itself) required have not been compiled until that and so they are compiled during the webservice call.
    This leads to slow response times even time-outs. The effect vanishes once all sources are compiled (i.e. depending on the complexity of your calls after one to a few calls to that service).
    So, if the slow response times persist, you should turn on debugging in SICF and see where time is spent...
    my 2 cents,
    anton

  • ADF mobile: access app preferences from java

    Hi,
    Jdev 11.1.2.3.0 + mobile extension.
    Where I can find example code or documentation to access preferences (configured in adfmf-application.xml) from java code?
    regards
    Peter

    Thanks!
    It's following part of the document:
    "At the Java layer, an EL value expression is resolved using the following
    approach:
    String val =
    AdfmfJavaUtilities.evaluateELExpression("#{preferenceScope.feature.f0.vendor}")
    regards
    Peter

  • Access SAP data from xMII 12.1 without RFC or JCO

    Hi All,
    Is it possible to access/get data from SAP in xMII without RFC/ JCO call?
    Let me know if there is other option available..
    Regards,
    Sachin

    Sachin,
    As far my knowledge goes the primarily used forms of achieving MII to ERP connectivity,
    1) MII -- ERP (via RFC, IDOC's, BAPI's)
    2) MII -- PI(XI) -- ERP
    3) MII -- ESR -- ERP (Web-services)
    But, I completely concur with Mike on this, you do not need to create any function modules unless you have no other choice.
    Check this link for List of Bapi's available and their description
    [BAPI List|http://www.sapbapi.com/bapi-list/]
    If none of the BAPI's really meets your requirement then you can go for "RFC_READ_TABLE" this RFC accepts the SAP table name and desired column names. (in a way you will be accessing the SAP DB you are looking for...)
    Yet, if none of the above options suffices your requirement only then you go for writing a custom Function module.
    [Writing Function Module|http://abaplovers.blogspot.com/2008/02/creating-function-module-in-sap-abap.html]
    Good Luck!!
    Regards,
    Adarsh

  • Accessing  table type from JAVA

    Hi Experts,
    We are making a custom copy of the std FM COM_BPUS_ORG_CONTPERS_REGISTER .
    It is observed that Tables are obsolete and we should not use them in custom function modules.
    I can pass a table type in import parameter and export parameter.
    Can we access a table type from java layer.
    Also, note that this STANDARD function module has parameter IT_BUSINESSPARTNERROLE_ORG which has table type BU_ROLE_T.
    Is it possible to access this?
    Note:- This Function module is not getting called in standard web shops.
    Please let me now how i can access this table type for hava while calling FM so as to input or retrieve valus from it.
    Regards
    Antony

    The issue with you is more than accessing a table type.
    You said:
    This Function module is not getting called in standard web shops.
    For function modules that are not called as a part of the standard flow, you have to develop your own simple BOM, BO, BEI, BE classes and methods to call the custom RFC - the whole nine yards. See the extension guide and see the Extension Demos 2 and 3 for reference.
    See the sample JCO calls from Java to understand how to access the table types.

  • How to access physical files from java platform

    Hello All,
    We have one JDE Word Writer program, which export the order master data in the DB2/400 Physical files.
    We want to access this data from our java program (reside on windows platform). I am wondering how we can do that. I got one hint that can be accessed by ODBC connection. But I am unable to get the correct ODBC driver. I am looking for correct driver to access the data.
    If some one has done this already, please help me. Or suggest me any alternate way.
    Dinesh

    Can use File class to write code to examine and manipulate file.
    Tutorial: http://java.sun.com/docs/books/tutorial/essential/io/file.html

  • Accessing SAP BW from a Third party reporting Tool.

    Hi,
    We are trying to acess SAP BW using a third party tool for reporting purpose.
    We need a url to access SAP BW (something like http://host:13080/sap/bw/xml/soap/xmla
    SAP BW should have fully functional Web services interface (XMLA Standard  protocols)).
    Presently our SAP BW has only ABAP Stack installed and no Java Stack.
    To get a URL as mentioned above do we need a Java Stack to be installed?
    I am not a SAP developer and hence need a confirmation on the above question.
    Some documentation associated would also be usefull.
    Thanks and regards

    Thanks for the response
    May be you are telling abt SAP GUI
    the url for it is like
    http://<fully_qualified_hostname>:<http_port>/sap/bc/gui/sap/its/webgui/!
    But I need to use that URL to connect to SAP BW which needs some XMLA protocol.
    Any suggestions on same..
    Thanks and regards

  • How to access system calls from java program?

    i am having a doubt regarding accessing system calls from a Java program like accessing unix system calls from a c program.

    Runtime.getRuntime().exec("line command here");
    example:
    Runtime.getRuntime().exec("ls -la");

  • Accessing SAP backend from j2ee without entrprise portal

    Hi All,
    I have a requirement which is migrating the applications hosted on tomcat server to SAP web AS and accessing the SAP ERP system from the web application.As of now i have two options one is importing the web application into NWDS and creating a webdynpro application or creating j2ee application.
    <b>Now my doubt is how do i access sap ERP system from the application(I dont have any enterprise portal which should have made my job easy by creating JCO destinations and accessing them in the webdynpro application)</b>
    Please let me know how to access backend from j2ee or webynpro from NWDS without Enterprise portal
    Thanks
    Bala

    Hi,
    you could use native JCo.
    More her: http://service.sap.com/connectors
    Rgds
    Markus

Maybe you are looking for

  • Error while executing Tranx CRM_IC

    Hi All, I am getting following error while executing  CRM_IC The runtime repository could not be interpreted An exception occurred during the internal HTTP communicationException Class CX_BSP_WD_HTTP_RESPONSE_ERROR Text: The HTTP Response Had the Sta

  • SSIS package fails because of excel connection manager when deploying package from development to production

    Hello, When I move the package from development to production package fails due to excel connection manager. Error message--- Message Executed as user: Answers\Administrator. ...lt: 0x80040154  Description: "Class not registered".  End Error  Error:

  • How can we add field PRCT Grp to FBL3N T.code or is it possible through cus

    Hi,     Can we add field profit center group in FBL3N T.CODE. I know profit center is already exist, but is there any way to add this field i.e profit center group in the above t.code(fFBL3N). or Is there any other Transaction code which is similar t

  • WRE54G Ver.3 Setup Wizard

    I have lost my Setup CD for the WRE54G Ver.3 and it is not available for download on the Support and Services page (although there are Setup Wizards for Ver.1 and Ver.2). Would you please provide access to this Wizard.

  • Updating Bridge for CS6

    Updates are downloading but it asks me to close Bridge (Bridge.exe) but program is not open and running. What to do?