cancel
Showing results for 
Search instead for 
Did you mean: 

Message Mapping Issue

Former Member
0 Kudos

Hi Guys,

I have the following structure in an inbound to XI file:

E1WPB01 (0....99999)

- E1WPB02 (0...99999)

One E1WPB01 can have many E1WPB02.

And I want to create an outbound from XI IDoc that will have the same structure but with the following condition:

if E1WPB02 exists, then create E1WPB01, if E1WPB02 does not exist, then SKIP E1WPB01.

Any ideas ? I want to avoid a User Defined Function, but I am trying to find a way to produce single E1WPB02's per context, i.e. per E1WPB01.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

check as following :

1) Find what are the Source Feild values to be mapped to E1WPB02. Lets say fld1 & fld2 to be mapped with some of the fields of E1WPB02

2) Now do the mapping of E1WPB01 as follows: ()

fld1 -


>

OR -


> Exists -


>creatif -


>E1WPB01

fld2 -


>

Here we use fld1 & fld2 to map segment E1WPB01 as they are responsbile to create segment E1WPB02.

At the same time make sure of the proper "context " of these source feilds.

stefan_grube
Active Contributor
0 Kudos

> I am trying to find a way to produce single E1WPB02's per context, i.e. per E1WPB01

collapseContext - splitByValue produces single contexts and keeps suppress values also.

So you can do:

creatiIf - collapseContext

Former Member
0 Kudos

Hi,

Use Node function CreateIf, CreateIf function will create a target node or element based on some condition

Regards,

Abid

Former Member
0 Kudos

Yes, but createIf cannot be used for multiple segments inside a loop.

As I said I am going to have many E1WPB01 segments that will have 0..many E1WPB02 segments.

For every E1WPB01

If at least one E1WPB02 exists inside E1WPB01

then create target E1WPB01

So I do not think that createIf is going to work.

arkesh_sharma
Active Participant
0 Kudos

Hi,

Try using "If-without-else" along with "Exists". I hope this will solve the problem.

Thanks,

Arkesh

former_member181985
Active Contributor
0 Kudos

You can use "CreateIf" standard function.