JDBC Sender to JDBC Receiver || Acknowledgement

Hi Experts,
the scenario is the following:
JDBC sender to poll a database and receive data from table a (Query SQL Statement)
after the mapping, a JDBC receiver inserts the resultset from a into table b.
okay, so far, now the action is done and the sender adapter has to delete the resultset from table a (with the Update SQL Statement)
the problem is now how to ensure that only the resultset is deleted from a IF its really inserted into b? means: how to tell any adapter that the update-command is only done when the insert worked correctly?
thanks in advance
Chris

First of all, u will have to make an async call from JDBC. The scenario wouldn't be that good in design :).
The only thing to be taken care should be the poll interval. It should be large enough so that the BPM processing is complete otherwise the polling of same data will occur twice. (U may use Planning Availability Times concept here).
I understand that the UPDATE statement is mandatory
U can write Test to just don't update anything.
Now the data would be sent to receiver and after the successful receipt at receiver, BPM send step would be triggered with the update statement to actually update the table.
Hope it makes everything clear
Regards,
Prateek

Similar Messages

  • MessageSplit from JDBC-Sender to JMS-Receiver

    Dear all,
    we are getting data in a resultset from JDBC-Sender and have to process each row as a own message. When we use message-splitting we are not able to generate plainText for the receiving JMS-channel. So we thought that we first have to generate xml and afterwards in JMS-Receiver-Adapter we have to use MessageTransformBean Struct2XML, but it does not work.
    Howcan we achieve this?
    Here is our mapping:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="text" encoding="utf-8" />
         <xsl:template match="//resultset">
              <xsl:text disable-output-escaping="yes">&lt;ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"></xsl:text>
              <xsl:text disable-output-escaping="yes">&lt;ns0:Message1></xsl:text>
              <xsl:for-each select="row">
                        <xsl:value-of select="NODENAME" />
              </xsl:for-each>
              <xsl:text disable-output-escaping="yes">&lt;/ns0:Message1></xsl:text>
              <xsl:text disable-output-escaping="yes">&lt;/ns0:Messages></xsl:text>
         </xsl:template>
    </xsl:stylesheet>

    Hi Abid,
    we've tried it with MessageTransformBean, but unfortunately we were'nt able to generate the correct messages for JMS.
    If we adapt our original mapping to that one below than we are able to send  2 messages to JMS having the xml-structure. Now, we just have to remove the xml structure. How do we have to configure the Module-Tab? Which one's are the exact parameters we have to use?
    new MAPPING:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="xml" encoding="utf-8" />
         <xsl:template match="//resultset">
              <xsl:text disable-output-escaping="yes">&lt;ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"></xsl:text>
              <xsl:text disable-output-escaping="yes">&lt;ns0:Message1></xsl:text>
              <xsl:for-each select="row">
                   <MSG>
                        <xsl:value-of select="NODENAME" />
                   </MSG>
              </xsl:for-each>
              <xsl:text disable-output-escaping="yes">&lt;/ns0:Message1></xsl:text>
              <xsl:text disable-output-escaping="yes">&lt;/ns0:Messages></xsl:text>
         </xsl:template>
    </xsl:stylesheet>
    resulting messages:
    <?xml version="1.0" encoding="utf-8" ?><MSG>VALUE_1</MSG>
    <?xml version="1.0" encoding="utf-8" ?><MSG>VALUE_2</MSG>
    Kind regards, Stefan

  • How to use Stored Procedures in JDBC sender side and receiver side

    Hello,
    Can anyone explain how to use stored procedures in configuring the scenario using JDBC adapter at bothe sides sender nad receiver..
    Thanks,
    Soorya

    Hi,
    Refer the below link:
    JDBC:
    Receiver JDBC scenario MS access - /people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
    /people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30 --> for jdbc receiver: file -JDBC
    Stored Procedures-
    /people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
    http://www.ics.com/support/docs/dx/1.5/tut6.html
    /people/sriram.vasudevan3/blog/2005/02/14/calling-stored-procs-in-maxdb-using-sap-xi
    http://www.ics.com/support/docs/dx/1.5/tut6.html
    http://java.sun.com/docs/books/tutorial/jdbc/basics/sql.html
    http://www.sqlteam.com/article/stored-procedures-an-overview
    HI in the message mapping structure u need to specify the different action and also u need to specify the procedure name.
    refer the below link which has all the associated action
    http://help.sap.com/saphelp_nw04s/helpdata/en/22/b4d13b633f7748b4d34f3191529946/frameset.htm
    Chirag

  • JDBC Sender Adapter

    Hi everybody
    I have the following error in my JDBC to JDBC scenario; I  configured the JDBC sender adapter and receive the following message back. In the Configuration I set “Document Name” to MT_ScanningStatus:
      <?xml version="1.0" encoding="utf-8" ?>
    <MT_ScanningStatus>
    <row>
      <ScannerNb>1</ScannerNb>
      <Status>0</Status>
      </row>
    <row>
      <ScannerNb>2</ScannerNb>
      <Status>2</Status>
      </row>
    <row>
    <ScannerNb>3</ScannerNb>
      <Status>0</Status>
      </row>
    <row>
      <ScannerNb>4</ScannerNb>
      <Status>2</Status>
      </row>
      </MT_ScanningStatus>
    I defined the  corresponding datatype as follow:
    DT_ScanningStatus Complex Type
            row              Element 1...unbounded
              ScannerNb      Element 1
              STatus         Element 1
    In the following Mapping I tried to Map this structure to the Structure used to send an Update SQL Statement to the JDBC Receiver to update the same table.  A normal Test in the Mapping Tool runs fine but when I enter under source the above incoming Message from the JDBC Adapter I got the following error. I think the incoming message cannot be interpreted. Can someone support me? I read the documentation for the JDBC adapter and also a lot of weblogs and discussion threads. Maybe someone knows a weblog describing more detailed the sender adapter and how to handle the incoming Message!!
    Thanks in advance Oliver
    14:58:03 Start of test
    Compilation of MM_JDBC_to_JDBC_test successful
    Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
    at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:130)
    at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68)
    Root Cause:
    com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)(:main:, row=1, col=8) -> com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
    at com.sap.engine.lib.xml.parser.XMLParser.scanPI(XMLParser.java:2009)
    at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2657)
    at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2713)
    at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:162)
    at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:132)
    at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:142)
    at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245)
    at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:276)
    at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:338)
    at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
    at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:128)
    at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68)
    at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:144)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
    at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:128)
    at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68)
    Caused by: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)
    at com.sap.engine.lib.xml.parser.XMLParser.scanPI(XMLParser.java:2009)
    at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2657)
    at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2713)
    at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:162)
    at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:132)
    at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:142)
    at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245)
    at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:276)
    at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:338)
    at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
    ... 3 more
    Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(:main:, row:1, col:8)

    Hi Oliver,
    >>>>source the above incoming Message from the JDBC Adapter I got the following error. I think the incoming message cannot be interpreted.
    do this:
    in the test tab try your mapping once more
    (the correct one)
    then save the source xml as file
    next compare this saved file with the one
    you get from the jdbc sender
    >>>>>Declaration not allowed here.(:main:, row:1, col:8)
    and compare the first lines in those two XML files
    are they the same?
    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 Sender OS Command

    Hi All,
              I want to know where the operating system command runs when used  in jdbc sender adapter , In PI or in the database after executing the sql queries? I am wondering if i can use a Stored procedure through a script in database. Any help appreciated .And forgive me for my ignorance Thanks.

    What you can do is :
    Create a multi Mapping.
    JDBC Sender DT - JDBC Receiver STored Procedure DT and
    JDBC Sender DT - Actual Receiver .
    Key points to remember is , on Interface Determination .. maintain  order runtime ..... this will help to execute first Stored procedure then your actual target ,  if stored procedure fails then other interface will also not execute as maintain runtime order is checked.
    REgards
    PS

  • JDBC Sender - Wrong SELECT statement (Oracle driver)

    Hi,
    3 days ago I was having a problem with my JDBC Sender adapter [JDBC Sender adapter is reading but then there isn't the message in SXMB_MON; .
    Finally I discovered what's wrong but I can't understant why is not working. When I deleted the "WHERE" condition in my SELECT statement all worked OK (except that I need the WHERE statement...).
    Why that statement is not working in my JDBC Sender:
    SELECT * FROM MATERIALES WHERE LEIDO<>'X'
    and that statement works:
    SELECT * FROM MATERIALES
    The field "LEIDO" is my flag that I must set to X when I read with the UPDATE statement, so I need the where condition...

    Thanks Christopher but still not working
    I tried two new statements:
    1 - Escaping:    SELECT * FROM MATERIALES WHERE LEIDO <> 'X'
    2 - Changing the operator symbol: SELECT * FROM MATERIALES WHERE LEIDO != 'X'
    The nº1 gives me an error of invalid character
    The nº2 has the same effect than the other symbol, the adapter reads from the DB but no XML message is generated and no payload to check what's happening... just a message ID without information and without a message generated in SXMB_MONI

  • 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

  • JDBC Sender and Receiver

    Hello:
    I have an scenario FILE-to-FILE and it's working ok. So now I want to change it into FILE-to-JDBC so I thought just to change the Communication Channel RECEIVER, instead of file, use JDBC adapter.
    I've read this blog <a href="/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30 to JDBC Adapter using SAP XI 3.0</a> but I don't have clear where tu place the SQL Insert statement, or to know which table to affect. I am using this settings on the RECEIVER communication channel:
    Adapter type: JDBC
    Transfer Protocol : JDBC 2.0
    Message Protocol : XML SQL Format
    -- Database Connection --
    JDBC Driver : net.sourceforge.jtds.jdbc.Driver
    Connection: jdbc:jtds:sybase://alma.mex.sap.corp:2638/demo
    I've noticed thta if the Communication channel is SENDER, I do get a parameter called Update SQL Statement, but it's not there when it's  a RECEIVER, why is that?
    Greetings!
    Alejandro

    Thanks for the info
    Reading the help site, I find that the xml message must have a certain structure, that will be interpreted by the database. If I want to send an INSERT, I would have an xml message like this:
    [code]
    <root>
      <stmt>
        <Customers action="SQL_DML">
          <access> UPDATE Customers SET CompanyName=’$NAME$’, Address=’$ADDRESS$' WHERE CustomerID='$KEYFIELD$’
          </access>
          <key>
            <NAME>Company</NAME>
            <ADDRESS>Street 3 </ADDRESS>
            <KEYFIELD>CO</KEYFIELD>
          </key>
        </Customers>
      </stmt>
    </root>
    [/code]
    And as I understand I <b>must define those fields</b> on my data type XSD so the mesagge from the sender arrives with this structure right?
    so I created an XSD like this
    [code]
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn://alex.com/ftp001" targetNamespace="urn://alex.com/ftp001">
         <xsd:complexType name="JDBC_DATA_TYPE_001">
              <xsd:sequence>
                   <xsd:element name="root">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                             89e2af209ce511dbaf580015587b9f42
                             </xsd:appinfo>
                        </xsd:annotation>
                        <xsd:complexType>
                             <xsd:sequence>
                                  <xsd:element name="smtp">
                                       <xsd:annotation>
                                            <xsd:appinfo source="http://sap.com/xi/TextID">
                                            89e520209ce511dbc9230015587b9f42
                                            </xsd:appinfo>
                                       </xsd:annotation>
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="Person">
                                                      <xsd:annotation>
                                                           <xsd:appinfo source="http://sap.com/xi/TextID">
                                                           89e520219ce511db832b0015587b9f42
                                                           </xsd:appinfo>
                                                      </xsd:annotation>
                                                      <xsd:complexType>
                                                           <xsd:sequence>
                                                                <xsd:element name="access" type="xsd:string">
                                                                     <xsd:annotation>
                                                                          <xsd:appinfo source="http://sap.com/xi/TextID">
                                                                          89e520239ce511db99c60015587b9f42
                                                                          </xsd:appinfo>
                                                                     </xsd:annotation>
                                                                </xsd:element>
                                                                <xsd:element name="key">
                                                                     <xsd:annotation>
                                                                          <xsd:appinfo source="http://sap.com/xi/TextID">
                                                                          89e520249ce511db95d80015587b9f42
                                                                          </xsd:appinfo>
                                                                     </xsd:annotation>
                                                                     <xsd:complexType>
                                                                          <xsd:sequence>
                                                                               <xsd:element name="FirstName" type="xsd:string">
                                                                                    <xsd:annotation>
                                                                                         <xsd:appinfo source="http://sap.com/xi/TextID">
                                                                                         89e520259ce511db81520015587b9f42
                                                                                         </xsd:appinfo>
                                                                                    </xsd:annotation>
                                                                               </xsd:element>
                                                                               <xsd:element name="LastName" type="xsd:string">
                                                                                    <xsd:annotation>
                                                                                         <xsd:appinfo source="http://sap.com/xi/TextID">
                                                                                         89e520269ce511dba6d30015587b9f42
                                                                                         </xsd:appinfo>
                                                                                    </xsd:annotation>
                                                                               </xsd:element>
                                                                               <xsd:element name="Age" type="xsd:string">
                                                                                    <xsd:annotation>
                                                                                         <xsd:appinfo source="http://sap.com/xi/TextID">
                                                                                         89e520279ce511dbc9070015587b9f42
                                                                                         </xsd:appinfo>
                                                                                    </xsd:annotation>
                                                                               </xsd:element>
                                                                          </xsd:sequence>
                                                                     </xsd:complexType>
                                                                </xsd:element>
                                                           </xsd:sequence>
                                                           <xsd:attribute name="action" type="xsd:string">
                                                                <xsd:annotation>
                                                                     <xsd:appinfo source="http://sap.com/xi/TextID">
                                                                     89e520229ce511db82120015587b9f42
                                                                     </xsd:appinfo>
                                                                </xsd:annotation>
                                                           </xsd:attribute>
                                                      </xsd:complexType>
                                                 </xsd:element>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:sequence>
                        </xsd:complexType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
    </xsd:schema>
    and I must send the SQL Query statement in the ACCESS node.
    Right?
    Thanks
    Alejandro
    [/code]

  • BPM Question: JDBC Sender to RFC to JDBC Receiver

    I have the following requirement:
    JDBC Sender Adapter (by nature Asynchronous) – SELECT multiple rows from a table
    To…
    RFC Receiver Adapter (Synchronous)
    To…
    JDBC Receiver Adapter (Synchronous) – UPDATE multiple rows in a table
    Then…
    IF <SAP:Error> XML is returned from the JDBC Receiver Adapter, I want to either issue a CCMS alert, or utilize the XI Email Adapter for error notification. 
    ELSE, if <root_response> XML is returned from the JDBC Receiver Adapter, do nothing.
    This obviously requires a BPM.  If I use the JDBC Receiver Adapter Asynchronously (with no error handling) this is a piece of cake.  But after trying to use it synchronously along with error handling logic, I am stuck.
    This issue that I am facing is how to logically handle the JDBC Receiver Adapter Response XML in the BPM.  I would like to know what I need to do in the BPM in order to issue a CCMS alert (and/or send a message through the XI Email Adapter) ONLY if the <SAP:Error> XML is returned. 
    Below are examples of the 2 types of response messages that I would receive back from the JDBC Receiver:
    Error:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
      <!--  Call Adapter -->
      <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SAP_OrderImport' (structure 'StatementName2'): java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Violation of PRIMARY KEY constraint 'PK_SAP_OrderImport'. Cannot insert duplicate key in object 'SAP_OrderImport'.</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Success:
      <?xml version="1.0" encoding="utf-8" ?>
      <root_response>
      <StatementName1_response>
      <update_count>1</update_count>
      </StatementName1_response>
      </root_response>
    I have searched SDN for a while but did not find anything that specifically addressed this.  I would appreciate any help…

    Hi,
    In ur BPM wrap the jdbc send step with a exception block. in the exception block define a control step to throw an alert.
    so when the jdbc step fails, the exception is caught and an alert is generated by the control step.
    cheers,
    naveen

  • 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

  • Jdbc Sender Adapter and Acks

    Hi,
    am I right in saying that the JDBC Sender Adapter can't request XI system level acknowledgements. Due to this it is necessary to establish an integrations process fed with the data from the sender adapter, sending it to the target system and receiving an acknowledgement?
    Kind regards,
    Heiko

    Hi heiko,
    a JDBC sender adapter cannot be configured Synchronously and so, what you are stating sounds perfect
    If you want an update back to the database after execution , BPM is one way .
    But, if you are looking to update some info immediately after sender adapter finishes its exectuion, then UPDATE statment can be used.
    Regards,
    Bhavesh

  • Error in JDBC sender adapter for MS Access

    Hi All,
    I am working on scenario MS Access(JDBC adapter) to File. I am getting error in sender communication channel -
    Error during database connection to the database URL 'jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=Z:\Database1.accdb' using the JDBC driver 'sun.jdbc.odbc.JdbcOdbcDriver': 'com.sap.aii.adapter.jdbc.sql.DriverManagerException: Cannot establish connection with the registered driver. sun.jdbc.odbc.JdbcOdbcDriver returns: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
    : SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified'
    My connection string is -
    JDBC Driver - sun.jdbc.odbc.JdbcOdbcDriver
    Connection - jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=Z:\Database1.accdb
    I have followed below blogs but still facing issue. Kindlt suggest on this.
    http://scn.sap.com/people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
    http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/07/06/connecting-sap-pi-to-ms-access-and-error-resolution-approach-for-driver-not-found
    http://scn.sap.com/thread/1993036
    Regards,
    Rashmi Joshi

    Hi Rashmi,
    For Downloading JDBC drivers
    StelsMDB - MS Access JDBC driver, JDBC driver for Microsoft Access database (MDB) files
    MS Access JDBC Driver -- Connecting MS Access with Java
    For Deploying JDBC drivers in SAP PI
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8000cffc-6b92-2d10-3493-f2ac1399242f?quicklink=index&…
    You can inform your basis team about the error and your requirement, they will take care of it,but as a PI consultant we should know all these things.
    Regards
    Bhargava Krishna

  • JDBC send data to oracle, oracle only accept column name in Upper case

    Hi experts,
    I am doing a scenario File --> XI --> JDBC,  JDBC send data to a Oracle 10g database, I have configured JDBC receiver to use XML-SQL format. in oracle database ,  table "EMPLOYEE" has a column "NAME", but when I send data to oracle using JDBC receiver, the column is "name", then XI complains
    " 'EMPLOYEE' (structure 'insert'): java.sql.SQLException: FATAL ERROR: Column 'name' does not exist in table 'EMPLOYEE'.
    can anyone help me to let oracle accpet column "name". I can't change colum in JDBC receiver from "name" to "NAME".
    Thanks a lot.

    <i>can anyone help me to let oracle accpet column "name"</i>
    Making Oracle case insensitive is not possible (in my opinion). By default all object names are stored in UPPER case in the rdbms dictionary.
    When XI searches for column name in Oracle, this search is case sensitive. So u have to configure accordingly.
    Regards,
    Prateek

  • Parametric SQL in JDBC sender

    Hi All,
    Is there a way to submit SQL statement with dynamic parametr to the JDBC sender?
    I need to get the current date of the PI machine and use it in the  "where" cluase of the "Query SQL Statement" dynamically in the "Proccessing" tab of the JDBC sender
    Thanks,
    Ranny

    What I can do is , Suggest you a way for your reqt.
    Create a Synchronous  Scenario ....
    Sender   ->    XI    ->    Receiver(JDBC) will Give Response on the basis of your query
    On Receiver (JDBC) Side , create `your query like your reqt with Date parameter in mapping Tranformation.
    Regards
    Prabhat Sharma

  • Multiple select queries for JDBC sender

    I am working on JDBc to IDOC scenario.
    I need to process two select queries in PI where output of 1st query becomes the input of second.
    Now i need to map the output of second to IDOC through XSL mapping also i need to use BPM to process(without using the stored procedure) the scenario.
    In my JDBC communication channel i have option for only one select query and second query should fetch the data through BPM.
    In BPM i have used the following sequence mentioned below:
    Start --> Receive step ( receives all the header lines) --> Transformation (to split the header messages to single message) --> Block Start( To processEachRecord) --> Send Syn (to map the request message i,e. output of first query with Response i,e. structure of the second query)  --> Send Asyn (to send the output of second query to XSLT mapping) -->Block End --> stop
    Output of XSLT mapping is the input for IDOC
    Now i need to understand how to process the second query?

    >> I need to process two select queries in PI where output of 1st query becomes the input of second
    Use SQL Nested Queries. 
    Example:
    SELECT Model FROM Product WHERE ManufacturerID IN (SELECT ManufacturerID FROM Manufacturer
    WHERE Manufacturer = 'Dell')
    Here first table is Manufacturer .. we do select query in manufacturer to return data and pass it to the first table Product.
    >> Now i need to understand how to process the second query?
    You dont need at all. In your sender jdbc channel, write sql statement nested query and you will get only output of the second table. you map the second table output to the idoc.
    Note: Dont know why do you need BPM for this case..
    Jdbc sender adapter  help links
    http://help.sap.com/saphelp_srm40/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
    Check this thread for update statement in jdbc cc
    Re: sender jdbc adapter

Maybe you are looking for