WRITING MULTIPLE INES USING JDBC ADAPTER

We are working a solution file-Jdbc that presents the following xml after activation of the cenario in question:
  <?xml version="1.0" encoding="UTF-8" ?>
- <p2:P1_Funcionario_MT xmlns:p2="urn:cemig:P1:RH">
- <ESTRUT_FUNC>
- <TFUNCIONARIO ACTION="UPDATE_INSERT">
- <ACCESS>
  <NUM_MATRICULA>123460</NUM_MATRICULA>
  <NOM_FUNCIONARIO>ANTONIO5CARLOS BORGES BATISTA</NOM_FUNCIONARIO>
  <DES_FUNCAO>ENG EMPREENDIMENTO1</DES_FUNCAO>
  <SIG_ORGAO>1</SIG_ORGAO>
  <END_LOCAL_TRAB>1</END_LOCAL_TRAB>
  <END_FUNCIONAL>END FUNC</END_FUNCIONAL>
  <NUM_TELEFONE>2737328041</NUM_TELEFONE>
  <NOM_CIDADE>AIMOR\'c9S</NOM_CIDADE>
  <DAT_NASCIMENTO>19610620</DAT_NASCIMENTO>
  <TIP_SITUACAO>T</TIP_SITUACAO>
  <NUM_UA>UA</NUM_UA>
  <DAT_ATUALIZACAO>2005/10/19</DAT_ATUALIZACAO>
  <DES_EMAIL>[email protected]</DES_EMAIL>
  <NUM_SIT>1</NUM_SIT>
  <COD_CEP_LOTACAO>35200-000</COD_CEP_LOTACAO>
  <DES_END_LOTACAO>FAZENDA VI\'c7OSA</DES_END_LOTACAO>
  <NUM_END_LOTACAO>1</NUM_END_LOTACAO>
  <DES_CIDADE_LOTACAO>AIMOR\'c9S</DES_CIDADE_LOTACAO>
  <NUM_CEL_CORPORATIVO>1</NUM_CEL_CORPORATIVO>
  <DES_LOCAL_TRABALHO>FAZENDA VI\'c7OSA</DES_LOCAL_TRABALHO>
  <COD_EMPRESA>51</COD_EMPRESA>
  <END_LOCAL_COMPLETO>USINA AIMOR\'c9S</END_LOCAL_COMPLETO>
  </ACCESS>
- <ACCESS>
  <NUM_MATRICULA>123461</NUM_MATRICULA>
  <NOM_FUNCIONARIO>ANTONIO6CARLOS BORGES BATISTA</NOM_FUNCIONARIO>
  <DES_FUNCAO>ENG EMPREENDIMENTO2</DES_FUNCAO>
  <SIG_ORGAO>1</SIG_ORGAO>
  <END_LOCAL_TRAB>1</END_LOCAL_TRAB>
  <END_FUNCIONAL>END FUNC</END_FUNCIONAL>
  <NUM_TELEFONE>2737328041</NUM_TELEFONE>
  <NOM_CIDADE>AIMOR\'c9S</NOM_CIDADE>
  <DAT_NASCIMENTO>19610620</DAT_NASCIMENTO>
  <TIP_SITUACAO>T</TIP_SITUACAO>
  <NUM_UA>UA</NUM_UA>
  <DAT_ATUALIZACAO>2005/10/19</DAT_ATUALIZACAO>
  <DES_EMAIL>[email protected]</DES_EMAIL>
  <NUM_SIT>1</NUM_SIT>
  <COD_CEP_LOTACAO>35200-000</COD_CEP_LOTACAO>
  <DES_END_LOTACAO>FAZENDA VI\'c7OSA</DES_END_LOTACAO>
  <NUM_END_LOTACAO>1</NUM_END_LOTACAO>
  <DES_CIDADE_LOTACAO>AIMOR\'c9S</DES_CIDADE_LOTACAO>
  <NUM_CEL_CORPORATIVO>1</NUM_CEL_CORPORATIVO>
  <DES_LOCAL_TRABALHO>FAZENDA VI\'c7OSA</DES_LOCAL_TRABALHO>
  <COD_EMPRESA>51</COD_EMPRESA>
  <END_LOCAL_COMPLETO>USINA AIMOR\'c9S</END_LOCAL_COMPLETO>
  </ACCESS>
