on 02-13-2015 1:54 PM
Hi Experts ,
I am using SAP PI 7.31 and created proxy to jdbc scenario .When I am sending data form Ecc Server to JDBC server but data is not reaching to JDBC server .
I have checked SXMB_MONI and whole system but I did not find any error while I have checked receiver channel then I found some error
Error is
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException
Error processing request in sax parser: Error when executing statement for table/stored proc
Error while parsing or executing XML-SQL document: Error processing request in sax parser
Error Screen shot
Hi Pradeep,
It looks like your receiver structure is incorrect, please create according to below document.
Defining XML Documents for Message Protocol XML SQL Format - Advanced Adapter Engine - SAP Library
Regards,
Praveen.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Praveen ,
This is my receiver payload if any issue in this payload please tell me .
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_Moodle_UserEnrolDataTransfer_Receiver xmlns:ns0="http://Moodle_UserEnrolDataTransfer">
<statement>
<dbTableName action="UPDATE_INSERT">
<table>userenrol</table>
<access>
<userid></userid>
<courseid></courseid>
<role></role>
<enrolperiod></enrolperiod>
<session></session>
<timecreated></timecreated>
<datecreated></datecreated>
<timemodified></timemodified>
<datemodified></datemodified>
<coursename></coursename>
</access>
</dbTableName>
</statement></ns0:MT_Moodle_UserEnrolDataTransfer_Receiver>
Regards ,
pradeep
Pradeep,
There is no key defined in your UPDATE_INSERT structure. There is no data in XML elements.
FYI. To use UPDATE_INSERT
<StatementName>
<dbTableName action=”UPDATE_INSERT”>
<table>realDbTableName</table>
<access>
<col1>val1</col1>
<col2>val2new</col2>
</access>
<key1>
<col2>val2old</col2>
<col4>val4</col4>
</key1>
<key2>
<col2>val2old2</col2>
</key2>
</dbTableName>
</StatementName>
To use INSERT (if you do not have key, and just need to insert into table).
<StatementName>
<dbTableName action=”INSERT”>
<table>realDbTableName</table>
<access>
<col1>val1</col1>
<col2>val2</col2>
</access>
<access>
<col1>val11</col1>
</access>
</dbTableName>
</StatementName>
hello Raghu ,
I have change action as "INSERT" but still data is not reaching in database . And when I checked message details in Communication Channel Monitor , then I found that error .
Status Details | JDBC adapter: Processing error (General processing error in the JDBC adapter) |
Error Category | XI_J2EE_ADAPTER_JDBC |
Error Code | JDBC_ADAPTER_PROCESSING_ERROR |
Hello Experts ,
This error is coming in message log . Please give the solution
Unable to execute statement for table or stored procedure. 'userenrol_replica' (Structure 'statement') due to java.sql.SQLException: Field 'coursename' doesn't have a default value
JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'userenrol_replica' (structure 'statement'): java.sql.SQLException: Field 'coursename' doesn't have a default value
Regards ,
Pradeep
Hi Pradeep,
You have made COURSENAME field as not mandatory, but it can be mandatory at database side, thats why you are getting this error.
1. Make the occurence 1-unbounded, and pass some value to it.
2. If it doesnt work, then check on ALLOW NULL VALUE on database side.
Thanks,
varsha.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
9 | |
9 | |
6 | |
6 | |
6 | |
5 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.