cancel
Showing results for 
Search instead for 
Did you mean: 

Error on JDBC Receiver Channel FATAL ERROR document format in structure

manikandan_shanmugam3
Active Participant
0 Kudos

Dear All,

Scenario:IDOC to JDBC.

We are getting below error in Receiver Channel.

Error "Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ProductMasterEvent' (structure 'statement1'): java.sql.SQLException: FATAL ERROR document format in structure 'statement1': expected 'access' tag(s) not found"

and

"Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ProductMasterEvent' (structure 'statement1'): java.sql.SQLException: FATAL ERROR document format in structure 'statement1': expected 'access' tag(s) not found"

Note:We are using the same interface for two clients and its working fine with one client and giving above error with another client.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi ,

After looking at your Error : i found problem is in your Structure created for receiver JDBC Datatype.

Correct it Problem will be resolved...

First Question is what are you trying to Do : Table / Stored Procedure .

Still Check your Structure with This :

Check in your message mapping after execution( Target Side) -> Test Tab -> XML structure,

it Should be like this/ in this format

Here action/ table/access : these tagname should not be changed.

Enter the new column values in the <access> element.

Enter exactly one <access>element.

<StatementName>

<dbTableName action=u201DINSERTu201D>

<table>TableName</table>

<access>

<col1>val1</col1>

<col2>val2</col2>

</access>

</dbTableName>

</StatementName>

Your Statement would be like this :

INSERT INTO TableName (col1, col2) VALUES(u2018val1u2019, u2018val2u2019)

Or .............. example would like be this

<PrimaryInvoiceData> -


ROOTNODE STARTS----


<Update_Insert_INVHDR> -


TABLE A START----


<dbTable action="UPDATE_INSERT">

<table>INVHDR</table>

<access>

<VBELN>7468000071</VBELN>

</access>

<Key>

<VBELN>7468000071</VBELN>

</Key>

</dbTable>

</Update_Insert_INVHDR> -


TABLE A END

Regards

Prabhat Sharma.

Answers (2)

Answers (2)

iprieto
Contributor
0 Kudos

Hi,

The tag access is mandatory if you have conditional select, for example:

action --> select

table --> TABLE_DATA

access

name --> PETER

country --> ENGLAND

Best regards

Ivá

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi Mani,

check your statement1 structure, what is the occurace of access, it suppose to be always 1 to unbouded, for statement 1 access tag not created, may be you have written logic like that, if you dont want to send data to data base based on condition then use condition to statement node not for access.

Regards,

Raj