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>

Similar Messages

  • 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

  • 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

  • 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

  • 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 - 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.

  • Calling stored procedure multiple times in the JDBC receiver

    Hi,
    I am calling the stored procedure(SP) to update a DB table in the JDBC receiver.
    SP has 10 input parameters, and SP can receive one value for each parameter at a time.
    In my case, i will have multiple rows to insert using SP.i.e multiple values for each parameter.
    Its working correctly for a single value for each parameter, but when i have multiple values i want to call the SP multiples times.
    Is this possible and how?
    Thanks,
    Varghese.

    Varghese,
    I think you can have multiple statements in the JDBC Adapter's XML, as in http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm.
    Here the StatementName1 node can be inserted into your JDBC XML as often as you want.
    Kind regards,
    Koen

  • Error while using Jdbc receiver adapter

    Hi,
    Iam using a receiver jdbc adapter to update a table in my database.Here iam using 'UPDATE' as my action in the mapping.It is giving the foowing error....
    Error while parsing or executing XML-SQL document: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)
    Can Please anybody tell me what may be the problem with my scenario...
    Thanks & Regards,
    Radhika.

    Hi ,
         action type should be attribute .  Please go through the following structure for update .
    <b>
       <?xml version="1.0" encoding="UTF-8"?>
    <ns1:MT_RESPONSE xmlns:ns1="http://com/Test">
       <STATEMENT_NAME>
          <TABLENAME action="UPDATE">
             <TABLE>Utility</TABLE>
             <access>
                <Updated_On/>
             </access>
             <key>
                <TrnHisID/>
             </key>
          </TABLENAME>
       </STATEMENT_NAME>
    </ns1:MT_RESPONSE></b>
              query for above we may say as
    <b>UPDATE  Utility set  Updated_On='' where  TrnHisID =''</b>
              Hope it helps
    Regards.,
    V.Rangarajan

  • Issue with processing time of JDBC receiver adapter

    Hi all,
    We are using PI 7.1 EHP1.
    We have an issue with JDBC receiver adapter taking too much time to process messages.
    We are using XML SQL format message protocol with INSERT_UPDATE as the document format.
    Each message can contain multiple records, i.e. 1 single message can result in many updates/inserts.
    Currently, time taken to process in 6-12 secs which is quite high considering the messages are not very large in size.
    We sent the statements to Oracle DBA to see if anything about the queries being used is causing issues. Awaiting inputs.
    In the mean time, wanted to check if there is anything that can be done from PI side that will help us improving the processing time.
    Thanks in Advance,
    Sailaja.

    Hi,
           i think the main cause is  query taking long time to execute in DataBase.
          -> increase the read time and response time in the JDBC receiver adapter.
      In the advanced mode table section of sender channel and receiver channel configurations, we can set driver properties for each DB connection. Any such property would have to contain prefix 'driver:'(with out quotes).
    For Oracle Database JDBC thin driver 10.2.0.3 version, the property oracle.jdbc.ReadTimeout helps to set read timeout while reading from the socket. Also for setting login time out in Oracle, we use oracle.net.CONNECT_TIMEOUT. To set these two properties use as follows: driver:oracle.jdbc.ReadTimeout 1000 driver:oracle.net.CONNECT_TIMEOUT 1000 The TimeOut Driver properties like ReadTimeout and CONNECT_TIMEOUT are in milliseconds.
    Refer note 1078420 for more details
    please go through this blog i hope it will help you.
        http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c059d583-a551-2c10-e095-eb5d95e03747
    regards,
      ganesh
    Edited by: ganesh.nijampudi on Oct 25, 2011 12:00 PM

  • How to modify oracle stored procedure for JDBC Receiver Adapter?

    Hi all.
    This is Urgent.
    Scenario is
      SELECT a TABLE with procedure and update column with it,
      then send data to SAP System with RFC Adapter.
    When I executed a sync bpm, scenario was finished internal error.
    Pls, let me know how to correct procedure using JDBC Receiver Adapter?
    Regrds all.
    Procedure Code -
    SET SERVEROUTPUT ON
    CREATE OR REPLACE PROCEDURE zwtn2
    IS
       v_seller_company      wtnivhd.seller_company%TYPE;
       v_invoice_no      wtnivhd.invoice_no%TYPE;
       v_report_date     wtnivhd.report_date%TYPE;
       v_customs_date     wtnivhd.customs_date%TYPE;
       v_ap_post_date     wtnivhd.ap_post_date%TYPE;
       v_gr_date          wtnivhd.gr_date%TYPE;
    CURSOR l_cursor IS
       SELECT seller_company,
              invoice_no,
              report_date,
              customs_date,
              ap_post_date,
              gr_date
         FROM wtnivhd
        WHERE wtn_send_flag = 'N'
          AND rownum < 31
    FOR UPDATE;
    BEGIN
       OPEN l_cursor;
       LOOP
         FETCH l_cursor
          INTO v_seller_company,
               v_invoice_no,
               v_report_date,
               v_customs_date,
               v_ap_post_date,
               v_gr_date;
         EXIT WHEN l_cursor%NOTFOUND;
         UPDATE wtnivhd
            SET wtn_send_flag = 'Y' 
           WHERE CURRENT OF l_cursor;
       END LOOP;
    CLOSE l_cursor;
    END zwtn2;

    Hi Alex,
    plz have a look to Runtime Workbench / Adapter Monitoring to find an error message.
    Regards,
    Udo

  • PI 7.0 - jdbc receiver issue with MS SQL Server

    Hello Experts,
    I have a jdbc receiver scenario on PI 7.0 for just one table on MS SQL Server and I'm using the update_insert action.
    When the entry does not exist it is created normally and returns insert_count=1 and update_count=0.
    When the entry already exists, it's generated the statements for insert and for update (the 2 statements are visible on RWB) and returns insert_count=0 and update_count=0.
    Any error occurs and in the RWB the log shows the request was processed with success.
    I've already enabled the log for sql statements on the channel, but the statements are correct.
    I've reviewed also the <key> tag on the mapping and it's ok.
    Any suggestion to try fix this issue?
    Thank you very much.

    Can you please check in the database the format of the specified fields in the update statement. Sometime we can have situations that the insert works but the subsequent update fails. An example:
    Suppose key field1 value being passed from XI is  '1234' in characters but in db it is stored as '00001234'.
    Regards,
    Indranil

  • Handling Fault Messages for JDBC Receiver (Syn Inbound)

    Dear Freinds,
    Can we handle fault messages for JDBC Receiver which is synchronous.
    OB Proxy Syn  <>  IB JDBC Syn
    1. How to handle the same ? Please give some examples.
    2. Should we use Stored Procedures at Oracle side to handle the fault messages and send back as response to the Proxy Response. Will it work.
    Thanks & Regards
    K.Ramesh

    Dear Friend,
    I have 2 interfaces where Proxy is OB & JDBC is IB. In the first interface both sender and Receiver are synchronous and in the second one it is Async.
    In the first interface i have to send one field from R/3 table along with Native SQL query string to XI and the response of the SELECT query is sent back to the sender.
    Assume if no fields are selected based on the field sent then proper error message has to be sent instead of the response message.
    In the second interface i will be using UPDATE query at Asyn JDBC receiver.
    How to do this if you are having JDBC Receiver.
    I saw in many blogs where they had mentioned that we cannot handle fault messages in the Receiver JDBC.
    KIindly explain.
    Thanks
    K.Ramesh

  • JDBC Receiver Adapter with Null Value

    HI,
    I have configured ID for JDBC Receiver. In my communication channel, I already check Integration of Empty String Values = Null Value. However, when I check the result from audit log, it still shows that SAP XI sends the null value to database. In my understanding, it should not send the field which has null value (It shouldn't be included in sql statement).
    I check this with other scenario. With the same check at Integration of Empty String Values = Null Value, it doesn't send null value to database. It happens only with my first scenario.
    Have anyone ever been through this before? Any suggestion please?
    Thanks,
    Pavin

    Hi,
    1. The occurrence is 0...1
    2. This is the first result with null value (Please see field Error)
    UPDATE EXPCRM_T_CustomerProfile SET RequestID=455, RecordNo=1, SAPCustomerCode=0001000344, Error=NULL, Status=2, UpdateDateTime=12/03/2008 13:45:03 WHERE (RequestID=455 AND RecordNo=1)
    Then, I change the option from Null Value to Empty string. This is the result.
    UPDATE EXPCRM_T_CustomerProfile SET RequestID=455, RecordNo=1, SAPCustomerCode=0001000344, Error=', Status=2, UpdateDateTime=12/03/2008 13:46:12 WHERE (RequestID=455 AND RecordNo=1)
    Field Error Change from NULL to '
    The expected result from me is that field Error should not exist at all. Please help.
    Thanks,
    Pavin

  • Multiple records as a single transaction in JDBC Receiver Adapter

    Hi,
    I am sending multiple records in a single message to a JDBC receiver adapter to get updated to the database. How to make all the insert a single transaction. Like all the records has to be inserted else all has to be rolled back.
    For eg for table Employee two fields EMPNO and EMPNAME
    EMPNO  EMPNAME
    1            Jay
    2            Christie
    These two records are in the same message and has to be updated
    if one fails the other has to be rolled back.
    How can i achieve it using a JDBC Receiver Adapter.
    Thanks
    Sebin

    Hi Rolf Micus,
    My xml structure to insert 2 tables are as follow:-
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_PODB xmlns:ns0="http://abeam.com/xi/fer_filejdbc_scenarios1">
    ..   <STATEMENT_HEADER>
    ....      <ROW action="INSERT">
    ......         <TABLE>ZPO_HEADER</TABLE>
    ......        <access>
    ........            <PONUMBER>001</PONUMBER>
    ........            <PODATE>20070801</PODATE>
    ........            <POAMOUNT>200.99</POAMOUNT>
    ....         </access>
    ....      </ROW>
    ..   </STATEMENT_HEADER>
    ..   <STATEMENT_DETAIL>
    ....      <ROW action="INSERT">
    ......         <TABLE>ZPODETAIL</TABLE>
    ......         <access>
    ........            <PONUMBER>001</PONUMBER>
    ........            <PONO>1</PONO>
    ........            <POITEMCODE>A12345</POITEMCODE>
    ........            <POITEMDESC>Testing A</POITEMDESC>
    ........            <POITEMAMOUNT>2990.00</POITEMAMOUNT>
    ........            <POITEMQTY>55</POITEMQTY>
    ......         </access>
    ....      </ROW>
    ..   </STATEMENT_DETAIL>
    </ns0:MT_PODB>
    Fro the structure that you have declared..there is only contained 1 statement, try to admend your MT to have 2 statements.
    If you wish to insert multiple records, just create a loop/multiple of access tag inside STATEMENT tag. For example, multiple records insert into Header should have multiple access tag in Header STATEMENT. Same goes for muliple records insert into Details STATEMENT should have multiple access tag in Details STATEMENT.
    With this structure, whenever any records insert/update/delete failed...it will rollback all the transactions together, ie. Header and Details.
    PS: For different table, please create different STATEMENT.
    Hope it helps.
    Message was edited by: Pua Ming Fei

Maybe you are looking for

  • Solaris 7 Software Installation on x86 System Problem

    Experienced error message "disk not found" just prior to Solaris execution of final installation process. This was during Interactive installation. Also recieved "cannot determine boot device name". Could not use set env command in order to set the b

  • Cant edit photos after update to iPhoto 11 and pages

    Hi i have upodated to mavericks and updated my apps. now when i tried an edit a photo in iphoto it fires up pages and says cant open jpeg format in pages. help i need to edit my photos Jon

  • 857 Router Dot11Radio0 reset - problem

    Hi all I have just upgraded the IOS in a 857 Router to this: ROUTER#sh version Cisco IOS Software, C850 Software (C850-ADVSECURITYK9-M), Version 12.4(15)T7, RELEASE SOFTWARE (fc3) but now I can't get the dot11radio 0 interface to come up. I just get

  • ASA5500 V8.2 integration with IAS adn etoken pass

    Hi, I am needing help or direction to a document whcih can assist me solving the below issue: 1). Authentication to IAS with OTP. 2). AV Pairs for Cisco ASA. In brief I have Radius via IAS, authentication working with the standard username and passwo

  • Regular Expression to spilt words

    Hi all, i want to split the last word in string, after found last space the maximum lenght of string is five words. i used the follwoing query not working ok . SQL> SELECT REGEXP_SUBSTR('system hello sidval',   2  '[a-z]+\S+') RESULT   3  FROM DUAL;