cancel
Showing results for 
Search instead for 
Did you mean: 

XML to Idoc- XML size more than 200 MB

Former Member
0 Kudos

Hi Experts,

I have an interface with source xml file size more than 200MB. I need to map it to Idoc and send it to ERP. I am planning to change wsdl of idoc(changing occurence 1.1 to 0.99999) to send multiple idocs in one message.

I want to split XML file somehow and send it. what are the different options i have to achieve that ? I am short of ideas.

I know if we have flat file, we can use recordset per message in sender file adapter.

OR

Cleint is willing to send it as a SOAP request, i do not want to use SOAP for such a big file.

Regards

Inder

Accepted Solutions (1)

Accepted Solutions (1)

naveen_chichili
Active Contributor
0 Kudos

Hi Inder,

As per sap recommendation we would be able to handle 100 MB, you need to tune your server by increasing the [arametersso that you would be able to handle the messages with big payload.

By default the parameter icm/HTTP/max_request_size_KB will be 10240 which can handle 100MB of file size.if you increase the parameter value by tuning ur system you can process a file bigger than that..

Please refer to the below links for reference....

[link1|http://help.sap.com/saphelp_nw04s/helpdata/en/58/108b02102344069e4a31758bc2c810/content.htm]

[link2|http://help.sap.com/saphelp_nwpi71/helpdata/de/95/1528d8ca4648869ec3ceafc975101c/content.htm]

as per the above suggestions the best practice is to sand as a multiple idocs splitting into chunks.

Cheers!!!!

Naveen.

Former Member
0 Kudos

My question was that if we can split the xml somehow ? is it possible ? I have never seen any blog or way when we can split the xml.

The ways recommended by you guys are awesome, but still problem remains same "BIG FILE SIZE".

1) Recordset - limitation cant use with xml

2) IDOC 0 to unbounded - its a target, 200MB file will produce 1000's idoc in on message

3) Changingh message size in config - Will work, but slow down the system and affect other interfaces also.

Any way to split xml ? i just want to fidn out the way to split xml.

Regards

Inder

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Just a thought. We had similar situation in our project. Getting everyday batch processing file of more than 100 mb and caused delay in processing. To avoid this, I modified the scenario from file to jdbc. Where Jdbc sender picks only limited number of records from source at a time and map it to proxy on the other side. This way I have control of pulling only limited number of records every time. You might consider if you could convert huge xml file to different source format, if the sender side has other option.

I dont see direct ways to split the xml file in to chunk. Also how do you handle mapping if the file is split into chunk?

Former Member
0 Kudos

Baskar,

I agree. I can get the design changed. I posted this question just to find out the ways we can do it in XI.

Regards

Inder

Former Member
0 Kudos

I had a requirement and I am sure it will give you an idea about a new approach.

IDOC- PI- FIle:

We had to collect all the idoc's sent over a day and then send this file to a 3rd party using FTP. SO we achived this as follow:

ECC sends idoc as and when they are triggred--> PI recieves the idoc do the mapping and writes this data in a file with append mode -


> The file at the reciever will contain only the detail record- >Once a day this file will be picked (in DELETE or ARCHIVE mode) by another File-Pi-File scenario. This interface will add header and trailer records (if required) in mapping and then create a single final target file.

This way we can collect the idocs (without BPM) and send the file once daily. This is working fine for me.

Hope it helps. LEt me know if you need further information on this approach !!

Former Member
0 Kudos

Hi,

>> Any way to split xml ? i just want to fidn out the way to split xml.

U can try using shell scripts for splitting the file in two or more based on the size.

Run the script in OS system command in sender communication Channel.

Keep the script in PI Application server and access it in the channel.

Cheers,

Souvik

Former Member
0 Kudos

Puneet,

The scenario is file to Idoc.

Souvik,

Shell script - if i use shell script to split the file by size, the xml might become corrupt. shll script will not make sure that all the proper tags are present in both the files.

Regards

Inder

Answers (3)

Answers (3)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Handling soap request for a large file is not good practice. PI 7.3 supports large file to handle. In your case requesting client to send multiple files is better way. Also you can send individual idocs for every source record at the target side. Please see Michal's blog about sending multiple idocs.

Former Member
0 Kudos

Hi Inder,

You have to split it up into multiple idoc's

Just check Michal's blog on it :-

/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change

also chk Yriy's response in :-

hope these might help u.

Regards,

Rohit

agasthuri_doss
Active Contributor
0 Kudos

Inder,

>> i do not want to use SOAP for such a big file.

Yes, Agreed it is not advisable to send huge message .

>>Cleint is willing to send it as a SOAP request

Can you ask the client to chunk and send the message ?

Cheers

Agasthuri

Former Member
0 Kudos

They cannot chunk the file, i need to do it in XI. Any suggestion ?