JDBC receiver - Update problem

Hi,
Scenario: JDBC - RFC - JDBC scenario.
1. JDBC to RFC part-
A select statement from the JDBC sender, is mapped to the RFC in the ECC system)
2. RFC response is then mapped to an Update query using a receiver JDBC adapter.
(Please note: Only the RFC is synchronous. JDBC adpter is configured to be aynchronous here.)
3. The scenario is working fine, with regard to XI (All chequered flags.)
Problem: The DB does not get updated.
The response we get from the DB has <update_count> of 0
4. The same query, (taken from XI's audit log) and executed in the DB executes fine.
5. We are using the same user id, to update the table through XI(in the communication channel) and while executing the query manually.
Hence a user permission problem, could be ruled out.
6. DB used is Oracle 8i.
Any hints on what the problem might be?
Thanks,
Smitha.

Hi,
>>>>3. The scenario is working fine, with regard to XI (All chequered flags.)
Problem: The DB does not get updated.
The response we get from the DB has <update_count> of 0
I guess the easiest way to identify this issue would be to check the DB log in this operation
(not adapter log on XI)
then you will know exactly what is getting executed by the adapter and why it fails
Regards,
michal

Similar Messages

  • Problem in JDBC receiver Updation

    Hi friends,
        I am updating the DB using the JDBC receiver adapter.
    Tell me for the following case updation can be done or not.
      key Field       Field1       Field2
          A                  X           Y
          B                  X  
          C                  X           Y
    Consider above is the datas cmng to receiver JDBC to update the database. But here the record B has the field2 as empty in this case i should not update the record b with the field2 only field1 updation should takes place. Bcoz if i update the field2 with empty value the existing value may get deleted, hence only the field1 should be updated. Please tell me how to handle this.
    Do i need to hae 2 diff update stmt for this. Revert back for any quries.
    Thanks
    Prem
    Edited by: Prem Kumar on Sep 24, 2008 4:27 PM

    Hi,
    In JDBC receiver adapter, there is a setting in Processing tab which talks abt empty string values and how it needs to be handled.
    Interpretation of Empty String values:
    There are two options keeping it as Null value and Empty string.
    One of these option will solve ur requireement.
    Am not sure which option, do check with both.
    Regards,
    Krish

  • JDBC receiver channel problem

    Hi.. 
      I am doing File to JDBC scenario, for that i am using MicrosoftSqlServer.
    Driver----com.microsoft.jdbc.sqlserver.SQLServerDriver
    Connection------jdbc:microsoft:sqlserver://172.18.133.91:1433;DatabaseName=LMS
    While executing, in the JDBC receiver channel it is showing the below error.
    Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error when attempting to get processing resources: com.sap.aii.af.service.util.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection to URL 'jdbc:microsoft:sqlserver://172.18.133.91:1433;DatabaseName=LMS': ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    Could please tell where will be the problem.
    Thanks in advance,
    Leela

    Hi ,
    Driver shoud be :
    com.microsoft.sqlserver.jdbc.SQLSeverDriver
    Connection:
    jdbd:microsoft:sqlserver://<ip address>:port;databaseName=TNS
    try with above config..make sure that they are case sensitive.
    Regards,
    Sreenivas.

  • Special character "&" in JDBC receiver - length problem

    Hi,
    Scenario: IDOC -- - XI --- JDBC (insert) (Message Protocol: XML Sql format)
    I have used JAVA mapping to replace "&" with "& amp;" in payload and sending the XML to JDBC receiver. 
    However, interface fails due to additional characters "amp;" which is causing the field length (exceeded) issue. 
    Please help.
    Mallik
    Edited by: mallik kancharla on Feb 3, 2010 7:46 PM
    Edited by: mallik kancharla on Feb 3, 2010 7:47 PM

    I think the JAVA mapping should be designed to pass & as it is and not convert it into &amp.....you should refer the mapping shown here: http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/9420 [original link is broken] [original link is broken] [original link is broken]
    Regards,
    Abhishek.

  • JDBC Receiver: updates only header table how to update detail

    Hi
    here the scenario idoc having one header and one details segments, header data goes to one sql table detail date to another sql table.
    i created the sql structure   in two  ways one
    table name
      insert table
         header table
            action
            access
            detail table
                action
                access
    2nd
    table name
      insert table
         header table
            action
            access
         detail table
            action
            access
    in both ways one header table is updating detail table not. please help how to data will go in both tables
    thanks
    Message was edited by: sri rao

    Hi,
    could you pls try something like this..i was reading the documentation and thought of asking you to try this..
    <root>
    <HDR_StatementName>
    <hdrtablename action=”INSERT”>
    <table>hdrtablename</table>
    <access>
    <hfield1>val1</col1>
    <hfield2>val2</col2>
    </access>
    </hdrtablename> 
    </HDR_StatementName>
    <ITM_StatementName>
    <itmtablename action=”INSERT”>
    <table>itmtablename</table>
    <access>
    <ifield1>val1</col1>
    <ifield2>val2</col2>
    </access>
    </itmtablename> 
    </ITM_StatementName>
    </root>
    Thanks & Regards,
    Renjith

  • Error while updating database using jdbc receiver adapter

    Hi All,
    I am trying to update a single record using jdbc receiver adapter.
    This is my the message that is getting created..
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:Data xmlns:ns0="urn:Test">
    - <STATEMENT>
    - <TABLENAME ACTION="UPDATE_INSERT">
      <TABLE>ORDERS</TABLE>
    - <ACCESS>
      <OrderID>99999</OrderID>
      <CustomerID>VICTE</CustomerID>
      <EmployeeID>3</EmployeeID>
      <ShipAddress>VICTE</ShipAddress>
      </ACCESS>
    - <KEY>
      <OrderID compareOperation="EQ">99999</OrderID>
      <ShipAddress compareOperation="EQ">VICTE</ShipAddress>
      </KEY>
      </TABLENAME>
      </STATEMENT>
      </ns0:Data>
    But in Adapter Monitoring i am getting the following error..
    <i>Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ORDERS' (structure 'STATEMENT'): java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'VICTE'.</i>
    Regards,
    Rahul

    Rahul,
    > In this case i believe the interface has to be synch.
    > So what will the response message type be like..
    Not necessary. UPDATE can be asynch as well.
    Can you turn the trace on like pointed by Michal and then you can see the Query in the Audit Log of the adapter montioring. Try to execute the same query from your DB Client like TOAD and see what is the Syntax error you are getiing.!
    The problem looks like some field has some dataype / column name mismatch.
    Regards
    Bhavesh

  • Problem between SOAP Sender and JDBC Receiver

    Hi,
    I have a asynchronous scenary between SOAP Sender and JDBC Receiver.
    The idea is sending an ID for updating one register.
    Table structure is:
    TABLE AS_PERSONA
        (P_RUT                         VARCHAR2(10) NOT NULL,
        P_NOMBRE                       VARCHAR2(50),
        P_APELLIDO                     VARCHAR2(50))
    The ID is the P_RUT field.
    The structure of message that I send by SOAP, is the following:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <m:MT_CONS_SOAP xmlns:m="urn:prueba:voliva">
                   <CONSULTA>
                        <P_RUT>15445</P_RUT>
                   </CONSULTA>
              </m:MT_CONS_SOAP>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    The JDBC receiver structure is:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_CONS_PERSONA xmlns:ns0="urn:prueba:voliva">
         <Statement>
              <AS_PERSONA action="UPDATE">
                   <table>AS_PERSONA</table>
                   <access>
                        <P_NOMBRE>DELETE_BY_XI</P_NOMBRE>
                        <P_APELLIDO>DELETE_BY_XI</P_APELLIDO>
                   </access>
                   <key>
                        <P_RUT>15445</P_RUT>
                   </key>
              </AS_PERSONA>
         </Statement>
    </ns0:MT_CONS_PERSONA>
    When I do a call to SOAP by XMLspy, it returns a message without data, that means succesfull reply.
    I see message monitor and see the succesfull flag. But in the database it doesn't update the register.
    This scenario was proved using the File Sender and same JDBC Receiver, then result was succesfull.
    I proved SOAP Sender with a File Receiver, storing information from SOAP sender in an archive, and works well.
    Then I imagine that exist some problem between SOAP and JDBC. what could be happening ?
    Thanks.

    Hi,
    Looks like the problem is with the JDBC receiver...try updating the value in the table by using a File-JDBC scenario..does it work..check the adapter monitor in RWB..
    Regards,
    Sushumna

  • Can we use both INSERT and UPDATE at the same time in JDBC Receiver

    Hi All,
    I would like to know is it possible to use both INSERT and UPDATE at the same time in one interface because I have a requirement in which I have to perform both the task.
    user send the file which contains both new and old record and I need to save those in MS SQL database.
    If the record exist then use UPDATE otherwise use INSERT.
    I looked on sdn but didn't find any blog which perform both the things at the same time.
    Interface Requirement
    FILE -
    > PI -
    > JDBC(INSERT & UPDATE)
    I am thinking to use JDBC Lookup but not sure if it good to use for bulk record.
    Can somebody please suggest me something or send me the link of any blog or anything to solve this problem.
    Thanks,

    Hi ,
              If I have understood properly the scenario properly,you are not performing insert and update together. As you posted
    "If the record exist then use UPDATE otherwise use INSERT."
    Thus you are performing either an insert or an update which depends on outcome of a search if the records already exist in database or not. Obviously to search the tables you need " select * from ...  where ...." query. If your query returns some results you proceed with update since this means there are some old records already in database. If your query returns no rows  you proceed with "insert into tablename....." since there are no old records present in database.
      Now perhaps the best method to do the searching, taking a decision to insert or update, and finally insert or update operation is to be done by a stored procedure in MS SQL database.  A stored procedure is a subroutine available to applications accessing a relational database system. Here the application is PI server.   If you need further help on how to write and call stored procedure in MS SQL you can look into these links
    http://www.daniweb.com/web-development/databases/ms-sql/threads/146829
    http://www.sqlteam.com/article/stored-procedures-parameters-inserts-and-updates
    [ This part you can ignore, Since its not sure that you will face this situation
        Still you might face some problems while your scenario runs. Lets consider this scenario, after the stored procedure searches the database it found no rows. Thus you proceed with an insert operation. If your database table is being accessed by multiple applications (or users) other than yours then it is very well possible that after the search operation completed with a null result, an insert/update operation has been performed by some other application with the same primary key. Now when you are trying to insert another row with same primary key you get an error message like "duplicate entry not possible for same primary key value". Thus you need to be careful in this respect. MS SQL has a feature called "exclusive locks ". Look into these links for more details on the subject
    http://msdn.microsoft.com/en-us/library/aa213039(v=sql.80).aspx
    http://www.mssqlcity.com/Articles/Adm/SQL70Locks.htm
    http://www.faqs.org/docs/ppbook/r27479.htm
    http://msdn.microsoft.com/en-US/library/ms187373.aspx
    http://msdn.microsoft.com/en-US/library/ms173763.aspx
    http://msdn.microsoft.com/en-us/library/e7z8d5hf(v=vs.80).aspx
    http://mssqlserver.wordpress.com/2006/11/08/locks-in-sql/
    http://www.mollerus.net/tom/blog/2008/03/using_mssqls_nolock_for_faster_queries.html
        There must be other methods to avoid this problem. But the point is you need to be sure that all access to database for insert/update operations are isolated.
    regards
    Anupam

  • Updating in JDBC receiver adapter

    Hi Friends,
         I came across in the some sdn blogs, Like JDBC to JDBC scenarios i found that in the receiver JDBC adapter there is no place to write update statement or insert statement.Then how the records get updated in the DB.
    My actual need is to update the oracle db from sap, which currently using the following statement
    Loop at it_trn_ctl into WA_TRN_CTL.
    UPDATE TableA SET SAP_UPDATE = 'Y'
                                      WHERE PARENT_ID = :WA_TRN_CTL-PARENT_COIL .
    end loop.
    should replaced by XI, using the proxy to jdbc receiver. Where i can write the update statement and the where condition.
    Kindly revert back for queries.
    Thanks in advance
    Karthikeyan

    hi
    for updation no need to write any query,use update structure at reciever side
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
    this contains action:udate and then
    key1: field that u want to update.
    key2:pass old value of field for matching(where conditon matching field)
    Edited by: Dharamveer Gaur on Sep 19, 2008 8:40 AM

  • JDBC Receiver adapter ( INSERT/UPDATE with SELECT)

    Is it possible to have following kind of SQL Statement comming out JDBC Receiver Adatpter. If yes what would be the corresponding XML Document format for this.
    UPDATE suppliers 
    SET supplier_name = ( SELECT customers.name
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id)
    This condition also needs to be applied for Insert condition. Any pointer would be useful.
    Thanks,
    Samir

    Hi
    Refer this links,
    http://help.sap.com/saphelp_nw04/helpdata/en/22/b4d13b633f7748b4d34f3191529946/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/b0/676b3c255b1475e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/4d/8c103e05df2e4b95cbcc68fed61705/frameset.htm
    Regards,
    Suryanaryana

  • JDBC Batch Updates & PreparedStatement problems (Oracle 8i)

    Hi,
    we're running into problems when trying to use JDBC Batch Updates with PreparedStatement in Oracle8i.
    First of all, Oracle throws a SQLException if one of the statements in the batch fails (e.g. because of a unique constraint violation). As far as I understand, a BatchUpdateException should be thrown?
    The next problem is much worse:
    Consider this table:
    SQL> desc oktest
    ID NOT NULL NUMBER(10)
    VALUE NOT NULL VARCHAR2(20)
    primary key is ID
    When inserting in through batch updates with a PreparedStatement, I can pass 'blah' as a value for ID without getting an exception (Oracle silently converts 'blah' to zero). Only when the offending statement is the last statement in the batch, Oracle throws an exception (again, SQLException instead of BatchUpdateException).
    Any comments/suggestions are appreciated.
    E-mail me if you want to see the code...
    Thanks,
    Oliver
    Oracle version info:
    (Enterprise Edition Release 8.1.6.0.0, JServer Release 8.1.6.0.0, Oracle JDBC driver 8.1.6.0.0 and 8.1.7.0.0 (we're using the 'thin' driver)
    CLASSPATH=/opt/oracle/product/8.1.7/jdbc/lib/classes12.zip:...
    null

    Please refer
    http://www.oracle.com/technology/products/oracle9i/daily/jun07.html

  • JDBC Receiver INSET & UPDATE

    Hi All:
    How can we do INSERT and UPDATE in tables from XI.
    Like I have on JDBC receiver MT.(with one action field)
    Now if later I need to do INSERT or UPDATE how can I achive UPDATE at that time.
    Can some one explain me with concrete concepts or examples
    Will give max points for good answer:-)
    Regards,
    Farooq.

    hi,
    have a look at this page:
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    you can us action - UPDATE_INSERT
    if you want to do update or insert (in case update is not possible)
    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>

  • JDBC Receiver - Multiple rows Update

    I have an interface the incoming message contain multiple columns and it has to be updated using a JDBC Receiver Adapter with its key values.
    Can we send multiple rows in a single JDBC Update Statement.
    Please advise.

    Sebin,
    No ,it's not possible to have multiple rows in single update statement. Rather you can duplicate the segment at Statement level and do the update.
    Please refer http://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    raj.

  • Problem adapter JDBC/Receiver

    Hello,
    I am running a stored procedure with CC JDBC/Receiver, and it returned me the following error:
    Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'sp_consulta_carteira_clientes' (structure 'Statement'): java.sql.SQLException: The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'tempdb' database.
    Can anyone help me, CC JDBC / Receiver, does not support transactional multi processing ?
    Thank you all.
    Marlon

    Hi Marlon.
    Try to change The Transaction Level in the Communication Channel JDBC, maybe it works.
    Ask to Legacy Team can change the stored procedure without CREATE TABLE command.
    Regards.
    Bruno

  • JDBC(Sender)-XI-RFC (Request) RFC (Response)-XI-JDBC(Receiver)

    Hi All,
    JDBC(Sender)-XI-RFC (Request)
    RFC (Response)-XI-JDBC(Receiver).
    Need some solution for sending email for successfully completion of scenario after updating SQL DB Table.
    Let me explain the scenario:
    We are pooling the SQL DB table to pull the records and map the records to RFC request parameters, after successful Posting the entries in R3 HR, RFC response contain the same with E (Error) S (Success) records status, we are updating the same in SQL DB table, I implemented the complete scenario without BPM with the help of module processor in Sending JDBC Adapter, scenario is working fine but now we have to send the successful mail to our support team with status contain Number of success, Error and total records as email.
    I need the solution how to implement the same requirement in current scenario.
    Is their way to do something with the RFC receiver adapter module addition to send the successful mail or generating Alert with all the description?
    I am at PI 7.0 SP12 with HP unix box.
    Thanks in Advance for creative idea
    With Regards
    Sunil

    Hi Bhavesh,
    Thanks for your help and your blog is really helpful. I implemented the UDF for generating Email Alert but this alert is generating before Updating the SQL Database, is their any way to generate alert after updating the SQL.
    Actually in my scenario we are sending the data from SQL to R3 by RFC and again updating the SQL status whatever the RFC return, after successfully updating SQL we need to send success email to support people but if we are sending the email before updating the DB then their will be problem.
    JDBC receiver after updating the SQL DB returns the response with No. of row updated but how to capture this response, if we can capture this response then we can send email through email adapter even their is one more problem, In my scenario I am counting the number of rows with status “S” and “E” and sending the same in alert email but if are sending email after updating the SQL DB where can hold the row count value and use it while sending the email.
    Implemented the scenario without using BPM..i am using sender JDBC module processor for Syn-Asyn bridge.
    Even I do not find the link to reward point. Please let me know how to do it.
    With Regards
    Sunil

Maybe you are looking for

  • Why won't iTunes for PC allow me to sync with my iPod touch?

    I have songs on iTunes on my old PC and on my newer Macbook Pro.  I synced the songs form the Mac onto my new iPod Touch, but iTunes will not let me sync the songs from the PC, saying only one computer at a time can have an iTunes account.  It will o

  • How can I make a link a different color than the other links according to the current page?

    Hello.  I have created a navigation bar.  And I would like to style the links to have the current page link a different color than the other links.  For example, if all of the links have a black background, I would like to have the current page link

  • MacBook Pro & Snow Leopard Update: No-Entry Symbol

    Hi Everyone, I've run into some trouble as of last week involving my MacBook Pro. I feel as though this trouble may be a ressult of the 10.6.2 update, and was hoping you all could give me some advice on resolving it. Shortly after updating to 10.6.2,

  • How can I alternate page orientation in my document?

    In writing a formal academic document that includes tables and or charts, it is best to have the the pages with charts in landscape. However, the rest of my work needs to be vertical orientation. How do I achieve this in Pages? In a Word document it

  • Unable to Save Interactive Form

    Hi Experts, I am unable to save any UI elements (viz. Table, Text Fields, etc) on an Interactive Form UI element created using NWDS. Whenever I create new UI elements on the Interactive form and try clicking on Save Metadata Button of the NWDS the Bu