- <KEY>
  <NUM_MATRICULA>123460</NUM_MATRICULA>
  <DES_FUNCAO>ENG EMPREENDIMENTO1</DES_FUNCAO>
  </KEY>
- <KEY>
  <NUM_MATRICULA>123461</NUM_MATRICULA>
  <DES_FUNCAO>ENG EMPREENDIMENTO2</DES_FUNCAO>
  </KEY>
  </TFUNCIONARIO>
  </ESTRUT_FUNC>
  </p2:P1_Funcionario_MT>
  The Message Monitor pointed to the Integration Server presents the following error:
2005-10-19 17:59:55 Error Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'TFUNCIONARIO' (structure 'ESTRUT_FUNC'): java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Violation of PRIMARY KEY constraint 'PK_TFUNCIONARIO'. Cannot insert duplicate key in object 'TFUNCIONARIO'.
We checked the primary key and it is present in the SQLSERVER table ( tfuncionario ). But the XI should rewriting this line and is not doing.
Anyone knows what is happening?
Thanks and regards,
Midervilson de Andrade.

Hi,
are you sure there are no records in tfunctionario table with 123460 and 123461.
please check the database, if possible clear the table (delete all data) and try again.
Naveen

Similar Messages

  • Updating multiple tables using JDBC Adapter

    Hi,
    I am trying to insert/update multiple tables using one message via JDBC adapter. The following is the message being posted. However, only the first statement was executed. Anything wrong?
    Thanks in advance!
    Hart
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:DeliveryDBUpdate xmlns:ns0="http://test.com/r3_integration"><DeliveryData><DelHeader action="UPDATE_INSERT"><table>DelHeader</table><access><DelNo>0080000230</DelNo><DelType>LF</DelType><XOverwrite>X</XOverwrite><ShipTo>0000000026</ShipTo><SoldTo>0000000026</SoldTo><Priority>00</Priority><DocDate>02/17/2007</DocDate><GText>CIF Test</GText><DelDate>02/20/2007</DelDate><PickDate>02/20/2007</PickDate><ShipPoint>NO02</ShipPoint><PackCount>00000</PackCount></access><key><DelNo>0080000230</DelNo></key></DelHeader>
    <DelItem action="INSERT"><table>DelItem</table><access><DelNo>0080000230</DelNo><ItemNo>000010</ItemNo><GText>10# GRAN-GREAT VALUE</GText><Material>G04410G611</Material><Plant>6005</Plant><SLoc>6005</SLoc><RefDoc>mmenon32</RefDoc><RefItem>00000000</RefItem><DelQty>5.000</DelQty><UOM>BL</UOM></access><access><DelNo>0080000230</DelNo><ItemNo>000020</ItemNo><GText>25# GRAN- GREAT VALUE</GText><Material>G04025G611</Material><Plant>6005</Plant><SLoc>6005</SLoc><RefDoc>mmenon32</RefDoc><RefItem>00000000</RefItem><DelQty>5.000</DelQty><UOM>BG</UOM></access></DelItem></DeliveryData></ns0:DeliveryDBUpdate>

    Hi,
    You need 2 STATEMENT level tags,
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:DeliveryDBUpdate xmlns:ns0="http://test.com/r3_integration">
    <b><DeliveryData1></b>
    <DelHeader action="UPDATE_INSERT">
    <table>DelHeader</table>
    <access>
    <DelNo>0080000230</DelNo>
    <DelType>LF</DelType>
    <XOverwrite>X</XOverwrite>
    <ShipTo>0000000026</ShipTo>
    <SoldTo>0000000026</SoldTo>
    <Priority>00</Priority>
    <DocDate>02/17/2007</DocDate>
    <GText>CIF est</GText>
    <DelDate>02/20/2007</DelDate>
    <PickDate>02/20/2007</PickDate>
    <ShipPoint>NO02</ShipPoint>
    <PackCount>00000</PackCount>
    </access>
    <key>
    <DelNo>0080000230</DelNo>
    </key>
    </DelHeader>
    <b><DeliveryData1></b>
    <b><DeliveryData2></b>
    <DelItem action="INSERT">
    <table>DelItem</table>
    <access>
    <DelNo>0080000230</DelNo>
    <ItemNo>000010</ItemNo>
    <GText>10# GRAN-GREAT VALUE</GText>
    <Material>G04410G611</Material>
    <Plant>6005</Plant>
    <SLoc>6005</SLoc>
    <RefDoc>mmenon32</RefDoc>
    <RefItem>00000000</RefItem>
    <DelQty>5.000</DelQty>
    <UOM>BL</UOM>
    </access>
    <access>
    <DelNo>0080000230</DelNo>
    <ItemNo>000020</ItemNo>
    <GText>25# GRAN- GREAT VALUE</GText>
    <Material>G04025G611</Material>
    <Plant>6005</Plant>
    <SLoc>6005</SLoc>
    <RefDoc>mmenon32</RefDoc>
    <RefItem>00000000</RefItem>
    <DelQty>5.000</DelQty>
    <UOM>BG</UOM>
    </access>
    </DelItem>
    <b></DeliveryData2></b>
    </ns0:DeliveryDBUpdate>
    Try with such a strcuture and let us know if it works.
    Regards
    Bhavesh

  • How to operate multiple querys using DB Adapter and 'Execute Custom SQL'

    I have a requirment that I need to create database adapter in your BPEL process with 'Execute Custom SQL' to operate multiple query in DB in one atomic
    here are the details:
    inbound request:
    <ns1:Query_bpelProcessRequest>
    <ns1:input>
    <ns1:ItemDetail>
    <ns1:ItemID>1123DDDS</ns1:ItemID>
    </ns1:ItemDetail>
    <ns1:ItemDetail>
    <ns1:ItemID>1126EWWA</ns1:ItemID>
    </ns1:ItemDetail>
    <ns1:ItemDetail>
    <ns1:ItemID>11208FSAA</ns1:ItemID>
    </ns1:ItemDetail>
    </ns1:input>
    </ns1:Query_bpelProcessRequest>
    I use for-each fuction in XSLT to mapping the all ItemID value:
    <xsl:template match="/">
    <xsl:for-each select="/tns:Query_bpelProcessRequest/tns:input/tns:ItemDetail">
    <ns1:QueryFromDB_Input>
    <ns1:ItemID>
    <xsl:value-of select="tns:ItemID"/>
    </ns1:ItemID>
    </ns1:QueryFromDB_Input>
    </xsl:for-each>
    </xsl:template>
    and in DB Adapter I use the 'Execute Custom SQL' to query the CONTENT value according the ItemID value:
    select distinct CONTENT from agile.item where ITEM_NUMBER=’<ItemID>’
    However, in the result, It only query the first item value for <ns1:ItemID>1123DDDS</ns1:ItemID>
    <<QueryFromDB_InputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_Input_msg">
    <QueryFromDB_Input xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
    <ns1:ItemID>1123DDDS</ns1:ItemID>
    </QueryFromDB_Input>
    </part></QueryFromDB_InputVariable>
    <QueryFromDB_OutputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_OutputCollection">
    <QueryFromDB_OutputCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
    <QueryFromDB_Output>
    <ITEM_NUMBER>1123DDDS</ITEM_NUMBER>
    <CONTENT >SJIFESSFFJ</CONTENT >
    </QueryFromDB_Output>
    </QueryFromDB_OutputCollection>
    </part></QueryFromDB_OutputVariable>
    the other two querys are not operated.
    what can I do to operate multiple querys??
    Thanks

    Hi Rod,
    I are using while loop and assign array inputvalue to the inputvarable of DBadapter now, but actually it doesn't work.
    Throw expection
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>XPath query string returns multiple nodes.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"] should not return multipe nodes.
    Please check the BPEL source at line number "89" and verify the part and xpath query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"].
    Possible reasons behind this problems are: some xml elements has maxOccurs > 1 or the xml data is invalid according to XML Schema.
    To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page.
    </summary>
    </part></selectionFailure>
    my inbound XSD:
    <element name="ItemsQuery_bpelProcessRequest">
    <complexType>
    <sequence>
    <element name="input" type="tns:inputType"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="inputType">
    <sequence>
    <element name="inputDetail" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="ProductID" type="string" minOccurs="0"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    <element name="ItemsQuery_bpelProcessResponse">
    <complexType>
    <sequence>
    <element name="result" type="tns:outputType"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="outputType">
    <sequence>
    <element name="ItemOutput" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="item_id" type="string" minOccurs="0"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    DB Adapter XSD:
    <xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="QueryItem_Input" type="QueryItem_Input"/>
    <xs:complexType name="QueryFrom_Input">
    <xs:sequence>
    <xs:element name="ProductID" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="QueryItem_OutputCollection" type="QueryItem_OutputCollection"/>
    <xs:complexType name="QueryItem_OutputCollection">
    <xs:sequence>
    <xs:element name="QueryItem_Output" type="QueryItem_Output" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="QueryItem_Output">
    <xs:sequence>
    <xs:element name="item_id" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    the bpel assign:
    <assign name="Initial_Index">
    <copy>
    <from expression="0"/>
    <to variable="ItemIndex"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('ItemIndex')&lt;ora:countNodes('inputVariable','payload','/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID)">
    <sequence name="Sequence_1">
    <assign name="Assign_QueryInput">
    <copy>
    <from variable="inputVariable" part="payload"
    query='/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID{bpws:getVariableData('ItemIndex')}'/>
    <to variable="QueryItem_InputVariable"
    part="QueryItem_nput_msg"
    query="/ns2:QueryItem_Input/ns2:ProductID"/>
    </copy>
    </assign>
    <invoke name="Invoke_QueryDB" partnerLink="QueryItem"
    portType="ns1:QueryItem_ptt"
    operation="QueryItem_PSFT"
    inputVariable="QueryItem_InputVariable"
    outputVariable="QueryItem_OutputVariable"/>
    <assign name="Assign_Output">
    <copy>
    <from variable="QueryItem_OutputVariable"
    part="QueryItem_OutputCollection"
    query="/ns2:QueryItem_OutputCollection/ns2:QueryItem_Output/ns2:item_id"/>
    <to variable="outputVariable" part="payload"
    query='/client:ItemsQuery_bpelProcessResponse/client:result/client:ItemOutput/client:item_id{bpws:getVariableData('ItemIndex')}'/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('ItemIndex')+1"/>
    <to variable="ItemIndex"/>
    </copy>
    </assign>
    </sequence>
    </while>
    I use {} instead of  []  for array,  because [] seams not reveal in this message board
    seems I can't assign array values to the DB inputvalue, Are there any solutions for this ?
    I still haven't found any way for operating multiple querys using DB Adapter.
    Thanks
    Edited by: user1065212 on 07-Jan-2010 19:39
    Edited by: user1065212 on 07-Jan-2010 19:41
    Edited by: user1065212 on 07-Jan-2010 19:44
    Edited by: user1065212 on 07-Jan-2010 19:45

  • "encoding = UTF-8" missing while writing XML file using file Adapter

    Hi,
    We are facing an unique problem writing xml file using file adapter. The file is coming without the encoding part in the header of xml. An excerpt of the file that is getting generated:
    <?xml version="1.0" ?>
    <customerSet>
    <user>
    <externalID>51017</externalID>
    <userInfo>
    <employeeID>51017</employeeID>
    <employeeType>Contractor</employeeType>
    <userName/>
    <firstName>Gail</firstName>
    <lastName>Mikasa</lastName>
    <email>[email protected]</email>
    <costCenter>8506</costCenter>
    <departmentCode/>
    <departmentName>1200 Corp IT Exec 8506</departmentName>
    <businessUnit>1200</businessUnit>
    <jobTitle>HR Analyst 4</jobTitle>
    <managerID>49541</managerID>
    <division>290</division>
    <companyName>HQ-Milpitas, US</companyName>
    <workphone>
    <number/>
    </workphone>
    <mobilePhone>
    <number/>
    </customerSet>
    </user>
    So if you see the header the "encoding=UTF-8" is missing after "version-1.0".
    Do we need to configure any properties in File Adapter?? Or is it the standard way of rendering by the adapter.
    Please advice.
    Thanks in advance!!!

    System.out.println(nodeList.item(0).getFirstChild().getNodeValue());

  • Problem with Progress DB while using to connect using JDBC Adapter

    Hi,
      I am facing Problem with Progress DB while using to connect using JDBC Adapter. I am getting the following error in auditlog file like,
    Error during database connection to the database URL  jdbc:JdbcProgress:T:156.5.31.65:2545:/mfgprodev/devbadb 
    /devsche/i_apoext.db using the  JDBC driver "com.progress.sql.jdbc.JdbcProgressDriver" : com.sap.aii.adapter.jdbc.sql.DriverManagerException: Unable to locate a suitable JDBC driver to establish a connection to URL " jdbc:JdbcProgress:T:156.5.31.65:2545:/mfgprodev/devbadb 
    /devsche/i_apoext.db "
    I tried using the following all URLs,
    1. jdbc:JdbcProgress:T:156.5.31.65:2545:i_apoext.       
    2. jdbc:JdbcProgress:T:156.5.31.65:2545:i_apoext.db     
    3.                                                      
    jdbc:JdbcProgress:T:156.5.31.65:2545:/mfgprodev/devbadb 
    /devsche/i_apoext.                                      
    4.                                                      
    jdbc:JdbcProgress:T:156.5.31.65:2545:/mfgprodev/devbadb 
    /devsche/i_apoext.db.                                  
    Can anyone please help me out in solving this issue.
    May be the cause for this is :
    1) The Wrong URL  format
    2) CLASSPATH is not setted properly..
    Can you look more into this stuff.
    Thanks,
    Soorya.

    Hi,
    To access any database fromm XI, using the JDBC adapter, the corresponding drivers have to be installed on the XI server.
    Just check this note 831162.
    Also, check this PDF to install Drivers in XI,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10

  • 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

  • NCHAR issue with oracle database using JDBC adapter

    Hi,
    We have a requirement to develop an XI interface from FTP server(File adapter) to oracle database using JDBC adapter. In the oracle database table few fields are of type NCHAR/NVARCHAR. when we try to insert the character(A,B,c..) values into oracle table fields of type NCHAR/NVARCHAR, we are getting the following error message in the JDBC adapter audit log. IF we pass the numeric value to the same field, then we are able to insert the records successfully.
    Unable to execute statement for table or stored procedure. 'IPCSDD_DOWNLOAD_PROCESS' (Structure 'StatementName1') due to java.sql.SQLException: ORA-00904: "P": invalid identifier
    2010-10-19 22:29:59 Error JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'IPCSDD_DOWNLOAD_PROCESS' (structure 'StatementName1'): java.sql.SQLException: ORA-00904: "P": invalid identifier
    2010-10-19 22:29:59 Error MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'IPCSDD_DOWNLOAD_PROCESS' (structure 'StatementName1'): java.sql.SQLException: ORA-00904: "P": invalid identifier
    Please find the system information below.
    Oracle version- 10.2.4
    XI version - 3.0/ service pack 19
    JDBC driver- oracle.jdbc.driver.OracleDriver
    Please suggest.
    Thanks,
    Venkata
    Edited by: Venkata Narayana  Eepuri on Oct 21, 2010 12:10 AM

    Dear Venkata Narayana,
    Concerning the error, kindly go through the following note :
    731 - Collective note: ORA-00904
    follow the recommendations mentioned in that and please check if that helps.
    Best Regards
    Nishwanth

  • Using JDBC Adapter posting data from Oracle database to Falt file????

    Hi All,
      By using JDBC adapter, for now I have to connect to Oracle Database and then get the employee information from the Employee Table and post it to the flat file, can you please help me out the complete procedure...
    Thanks in advance
    Andy

    Hi Andy,
    have a look at the help for configuring a JDBC Sender adapter: http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
    It mentions all the settings you'll need to make e.g. the connection URL as posted above.
    And it also lists how an XML file looks like that contains the query results according to the SQL Select statement in the adapter.
    <resultset>
    <row>
    <column-name1>column-value</ column-name1>
    <column-name2>column-value</ column-name2>
    <column-name3>column-value</ column-name3>
    </row>
    <row>
    <column-name1>column-value</ column-name1>
    <column-name2>column-value</ column-name2>
    <column-name3>column-value</ column-name3>
    </row>
    </resultset>
    So you have to create a datatype, message type and message interface to match this structure (of course you'll need to substitute column-name1 etc. with the column names in your select statement).
    Now if you want to create a flat file from that, you have to create an XML representation of that flat file and use the content conversion in the receiver file adapter as defined here: http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/content.htm
    Regards
    Christine

  • 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

  • Inserting Multiple Rows into Database Table using JDBC Adapter - Efficiency

    I need to insert multiple rows into a database table using the JDBC adapter (receiver).
    I understand the traditional way of repeating the statement multiple times, each having its <access> element. However, I am just wondering whether this might be performance-inefficient, as it might insert records one by one.
    Is there a way to ensure that the records are inserted into the table as a block, rather than record-by-record?

    Hi Bhavesh/Kanwaljit,
    If we have multiple ACCESS tags then what happens is that the connection to the database is made only once. But the data is inserted row by row.
    Why i am saying this?
    If we add the following in JDBC Adapter..logSQLStatement = true. Then incase of multiple inserts we can see that there are multiple
    <i>Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','1000')
    Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','2000')</i>
    Doesnt this mean that rows are inserted one by one?
    Correct me if i am wrong.
    This does not mean that the transaction is not guaranted. Either all the rows will be inserted or rolled back.
    Regards,
    Sumit

  • Multiple tables In JDBC ADapter

    Hi All,
             Can we access more than 1 table in one JDBC adapter? If yes how?
    XIer

    Hey
    on receiver side create multiple STATEMENT Level tags, one for each table and the appropriate access level tags.
    on sender side you can only have one select Query.
    so try to use a JOIN SQL Statement .
    Thanx
    Aamir
    Message was edited by:
            Aamir Suhail

  • Batch Processing of records using JDBC adapter

    Dear all,
    We are working on JDBC-JDBC scenario and the flow is as below. Source is ORACLE and Target is SQL SERVER.
    We need to pick up 2000 records from Source . PI should split them ito 4 batches of 500 each and should insert in SQL DB.While inserting the records, if there are any errors, those records should sent back to Source again. It is Synchronous scenario.
    1) But as far as I know Batch Processing mode, INSERT option cannot be used.(From SAP help)
    2) Will the connection break if we are sending the error records back to sender.
    Any thoughts would be helpful.
    regards,
    babu

    Hi,
    The below links may help U.
    JDBC ADAPTER
    http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
    /people/saravanakumar.kuppusamy2/blog/2005/01/19/rdbms-system-integration-using-xi-30-jdbc-senderreceiver-adapter
    /people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30 - File to JDBC
    JDBC - http://help.sap.com/saphelp_nw2004s/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm
    multiple tables with JDBC - http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    JDBC Response /people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
    Regards
    Pullarao

  • Error while retrieving data from sql using jdbc adapter

    hi all,
    i m working on one scenario where i m sending data using HTTP and receiver is jdbc adapter which is retrieving me data from sql server.
    i have checked the structure both for req and res.
    i m getting this error
    <SAP:Error>
    <SAP:Category>Application</SAP:Category>
    <SAP:Code>MAPPING.EXCEPTION_DURING_EXECUTE</SAP:Code>
    <SAP:P1>com/sap/xi/tf/_INF57285_DB_HR_RES_</SAP:P1>
    <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
    <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
    <SAP:Stack>During the application mapping com/sap/xi/tf/_INF57285_DB_HR_RES_ a com.sap.aii.utilxi.misc.api.BaseRuntimeException was thrown: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
    </SAP:Error>
    can somebody help me with this.
    Thanks & Regards
    Aruna

    thnks bhavesh i think i made it that way
    JDBC REQ  
      <ns:INF57285_DB_Request xmlns:ns="http://www.infosys.com/xi/training/hyd/57285">
      <Employee>
        <EmpDetails action="SELECT">
          <table>EmpDetails</table>
          <access>
            <Name />
            <EmpId />
            <Band />
            <Salary />
          </access>
          <Key>
            <EmpId>57285</EmpId>
          </Key>
        </EmpDetails>
      </Employee>
    </ns:INF57285_DB_Request>                        
      JDBC RES
    <ns:INF57285_DB_Request_response xmlns:ns="http://www.infosys.com/xi/training/hyd/57285">
      <Employee_response>
        <row>
          <Name>aruna</Name>
          <EmpId>57285</EmpId>
          <Band>A</Band>
          <Salary>4675776</Salary>
        </row>
      </Employee_response>
    </ns:INF57285_DB_Request_response>
    my hr req is which i mapped with DB req
    <ns:INF57285_HR_Req xmlns:ns="http://www.infosys.com/xi/training/hyd/57285">
      <REQUEST>
        <EmpNo>57285</EmpNo>
      </REQUEST>
    </ns:INF57285_HR_Req>
    my hr res is which i mapped with DB res
    <ns:INF57285_HR_Res xmlns:ns="http://www.infosys.com/xi/training/hyd/57285">
      <response>
        <row>
          <Name>aruna</Name>
          <Empld>57285</Empld>
          <Salary>4675776</Salary>
        </row>
      </response>
    </ns:INF57285_HR_Res>
    and interestingly i am not getting any error in sxmb_moni
    it's not showing any error
    plz suggest me something wht to do ....
    thnks & regards
    Aruna

  • Sending multiple files using file adapter

    The scenario I am implementing requires multiple files of different names to be picked up by my adapter. I dont want to create different file adapters for each file. I tried using the "Additonal Files" option in the sender file adapter in my configuration, but am not able to do the same. Any idea as to how the configuration for multiple files for same adapter isto be done?

    Hi bhavesh
    Fundamental of adapter configuration is you have to give valid xml structure to XI, so you will define your configuration according to your requirement.
    for .xml you have file as a message protocol while for .csv you have file content conversion as a message protocol.
    So you have to define adpater configuration for sender side for one type of structure.
    So you need a different communication channel for different extentions.
    for diffrent strcutures,having same extention, you can execute this.
    Please make me clear that what is your scenario?
    why you need to pick all files under a directory with a same communication channel?
    Regards
    Piyush

  • Populating SAP Database table using JDBC adapter

    Hi Folks,
        I have a requirement to populate a SAP database table say ZTABLE using XI. The Model is the table has to be populated through a file which will be processed by SAP XI. Basically this is a File to JDBC scenario. The database used is ORACLE. Kindly provide me some idea to go ahead.

    I tried to place the MS access table in the shared folder of the Application server system but still it seems the table is not being populated.
    did you check the log in your receiver channel? (/people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn)
    The requirement is to update the tables directly as those are the custom tables.
    i would still say that do not update SAP tables directly from XI/ PI.....this is not a standard architecture/ solution....

Maybe you are looking for