ISeries DB2 JDBC Adapter failure

I have a scenario where XI needs to send data to AS-400 (iSeries) DB2. To do that we installed the DB2 JDBC driver for AS-400 (jt400.jar).
However, we are getting the following error:
Receiver Adapter v2808 for Party '', Service 'Phase2Test_BusService':
Configured at 2007-07-24 16:45:37 EDT
History:
- 2007-07-24 16:45:37 EDT: Error: Accessing database connection 'jdbc:as400://10.63.248.37:8471/p2iftest' failed: DriverManagerException: Cannot establish connection to URL 'jdbc:as400://10.63.248.37:8471/p2iftest': SAPClassNotFoundException: com.ibm.as400.access.AS400JDBCDriver
We run a custom Java program to test the driver. It's working with the that. However, the same driver is failing for XI.
Please help.

Chandra,
Even in my current implementation i'm using AS400 & integrating the same with XI.
Please check whether u gave the same comm.channel properties.
JDBC Driver :com.ibm.as400.access.AS400JDBCDriver
connection :jdbc:as400://server/;errors=full
Best regards,
raj.

Similar Messages

  • 2.1ea2  iSeries DB2 jdbc driver

    Has anybody installed it and got it to work? The latest for the iSeries is jt400.jar, but I can't get it to work. It says there is a java class error.

    I'm not really sure if the iSeries migration is already covered. The DB2 connection tab is in my opinion only for DB2 UDB V8 and V9.
    Those UDB releases on LUW (Linux,Unix and Windows) have the jdbc driver installed in the DB2 home and you simply need to copy the libraries db2jcc.jar and db2jcc_license_cisuz.jar to SQL Dev and link them.
    But those drivers don't work with my iSeries V6 - I'll get an error message.
    Not sure where you saw the connection using those 2 jar files worked against an AS400 .. but if you want to test, them, you need to download DB2 Connect or a trial UDB database for Windows or Linux.

  • Create DB2 JDBC Creation Failure

    Hi all,
    I experienced what seems to be a bug in the creation of a DB2 datasource in WLS 10.3.6.
    The problem is this:
    - From the WL console I click on Services --> Data Sources
    - I click New --> Generic Data Source
    - In the first page I choose as Database type "DB2";
    - In the selection of the driver I choose "Other";
    - In the page of "Transaction Options" I don't change anything;
    - In the page of "Connection Properties" I can't insert anything but username and password for the database! I can't see the field for db name, neither the host, etc... !! Obviously, even if  I insert username and password and click Next (the button Finish is disabled), the server returns an error that i must complete the form to go on....
    I got the same issue with different browsers (IE, Firefox, Chrome).
    Down there's a printscreen of what I see in the page of "Connection Properties". The page is translated in Italian.
    I tried the same procedure on a WLP 10.3.5 installation, and it worked perfectly. In the page of "Connection properties" I can see all the fields and I can create the datasource correctly.
    Can you help me?
    Thank you.
    Giuseppe

    Chandra,
    Even in my current implementation i'm using AS400 & integrating the same with XI.
    Please check whether u gave the same comm.channel properties.
    JDBC Driver :com.ibm.as400.access.AS400JDBCDriver
    connection :jdbc:as400://server/;errors=full
    Best regards,
    raj.

  • JDBC Outbound Connection to iSeries/DB2 Error CPF4204

    One of our interfaces processes 500 messages from SAP R/3 to XI and then to a JDBC outbound adapter to an iSeries DB2 database table.  While processing this stream of messages 2 or 3 times the adapter errors with the following:
    03:12:15 (4332): Error parsing message content: Technical description "java.sql.SQLException: [SQL0901] SQL system error. Cause . . . . . :   An SQL system error has occurred.  The current SQL statement cannot be completed successfully.  The error will not prevent other SQL statements from being processed. Previous messages may indicate that there is a problem with the SQL statement and SQL did not correctly diagnose the error. The previous message identifier was CPF4204. Internal error type 3109 has occurred. If precompiling, processing will not continue beyond this statement. Recovery  . . . :   See the previous messages to determine if there is a problem with the SQL statement. To view the messages, use the DSPJOBLOG command if running interactively, or the WRKJOB command to view the output of a precompile.  An application program receiving this return code may attempt further SQL statements.  Correct any errors and try the request again."
    03:12:15 (4333): Error processing message: "java.lang.Exception: Message '43774ecc-32c8-0136-0000-00000a020034' preparation for database insert failed" - rollback DB
    Does anybody have any ideas???  We just restart the errored message and it goes through fine the second time.
    Thanks in advance,
    Chad

    thanks for your response.
    INY004 is a custom sp.
    I make it works!! i have to set on the statement (attributte access) value = {CALL LIBOBJ.SP ('P1','P2') }
    thank you very much for your time.
    Lionel

  • JDBC adapter access to iSeries DB files in libraries

    Hello,
    We try to connect to an AS400 iSeries system via JDBC adapter!!! (not a typical scenario I think!)
    The files (so called by IBM but we identify them as tables in our understanding ) are stored in libraries.
    The question is how to add this library (like a path?) into JDBC adapter and interface description.
    Adapter:
    JDBC Driver: <driver name>
    Conenction: <physical address of iSeries DB>
    LogIn data: xxx
    Interface description:
    MESSAGE
        STATEMENT   = []
        TABLENAME
                ACTION    = select
                TABLE      =  DBNAME.TABLENAME
    The interface description is from another successful implementation on an ORACLE DB.
    I think the table definition should contaion the library like
      <DBNAME>.<LIBRARY>.<TABLENAME>
    separated by dots!
    I am not sure. So can anyone correct or agree?
    Currently we are not ready for a first try because the driver installation is next week.
    But it would help to know what we have to do instead of spending possibly a lot of time for trial and error.
    Kind Regards
    Dirk
    Of course, helpful answers are valued by points!

    I don't know this mechanism of high availability with 2 IP, but if you really have 2 hostname you should think to a method to switch from a node to the other in easy way, deactivating one and activating the other (for instance with the <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/45/0c86aab4d14dece10000000a11466f/frameset.htm">Controlling a Communication Channel Externally</a>)
    I suggest you to verify how it will be in production instance: real cluster ? switch over ? virtual IP ?
    Regards,
    Sandro

  • Error in XI Sender JDBC adapter for AS/400 DB2

    We are trying to connect to AS/400 DB2 from XI's Sender JDBC Adapter. we got the driver from DataDirect (connectjdbc.jar) and configured it within XI .The configuration according to the manual for this jar file is
    // Register the driver with the driver manager
    Class.forName("com.ddtek.jdbc.db2.DB2Driver");
    // Establish the Connection
    String url = "jdbc:datadirect:db2://corpserver1:50000;LocationName=ACCTNG";
    Connection con = DriverManager.getConnection(url, "test04", "test04");
    In XI we configured this as:
    Driver = com.ddtek.jdbc.db2.DB2Driver
    Connection = jdbc:datadirect:db2://servername;LocationName=NBHAGWAT
    and specified the user id and password
    <b>Note</b>: The Port Number is optional
    When this was done in XI, we got the below error in the Adapter Monitoring:
    Sender Adapter v2108 for Party '', Service 'JDBCtoFile':
    Configured at 2006-12-19 15:45:31 MST
    History:
    - 2006-12-19 15:45:31 MST: Retry interval started. Length: 10.000 s
    - 2006-12-19 15:45:31 MST: Error: Accessing database connection 'jdbc:datadirect:db2://AS400a;LocationName=NBHAGWAT' failed: DriverManagerException: Cannot establish connection to URL 'jdbc:datadirect:db2://AS400a;LocationName=NBHAGWAT': SAPClassNotFoundException: com.ddtek.jdbc.db2.DB2Driver
    - 2006-12-19 15:45:31 MST: Processing started
    Is this because there is something wrong because the way the connection string is specified.
    Anybody who has configured XI Sender JDBC adapter for AS/400 DB2, please send us some information on this.
    Thank you,
    Regards,
    Balaji

    > SAPClassNotFoundException:
    > com.ddtek.jdbc.db2.DB2Driver
    It looks like your JDBC driver is not found. Have you deployed the driver to XI?
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10</a>

  • Data flow fails on packed decimal field moving iSeries DB2 data from one iSeries DB to another

    I' trying to use SSIS to move table content from one iSeries DB2 database to another.  I'm using the .Net providers for OleDb\IBM DB2 for i5/OS IBMDA400 OLE DB Provider in the connection managers for the source and destination and the test connection
    works fine.  When I try to run the data flow task however it fails on the first packed decimal field it encounters with the exceptions ...
    [select from hydro520 hydroweb2 blpmstr [16]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "component "select from hydro520 hydroweb2 blpmstr" (16)" failed because error code 0x80004002 occurred, and the error
    row disposition on "output column "MSPRIB" (55)" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
    [select from hydro520 hydroweb2 blpmstr [16]] Error: The component "select from hydro520 hydroweb2 blpmstr" (16) was unable to process the data. Pipeline component has returned HRESULT error code 0xC0209029 from a method call.
    [SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "select from hydro520 hydroweb2 blpmstr" (16) returned error code 0xC02090F5.  The component returned a failure code when the pipeline
    engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
    ...in the progress tab.  Can someone kindly tell me what I need to do to get the connection manager to work with DB2 packed decimal fields?  Or is it a different issue all together?  Thanks tonnes for any help, Roscoe

    Hi rpfinn,
    From the Data Types mapping rules between SSIS and DB2, we can see that both the NUMERIC and DECIMAL data types in DB2 are mapped to DT_NUMBERIC data type in SSIS. Now that the source data in your DB2 database is NUMERIC data type, changing the DT_NUMBRIC
    data type to DT_DECIMAL is invalid. Besides, if we check the data types of the target External column and Output column from the Advanced Editor for ADO NET Source adapter, the data type should be defined as DT_NUMERIC with Precision as 9 and Scale as 2. I
    am not clear where you see the DT_NUMBERIC(9,0) e.g. DT_NUMERIC with Precision as 9 and Scale as 0, but it may be the cause of the issue. You need to make sure the DT_NUMERIC data type also has Scale 2 instead of 0.
    If you don’t know how to modify the data type, please elaborate the Data Flow Task of the package so that we can make further analysis. Besides, the error messages you posted are incomplete, it will be helpful if you post the complete error message.
    Regards,
    Mike Yin
    If you have any feedback on our support, please click
    here
    Mike Yin
    TechNet Community Support

  • JDBC Adapter-XML Document Name

    I am working on XI 2.0 and need to change the XML document name I am receiving from an inbound JDBC adapter.  The document I am receiving is:
    <resultset>
      <row>
        <col1>ABC</col1>
        <col2>123</col2>
      </row>
    </resultset>
    I want to receive:
    <MyDocumentName>
      <row>
        <col1>ABC</col1>
        <col2>123</col2>
      </row>
    </MyDocumentName>
    Does anyone know how to override the default "resultset" name from the JDBC adapter???  The reason I need to do this is because my message mapping does not work properly unless I have the Message type of the message from my JDBC adapter as "resultset". 
    Thanks for your help!
    Dan Pettingill

    (Note: I work with Dan Pettingill, the starter of this thread)
    I decompiled the class Renato suggested, but I don't
    think that's going to be the solution.  The DB2XMBProcesser is dependent on XI properly setting the properties values for the jdbc adapter.  DB2XMBProcesser will use a property named "db.documentname" to set the name of the root node of the DB2 results. If no such property is defined, the default value of resultSet is used.
    [documentName = getParaWithDefault("db.documentName", "resultset");]
    Our problem seems to be that XI is not passing along the parameters we define in the adapter configuration.  We've tried numerous combinations and names, but they never take. 
    The only way we can get XI to recognize that we are sending in a documentName parm is to call it "docName".  Any other name is essentially ignored (including db.documentname, documentname, XMB.docName, and a lot of other permutations as well).
    But here is the log from that adapter when we do so.  Not that it sees the value we're setting, but it won't set the documentname parm going to the jdbc.
    2004-08-31 17:33:45 : jdbcListener
    Raw configuration data ***
    Transport protocol: JDBC, version
    Message protocol: JDBC, version
    pollInterval|301
    additionalParameters|true
    jdbcDriver|com.ibm.db2.jcc.DB2Driver
    retryInterval|null
    dbpassword|***
    queryStatement|SELECT * FROM RBPRDB.T1256;
    queueName|null
    autoCommit|false
    updateStatement|Delete from RBPRDB.T1256 Where GUID Is Not Null;
    dbdisconnect|false
    dbuser|r50445
    adapterStatus|active
    isolationLevel|2
    addParameterParams|*** TABLE , 2 ROWS DEFINED ***
    addParameterParams|addParameterParams$0$addParameterParamName$docNamespace
    addParameterParams|addParameterParams$0$addParameterParamValue$urn:freescale.com
    /xi/db2-ims/wms
    addParameterParams|addParameterParams$1$addParameterParamName$docName
    addParameterParams|addParameterParams$1$addParameterParamValue$SelectAckQueue
    pollIntervalMsecs|null
    execute|null
    connectionURL|jdbc:db2://WACCTSO.sps.mot.com:9003/WACCDB2T
    qualityOfService|EO
    Used configuration data ***
    'MessageProtocol': 'JDBC'
    'adapterStatus': 'active'
    'addParameterParams.dbEncoding': ''
    'addParameterParams.docName': 'SelectAckQueue'
    'addParameterParams.docNamespace': 'urn:freescale.com/xi/db2-ims/wms'
    'addParameterParams.docNamespaceScope': 'root'
    'additionalParameters': 'true'
    'autoCommit': 'false'
    'connectionURL': 'jdbc:db2://WACCTSO.sps.mot.com:9003/WACCDB2T'
    'dbdisconnect': 'false'
    'dbencoding': ''
    'dbpassword': '***'
    'dbuser': 'r50445'
    'documentname': 'resultset'
    'documentnamespace': ''
    'execute': ''
    'isolationLevel': '2'
    'jdbcDriver': 'com.ibm.db2.jcc.DB2Driver'
    'pollInterval': '301'
    'pollIntervalMsecs': '0'
    'qualityOfService': 'EO'
    'queryStatement': 'SELECT * FROM RBPRDB.T1256;'
    'retryInterval': '301'
    'updateStatement': 'Delete from RBPRDB.T1256 Where GUID Is Not Null;'
    OK - initialized

  • Sender JDBC Adapter Select/Update Issue

    Dear All,
    We have configured a Sender JDBC Adapter to Poll data from the DB2 tables. It is working fine and both the select and the update queries written are also getting properly executed and are changing the status of the flag from Y to N once read from database.
    In the communication channel ->
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But I have one doubt after executing the select query some new data comes into the table of status flag 'N"., then will this unselected data will also be updated to 'Y' .
    The question is while we do a select and update from XI on the DB table and at the same time there is an insert happening into the table from the other end how will the adpater behave in this case.Will it result in missing of some records during next select/update transaction from XI..
    Your inputs will be appreciated.
    Regards
    Amit

    Amit
    Did you ever get a solution to your question ?
       Sender JDBC Adapter Select/Update Issue  
    Posted: Apr 24, 2008 2:29 PM           Reply 
    Dear All,
    We have configured a Sender JDBC Adapter to Poll data from the DB2 tables. It is working fine and both the select and the update queries written are also getting properly executed and are changing the status of the flag from Y to N once read from database.
    In the communication channel ->
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But I have one doubt after executing the select query some new data comes into the table of status flag 'N"., then will this unselected data will also be updated to 'Y' .
    The question is while we do a select and update from XI on the DB table and at the same time there is an insert happening into the table from the other end how will the adpater behave in this case.Will it result in missing of some records during next select/update transaction from XI..
    Your inputs will be appreciated.
    Regards
    Amit

  • Sender JDBC Adapter : Fetch records from multiple tables

    Hi Friends,
    I am using sender JDBC adapter to select few records from DB2 database table.
    This scenario is working fine.
    Now my requirement is to fetch records from 3 tables. These table are independent to each other. There is no primary key or foreign key.
    Please let me know how to write the sql in sender JDBC adapter to fetch records from these 3 tables.
    Thanks,
    Sandeep Maurya

    hi sandeep...
    if the tables are completely independent and do not share any primary / foreign key relation ship...
    why dont u think towards creating a seperate interface for each of them..
    or if u still want to select from multiple table at once..the best way would be to write a stored procedure on the sender side which do all the fetching n processing and pass the final resultset to PI
    or u can think towards fetching the data from 1 table and then in UDF do lookup from other tables..which again is tricky and performace intensive

  • How to handle the BOLB column Using JDBC adapter

    Hi,
      I want to sending of a BOLB column from a DB2 database table to another DB2 database, and the sender and receiver both by using JDBC adapter. The two tables in each other database have the same columns.
      Here is the table's structure:
      <ID>string type</ID>
      <PDF>blob type</PDF>
      Also, i haved create two DataTypes in PI system.
      Sender DataType:
      ns:DT_PDF_Req xmlns:ns="http://XXXXX.com/sap/xi">
       <row>
         <ID>1</ID>
         <PDF></PDF>
       </row>
      </ns:DT_PDF_Req>
      Receiver DataType:
      <ns0:DT_PDF_Res xmlns:ns0="http://XXXX.com/sap/xi">
      <STMT>
      <dbtable action="INSERT">
      <table>tablename</table>
      <access>
       <ID></ID>
       <PDF></PDF>
      </access>
      </dbtable>
      </STMT>
      </ns0:DT_PDF_Res>
    When test this interface, i found the that we can get the data, but when execute the insert stms  the follow errors occured  in RWB :
    <ERROR>
    Could not execute statement for table/stored proc. "DBDPUSER.pdf" (structure "STMT") due to com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-103, SQLSTATE=42604, SQLERRMC=255044462d312e330a25c7ec8fa20a352030206f626a0a3c3c2f4c656e677468203620, DRIVER=3.50.153
    JDBC Message processing failed, due to Error processing request in sax parser: Error when executing statement for table/stored proc. 'DBDPUSER.pdf' (structure 'STMT'): com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-103, SQLSTATE=42604, SQLERRMC=255044462d312e330a25c7ec8fa20a352030206f626a0a3c3c2f4c656e677468203620, DRIVER=3.50.153
    </ERROR>
    Can anybody tell me how to resolve the problems?
    And tell me about how to deal BOLB column using PI.
    Best Regards
    Terry

    Hi Terry Qin,
    I understand, you are getting below XML from sender JDBC channel. But when you getting SAX parser error, in receiver JDBC.
    <ns:DT_PDF_Req xmlns:ns="http://XXXXX.com/sap/xi">
    <row>
    <ID>1</ID>
    <PDF></PDF>
    </row>
    </ns:DT_PDF_Req>
    I think it is because the XML which is going to receiver JDBC channel is not well formed (because pdf can containg < & characters).
    You can achive this sceanrio, by selecting receiver JDBC channel as Message Protocol "Native SQL Format" [Link1|http://help.sap.com/saphelp_nwpi711/helpdata/en/44/7c24a75cf83672e10000000a114a6b/frameset.htm] you can send non XML to receiver channel.
    Before that, you have convert above input XML into SQL statement, using Java Mapping.
    Regards,
    Raghu_Vamsee

  • JDBC Adapter Error - SAPClassNotFoundException: oracle.jdbc.driver.OracleDr

    Hi,
    I am trying to implement JDBC to File scenario.
    Trying to connect to Oracle Database. Oracle drivers are installed on XI server
    JDBC Adapter parameters:
    JDBC Driver  - oracle.jdbc.driver.OracleDriver
    Connection - jdbc:oracle:thin:@10.25.228.156:1521:databaseName=XE
    Error which I can see in Communication Channel Monitoring is:
    Error during database connection to the database URL 'jdbc:oracle:thin:@w4inpusyga6:1521:XE' using the JDBC driver 'oracle.jdbc.driver.OracleDriver': 'com.sap.aii.adapter.jdbc.sql.DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@w4inpusyga6:1521:XE': SAPClassNotFoundException: oracle.jdbc.driver.OracleDriver'
    All your inputs are welcome!
    Thanks
    Mugdha Kulkarni

    Hi
    we are integrating XI with IBM DB2 database.
    we have used 2 Jar files ( DB2jcc4.jar  & DB2jcc.jar ).
    but after deployment the jar file was deployed in different location, not in D:\usr\sap\XR3\DVEBMGS00\j2ee\cluster\server0\bin\ext\
    trying many times this deployment, we manually copy/paste
    our driver jar file to legitimate directory..
    Now the error has change as .UnsupportedClassVersionError: com/ibm/db2/jcc/DB2Driver (Unsupported major.minor version 50.0)
    Any one could through some light on it..
    Regards,
    Ashutosh
    Edited by: ashutosh rawat on Dec 5, 2009 4:48 AM

  • JDBC adapter - not initialized after error

    Hi,
    While doing maintenance on the DB2 server we get the following error:
    com.sap.aii.af.service.util.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection to URL 'XXXXXXXXXXXX': com.ibm.db2.jcc.b.SQLException: IO Exception opening socket to server XXXXX on port XXXXX.  The DB2 Server may be down.
    This is expected.  But, after this error occurs the JDBC receiver adapter becomes unknown or not registered.  Even after the DB2 server is brought back up when we process a mesasge through the adapter we get the following error:
    Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: JDBC Adapter configuration not initialized: null
    Doing a cache refresh resolves the issue, but is this expected?  Should a DB2 connection issue cause the JDBC adapter to no longer be registered?
    Thanks.
    Best Regards,
    Duke

    Hi Duke,
    Doing a cache refresh resolves the issue, but is this expected? Should a DB2 connection issue cause the JDBC adapter to no longer be registered?
    -->yes, adapter framework is designed like that.
    based on your cache refresh settings Adapter engine will update the details and register the service again. i think the cache refresh settings were not defined properly for your server that is the reason it gave you that error and manually refresh is required.
    Regards,
    Sukarna.Chirumamilla

  • Increase Performance on jdbc adapter.

    Hi guys,
    I have a jdbc scenario that is accessing two data bases (Oracle and DB2). I would like increase query performance! So, I would like to know if there are any configurations parameters that I need to adjust to get more performance.
    Is it possible put the jdbc adapter doing several queries on the same table at same time? If the jdbc have this possibility it is great, because in one instruction it could do several selects/updates and improve more performance…
    Any suggestions or documentation are appreciated.
    Thanks in advance,
    Ricardo.

    Hi,
    With Receiver JDBC adapter it is possible.
    create as many STATEMENT tags as needed with the required action , tablename, strcuture etc.
    With sender JDBC adapter, you can mention only one Select Query and multiple queries will not be possible.
    <i> have a jdbc scenario that is accessing two data bases (Oracle and DB2)</i>
    Also, for this, you need to use separate JDBC adapters as each adapter will be specific to a database and the DB installation. You cannot use a single JDBC adapter to access multiple databases.
    Regards,
    Bhavesh

  • Can we use JDBC adapter at ECC side to extract the data directly

    Hi ,
    Is it possible in any way we can use JDBC adapter at SAP to extract data from sap tables.because as far as i know jdbc adapter used only when we having some database system at sender side.
    Regards

    Hi,
    SAP R3 is installed over a DB (Oracle, DB2 etc) this DB as a persistent storage for storing data and other information. R3 rovides a layer over the underlying database so that no one can directly access or modify the contents (due to security and data integrity issues). Hence it exposes its own RFC's for data access and modifications...
    But like I said before SAP recommends to make use of RFC's or BAPI's to access data stored in R3 tables; but we can also access them directly.You need to take the help of a DB admin for this
    Regards
    Suraj

Maybe you are looking for