cancel
Showing results for 
Search instead for 
Did you mean: 

No "action" attribute found

Former Member
0 Kudos

I am getting the following error messages. I have checked through the SDN and found many notes on the subject, but I am still unable to figure out why I am getting the following errors. Can anyone help please?

2007-06-14 13:51:52 Error No "action" attribute found in XML document ("action" attribute missing or wrong XML structure)

2007-06-14 13:51:52 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)

2007-06-14 13:51:52 Error Exception caught by adapter framework: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)

2007-06-14 13:51:52 Error 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: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure).

Accepted Solutions (1)

Accepted Solutions (1)

udo_martens
Active Contributor
0 Kudos

Hi Skip,

you need to build the JDBC request including a "action attribute. Have a look to <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm">Document Formats for the Receiver JDBC Adapter</a>

Regards,

Udo

Answers (4)

Answers (4)

Former Member
0 Kudos

I am going from a CSV file to JDBC...

I have got the first record in the file to update in the database, but only one record is commiting. I have the outbound data type set to 0...unbound (CSV file) and I have the "statementname" inbound to database set to 1

I do not have any mapping done for the statementname, is that my problem?

Thanks

Skip Ford

Former Member
0 Kudos

I had an issue with the Interface Determination. For some reason the first time I used the Wizard it did not populate the interface mapping, under the "configured inbound interface"... after many hours of trying to figure out what the problem was, I deleted it and re-ran the wizard. At that time I noticed that this was now poputated... Also, I will note when sending SQL to the oracle database XI uses quotes which makes it case sensitive.

henrique_pinto
Active Contributor
0 Kudos

The wizard won't populate the mapping automatically in one of the following cases:

1. there is no interface mapping matching the target and source interfaces

2. there is more than 1 interface mapping matching the target and source interfaces.

Check whether your interface mapping is defined with the proper message interfaces and also if there isn't more than 1 interface mapping defined for those interfaces.

Regards,

Henrique.

Former Member
0 Kudos

This is what my "test" looks like...

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_OUTPLAIN_JDBC_REC xmlns:ns0="http://idexxi.com/sapxi/edhr/vendordata">

<STATEMENTNAME>

<skip_test action="insert">

<TABLE>skip_test</TABLE>

<access>

<vendor_data1>john</vendor_data1>

<vendor_data2>3/3/2007</vendor_data2>

<vendor_data3>Ford</vendor_data3>

</access>

</skip_test>

</STATEMENTNAME>

</ns0:MT_OUTPLAIN_JDBC_REC>

justin_santhanam
Active Contributor
0 Kudos

Skip,

I really don't know whether the below change make sense or not, but can u try it?

Please change <skip_test action="insert"> as <skip_test action="INSERT"> .

If it doesn't helps , is it ok for you to create a sql string and do the same as you did? If you want consider below.

Create Data type as

Statement <b>0..Unbounded</b>

TABNAM <b>1..1</b>(Sub-element of Statement)

Action <b>required</b> (Attribute of TABNAM)

Access <b>1..1</b> (Sub-element of TABNAM)

Create simple UDF with three inputs(as per your structure)

<u>UDF</u>

return "INSERT INTO skip_test(vendor_data1,vendor_data2,vendor_data3) Values ('john', 3/3/2007','Ford')" ;

Map Constant([]) to Statement

Map Constant([SQL_DML]) to Action

Map Inputs - UDF- Access

If you have multiple source records and you want the data to be inserted with single statement then please follow the below logic as I suggested in the other thread.

See below links for more info.

http://www.flickr.com/photo_zoom.gne?id=549186611&size=o

http://www.flickr.com/photo_zoom.gne?id=549186651&size=o

Consider the logic and apply for ur strcture.

I hope it helps you !!!!

Best regards,

raj.

Former Member
0 Kudos

My JDBC adapter is inserting into an oracle database

Former Member
0 Kudos

Ford,

I think you have not hardcoded the action as Insert. That is what it is complaining about. Check this weblog point 4. You have to do the same as given in the weblog:

/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30

---Satish

Former Member
0 Kudos

I have create a constant in my mapping and set that to insert. I was confused on what to do with the TABLE, I also create a constant and set that to my table name which is skip_test. Is that the right thing to do?

Former Member
0 Kudos

Ford,

Table should be table name where you are inserting the data. It should be a constant but it should be a table name. Also you should have the table created in your database before you insert the data.

---Satish