cancel
Showing results for 
Search instead for 
Did you mean: 

INSERT 1000 records by splitting data in mapping

Former Member
0 Kudos

Hello Experts,

Can you please guid me in how to split the records in XI mapping as bunches on 1000 each. My Scenario is JDBC to JDBC using BPM i am SELECTING the data from Sender Database and updating with ok status. When INSERTING the same into receiver database my interface is working fine if it is 2000 records. But if it is more then 2000 records then at RWB i can Insert message mapping step will be delivering status for a long time. In the Log statement i am getting the following 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:

Error when executing statement for table/stored proc. java.sql.SQLException: ORA-00936: missing expression.

But the same interface is working fine it is 2000 records. I have checked there is no error in the payload too.

Please provide your valuable suggestions.

Thanks in advance.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Try to select and update 1000 records at a time and give a suitable poling interval in the sender comm channel by using a flag.

select * from table_name where rownum<1000 and flag = 1.

update table_name set flag = 2 where rownum<1000.

in 1st polling 1st 1000 records will be inserted, in next polling next 1000 records will be inserted.

you can change the no of records to be polled as per your requirement.

Regds,

Pinangshuk.

Former Member
0 Kudos

Hi Pinangshuk,

Thank you for your reply. I dont have any condition for SELECTION. I need to select all the records in the table without updating any FLAG field. Even in INSERTION same. So i have to split in mapping and send 1000 records at one step.

VijayKonam
Active Contributor
0 Kudos

Donno if it works, but you might want to try -

In your mapping, change the target message occurance to 0..unbounded. It then typically becomes 1.. n mapping. Write logic in your mapping so that mapping splits every 1000 messages and creates the next message.

This does require a BPM.

VJ

Former Member
0 Kudos

Hi,

Try and restrict the number of records while fetching from sender side.

In select query in communication channel, you can limit this volume.

-Supriya.

Former Member
0 Kudos

Hello Supriya,

Thank you for ur reply.In BPM through message mapping step only i am selecting the data that too there is no WHERE conditon on SELECTION. i will select all the data from the sender data base and the next step of BPM this will be INSERTED in the receiver DB using message mapping i will send the SQL select statement.