on 05-17-2011 7:01 AM
Hi All,
I have a scenario where XI has to pick the file from ftp and update the stagging databse through JDBC.
XI is picking the file, but not getting failed while sending the data to JDBC.
Unable to execute statement for table or stored procedure. 'MSDYNAMICSEMPLINFO' (Structure 'STATEMENT') due to com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'MSDYNAMICSEMPLINFO'.
JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'MSDYNAMICSEMPLINFO' (structure 'STATEMENT'): com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'MSDYNAMICSEMPLINFO'
Exception caught by adapter framework: null
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. 'MSDYNAMICSEMPLINFO' (structure 'STATEMENT'): com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'MSDYNAMICSEMPLINFO'
Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'MSDYNAMICSEMPLINFO' (structure 'STATEMENT'): com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'MSDYNAMICSEMPLINFO'
But the client say that the table is created at their end.
Please help
Edited by: Lavanya Ravi on May 17, 2011 8:01 AM
Can you tell me how to check the structure in external definition?
And one thing is that there are already JDBC scenarios and they are alll working fine. So, if the structure is wrong then the others should also not work right? Do correct me if my understanding is incorrect.
Thanks everyone for your replies
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks everyone for your replies and suggestions.
The issue is resolved. They have given the database name incorrectly. We found out by accessing the database through SQL Studio.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Do one thing just check mapping and see this particular field that would be mapped with fixed value as procedure name and check weather any extra space etc is there?
regards,
-anuj
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hai!
U have mentioned that the JDBC target structure is correct.
Then next u want to check whether your Channel is active. If it active then check the Connection details Driver ,Connection details,Username,pwd every think is correct.if all are correct.
In the reciver side check whether the table is defined in any other schema in that database.
For Ex if the data base name is TESTDB and the table name is TESTTABLE then for the lemrnt TABLE in the structure u can give the table name alone. if the table has been defined in anyother schema inside the Database then u want to mention the table as
TESTSCHEMANAEM.TESTTABLE.
Regard's
Preethi.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have tested the mapping seperately and it shows no error.
I tested the ID seperately using the payload in ID and it is working.
But when i execute from the beginning, i am getting the error that i had mentioned.
i also tried to ping the SQL ip from the OS level XI server and the response is received.
Need help to proceed furthur.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
In the moni the source has the following structure:
<?xml version="1.0" encoding="utf-8"?>
<ns:MT_MSDYNAMICS_IN xmlns:ns="urn:MSDynamics_integration">
<RECORD>
<ROW>
<EMPLOYEE>200</EMPLOYEE>
<CENTER></CENTER>
</ROW>
<ROW>
<EMPLOYEE>202</EMPLOYEE>
<CENTER></CENTER>
</ROW>
</RECORD>
</ns:MT_MSDYNAMICS_IN>
In the IR, the mapping is as follows:
STATEMENT -> RECORD
DBTABLENAME -> RECORD
ACTION -> CONSTANT( INSERT)
TABLE -> CONSTANT(TABLENAME)
ACCESS -> ROW
FIELDS MAPPED ONE TO ONE.
I have used similar kind of mapping for the other JDBC receiver developments which are working.
Need help in resolving this please
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HI Lavanya,
1) StatementName should be 0..Unbounded and need to be mapped with the source which is repeating which is Record.
2) No need to mapp TableName node.
3) Action will be attribute and needs to be mapped to constant with eiter Insert,Update and UPDATE_INSERT as well.
4) Table will be mapped to the constant and needs to provide the table name in the database.
5) No need to map with access as you have mapped the Record to Statement Name. When ever multiple records exists from source the statement will be excuted for each and every record.
Try to use this mapping and update the status.
Thanks,
Raju
HI Lavanya,
1) StatementName should be 0..Unbounded and need to be mapped with the source which is repeating which is Record.
2) No need to mapp TableName node.
3) Action will be attribute and needs to be mapped to constant with eiter Insert,Update and UPDATE_INSERT as well.
4) Table will be mapped to the constant and needs to provide the table name in the database.
5) No need to map with access as you have mapped the Record to Statement Name. When ever multiple records exists from source the statement will be excuted for each and every record.
Try to use this mapping and update the status.
Finally if you see the payload in the receiver JDBC channel your structure will be like below. If your payload in the receiver JDBC showing the structure like below then your problem will be solved.
<MessageType Name>
<StatementName>
<dbTableName action=u201DINSERTu201D | u201CINSERTu201D>
<table>MSDYNAMICSEMPLINFO</table>
<access>
<col1>val1</col1>
<col2>val2new</col2>
</access>
Thanks,
Raju
Dear Lavanya,
The connection string looks like: jdbc:microsoft:sqlserver://XXXXXX:PortNo;DatabaseName=XYZ
Also check if your table is associated with a schema name. In this case it will be like <Table>SchemaName.TableName</Table>
Warm Regards,
Anshul
Edited by: Anshul Chowdhary on May 24, 2011 11:55 AM
Hi Lavanya
You can check this wiki: http://wiki.sdn.sap.com/wiki/display/VC/JDBCConnectionSetup
URL for SQL SERVER 2005 should be jdbc:sqlserver://<host_name>:<port>;database=<db_name> and driver name should be com.microsoft.sqlserver.jdbc.SQLServerDriver
Regards,
Giuseppe
Hi Lavanya,
Where ever you are using JDBC as receiver you should follw the below structure which has SAP provided. Your XML structure looks like this.
<StatementName>
<TableName>
<action> (attribute)</action>
<Table>tablename</Table>
<access>
<Filed1> </Filed1>
<Filed2> </Filed2>
<Filed3> </Filed3>
</access>
<key>
</key>
</TableName>
</StatementName>
You have to maintain the structure like. The error which you are getting might be the issue with the structure which you have defined. Change your structure like the above mentioned hope you will be out of issue. Please update your comments if it works.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Did you check the receiver JDBC CC in external defination.
Thanks,
Krishna
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The problem is due to incorrect structure of receiver JDBC. As you can see the error for parsing data.
Take help for creating correct structure from below link :
http://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Are you using the structure as mentioned in below link:
http://help.sap.com/saphelp_nwpi711/helpdata/en/44/747eda12dd3676e10000000a114a6b/frameset.htm
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Lavanya,
Check out for table name in DB end, 'MSDYNAMICSEMPLINFO'. This table is not available at DB side.
You can also check the availability of the DB table by using external defination in ESR and use your receiver JDBC communication channel to check out for the tables.
If you do not see any table then inform the same to your DBA.
This same problem i also faced a couple of days back, DB tables were not visible through CC.
Thanks,
Krishna
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.