Writing a java program to access SAP tables using SAP JCO

Hi all,
       I have a requirement where I need to access the VBAK table and get some values out of it based on a query on some of it fields. I would like to know how this can be done via a Java program by utilising the SAP JCo library. Has anyone done this before? A sample program would be very helpful.
Thanks in advance!

Hi SAM,
Welcome to SDN!!!!!!
Chk this help doc.
http://help.sap.com/saphelp_nw04/helpdata/en/35/42e13d82fcfb34e10000000a114084/frameset.htm
Also chk these thread.
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8798be90-0201-0010-d093-85f728778d37
Re: How to access SAP database tables with Java (Jco)
Regards.
Maha

Similar Messages

  • Give Java Program Execute Access Only

    Hi,
    Is there a way, on windows XP, to give a java program execute access only for a certain user. This would prevent the user from reading the program, being able to copy the program, or change the program.
    Thanks for any info,
    John

    There is no way of giving "execute-only" access to a file in Windows. There is no "--x--x--x" access like Unix.
    If you can execute a file, you must be able to read it, because Windows relies strongly in "resources" (like the version resource or the icon resources) that are present in the executable file and must be read by the program.
    I believe that even in Unix you can't give "--x--x--x" access to a JAR file because it must be read by the "java" executable, instead of being directly loaded by the operating system.

  • How can we report on R/3 tables using SAP BO

    How can we report on R/3 tables using SAP BO.
    Thanks

    Hi
    you can use the CR Designer and build CR reports that access your R/3 system. Another option is to use the R/3 connector for the Data Federator which is available in the Innovation Center. Still this connector is not a product rather can be used on your own risk.
    Regards,
    Stratos
    PS: Accessing directly the tables of the underlying database(e.g oracle)  using universes and Web Intelligence is not recommended. You will not be able to decode all contents of the database tables you are accessing since in some cases R/3 encodes the data before storing them in the actual database tables.

  • Problem in accessing mseg table using MSEG~M Index.

    Hi Experts,
    I am facing problem in accessing mseg table using MSEG~M Index. I used same sequence of fields and i tried with mandt field also. but it is not taking the Index and it is going for TImeout ABAP dump.
    This are my codes used in different ways
    1.  SELECT  mjahr
             bwart
             matnr
             lifnr
             dmbtr
             kostl
             aufnr
             bukrs
             FROM mseg CLIENT SPECIFIED INTO TABLE t_mseg2
                      WHERE mandt EQ sy-mandt      AND
                            matnr NE SPACE         AND
                            werks EQ p_werks       AND
                            lgort NE '0000'        AND
                            bwart IN (122,201,262) AND
                            sobkz NE '0'
                            %_HINTS ORACLE 'INDEX("MSEG" "MSEG~M")'.
    2.   SELECT  mjahr
             bwart
             matnr
             lifnr
             dmbtr
             kostl
             aufnr
             bukrs
             FROM mseg  INTO TABLE t_mseg2
                      WHERE matnr NE SPACE         AND
                            werks EQ p_werks       AND
                            lgort NE '0000'        AND
                            bwart IN (122,201,262) AND
                            sobkz NE '0'
                            %_HINTS ORACLE 'INDEX("MSEG" "MSEG~M")'.
    3.   SELECT  mjahr
             bwart
             matnr
             lifnr
             dmbtr
             kostl
             aufnr
             bukrs
             FROM mseg INTO TABLE t_mseg2
                      WHERE matnr NE SPACE         AND
                            werks EQ p_werks       AND
                            lgort NE '0000'        AND
                            bwart IN (122,201,262) AND
                            sobkz NE '0'.                   
    The above all code is not at all taking the index in Quality server .but in Development it is taking .In Quality server it is reading all datas without using the index and going Timeout ABAP dmup
    Please, Suggest me some solutions.
    Thanks in Advance.
    Regards,
    Nandha

    Hi,
    Without NE also not working out. i am facing same problem still.
    SELECT  bwart
             matnr
             lifnr
             dmbtr
             kostl
             aufnr
             FROM mseg CLIENT SPECIFIED INTO TABLE t_mseg
                      WHERE mandt EQ sy-mandt      AND
                            werks EQ p_werks       AND
                            bwart IN (122,201,262) AND
                            mjahr EQ p_year        AND
                            bukrs EQ p_cc
                            %_HINTS ORACLE 'INDEX("MSEG" "MSEG~M")'.
    Please,check and help me out from this issue.
    Regards,
    Nandha

  • Updating A z table using sap xi

    Hi,
    I am new sap XI would like to update a z table using
    sap xi.The dataset is  a flat file as test exercise.Can
    anyone tell me how to go about it .

    Hi Deepak,
    You can also go for abap proxies (server)
    http://help.sap.com/saphelp_nw04/helpdata/en/86/58cd3b11571962e10000000a11402f/frameset.htm
    Hope it will be helpful.
    Regards
    Suraj

  • How to implement SSO to non-SAP systems using SAP logon ticket?

    Hello,
    We would like to implement Single Sign On between our SAP Netweaver system and a Siebel which is a non-SAP system using SAP logon tickets.
    Can anyone please give me some leads on this, in particular:
    1. Is there a JAVA API or an SAP plug-in that can be implemented on the Siebel machine to extract the SAP logon ticket?
    2. As the other machine might seat on a complete different domain, is it possible to implement SAP logon ticket without using cookies (perhaps through the HTTP header?
    3. In case you think using SAP logon tickets is not the best solution here I would be happy to hear any other suggestions you might have.
    Roy

    Hi,
    I'm currently using SAML as well. Unfortunately the SAP J2EE cannot work as authority (identity provider) but what you can do is using an open implementation of SAML such as opensso which is an open version of SUNs Java System access manager.
    There are a couple of other projects such as opensaml, apache's wss4j or shibboleth that might be interesting in this context.
    I just installed opensso and got it working with SAP J2EE 7.0 using SAPs JAAS SAMLLoginModule to authenticate users within SAP J2EE.
    In this scenario opensso serves as identity provider just as you need! There are a couple of Policy agents available on SUNs Download site you can use with Apache, Tomcat, JBOSS, WebSphere, Bea Web Logic etc. in order to authenticate! Otherwise you just directly authenticate against opensso. When installing opensso you can configure the type of user store you want  to use! By default it uses LDAP but you can also use different types of user store using JDBC or other mechanisms. Since you have a Directory Service you could easily connect it to your existing directory.
    There is also a way to map user ids directly in opensso by adding a uid mapping class. I created some documentation with lots of screenshots about using opensso with SAP J2EE. You can easily use opensso with any other system that supports SAML. In the case of SAP the usage is currently limited to SAML versions 1.0 and 1.1. Version 2.0 is not yet supported but should be in one of the following versions.
    Here are some links you might want to check:
    OpenSAML: https://spaces.internet2.edu/display/OpenSAML/Home
    wss4j: http://ws.apache.org/wss4j/
    shibboleth: http://shibboleth.internet2.edu/
    opensso: https://opensso.dev.java.net/
    On SDN you will find a documentation on how to connect SUN Java System Access Manager to SAP J2EE (see https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/906d9fc6-31b9-2910-1385-90edad7d7570). As I said opensso is based on the SUN Access Manager code and looks quite the same. So you can adapt this documentation in order to configure opensso or you can just ask me for the documentation.
    Hope this is helpful...
    Let me know if you need further assistance on this topic
    Cheers

  • Integration of SAP Cloud for Customer with third party / legacy / non-sap system using SAP Netweaver PI

    Hello,
    has anyone experience with the Integration of a 3rd Party System with SAP C4C using SAP Netweaver Process Integration?
    Is this a process of days, weeks or months?
    Any documentation on this?
    I am thankful for every Input!
    BR, Roman

    Roman,
    Please read through the integration guides available on the SAP service marketplace as they address this specific topic in great detail.
    http://service.sap.com/cloud4customer
    The time duration of the project depends on the business process complexity being resolved and the level of integration desired between the different enterprise solutions in the landscape.
    Thank you.

  • SAP BPC using SAP Netweaver

    Hi
    Would please somebody give me a link on how to educate myself on SAP BPC using SAP Netweaver
    Thank you very much in advance
    Zubzero

    Hi,
    You are right. The link is like MS platform only. This is because there are not much differences between the 2 platforms. Few of the differences would be
    1. BPC NW is integrated with NW BI
    2. BPF is not available in BPC NW 7.0. However, it is back in 7.5
    3. Increased dimensionality
    3. Integration with BI accelerators
    4. Improved dynamic templates
    5. Books are not available
    6. Transports are available.
    There is a book BPC 330, which will give you a better understanding of BPC NW. This book is only available on classroom trainings.
    Hope this helps.

  • How to access a table of SAP standard SAP method from external program

    Hi Friends,
    I have to access a table and modified it defined in a standard SAP method (PROCESS_INPUT_FILTER) of class (CL_HANDLE_MM).
    As we normaly do it in case of Standard program
    for example: ('(SAPLMEPO)ett[]') here we are accessing internal table ett defined in SAPLMEPO.
    so how we can do the same thing if some thing defined in standard SAP method.
    Pl. help.

    Thanks for the info guys, it will come in handy.
    I need to validate that a number is entered with zero or one decimal place, then make sure it is evenly
    divisible by .5 in order to test for whole or half numbers only. If not, I use an alert to
    display a message when the user leaves the field.
    If there is a better way to achieve this, I am all ears!
    Thank you for your time,
    Gary

  • Access ABAP Table using Java (NWDS/JCO)

    All,
    I am trying to setup a jco connection from java program through NWDS to ECC abap table.
    However I am getting the following error in NWDS:
    Exception in thread "main" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
    JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [C:\Program Files\Java\jdk1.6.0_45\bin\sapjcorfc.dll: Access is denied]. java.library.path [C:\Program Files\Java\jdk1.6.0_45\bin;.]
    and a parity error on my system:
    "Parity blocked an attempt by javaw.exe to run sapjcorfc.dll because the file is not approved.  If you require access to this file, please contact your system administrator.  Scroll down for diagnostic data."
    Here is the Java code...per the SAP website:
    package com.sap.pi.updateAbapSxmbAdminParams;
    import com.sap.mw.jco.*;
    public class ReadPiAbapTables {
      private static JCO.Client theConnection;
      private static IRepository theRepository;
      public static void main(String[] args) {
       createConnection();
       retrieveRepository(); 
       try {
        JCO.Function function = getFunction("RFC_READ_TABLE");
        JCO.ParameterList listParams = function.getImportParameterList();
        listParams.setValue("BSAUTHORS", "QUERY_TABLE");
        theConnection.execute(function);
        JCO.Table tableList = function.getTableParameterList().getTable("SXMSCONFVLV");
        if (tableList.getNumRows() > 0) {
         do {
          for (JCO.FieldIterator fI = tableList.fields();
          fI.hasMoreElements();)
           JCO.Field tabField = fI.nextField();
           System.out.println(tabField.getName()
             + ":t" +
             tabField.getString());
          System.out.println("n");
         while (tableList.nextRow() == true);
       catch (Exception ex) {
        ex.printStackTrace();
      private static void createConnection() {
       try {
        theConnection = JCO.createClient("aaa", "aaa", "aaa", "aa", "aa", "aa");
        theConnection.connect();
       catch (Exception ex) {
        System.out.println("Failed to connect to SAP system");
      private static void retrieveRepository() {
       try {
        theRepository = new JCO.Repository("saprep", theConnection);
       catch (Exception ex)
        System.out.println("failed to retrieve repository");
      public static JCO.Function getFunction(String name) {
       try {
        return theRepository.getFunctionTemplate(name.toUpperCase()).getFunction();
       catch (Exception ex) {
        ex.printStackTrace();
       return null;

    Hi Vicky,
    You need authorization to the S_TABU_DIS object, talk with the ABAP basis team about this to find the more restrictive role.
    It's not a good idea to use the RFC_READ_TABLE, for the wide permissions needed. You could think to develop a Z RFC for this.  You can check pros/cons in this document: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a83ec690-0201-0010-14ac-bd1d75e24a7d?overridelayout=t…
    Regards.

  • Access ABAP tables using NWDS Java Code

    All,
    I am planning to write a program to autmatically update is_url entries in sxmb_admin using a Java program.
    Is there a way we can access the ABAP tables using standalone Java Code? would it something like dblookup that we use in the mappings?
    Your Thoughts....
    Thanks.

    Hi Vicky - Interesting..Seems like you are trying to automate every single thing
    However you can make use of Jco to connect to ABAP tables..
    Check the below thread..
    Help on accessing tables of SAP from the Java Application
    I assume the table name is "SXMSCONFVLV" which you might have to update but not sure..

  • Standalone Program for Accessing MDM Table

    Hi,
      I am trying access to MDM table using standalone java program but it is giving error. Is it possible?
    If it is possible means tell me the steps or post sample codes.
    Thanks in advance
    Regards
    Suresh

    Hello:
    I have a piece of code here, even tough I believe it would be easier if you could explain a little more about your problem.
    First I create properties for connection. I'm using strings however this can be done also setting properties directly:
    String server = "MDMServer";
    int port  = 2005;
    String user = "admin";
    String password = "thePassword";
    String language = "Spanish [MX]"; // languaje and local you want to use
    // THen you choose the region and attempt to login. Please note that even tough I choose region US, I log as a MX user, as provided by the language property
    CatalogData mdmBridge = new CatalogData();     
    mdmBridge.SetCodeRegion("English [US]");          mdmBridge.Login(server,port,user,password,language);
    // also note that the catalogData object is the main entrance, now create an array for MDMTables:
    CMTableInfoArray tables = null;
    // and attempt to get them:
    AttributeInfoArray fields = mdmBridge.GetLinkedAttributesForTaxonomy("Categories",6,false);
    System.out.println("Counts: " + fields.GetCount());
    // Traverse:
    for (int i = 0; i < fields.GetCount(); i++)
         AttributeInfo att = fields.GetAttributeInfoAt(i);
         System.out.println("NAME: " + att.GetName());
    // In this case I'm getting a taxonomy table, such as "Categories". However you could use any other type of tables. Finally I get the contents of this table:
    // Attempt to get the categories               A2iStringArray array = new A2iStringArray();
                   array.Add("Filter");
    ResultSetDefinition rsd = new ResultSetDefinition("Categories");
    rsd.AddField("Id");
    A2iResultSet rs = mdmBridge.GetRecordsByValue(array,rsd,"Id");               
    for(int i = 0; i < rs.GetRecordCount(); i++)               {
       Value v = rs.GetValueAt(i,0);
       System.out.println(v.GetStringValue());
    Please review the MDM API for java for further info.
    I hope that helps
    Alejandro

  • Writing a java program for generating .pdf file with the data of MS-Excel .

    Hi all,
    My object is write a java program so tht...it'll generate the .pdf file after retriving the data from MS-Excel file.
    I used POI HSSF to read the data from MS-Excel and used iText to generate .pdf file:
    My Program is:
    * Created on Apr 13, 2005
    * TODO To change the template for this generated file go to
    * Window - Preferences - Java - Code Style - Code Templates
    package forums;
    import java.io.*;
    import java.awt.Color;
    import com.lowagie.text.*;
    import com.lowagie.text.pdf.*;
    import com.lowagie.text.Font.*;
    import com.lowagie.text.pdf.MultiColumnText;
    import com.lowagie.text.Phrase.*;
    import net.sf.hibernate.mapping.Array;
    import org.apache.poi.hssf.*;
    import org.apache.poi.poifs.filesystem.*;
    import org.apache.poi.hssf.usermodel.*;
    import com.lowagie.text.Phrase.*;
    import java.util.Iterator;
    * Generates a simple 'Hello World' PDF file.
    * @author blowagie
    public class pdfgenerator {
         * Generates a PDF file with the text 'Hello World'
         * @param args no arguments needed here
         public static void main(String[] args) {
              System.out.println("Hello World");
              Rectangle pageSize = new Rectangle(916, 1592);
                        pageSize.setBackgroundColor(new java.awt.Color(0xFF, 0xFF, 0xDE));
              // step 1: creation of a document-object
              //Document document = new Document(pageSize);
              Document document = new Document(pageSize, 132, 164, 108, 108);
              try {
                   // step 2:
                   // we create a writer that listens to the document
                   // and directs a PDF-stream to a file
                   PdfWriter writer =PdfWriter.getInstance(document,new FileOutputStream("c:\\weeklystatus.pdf"));
                   writer.setEncryption(PdfWriter.STRENGTH128BITS, "Hello", "World", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
    //               step 3: we open the document
                             document.open();
                   Paragraph paragraph = new Paragraph("",new Font(Font.TIMES_ROMAN, 13, Font.BOLDITALIC, new Color(0, 0, 255)));
                   POIFSFileSystem pofilesystem=new POIFSFileSystem(new FileInputStream("D:\\ESM\\plans\\weekly report(31-01..04-02).xls"));
                   HSSFWorkbook hbook=new HSSFWorkbook(pofilesystem);
                   HSSFSheet hsheet=hbook.getSheetAt(0);//.createSheet();
                   Iterator rows = hsheet.rowIterator();
                                  while( rows.hasNext() ) {
                                       Phrase phrase=new Phrase();
                                       HSSFRow row = (HSSFRow) rows.next();
                                       //System.out.println( "Row #" + row.getRowNum());
                                       // Iterate over each cell in the row and print out the cell's content
                                       Iterator cells = row.cellIterator();
                                       while( cells.hasNext() ) {
                                            HSSFCell cell = (HSSFCell) cells.next();
                                            //System.out.println( "Cell #" + cell.getCellNum() );
                                            switch ( cell.getCellType() ) {
                                                 case HSSFCell.CELL_TYPE_STRING:
                                                 String stringcell=cell.getStringCellValue ()+" ";
                                                 writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
                                                 phrase.add(stringcell);
                                            // document.add(new Phrase(string));
                                                      System.out.print( cell.getStringCellValue () );
                                                      break;
                                                 case HSSFCell.CELL_TYPE_FORMULA:
                                                           String stringdate=cell.getCellFormula()+" ";
                                                           writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
                                                           phrase.add(stringdate);
                                                 System.out.print( cell.getCellFormula() );
                                                           break;
                                                 case HSSFCell.CELL_TYPE_NUMERIC:
                                                 String string=String.valueOf(cell.getNumericCellValue())+" ";
                                                      writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
                                                      phrase.add(string);
                                                      System.out.print( cell.getNumericCellValue() );
                                                      break;
                                                 default:
                                                      //System.out.println( "unsuported sell type" );
                                                      break;
                                       document.add(new Paragraph(phrase));
                                       document.add(new Paragraph("\n \n \n"));
                   // step 4: we add a paragraph to the document
              } catch (DocumentException de) {
                   System.err.println(de.getMessage());
              } catch (IOException ioe) {
                   System.err.println(ioe.getMessage());
              // step 5: we close the document
              document.close();
    My Input from MS-Excel file is:
         Planning and Tracking Template for Interns                                                                 
         Name of the Intern     N.Kesavulu Reddy                                                            
         Project Name     Enterprise Sales and Marketing                                                            
         Description     Estimated Effort in Hrs     Planned/Replanned          Actual          Actual Effort in Hrs     Complexity     Priority     LOC written new & modified     % work completion     Status     Rework     Remarks
    S.No               Start Date     End Date     Start Date     End Date                                        
    1     setup the configuration          31/01/2005     1/2/2005     31/01/2005     1/2/2005                                        
    2     Deploying an application through Tapestry, Spring, Hibernate          2/2/2005     2/2/2005     2/2/2005     2/2/2005                                        
    3     Gone through Componentization and Cxprice application          3/2/2005     3/2/2005     3/2/2005     3/2/2005                                        
    4     Attend the sessions(tapestry,spring, hibernate), QBA          4/2/2005     4/2/2005     4/2/2005     4/2/2005                                        
         The o/p I'm gettint in .pdf file is:
    Planning and Tracking Template for Interns
    N.Kesavulu Reddy Name of the Intern
    Enterprise Sales and Marketing Project Name
    Remarks Rework Status % work completion LOC written new & modified Priority
    Complexity Actual Effort in Hrs Actual Planned/Replanned Estimated Effort in Hrs Description
    End Date Start Date End Date Start Date S.No
    38354.0 31/01/2005 38354.0 31/01/2005 setup the configuration 1.0
    38385.0 38385.0 38385.0 38385.0 Deploying an application through Tapestry, Spring, Hibernate
    2.0
    38413.0 38413.0 38413.0 38413.0 Gone through Componentization and Cxprice application
    3.0
    38444.0 38444.0 38444.0 38444.0 Attend the sessions(tapestry,spring, hibernate), QBA 4.0
                                       The issues i'm facing are:
    When it is reading a row from MS-Excel it is writing to the .pdf file from last cell to first cell.( 2 cell in 1 place, 1 cell in 2 place like if the row has two cells with data as : Name of the Intern: Kesavulu Reddy then it is writing to the .pdf file as Kesavulu Reddy Name of Intern)
    and the second issue is:
    It is not recognizing the date format..it is recognizing the date in first row only......
    Plz Tell me wht is the solution for this...
    Regards
    [email protected]

    Don't double post your question:
    http://forum.java.sun.com/thread.jspa?threadID=617605&messageID=3450899#3450899
    /Kaj

  • TIME_OUT when accessing Oracle table from SAP using native SQL

    Hi,
    I have a problem in one of my native SQL statement. It takes a long time accessing the table considering that the number of records to be retrieved is only small.
    Something happened on the Oracle system. But, stilll to be confirmed. Looking further at the issue, it seems that when the value in the where clause equated is a literal (meaning the value is not declared in DATA or CONSTANTS in the ABAP Program)
    Example
    1.
    EXEC.
    WHERE FIELD = '1'
    ENDEXEC.
    instead of
    2.
    CONSTANTS: c_1 value '1'.
    EXEC.
    WHERE FIELD = c_1
    ENDEXEC.
    i found that when the way of coding is same as Example 1, a time-out error occurs. But when in Example 2, no issue.
    Can someone explain this?
    Thanks!

    Repetitively asking the same question again and again is against the forum rules.
    Please post an explain of the SQL statement on the remote machine.
    Markus

  • Loading records from .csv file to SAP table via SAP Program

    Hi,
    I have a .csv file with 132,869 records and I am trying to load it to an SAP table with a customized SAP program.
    After executing the program, only 99,999 records are being loaded into the table.
    Is there some setting to define how many records can be loaded into a table? Or what else could be the problem?
    Pls advice.
    Thanks!!!

    hi Arun ,
    A datasource need a extract structure to fetch data .It is nothing but a temp table to hold data.
    First you need to create atable in SE11 with fields coming from CSV file.
    Then you need to write a report program to read you CSV file and populate your table in BW .
    Then you can create a datasource on top of this table .
    After that replicate and load data at PSA and use to upper flow.
    Regards,
    Jaya Tiwari

Maybe you are looking for

  • Delete from iTunes but not on iPhone

    It is my understanding that if you delete a voice memo from iTunes, it is also deleted from the iPhone. Can you avoid this? I would like some things only on my iPhone. Thanks!

  • Java Applet Not Working

    Hi, I have a crossword puzzle that doesn't seem to work when uploaded on a server. It works locally and has worked on other servers. What could be causing this not to work?

  • Search for Blank or find metadata that is empty

    Hello super-intellegent people, How do I search for all assets that have no keywords? Thanks, Jacob

  • Exporting Final Cut Pro movie onto CD for use on PC

    I am having trouble exporting my edits onto CD so I can then take it off the CD and use it on my PC in a Powerpoint presentation. I have tried using Quicktime, Sorenson 3 and AVI. I then open the disc on my PC and it's all in separate files. I would

  • Compat-oracle-rhel4-1.0-3 : oracle 9i on RHAS v.4

    I am a developer and I am installing 9.2.0.4 on RHAS v.4 I was reading about a library I needed call compat-oracle-rhel4-1.0-3. Do I need this and where do I get it ?