cancel
Showing results for 
Search instead for 
Did you mean: 

1:N mapping without using BPM --> IDOC to multiple files

sridharreddy_kondam
Active Contributor
0 Kudos

Hi all,

I am facing a problem while sending multiple files,

I need to send files ( File1, File2 or FIle3) ...

I was able to successfully send the first 2 files and along with it the 3rd file is being created without any data... How to stop this file( either file2 or file 3 should be created) in creating..

I have done the sceanrio like this, )ALL the source and target files are XSD's imported)

In the Message Mapping <b>Messages Tab</b>

<b>Source is AFS_DELVRY03 occurence is 1,

Target files

rootI8 occurence is 1,

rootI9 occurence is 0...1,

rootIB occurence is 0...1</b>

I have done all the maping part , problem is all 3 files are being created(eventhough 2nd or 3rd has no data) , I need rootIB, either rootI9 or rootIB based on condition,

So any one has done the similar scenario, If please suggest me how to hadnle so that only 2nd or 3rd file should be created,

In Interface Determination i have selected the extended option also...

Should i do any specific handling in the Configuration part or should i create more than one mapping?..

U r suggestions are welcome and will be rewarded with points,

Regards,

sridhar

Accepted Solutions (0)

Answers (2)

Answers (2)

sridharreddy_kondam
Active Contributor
0 Kudos

solved

bhavesh_kantilal
Active Contributor
0 Kudos

Sridhar,

I think we had a similar discussion in another thread!

When using MultiMapping without BPM, all messages need to be Compulsorily created in the target side.Solution to your problem would be to use Conditional Routing!

The reason that the Empty file is created is because the occurence of it is 0 to 1. When the occuerence is 0 .. 1, the target node will be created by default one time.

Regards,

Bhavesh

sridharreddy_kondam
Active Contributor
0 Kudos

Hi Bhavesh,

Yes we had similar dicussion,

Yes the solution is to use conditional routing , could u please elaborate more on this,

Should i handle it in Receiver determination ...? Please can u through some light ...

Regards,

sridhar

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

You can do this either on Receievr Determination or on Interface Determination.

Add multiple Receievrs/ Interfaces and then add the conditons on which the target should be choosen.

You will have 3 mappings one for each target file with the same source message and then on the basis of the condition the inbound interface will be selected and thereby the target message will be created.

Regards,

Bhavesh

sridharreddy_kondam
Active Contributor
0 Kudos

Hi Bhavesh,

I have done as u said,

created 3 message mappings, 3 interface mappings,

and in receiver determination i have used 3 receivers

But i am unable to check the conditions, Because i have to check if E1EDL44 does not exist then i have to create 2nd file else 3rd file... How can i handle this in the condition editor... since condition is checking for all the 3 receivers,

Please can u help me out...

Regards,

sridhar

Shabarish_Nair
Active Contributor
0 Kudos

to use Xpath for your receiver det. ref these blogs;

a combination of logics should help you in this case ...

/people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination

/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers

Former Member
0 Kudos

Hi,

There are two ways you can do this:

1. Without BPM - Since you have to create all the target messages adn you want either the 1st and second, or the first and third: create two multi-mapping with one and two, and one and three. In the receiver determination check the condtion based on which you decide the second or the third message has to be created and route it to the correct mapping accordingly.

2. with BPM, create all the target mapping. In the BPM check the condtion in the switch and do a send accordingly.

Just my thoughts

Regards

Vijaya

Former Member
0 Kudos

Hi Sridhar,

when you are developing XI multi-mapping means with in a single step you have to implement..creating 3 message mapping and 3 interface mapping is not best way.(If you develop like this client will agree..)

just create the 1 message mapping , In message mapping third tab give the Source is 1 message type target is 3 message type and do the necessary conditions..

Create the Integration process once receive the message inside the BPM..then do the Transformation Step get the three files based on condition.

In ID do the same steps.

Bhavesh is it correct...what i wrote.

Regards,

Venu.

bhavesh_kantilal
Active Contributor
0 Kudos

Venu,

Using a BPM, you can do the mapping / Split as needed and then send the files individually, using a Sens Step as needed. There are multiple ways in which this can be done with a BPM.

But, for a solution without a BPM, as the requirement is such that only 2 of the 3 target messages need to be created, multimapping would not work and the need for conditional routing occurs.So, this would require additional mappings.

The solution is either use a BPM or do the logic using Conditional Routing. Ofcourse the second solution requires 3 mapping programs , but you are avoiding a BPM which can cause a perfromance bottle neck.

If perfromance cannot become a bottle neck, then using BPM would make much more sense , but again it all boils down to the exact requirements and the feasibilty of the solutions!

Regards,

Bhavesh

Former Member
0 Kudos

Bhavesh,

Thanks for your replay..as u wrote that absolute correct.As i thought he is using BPM...

Regards,

Venu.