Jdbc adapter table's name in chinese
hi everyone:
I have configured the 'JDBC-XI-RFC' secnario, my trouble is that both the name of database table and table's fields are chinese, so the JDBC adapter can not get the datas from the DB table.
Any good idears? except changing the table' name in english.
B/R
amanda
hi,Bhaumik
Thank you for your answer.
Now the JDBC Adapter can select the data from DB table in chinese, but i think the mapping is impossible to be completed,because it's impossible to define the field name in chinese in data types.
As what you said,develop adapter in java,i think it is difficult for me.
thanks a lot.
Amanda
Similar Messages
-
JDBC Adapter-XML Document Name
I am working on XI 2.0 and need to change the XML document name I am receiving from an inbound JDBC adapter. The document I am receiving is:
<resultset>
<row>
<col1>ABC</col1>
<col2>123</col2>
</row>
</resultset>
I want to receive:
<MyDocumentName>
<row>
<col1>ABC</col1>
<col2>123</col2>
</row>
</MyDocumentName>
Does anyone know how to override the default "resultset" name from the JDBC adapter??? The reason I need to do this is because my message mapping does not work properly unless I have the Message type of the message from my JDBC adapter as "resultset".
Thanks for your help!
Dan Pettingill(Note: I work with Dan Pettingill, the starter of this thread)
I decompiled the class Renato suggested, but I don't
think that's going to be the solution. The DB2XMBProcesser is dependent on XI properly setting the properties values for the jdbc adapter. DB2XMBProcesser will use a property named "db.documentname" to set the name of the root node of the DB2 results. If no such property is defined, the default value of resultSet is used.
[documentName = getParaWithDefault("db.documentName", "resultset");]
Our problem seems to be that XI is not passing along the parameters we define in the adapter configuration. We've tried numerous combinations and names, but they never take.
The only way we can get XI to recognize that we are sending in a documentName parm is to call it "docName". Any other name is essentially ignored (including db.documentname, documentname, XMB.docName, and a lot of other permutations as well).
But here is the log from that adapter when we do so. Not that it sees the value we're setting, but it won't set the documentname parm going to the jdbc.
2004-08-31 17:33:45 : jdbcListener
Raw configuration data ***
Transport protocol: JDBC, version
Message protocol: JDBC, version
pollInterval|301
additionalParameters|true
jdbcDriver|com.ibm.db2.jcc.DB2Driver
retryInterval|null
dbpassword|***
queryStatement|SELECT * FROM RBPRDB.T1256;
queueName|null
autoCommit|false
updateStatement|Delete from RBPRDB.T1256 Where GUID Is Not Null;
dbdisconnect|false
dbuser|r50445
adapterStatus|active
isolationLevel|2
addParameterParams|*** TABLE , 2 ROWS DEFINED ***
addParameterParams|addParameterParams$0$addParameterParamName$docNamespace
addParameterParams|addParameterParams$0$addParameterParamValue$urn:freescale.com
/xi/db2-ims/wms
addParameterParams|addParameterParams$1$addParameterParamName$docName
addParameterParams|addParameterParams$1$addParameterParamValue$SelectAckQueue
pollIntervalMsecs|null
execute|null
connectionURL|jdbc:db2://WACCTSO.sps.mot.com:9003/WACCDB2T
qualityOfService|EO
Used configuration data ***
'MessageProtocol': 'JDBC'
'adapterStatus': 'active'
'addParameterParams.dbEncoding': ''
'addParameterParams.docName': 'SelectAckQueue'
'addParameterParams.docNamespace': 'urn:freescale.com/xi/db2-ims/wms'
'addParameterParams.docNamespaceScope': 'root'
'additionalParameters': 'true'
'autoCommit': 'false'
'connectionURL': 'jdbc:db2://WACCTSO.sps.mot.com:9003/WACCDB2T'
'dbdisconnect': 'false'
'dbencoding': ''
'dbpassword': '***'
'dbuser': 'r50445'
'documentname': 'resultset'
'documentnamespace': ''
'execute': ''
'isolationLevel': '2'
'jdbcDriver': 'com.ibm.db2.jcc.DB2Driver'
'pollInterval': '301'
'pollIntervalMsecs': '0'
'qualityOfService': 'EO'
'queryStatement': 'SELECT * FROM RBPRDB.T1256;'
'retryInterval': '301'
'updateStatement': 'Delete from RBPRDB.T1256 Where GUID Is Not Null;'
OK - initialized -
JDBC adapter table update Behaviour in PI
Hello Experts ,
I have Proxy to JDBC scenario ,please let know is there possible way to insert more than one line diff item for the same record ??
Could you please explain the behavior of JDBC adapter.
For Instance :
Expected Behavior:
Po number1 , item1 . ( first level of execution )
Po number1 , item2. (second level of execution )
Actual Behavior :
Po number1 , item2. (second level of execution )
In my scenario it is updating only the recent value , could you please suggest me .
Regards
RajaHi ,
Hope you are doing as below in mapping.
Open insert statement twice and don't use PO Number as key field value .
Ex:
case1:
Insert into tablename(ponumber,item) values(123,'xyz') ;
Insert into tablename(ponumber,item) values(123,'rtz') ;
O/P:two records gets inserted
123 xyz
123 rtz
case2:
Insert into tablename(ponumber,item) values(123,'xyz') where ponumber =123 ;
Insert into tablename(ponumber,item) values(123,'rtz') where ponumber =123 ;
O/P:2nd record overwrites the 1st record
123 rtz
Regards
Venkat -
Table name in Receiver JDBC Adapter
Hi All,
I am using receiver JDBC adapter.
But table name consist of " like BPC."#II" .
After mapping table name becomes BPC."#II" .
I am getting error while pulling data from DB.
Is the table name creating a problem.
Please remedy of this if you have come across such scenario.
Regards
PiyushHi Piyush,
All that i could get from the SAP Help regarding JDBC Adapters are these links where i never found anything much regarding the table name.anyways just go through these links and see if you find anything useful.
http://help.sap.com/bp_bpmv130/Documentation/Planning/XIUnicodeGuide030411.pdf
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm">Configuring the Receiver JDBC Adapter</a>
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/content.htm">Mapping Lookups</a>
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/22/b4d13b633f7748b4d34f3191529946/content.htm">JDBC Adapter</a>
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm">Configuring the Receiver JDBC Adapter - part 2</a>
This is all i got from the help files, anyways you can also go through those links and see if you find anything else useful.
- Escape Symbol for Apostrophe
The apostrophe character () is a reserved character in SQL syntax and is therefore replaced by an escape character if it occurs within value strings. This replacement character can be database-specific. Typical replacement characters are \ or (default value). If a character occurs that is invalid for the database being used, the adapter triggers an error message (an SQL exception) concerning the SQL syntax that is generated by the database.
- Column Name Delimiter
Depending on the database being used, column names can be enclosed by a special delimiter character, for example, if the names can contain special characters (such as ). This character can be specified at this point. The default setting is no delimiter character. If a character occurs that i
Also check if there are notes in the service market place related to the same.
Regards,
abhy
Message was edited by: Abhy Thomas -
How to handle BLOB field in receiver JDBC adapter into ABAP table
Dear Experts,
I am working in a synchronous scenario with Sender ABAP Proxy to Oracle Database as receiver via SAP PO 7.4.I will be calling a stored procedure view with fields ID, NAME,Age,*** and BLOB (Image binary).
1. The response from Oracle Database field BLOB is to be stored in ABAP table.Would I have to write any JAVA program to read the BLOB or the receiver JDBC adapter will handle it and store in a table by using ABAP proxy once it reaches ECC.
2. If yes, would the JAVA program have to deal with other 4 fields.
3. Can I use a UDF mapping to this BLOB field.
Regards
Rebecca...Dear Praveen,
Thanks for your response...
Please correct me if I am wrong.
1. For 1-1 response mapping for BLOB field, I will use just use the below UDF code.
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
return data;
2. ===Using the byte data, create binary attachment in mapping for abap proxy response===
Could you please share how to create the binary attachment.. I am not clear
Regards... -
In reciever jdbc adapter config sending data to multiple tables
Hi Masters,
Can u help me with examples step by step procedure of sending data to multiple tables in reciever jdbc adapter .. configuration....
thanks in advance,
jp.Hi,
My understanding is you are trying to use one scenario for ex a file to jdbc and want to post data into multiple tables.
If you are using Message Prortocol XML SQL format then once you define the data type for one structure then juz right click on the statement name and select Duplicate. This will create another statement in the same data type change the table name and the parameters in the duplicates strucutre.
<b>Document Formats for the Receiver JDBC Adapter</b>
http://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
All the other configurations are same simple file to jdbc scenario.
Cheers,
*RAJ* -
Invalid column name error in JDBC adapter
Hi all,
My scenario is Proxy->XI->JDBC.
I get the following error in receiver JDBC adapter.
Unable to execute statement for table or stored procedure. 'Account_Master' (Structure 'STATEMENT') due to com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'A7'.
There is no column by name A7 in the table nor there is a field by that name in the data type.
Can anyone provide any helpHi Swatantra,
compare your message-type with the database table!
There must be difference!
Regards Mario -
JDBC adapter to SAP: select & join from multiple tables ???
Hello,
I have a task to get an aggregating information from two tables and send it into SAP.
I use XI JDBC sender adapter to access to MSSQL DB.
I know how to construct SQL quiery:
(something like that)
SELECT table1.Date SUM(table1.sum) from table1
INNER JOIN table2
ON table1.Number = table2.Number
But I don't understand how to construct Data Type for this complex select operator?
How does it look like?
Where to store and how to map the selected data?
Please give me an example or an advice.
Thank You.Hi,
Use your structure like this.
<StatementName4>
<dbTableName action=SELECT>
<table>realDbTableName</table>
<access>
<col1/>
<col2/>
<col3/>
</access>
<key1>
<col2>val2old</col2>
<col4>val4</col4>
</key1>
<key2>
<col2>val2old2</col2>
</key2>
</dbTableName>
</StatementName4>
action=SELECT
Statements with this action cause existing table values to be selected. Therefore, the statement corresponds to an SQL SELECT statement.
The <access> block contains the column names to be selected, a <key> element contains the columns whose values must be identical with the specified value to get the new column values. The name of the <key> element is arbitrary. Column values within a <key> element are combined with a logical AND; different <key> elements are combined with a logical OR.
A statement with the action SELECT must have exactly one <access> element. The number of <key> elements with arbitrary names is not restricted.
The corresponding SQL statement for StatementName4 in the example above is as follows:
SELECT col1,col2,col3 FROM dbTableName WHERE ((col2=val2old AND col4=val4) OR (col2=val2old2))
If there is no <key> element, or if there is a <key> element but it is empty, then no condition is specified and the entire table is to be selected. This may not be permitted by the configuration of the JDBC adapter for security reasons and will therefore result in an error during message processing and an appropriate error message.
The response document contains the result of the action in XML format as follows:
<row>
<column1>value11</column1>
<column2>value12</column2>
</row>
<row>
<column1>valueN1</column1>
<column2>valueN2</column2>
</row>
This will help you.
regards
Aashish Sinha
PS : reward points if helpful -
Updating multpile tables and multiple rows - JDBC adapter
Hi,
The scenario is like this. i receive an Idoc which has header information and various line items (multiple occurrance of a segment). the hearder details have to be sent to one table, TableA, and all line items has to go to another table, TableB, and for each line item, a new row has to be inserted in TableB.
How can i acheive this using JDBC adapter? how should my data type look like? what are the settings i need to do in adapter config?
Thanks and Regards,
RashmiHi Rashmi,
You can use the following link for the JDBC adapter call :
http://help.sap.com/saphelp_nw04/helpdata/en/ae/d03341771b4c0de10000000a1550b0/frameset.htm
You need to provide the JDBC Driver, Connection,User Name and the password.
The data type structure you can take from the Bhavesh blog:
JDBC Receiver Adapter -- Synchronous Select Step by Step
Since you just need to update the tables, take only the sender side of the blog, i.e. the request part and configure the scenario accordingly.
Regards,
Sanjeev. -
Two queries on same table in sender JDBC adapter
Hi all..
My requirement is as follows....
query a table and fetch rows where column Error="true"
If there are no records in the table satisfying the above condition ,i want to send a mail stating that there are not records with error flag set to "true"
But the problem is i wont get a message to PI if there are no records.
If i write a query to get the count of records where column Error="true",Obviously the count would be zero. Using this message from database i can send a mail.
Now please let me know if i can write both the queries in query SQL statement? if so howshould be the source structure?
Thanks
Ram..Hello ram,
As far as i know it is not possible to use two different SQL statements in the sender adapter, though you can try with the join statement.
For further information refer this discussion
[Multiple Select Possible?|How to call multiple SQL using the JDBC adapter;
Regards,
Prasanna -
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.... -
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 -
I am trying to use EOIO in Sender JDBC Adapter. How are Queue Names Admnistered? Or how are the queues maintained?
Any help appreciated.
Regards
MikeHi,
You can give any names for the Queues in the sender adapter for EOIO.
This you can not see, in the SMQ2 until it is not stuck. Totally it will add the given name with XBQ*
Related blog-
/people/sap.india5/blog/2006/01/03/xi-asynchronous-message-processing-understanding-xi-queues-part-i
For more~
http://help.sap.com/saphelp_nw2004s/helpdata/en/7b/94553b4d53273de10000000a114084/content.htm
Regards,
Moorthy -
JDBC Adapter Call a Table-Valued Function
Hello to all,
we're using the JDBC adapter to access a MS SQL-Server 2008.
I have to call a "Table-Valued Function" via JDBC.
Has anybody done this?
I've tried to call it like a stored procedure with the following:
<ns1:LGBuchungSAP_REQ xmlns:ns1="http://xyz.de/pi/mav/kantine">
<fLGBuchungenSAP>
<Tablename action="execute">
<table>dbo.fLGBuchungenSAP</table>
</Tablename>
</fLGBuchungenSAP>
</ns1:LGBuchungSAP_REQ>
but I get following error:
com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser:
Error when executing statement for table/stored proc. 'dbo.fLGBuchungenSAP' (structure 'fLGBuchungenSAP'): com.microsoft.sqlserver.jdbc.SQLServerException:
Fehler bei der Anforderung für 'fLGBuchungenSAP' (Prozedur), weil 'fLGBuchungenSAP' ein Tabellenwertfunktion-Objekt ist.
Calling with a select-statement also fails:
<ns1:LGBuchungSAP_REQ xmlns:ns1="http://xyz.de/pi/mav/kantine">
<STATEMENT_NAME>
<Tablename action="SELECT">
<table>dbo.fLGBuchungenSAP('20101101 00:00:00', '20110101 00:00:00')</table>
</Tablename>
</STATEMENT_NAME>
</ns1:LGBuchungSAP_REQ>
with error:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Eingangs-Message -->
<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:P1>
<SAP:P2></SAP:P2>
<SAP:P3></SAP:P3>
<SAP:P4></SAP:P4>
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'dbo.fLGBuchungenSAP('20101101 00:00:00', '20110101 00:00:00')' (structure 'STATEMENT_NAME'): java.lang.IndexOutOfBoundsException: Index: 4, Size: 4</SAP:AdditionalText>
<SAP:Stack></SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Please advice
Regards
ChristianHello to all,
I solved the problem.
You have to call it this way:
<ns1:LGBuchungSAP_REQ xmlns:ns1="http://xyzde/pi/mav/kantine">
<STATEMENT>
<LGBuchungSAP action="SQL_DML">
<access>select * from dbo.fLGBuchungenSAP('$DatumVon$', '$DatumBis$')</access>
<key>
<DatumVon>20101101 00:00:00</DatumVon>
<DatumBis>20110101 00:00:00</DatumBis>
</key>
</LGBuchungSAP>
</STATEMENT>
</ns1:LGBuchungSAP_REQ>
But I get the next error: "A result set was generated for the update task"
<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:P1>
<SAP:P2></SAP:P2>
<SAP:P3></SAP:P3>
<SAP:P4></SAP:P4>
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LGBuchungSAP' (structure 'STATEMENT'): com.microsoft.sqlserver.jdbc.SQLServerException: Es wurde ein Resultset für den Aktualisierungsvorgang generiert.</SAP:AdditionalText>
<SAP:Stack></SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error> -
Multiple table insert using receiver jdbc adapter
Hi,
I am trying to insert data in to two tables in a single structure using receiver jdbc adapter. I am not using any stored procedure to insert data instead directly inserting the data using PI. Please see the structure I am using.
SOURCE side:
DT_ABC_SENDER
--IT_HEADER_TEXT
-- EBELN
-- LINENO
--TDTEXT
--IT_ITEM_TEXT
-- EBELN
-- LINENO
--TDLINE
TARGET side:
DT_ABC_RECEIVER
--InsertStatement
--HEADER_TEXT
-- action (insert)
-- Table (Table 1)
--access
-- IDS_ENQ_NO
-- IDS_DESC
-- IDS_TEXT
--ITEM_TEXT
-- action (insert)
-- Table (Table 2)
--access
-- IIS_ENQ_NO
-- IIS_DESC
-- IIS_TEXT
Using the above structure I am able to successfully insert the data in Table 1 but data is not getting inserted in Table 2.
In sxmb_moni it is saying message successfully delivered but I but there is data insertion took place in Table 2.
Please help me urgently.
Thanks in advance.
NeeerajHi Neeraj,
Add --InsertStatement statement for the second table structure in the same level of first InsertStatement.
Target structure like this:
DT_ABC_RECEIVER
--InsertStatement
--HEADER_TEXT
-- action (insert)
-- Table (Table 1)
--access
-- IDS_ENQ_NO
-- IDS_DESC
-- IDS_TEXT
--InsertStatement
--ITEM_TEXT
-- action (insert)
-- Table (Table 2)
--access
-- IIS_ENQ_NO
-- IIS_DESC
-- IIS_TEXT
Maybe you are looking for
-
Ipod Classic 120GB won't sync properly
My ipod was working perfectly normally. I connect the ipod to my computer normally, itunes recognises I have an ipod connected but a window appears saying "itunes has detected an ipod in recovery mode. You must restore this ipod before it can be used
-
When I try to play a movie with mplayer I get this: $ /usr/bin/mplayer grudge_max.mov MPlayer 1.0pre6-3.4.3 (C) 2000-2004 MPlayer Team CPU: Advanced Micro Devices Athlon MP/XP Thoroughbred (Family: 6, Stepping: 0) Detected cache-line size is 64 bytes
-
TS3772 need to download itunes 10.5.3 64bit OS Win7
Current version of iTunes apperently will not allow music videos to play after upgrading to current version of itunes 10.6.x, looking to re-install earlier version to see if this is fix. Quicktime verson is Pro 7.x-lic. Any help as to where to re-d
-
Slow PDF printing after upgrading to Acrobat 6 - Help Needed
When I used Acrobat 5, my 95ppm printer printed pdf files at that speed (I generally throw several thousand page PDF docs at it at a time). Now since I upgraded to Acrobat 6, printing is MUCH slower. Nothing has changed other than the version of Ac
-
Does CS5 have tools for creating websites for mobile devices?
Does DW CS5 have any built in tools for creating web pages for mobile devices, iPads, iPhones, etc? Thanks.